Swiss LSV+
The Swiss Payments extensions includes LSV+ and ESR payment methods, along with support for reconciling bank file standards used in 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.
Prerequisites
- FinDock is installed and configured.
- You have at least one Swiss bank account.
Install Swiss Payments extension
Follow the standard procedure for installing payment processors to add the Swiss Payments for PaymentHub extension. Activate the PaymentHub-LSV processor and Direct Debit payment method.
Check and assign the required permissions. There are no additional package-specific permission sets for Swiss Payments.
ย ย ย The Swiss Payments package is not pushable, so we cannot automatically update your org with the normal release process. If a release includes an update for the Swiss Payments package, please install the latest version using the FinDock Installer.
Add LSV+ targets
To add a new LsV+ target:
- Launch the FinDock app and click the FinDock Setup tab.
- Go to Payment Processors & Methods.
- Under Installed Processors, click the LSV+ processor entry.
- Click Add account.
- Add a name for the new target and select Target PaymentHub LSV+.
- Complete the settings according to your needs following the guidance below.
- Click Save.
LSV+ target settings
Setting | Description |
---|---|
Associate charges to | Some 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 addition | This is the BIC of the bank handling the transactions for this target. |
Bank account number | This is IBAN for your target. |
CAMT message type | For 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 types for the same target. |
Company name | This is the creditor name that appears on the bank statement of the payer (debtor). |
Payslip option | Define here whether you want ESR payslips to be attached in the original format as a PNG file or both. |
Creditor ID | This is the Creditor ID provided by your bank when you made the direct debit contract. |
CAMT duplication protection | Prevent duplicate files from processing (yes/no) |
ESR - Participant Number | Enter here the 9-digit participant number of the creditor bank. |
GroupHeader - Initiating Party - OrgId | Enter here the unique 17-digit numeric value sender Id agreed with the creditor bank. |
Maximum records per sequence type | Your 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 file | Your 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. |
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.
ย ย ย 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
If you activate the ESR payment method for the LSV+ processor, 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:
- Go to Custom Settings.
- Press Reference Settings.
- Press Manage.
- Press the top New button to create an organization level value.
- Enter your organizations prefix into the
ESR Reference Prefix
field - Press Save.
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.
ย ย ย FinDock only supports one prefix at this point.
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
, 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"
}
}