Skip to main content

Configuring Bacs Manual

The Bacs for FinDock payment extension includes two Bacs Direct Debit options: Bacs Manual and SmartDebit. This article covers the Bacs Manual option which is a self-managed Bacs setup. FinDock generates Bacs Standard 18 files and processes in-coming Bacs reports. These files and reports are manually transferred to and from the Bacs service.

Prerequisites

  • FinDock is installed and configured.
  • The org is connected to ProcessingHub.
  • Your organization is a registered Bacs service user.
  • You have a Service User Number (SUN).
  • You have Bacstel-IP software or a service for file transfers.

Install and activate Bacs extension‚Äč

Follow the standard procedure for installing and activating the Bacs for FinDock extension, called PaymentHub-BACS.

Add permissions for Bacs extension‚Äč

Check and assign the required permissions for FinDock and Bacs features. Ensure all package-specific permission sets are correctly assigned.

Adjust FinDock Core mandate settings‚Äč

In the Bacs Direct Debit scheme, it is strongly recommended to maintain a one-to-one relationship between a donor (payer) and DDI (Payer and Recurring Donation or one-time Installment in FinDock). This helps avoid confusion and complexity, particularly for reconciliation and indemnity.

Therefore, we recommend that you disable the Reuse existing mandate option for FinDock under the Core mandate settings, but make sure the Autocreate mandate for Direct Debits option is enabled.

The Mandate Reference setting is not used for Bacs.

Update Payment Schedule layout‚Äč

The PaymentHub-BACS packages adds the Processing Date field to the Payment Schedule object. This is an essential input field for collecting Bacs Direct Debit payments, so it neeeds to be added to the page layout you are using for the Payment Schedule object.

Add target for Bacs Direct Debit‚Äč

A target in FinDock defines the bank account that is credited in the Bacs Direct Debt collection process. In Bacs terminology, the target is typically the account at the sponsoring PSP. This is the bank that also handles the organization’s application to use the Bacs service and issues the Service User Number.

It is strongly recommended to maintain a one-to-one relationship between the SUN and target. While it is technically possible to have more than one target for a given SUN, this sort of arrangement complicates the picture for all parties involved.

The target configuration includes several essential elements that must be defined correctly to ensure adherence to the Bacs Direct Debit scheme. The organization’s registered name and SUN as defined on the target must match the values used in the initial DDI sign-up with the donor.

Bacs Manual target settings

SettingDescription
NameThe name of the target should be something that is recognizable within your organization. This name is not shown outside of your organization, but it is used to distinguish different accounts.
TargetThe payment extension to be used with this target. Select PaymentHub BACS.
TypeThis is the Bacs implementation to be used with this target. The type affects which settings are needed for the target and how the target is used. Select MANUAL for Bacs Manual.
Bank Account AdditionThe sort code for your bank branch where direct debits are credited.
Bank account numberYour bank account number at your sponsoring PSP where direct debits are credited.
Collection file lead time (days)The collection file is the Standard 18 file that includes DDI payment instructions. Your sponsoring bank or Bacs service bureau may have a lead time between your manual submission of the file to them and when they submit the file to the Bacs service network. You can use this field to record the expected lead time in days. FinDock does not currently use this value when generating collection files, but it can be used for customizing workflows.
Company nameThe name of your organization as it appears on the indemnity registered with the Bacs service.
Company Service User NumberEnter the Service User Number (SUN) allocated to your organization by the sponsoring PSP.
DDI lead timeNot used with Bacs Manual
DDIs per payer fileNot used with Bacs Manual.
Transactions per Collection fileNot used with Bacs Manual
Number of generated filesUsed to generate a deduplication number for your service bureau or sponsoring PSP. If you haven’t used Standard 18 before, enter 0 (zero). Otherwise, ask your financial officer for the File Number value from the most recent UHL1 record, position 38-40, of your last Standard 18 file.

Create Bacs Manual targets‚Äč

Targets are created and managed through the ProcessingHub setup page.

To create a new target:

  1. Launch the FinDock app and select Setup.
  2. Click the ProcessingHub tile to open up the ProcessingHub setup page.
  3. Click on the Targets tab and click Add Target to create a new target.
  4. Add a name for the new target, select ‚ÄėPaymentHub BACS‚Äô for Target, and for type, select Bacs Manual.
  5. Enter the required information about this bank account into the respective target fields and click Save.
  6. Repeat steps 1-6 for each bank account.

Sort code and account check‚Äč

For Bacs Direct Debit payments initiated through the FinDock Payment API, FinDock automatically performs a sort code & bank account check to avoid failed DDI registration due to incorrectly entered code or account values. The checking is done automatically, and the result is included in the synchronous response of the paymentIntent API call.

