Introduction to payment schedules
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 overall payment collection steps differ depending on whether the processing is file-based (bank) or API-based (PSP). While there are slight differences depending on the exact payment process or method combination, the following illustrations outline the general processes (from a simplified, non-technical perspective).
File-based payment collection
- Payment schedule gathers installments that are ready for collection.
- Collected installment are sent to ProcessingHub for payment instruction file generation.
- PaymentHub generates payment instruction bank file.
- Generated file is uploaded to Chatter group designated for file exchange.
- File is manually or automatically fetched from Chatter and sent to bank.
- Bank creates reports and statements about account transactions.
- Reports and statements from the bank are uploaded to the Chatter group.
- ProcessingHub automatically fetches uploaded bank files.
- ProcessingHub matches incoming payment data to installments and updates records in Salesforce. Matching may also be done via Guided Matching in some cases.
API-based payment collection
- Payment schedule gathers installments that are ready for collection.
- Payment instructions are sent to the PSP.
- PSP sends notifications to FinDock about payment collection status.
- Notification Gateway captures incoming notifications which are transformed into inbound reports.
- Inbound reports are picked up by Guided Matching for reconciliation.
- Guided Matching updates payment data based on matching results.
For every payment process and method, a payment schedule always goes through the same basic phases - prepare, process and close - as explained in the sections below.
Phase 1 - Prepare
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
- Salesforce Fundraising = 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 match the payment schedule details.
- Due date is on or before the selection date of the payment schedule.
- For recurring payments, the next collection date is on or before the selection date of the payment schedule.
- If a payment profile is linked to the installment, the profile is active.
- If a mandate is linked to the installment, the mandate is active.
- Installment status is New or Pending Recollection.
In most scenarios, if any one of these criteria is false, the installment is ignored (or not generated)
KNOWN ISSUES In the FinDock Standalone scenario, please keep in mind the following:
- If there is an existing installment with status New for a recurring payment, the installment will be included in a payment schedule regardless of the mandate status. Such installments need to be manually removed from payment schedules if they are not ready for collection.
- If an installment with status New is attached to a payment schedule and that schedule fails or is otherwise abandoned, the installment will not be picked up by another payment schedule. The already linked payment schedule needs to be removed from the installment for the installment to be collected.
The status Pending Recollection has special handling when FinDock is the source of payment data (FinDock Standalone). In this setup, an installment with Pending Recollection status is included in the payment schedule regardless of Due Date.
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.
Phase 2 - Process
The next phase of the payment schedule is the payment initiation, resulting in either a bank file 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, FinDock:
- Collects the installment data.
- Creates a payment instruction file and adds it to the appropriate location (e.g. Chatter).
- OR Initiates payment instruction calls to the given Payment Service Provider.
If the processing phase results in a 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 a 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.
Phase 3 - Close
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, 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.
Reconciliation
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.
In the file-based scenario, reconciliation begins with uploading bank files. In the API-based scenario, reconciliation follows an automatic process.