Zumzum Financials Knowledge Base
Overview:
The Zumzum Financials Bank Transfer API provides the following capabilities:
- Insert a Draft Bank Transfer
- Post a Draft Bank Transfer
- Create and Post a Bank Transfer
Bank Transfer Description
The Bank Transfer API will allow you to move funds from one Bank Account record in Zumzum Financials to another. The Bank Transfer API uses the global class called BankTransferService which you may call from your own Apex code. When using this feature you should be aware of the below:
- You are able to create Bank Transfer records with a status of draft.
- Draft records may only be created and posted from the Bank Transfer service and not in the Zumzum Financials web interface.
- NOTE: Please do not add the “Edit” button on the Bank Transfer layout or Salesforce lightning record page.
- You can deploy your own list view to track the list of draft Bank Transfer records on the Bank Transfer tab in Zumzum Financials.
- Any Posted Bank Transfer records can not be edited.
The below table contains Bank Transfer Wrapper API fields
BankTransferWrapper API Fields
Object Name | Field Name | API Name | Data Type | Required |
---|---|---|---|---|
BankTransferWrapper | Bank Account From | BankAccountFrom | Lookup (Zumzum__Bank_Account__c) | Yes |
BankTransferWrapper | Bank Account To | BankAccountTo | Lookup (Zumzum__Bank_Account__c) | Yes |
BankTransferWrapper | Date | TransactionDate | Date | Yes |
BankTransferWrapper | Amount | Amount | Decimal (2 decimal places) | Yes |
BankTransferWrapper | Reference | Reference | String (255) | No |
BankTransferWrapper | Description | Description | String (255) | No |
Insert Bank Transfer – InsertBankTransfer Method
Below is information related to inserting a draft Bank Transfer record within Zumzum Financials using Apex code. The InsertBankTransfer method is used to insert a Bank Transfer record in a Draft status.
- Draft records may only be created and posted from the Bank Transfer service and not in the Zumzum Financials web interface.
- NOTE: Please do not add the “Edit” button on the Bank Transfer layout or Salesforce lightning record page.
Global Class Name | Method | Input | Output |
---|---|---|---|
BankTransferService | InsertBankTransfer | BankTransferList | BankTransferResponse List of “Bank_Transfer__c” |
Sample Code: Insert Bank Transfer
/*===============================================START INSERT BANK TRANSFER SAMPLE SCRIPT ========================================*/ //Initiate a new instance of the Bank Transfer Object BankTransferService bankTransferService = new BankTransferService(); // Create a new list to store the Bank Transfer Wrappers List<BankTransferService.BankTransferWrapper> BankTransferList = new List<BankTransferService.BankTransferWrapper>(); //Create an object to store the response from the Bank Transfer API BankTransferService.BankTransferResponse BankTransferResponse = new BankTransferService.BankTransferResponse(); //Create the data for the first Bank Transfer wrapper to be created BankTransferService.BankTransferWrapper BankTransferWrapper1 = new BankTransferService.BankTransferWrapper(); // Provide the Bank Transfer Wrapper 1 Variables // Provide the Bank Account ID which will be used to transfer from BankTransferWrapper1.BankAccountFrom = '<Set Bank Account Id>'; // Provide the Bank Account ID which will be used to transfer to BankTransferWrapper1.BankAccountTo = '<Set Bank Account Id>'; // Provide the Transaction Date BankTransferWrapper1.TransactionDate = Date.Today(); // Provide the Foreign Amount to Transfer to the target bank account BankTransferWrapper1.ForeignAmount = 100; // Optional: Provide a text reference to be stored in the Bank Transfer record. BankTransferWrapper1.Reference = 'Sample Reference 1'; // Optional: Provide a text reference to be stored in the Bank Transfer record. BankTransferWrapper1.Description = 'Sample description 1'; //add Bank Transfer Wrapper 1 to the list of Bank Transfer Wrappers BankTransferList.add(BankTransferWrapper1); // Provide the Bank Transfer Wrapper 2 Variables BankTransferService.BankTransferWrapper BankTransferWrapper2 = new BankTransferService.BankTransferWrapper(); // Provide the Bank Account ID which will be used as the source to transfer the funds from BankTransferWrapper2.BankAccountFrom = '<Set Bank Account Id>'; // Provide the Bank Account ID which will be used as the target to transfer the funds to BankTransferWrapper2.BankAccountTo = '<Set Bank Account Id>'; // Provide the Transaction Date BankTransferWrapper2.TransactionDate = Date.today(); // Provide the Foreign Amount to Transfer to the target bank account BankTransferWrapper2.ForeignAmount = 101; // Optional: Provide a text reference to be stored in the Bank Transfer record. BankTransferWrapper2.Reference = 'Sample Reference 2'; // Optional: Provide a text reference to be stored in the Bank Transfer record. BankTransferWrapper2.Description = 'Sample description 2'; //Add the Bank Transfer Wrapper 2 the list Of Bank Transfers to process. BankTransferList.add(BankTransferWrapper2); //Call The Bank Transfer CreateBankTransfer method to process the list of bank transfers BankTransferResponse = bankTransferService.InsertBankTransfer(BankTransferList); // Receive the response from the Bank Transfer API class. system.debug(BankTransferResponse); /*===============================================END INSERT BANK TRANSFER SAMPLE SCRIPT ========================================*/
Post Bank Transfer – PostBankTransfer Method
Below is information related to the posting of a Draft Bank Transfer record within Zumzum Financials using Apex code. The PostBankTransfer method is used to change the status of the Bank Transfer to Posted and inset the related Ledger records.
Global Class Name | Method | Input | Output |
---|---|---|---|
BankTransferService | PostBankTransfer | bankTransferIds (set) | List of “Bank_Transfer__c” |
Sample Code: Post Bank Transfer
/*===============================================Start POST Bank Transfer Script========================================*/ //Initiate a new instance of the Bank Transfer Object BankTransferService bankTransferService = new BankTransferService(); // Create a Set variable to store the Bank Transfer Record IDs Set<Id> bankTransferListToPostIds = new Set<Id>(); // Create a List to store the responses from the Bank Transfer API BankTransferService.BankTransferResponse response = new BankTransferService.BankTransferResponse(); // Query the system for Draft Bank Transfer records to return the IDs for(BankTransfer__c bankTransfer : [SELECT Id FROM BankTransfer__c WHERE status__c = 'Draft']) { bankTransferListToPostIds.add(BankTransfer.Id); } // Execute the Post Bank Transfer method response = bankTransferService.PostBankTransfer(bankTransferListToPostIds); //Receive the response from the Bank Transfer Service API system.debug(response); /*===============================================End Post Bank Transfer Script========================================*/
Create Bank Transfer – CreateBankTransfer Method
Below is information related to creating a Bank Transfer record and automatically posting the transaction to create the related ledger records within Zumzum Financials. Create your own Apex code to call the CreateBankTransfer method. This will insert a Bank Transfer record as Posted and create the Ledger records in a single call.
Global Class Name | Method | Input | Output |
---|---|---|---|
BankTransferService | CreateBankTransfer | BankTransferWrappersList | response list of “Bank_Transfer__c” |
Sample Code: Create Bank Transfer
/*===============================================START CREATE BANK TRANSFER SAMPLE SCRIPT========================================*/ //Initiate a new instance of the Bank Transfer Object BankTransferService bankTransferService = new BankTransferService(); // Create a new list to store the Bank Transfer Wrappers List<BankTransferService.BankTransferWrapper> BankTransferWrapppersList = new List<BankTransferService.BankTransferWrapper>(); //Create an object to store the response from the Bank Transfer API BankTransferService.BankTransferResponse response = new BankTransferService.BankTransferResponse(); //Create a list to store the data for the Bank Transfer Wrappers of records to be created BankTransferService.BankTransferWrapper BankTransferWrapper = new BankTransferService.BankTransferWrapper(); // Provide the Bank Account ID which will be used as the source to transfer the funds from BankTransferWrapper.BankAccountFrom = '<Set Bank Account Id>'; // Provide the Bank Account ID which will be used as the target to transfer the funds to BankTransferWrapper.BankAccountTo = '<Set Bank Account Id>'; // Provide the Transaction Date BankTransferWrapper.TransactionDate = Date.Today(); // Provide the Foreign Amount to Transfer to the target bank account BankTransferWrapper.ForeignAmount = 100; // Optional: Provide a text reference to be stored in the Bank Transfer record. BankTransferWrapper.Reference = 'Sample Reference 1'; // Optional: Provide a text reference to be stored in the Bank Transfer record. BankTransferWrapper.Description = 'Sample description 1'; //add Bank Transfer Wrapper 1 to the list of Bank Transfer Wrappers BankTransferWrapppersList.add(BankTransferWrapper); //Call The Bank Transfer CreateBankTransfer method to process the list of bank transfers response = bankTransferService.CreateBankTransfer(BankTransferWrapppersList); // Receive the response from the Bank Transfer API class. system.debug(response); /*===============================================END CREATE BANK TRANSFER SAMPLE SCRIPT========================================*/
Below is a list of error codes that are returned by the Bank Transfer Service.
Supported Error Codes – Bank Transfer Service (API)
Error Message | Reason | Resolution |
---|---|---|
‘ Please enter a Starting Document Number & Current Document Number for Bank Transfer in General Setup>BT record.’ | Missing a Document Number record in Zumzum Setup > Document Numbers. | The Document Number for a bank transfer record is automatically created after you first Bank Transfer transaction in the web interface. Otherwise, please add manually. |
‘Foreign Amount: Please provide a “Foreign Amount” which is greater than zero.’ | The Foreign Amount is set to zero or missing. | Please submit the wrapper with a value greater than 0.00 for Foreign Amount. |
‘Please provide different “Bank Account From” and “Bank Account To” values. Both values should be provided. ‘ | The same Bank Account record ID appears in both the Bank Account From and Bank Account To variables. | Submit a data wrapper with unique values for both the Bank Account From and Bank Account To variables. |
‘Bank Account To: Please confirm this Bank Account (ID) is valid and the Bank Account is set as “Active”.’ | Either there is an incorrect Bank Account record ID or the Bank Account record is not marked as Active. | Ensure your Bank Account record is set to Active and provide a valid Bank Account records ID. |
‘Bank “Account To” is missing. Please specify a Bank Account to transfer to.’ | The Bank Account To variable is missing in your data wrapper. | Provide a valid Bank Account record ID in the Bank Account To variable. |
‘Bank Account From: Please confirm this Bank Account (ID) is valid and the Bank Account is set as “Active”.’ | The Bank Account From variable is missing in your data wrapper. | Provide a valid Bank Account record ID in the Bank Account From variable. |
‘Bank “Account From” is missing. Please specify a Bank Account to transfer from.’ | The Bank Account From variable is missing in your data wrapper. | Provide a valid Bank Account record ID in the Bank Account From variable. |
‘Bank Transfer \”+bankTransferWrapper.Name+’\’ with ID \”+bankTransferWrapper.Id+’\’ Should be in “Draft” or “Approved” to post to the ledger’ | The Bank Transfer record ID is already Posted or is set to another status than Draft of Approved. | Confirm the Bank Account record ID is in a status of Draft or Approved. |
‘Bank Transfer input list is empty. Please provide at least one Bank Transfer Wrapper to create a Bank Transfer.’ | No Bank Transfer Wrappers are included in the list of Bank Transfer Wrappers submitted to the API. | Include at least one Bank Transfer Wrapper in the list of Bank Transfer Wrappers passed to the method. |
Learn more about leveraging the Zumzum Financials API to create your own integration.