FinDock uses the Payment Schedule object to perform bulk payment collections. Payment schedules define a specific set of installments for collection, makes all the necessary changes to the relevant and related records, and results in either file creation for manual upload to your bank or automated API calls to the given Payment Service Provider (PSP). The payment collection steps differ depending on whether the processing is file-based (bank) or API-based (PSP). However, the overall collection goes through the same basic phases - prepare, process and close - as illustrated here and explained in the sections below.
File-based payment collection
API-based payment collection
In this phase, the installment records are generated. The payment schedule creates or selects installments and links them to the schedule based on the source:
- FinDock (standalone) = Create
- Salesforce NPSP = Select
- Converse PayLink = Create
For an installment to be included in the collection run, the following needs to be true:
- Source, payment method, payment processor and target on the installment have to match the payment schedule details.
- The due date has to be on or before the selection date of the payment schedule.
- If there is a payment profile linked to the installment, the profile must be active.
- If there is a mandate linked to the installment, the mandate must be active.
- The status of the installment must be 'New' or 'Pending recollection.'
If any of these requirements is false, the installment is ignored.
When preparation ends, the installments are linked to the schedule via a look up on the installment, and the status of the payment schedule is changed to 'Generated.' The duration of this phase depends on several factors, including how many records there are, org customizations, etc.
The next phase of the payment schedule is the payment initiation, resulting in either a bank file (pain.008 or Standard 18) in Chatter, or API calls to the PSP. This step is initiated by changing the status of the payment schedule from 'Generated' to 'Process.' This change can be done manually, or automatically by using workflows, process builder, approval processes or any of the other automation tools available in Salesforce.
Only this status change initiates the payment intent creation process. Approval processes or other customizations always need to change the status from 'Generated' to 'Process,' with no other steps in between, to initiate this activity.
When the process is initiated, ProcessingHub:
- Collects the installment data.
- Creates the appropriate bank file and sends it to the appropriate location (usually Chatter, but may also be the payment processor, like Smart Debit).
- OR initiates payment intent calls to the API of the designated Payment Service Provider.
If the processing phase results in a bank file that is uploaded to Chatter, the status of the payment schedule will change to 'Pending Verification.' From this point, the steps required to complete the payment schedule are mostly manual.
If the payment processor is PSP, the payments are automatically created at the PSP through API calls. All further steps are also handled via API calls and webhook notifications. For example, if there is an issue with an installment, such as an incorrect credit card number, this will be captured immediately and shown in the payment schedule. Successful payment collection notifications result in the installment status being changed to ‘Collected’ and payment records created.
If the bank charge file is delivered to the Chatter group, manual verification is required. Download the file from Chatter and upload it to the designated bank (defined by the Target on the payment schedule).
When the bank accepts the file upload, change the status of the payment schedule to 'Verified.' This triggers the final phase of bulk payment collection.
Depending on the payment method and processor, either the Finished Status value is set on every installment, or ProcessingHub closes the installments as 'Collected' and creates payment records for the installments.
These actions are handled automatically with API-based payment collection. The PSP sends notifications to FinDock (WebHub), and FinDock creates and updates records in Salesforce accordingly. This happens in real-time, so there is no hard distinction between the process and close phases for API-based payment collection.
Though not part of the payment schedule per se, reconciliation is an important part of payment collection. There are many ways to handle reconciliation. FinDock provides tools for both file-based or API-based payment collection scenarios.