Getting started with Bacs for FinDock

Bacs for FinDock is an implementation of the Bacs payment scheme for FinDock. It supports the Bacs Direct Debit scheme to be used directly with a bank by creating charge files, as well as importing bank statements through the MT940(s) format.

Supported Payment Methods

  • Direct Debit

This Payment Extension also supports the import of Bank Statement Files in the MT940 and MT940s formats.


Before you can start the configuration and usage of Bacs for FinDock, you will need to have the following pre-requisites taken care of:

  • FinDock installed and configured
  • ProcessingHub installed and configured
  • A source connector installed and configured

Installation & Activation

Follow the standard procedure for installing and activating the Bacs for Findock payment extension.

Create targets

To complete the Bacs configuration, make sure to add the correct targets, for more information on Bacs targets, see: Creating a Bacs target.

Mandate and Payment Reference Services

The Bacs for FinDock extension generates Bacs DDI's (Mandates) when required.


The DDIs are created according to the Bacs standard. The prefix as set in the mandate settings on the FinDock setup page are combined with the Bankaccount for this DDI record to create a unique Mandate reference. These Bacs Mandates are used when performing a Direct Debit Collection Run. Note: FinDock uses the AUDDIS service to register DDI's, conversion of non-AUDDIS ddi's to AUDDIS DDI's is not supported by FinDock. Either convert them using an external service, or register new DDI's through FinDock using the AUDDIS service.

Installment Aggregation

Since Bacs doesnā€™t allow multiple direct debit transactions for the same mandate on the same date, FinDock automatically aggregates transactions to a single direct debit collection for each mandate/date combination.

Aggregation process After a Payment Schedule for a Bacs target has generated and/or selected the Installment that meet the criteria of that Schedule, a job is run to check if there are installments with the same ā€œmandate/collection dateā€ combination. If such Installments are found an ā€œAggregated Installmentā€ is created with an Open Amount equal to the sum of the Open Amounts of the Original Installments. The Payment Method of the Original Installments is set to ā€œAggregated Installmentā€. The Original Installments are linked to the Aggregated Installment, their Payment Method is set to ā€œAggregated Installmentā€ and the Original Installments are removed from the Payment Schedule.

Collection and Payment If a Payment is received for the Aggregated Installment it is split and distributed to the Original Installment. This causes the Aggregated Installment and Original Installments to be set to Collected and all open amounts to be set to zero. In addition, a negative Payment is created for the Aggregated Installment in order to keep the sum of all Payments equal to the actual money flow.

Reversal If the Aggregated Installment is reversed a negative payment is created for the Original Installments and the Original Installments are set to Reversed and the Open Amount is set to the original value. The payment method of the Original Installments is set to Direct Debit, allowing them to be recollected. The for the Aggregated Installment positive payment is created in order to keep the sum of all Payments equal to the actual money flow.

Important notes

  • Keep in mind when confirming the direct debit to the customer or donor that you mention the total amount rather than the amount of the single transaction.
  • Aggregated installments are never eligible for Gift Aid if it is installed, since itā€™s not a separate payment or donation.
  • In order to keep your reports in line with actual expected and/or realized cash flow, Aggregated Installments should be excluded from your reports. The field paybacs__IsAggregated__c indicates if an Installment is an Aggregated Installment.
  • For the same reporting reasons, no NPSP Opportunity will be created for an Aggregated Installment.
  • Do not recollect Aggregated installments after a reversal, but recollect the Original Installments.

Mandate Schedule & DDI Registration

Bacs requires creditors to register new Direct Debit Instructions with their bank or service bureaux, to support this process FinDock includes a Mandate Schedule object which triggers the registration process. This however, requires some basic configuration before use.

On the page layout for the Mandate Schedule, add the "Generate Mandates" button. This button will kick off the Mandate selection process for DDI's or mandates that require registration, cancellation or update.

FinDock also offers the ability to validate all mandates before the DDI's are registered, this is invoked by updating the mandate schedule from Generated to "Validate Mandates.. If no validation errors are found, the mandate schedule proceeds to register the DDIs or create the file depending on the target type.

For SmartDebit users there is a scheduled job which will automatically kick of the DDI registration process, this skips the validation and registeres any DDI directly with SmartDebit. To enable this job. open Salesforce Setup, int he quick find box enter "Apex Classes" and click on "Apex Classes" int he search results.

On that page click "Schedule Apex"

Schedule Apex

Next, give the job a recognisable name like DDI Registration, and for the Apex Class, enter: "RegisterDDISchedule"

Set the job to run every day of the week at a time of your choosing. It is recommended to to this in the evening as this ensures all new DDIs for that day will be included as soon as possible. Click save to store the schedule.


Every day, at the designated time. FinDock will create a Mandate Schedule for every SmartDebit target in your configuration, select the relevant Mandates and register them with SmartDebit. Any failures result int he individual mandate records to be marked as "Failed". Make sure to review and correct these as required.

Added BACS Processing Date for better matching

As part of the Bacs package a new field ā€˜Bacs processing dateā€™ (paybacs__BACS_Processing_Date__c) is added to the Payment Schedule. Customers can enter a value in this field when they want to match incoming Bacs reports on the BACS processing date instead of the collection date noted on the payment schedule. When a Bacs report is uploaded to our ProcessingHub, the records in that file are matched against installments in the system. Before this release, that part of that match was made on the ā€˜collection dateā€™ provided in the payment schedule. If a value is provided in the new field ā€˜Bacs processing dateā€™ on a payment schedule, then we match incoming Bacs reports on that.