Skip to main content

Swiss LSV+

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

FinDock supports direct debit payments via LSV+, the process offered by Swiss banks for processing direct debits with the right of objection. 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
info

The Swiss Payments for FinDock package is not pushable, so we cannot automatically update your org with the normal release process. To receive updates, enhancements and fixes, you need to manually install the latest package version using the FinDock Installer.

Install and activate Swiss Payments for FinDock

Follow the standard procedure for installing and activating the Swiss Payments for Findock payment extension. Activate the processor PaymentHub-LSV.

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

LSV+ 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)
ESR - Participant NumberEnter here the 9-digit participant number of the creditor bank.
GroupHeader - Initiating Party - OrgIdEnter here the unique 9-digit (alphanumeric) 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 LSV+ 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 LSV+’ for Target.
  5. Enter the required information about this bank account into the respective target fields and click Save.
  6. Repeat steps 1-6 for each new account.

LSV+ 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 LSV+ direct debit payments. There are several rules governing the use of mandates, including expiration, white listing, blacklisting, constellations, and so forth.

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.

For more information about mandate handling and configuration, please see Introduction to mandate handling.

info

An additional requirement for the Swiss market affects the payment profile. When using LSV+, the payment profile must include either the bank clearing number of the debtor's Swiss bank or the bank identification number of the debtor’s non-Swiss bank. The bank clearing number is stored on the payment profile as the clearingMemberId.

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.

Organization prefix to ESR LSV+ references

Some Swiss banks require a customer / organization prefix in front of ESR LSV+ references.

To add a prefix to your ESR LSV+ references:

  1. Go to Custom Settings.
  2. Press Reference Settings.
  3. Press Manage.
  4. Press the top New button to create an organization level value.
  5. Enter your organizations prefix into the ESR Reference Prefix field
  6. Press Save.
    ESR LSV reference setting

The provided prefix is prepended to all ESR LSV references upon creating or updating Installments and when using the Payment Request Generator with the standard ESR generation.

note

FinDock only supports one prefix at this point.

Payment API

To test your Siwss 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, clearingMemberId 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-LSV",
"Target": "LSV-Target",
"Parameters": {
"iban": "CH9189144468973612788",
"holderName": "E. Johnson",
"description": "Room for description",
"clearingMemberId": "89144"
}
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}

The following message initiates a recurring direct debit transaction with FinDock, passing in target, holderName, iban, clearingMemberId 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-LSV",
"Target": "LSV-Target",
"Parameters": {
"iban": "CH9189144468973612788",
"holderName": "E. Johnson",
"description": "Room for description",
"clearingMemberId": "89144"
}
},
"Settings": {
"SourceConnector": "PaymentHub"
}
}