You are able to set up to 10 of your own custom fields on the Bank Account Transaction object. These fields are then persisted to our database with all the other transaction's information. Custom Fields can be made required if you would like for all transactions via SDK and/or Virtual Terminal. They would be required for both ACH and Bank Card if required.
To set custom field's names, which it is not required to set the fields name to be able to set the custom field in the SDK when processing a transaction, you will want to login to the merchant portal. On the Settings tab from the Custom Field Settings you can set what you want names and requirements you want.
Custom Fields will show in GUI only if the custom field has a field name set on it in the merchant's custom field settings.
SDK example of setting the 10 custom fields then getting them after processing the transaction:
BankAccountTransaction o_ach_transaction = new BankAccountTransaction();
o_ach_transaction.setAccountName("Sample ACH Transaction");
BaseCommerceClient o_client = new BaseCommerceClient(XS_USERNAME, XS_PASSWORD, XS_KEY);
o_ach_transaction = o_client.processBankAccountTransaction(o_ach_transaction);
System.out.println( o_ach_transaction.getCustomField1() );
System.out.println( o_ach_transaction.getCustomField2() );
System.out.println( o_ach_transaction.getCustomField3() );
System.out.println( o_ach_transaction.getCustomField4() );
System.out.println( o_ach_transaction.getCustomField5() );
System.out.println( o_ach_transaction.getCustomField6() );
System.out.println( o_ach_transaction.getCustomField7() );
System.out.println( o_ach_transaction.getCustomField8() );
System.out.println( o_ach_transaction.getCustomField9() );
System.out.println( o_ach_transaction.getCustomField10() );