Swiss CH-DD

The Swiss Payments for FinDock package provides support for direct debit schemes and bank file standards specific to Switzerland.

FinDock supports collecting CH-DD direct debit payments via PostFinance. For reconciliation, FinDock can process both Customer Direct Debit Initiation (pain.008) and the Customer Payment Status Report (pain.002) files. In addition, FinDock supports the Bank-to-Customer Statement (camt.053) Bank-to-Customer Debit/Credit Notification (camt.054) statements.

Pre-requisites

  • FinDock installed and configured
  • A source connector installed and configured
  • A working connection to ProcessingHub

Install and activate Swiss Payments for FinDock

Follow the standard procedure for installing and activating the Axerve for Findock payment extension. Activate the processor PaymentHub-CH-DD.

CH-DD targets

A “target” in FinDock determines through which bank a transaction is routed for collection, In addition, when importing CAMT files for reconciliation, FinDock uses targets to only process bank statements for IBANs that are present as a target.

Once you have activated the Swiss packages, you can create targets for Swiss bank accounts. When creating targets, we recommend collecting all the necessary information beforehand. The target settings are explained in the table below.

SettingDescription
Associate charges toSome banks include charges within transactions, especially with direct debit reversals. These charges are stored automatically and matched against a particular account in Salesforce. Either select or create a relevant Salesforce account record to store these charges. Enter the Salesforce Id of the account you selected. You can find the Salesforce Id from your browser navigation bar after https://.../Account/<Id>.
Bank account additionThis is the BIC or CODA number of the bank handling the SEPA transactions for this target. Example: INGBNL2A
Bank account numberThis is IBAN for your target that will be used for SEPA transactions.
Bank identification numberThe Generic Account Identification number for alternative bank detection. This is used, for instance, when you have a special contract with your bank.
CAMT message typeFor each target, you need to define whether it will be used for importing CAMT.053 or CAMT.054 files. Currently it is not possible to process both CAMT.053 and CAMT.054 bank statements for the same target. However, the data created in Salesforce when processing CAMT.054 is equal to CAMT.053.
Company nameThis is the creditor name is the name that appears on the bank statement of your customer or donor.
Payslip optionDefine here whether you want the payslip to be attached in the original format as a PNG file or both.
Creditor IDThis is the SEPA Creditor ID provided by your bank when you made the direct debit contract.
CAMT duplication protectionPrevent duplicate CAMT files from processing (yes/no)
GroupHeader - Initiating Party - OrgIdEnter here the unique 17-digit numeric value sender Id agreed with the creditor bank.
Maximum records per sequence typeYour bank may impose limits on the maximum number of records per sequence type. These are usually included in the contract with your bank. If such a limit exists, enter the value here. Otherwise, leave as is.
Maximum records per fileYour bank may impose limits such as the maximum number of transactions per PAIN file. These are usually included in the contract with your bank. If such a limit exists, enter the value here. Otherwise, leave as is.

Create CH-DD 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 ‘SEPA’ for Target, and for type, select SEPA. Click Save when you are ready.
  5. Go back to the Targets tab, click the button to the right of the target you just created and select Settings.
    2.-the-targets-setting-screen
  6. Enter the required information about this bank account into the respective target fields and click Save.
  7. Repeat steps 1-6 for each new account.

CH-DD mandates

A mandate is an agreement between the creditor and the debtor whereby the debtor allows the creditor to take money out of the debtor's bank account. You must have an authorized mandate from the debtor (your customer or donor) to be able to collect direct debit payments.

There are several rules governing the use of mandates, including expiration, white listing, blacklisting, constellations, and so forth. FinDock does not manage the authorized mandates as such. FinDock automatically creates mandate records when required. Within FinDock, a mandate is a unique ID representing the agreement whereby you, the creditor, have the right to debit a specific bank account. Please keep in mind that this is the technical representation of a mandate. The direct debit rules remain for organizations to have a valid mandate with the payer.

Mandates are linked to the payment profile, and they are processor and target specific. FinDock mandate configuration is part of the FinDock Core configuration where you define a prefix for the mandate IDs. The prefix is combined with the Salesforce ID for the mandate record to create a unique mandate reference ID.

note

You need to separately enable auto-creation of mandates as part of the mandate configuration.

ESR payment references

You can use the Payment Request Generator to generate ESRs for campaigns, for example. For further information, see What is the Payment Request Generator?

In the Swiss market, it is also possible to receive CAMT files from PostFinance (the financial services unit of Swiss Post) with images of ESR (Einzahlungsschein mit Referenznummer) Payment Slips attached to the bank statement report. The collection of files is delivered as a zip file. These zip files can be uploaded to FinDock, and FinDock creates the transaction set and transactions similar to a regular CAMT file upload.

The images (TIFF format) are added as attachments to the corresponding transactions. However, Salesforce doesn’t support previewing TIFF files. On the target level you can change the file format to PNG to preview the file in Salesforce. A very common use case for this is previewing the file during the guided review process to match the transaction to a donation.

The payment reference is primarily used in matching incoming transactions to a particular installment. When performing a direct debit run, the payment reference is used as the End-to-End Id in the PAIN file.

Payment API

To test your Swiss Payments configuration, you can use the following request in combination with the API.

The following message initiates a one-time Direct Debit with FinDock, passing in Target, holderName, IBAN and Description parameters to set up the Mandate.

{
"SuccessURL": "https://www.example.com/success",
"FailureURL": "https://www.example.com/error",
"WebhookURL": "https://webhook.site/181568ec-8830-4672-af01-8c99da8e044f",
"Payer": {
"Contact": {
"SalesforceFields": {
"FirstName": "Eric",
"LastName": "Johnson",
"Email": "eric@johnson.com"
}
}
},
"OneTime": {
"Amount": "30"
},
"PaymentMethod": {
"Name": "Direct Debit",
"Processor": "PaymentHub-CH-DD",
"Target": "CH-DD-Target",
"Parameters": {
"IBAN": "CH9189144468973612788",
"holderName": "E. Johnson",
"description": "Room for description"
}
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}

The following message initiates a recurring direct debit transaction with FinDock, passing in Target, holderName, IBAN and Description parameters to set up the Mandate.

{
"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-CH-DD",
"Target": "CH-DD-Target",
"Parameters": {
"IBAN": "CH9189144468973612788",
"holderName": "E. Johnson",
"description": "Room for description"
}
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}