With FinDock Giving Pages, the checks are implemented by FinDock. If you are using your own payment form/page design, you need to ensure errors are handled gracefully if invalid information is entered.

In addition to the automated API check, you can add the Lightning component Check Sort Code and Bank Account to your Payment Profile layout to do the same validation when manually entering payment information.

To set up manual sort code and bank account checking:

  1. Go to a Payment Profile record.
  2. Click the settings cog in the upper right and select Edit Page.
    Edit Payment Profile Page layout
  3. Drag the Check Sort Code and Bank Account component to your page layout.
    Add LWC for sort code and account checking to layout
  4. Click Add Filter under Set Component Visibility to the right.
    Add filter for LWC visibility
  5. Click Advanced and under Field, click Select.
    Advanced filter settings for LWC
  6. In the pick lists, select Record, then Record Type, then Name, and click Done.
    Advanced filter field selection for LWC
  7. Add an equal operation with "Bank Account" as the value, then click Done.
    Operator setting for LWC filter
  8. Click Save in the upper right to save the layout change and component filter settings.
    Save Payment Profile layout changes

The component will now appear on payment profiles with UK bank accounts, but it is not visible for other payment profiles.

Recommendations and best practices‚Äč

Here are a few recommendations and best pracitces we have collected based on customer experience and our own work with Bacs requirements.

Implement Bacs calendar in Salesforce‚Äč

It is important that mandate and payment schedules do not run on non-processing days as defined by the Bacs calendar. This would create potential issues with resulting processing and collection dates.

To ensure FinDock runs schedules only happen on Bacs processing days, you can add non-processing days as holidays using the Set Business Hours options in Salesforce. When implemented, these dates are respected both by individually created mandate and payment schedules as well as recurring schedules.

Custom handling of Bacs Notification Period‚Äč

Out-of-the-box, FinDock does not account for your Notification Period or other cooling off rules you may have. New mandates become active as soon as they are registered via a mandate schedule run. You need to build your own customization to ensure the first payment collection does not happen before the end of your cooling off period. This can be done, for example, by:

  • Setting the start date of recurring donations in the future (account for cooling off time)
  • Suppressing installment creation during the cooling off period
  • Modifying the Due Date on the first installment record to match the date in the advance notice sent to the payer

Confirm transaction codes after data migration‚Äč

If you are migrating DDI and payment data to FinDock, ensure that the migration takes into account Bacs transaction codes. For example, the first (and last) payment of a recurring direct debit uses a different transaction code from the rest of the payments. FinDock needs to be able to tell from the resulting installment records of a migration what transaction code should be used in the next payment schedule run.

Testing Bacs Manual setup‚Äč

Your testing should cover at least the following:

  • Test sign up: use your own form on a webpage/app or use Giving Pages to create a new payer and confirm the data is correct
  • Test lodgement: run a mandate schedule to create a lodgement file and confirm the Standard 18 content is correct
  • Test collection: run a payment schedule to create a collection file and confirm the Standard 18 content is correct

Payment API‚Äč

To new payer creation in your Bacs Manual configuration, you can use the following messages with the Payment API.

One-time Bacs Direct Debit‚Äč

{
"SuccessURL": "https://www.example.com/success",
"FailureURL": "https://www.example.com/error",
"Payer": {
"Contact": {
"SalesforceFields": {
"FirstName": "Eric",
"LastName": "Johnson",
"Email": "eric@johnson.com"
}
}
},
"OneTime": {
"Amount": "30"
},
"PaymentMethod": {
"Name": "Direct Debit",
"Processor": "PaymentHub-BACS",
"Target" : "BACS-target",
"Parameters" : {
"bankAccount" : "13537846",
"sortCode": "205132",
"holderName" : "E. Johnson",
"description": "test"
}
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}

Recurring Bacs Direct Debit‚Äč

{
"SuccessURL": "https://www.example.com/success",
"FailureURL": "https://www.example.com/error",
"Payer": {
"Contact": {
"SalesforceFields": {
"FirstName": "Eric",
"LastName": "Johnson",
"Email": "eric@johnson.com"
}
}
},
"Recurring": {
"Amount": "25",
"Frequency": "Monthly",
"StartDate": "2020-11-01"
},
"PaymentMethod": {
"Name": "Direct Debit",
"Processor": "PaymentHub-BACS",
"Target" : "BACS-target",
"Parameters" : {
"bankAccount" : "13537846",
"sortCode": "205132",
"holderName" : "E. Johnson",
"description": "test"
}
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}