Enabling SEPA Mandate Payment Instruments
← Payments in Billing & Invoice Management
JustOn Billing & Invoice Management makes use of Payment Instrument records to hold the SEPA Direct Debit Mandate information for accounts. This is useful, in particular, with large customers who successively use multiple SEPA mandates, and allows for managing the SEPA mandate information.
If there is an active payment instrument set for an account (in the field Current SEPA Mandate
), JustOn uses the customer's SEPA-relevant data from the payment instrument when exporting SEPA orders – irrespective of whether SEPA Direct Debit or SEPA Credit from invoices, or SEPA Credit from balances. In this case, any SEPA-specific data on the account or the invoice will be ignored.
Managing SEPA mandate information using a payment instrument
The SEPA export involves the following payment instrument fields: Account Holder
, IBAN
, SWIFT-BIC
, Direct Debit Mandate Granted
and Direct Debit Mandate Reference
.
Note
If there is no active payment instrument, the SEPA-relevant information is taken from the invoice or, when exporting SEPA orders from balances, from the account.
You can create and update account-specific payment instruments based on the SEPA-related information available on the account (or, if set up accordingly, on another custom object) using a dedicated flow. Once created, the payment instruments are accessible via the corresponding related list on the account detail page.
Enabling SEPA Direct Debit Mandates as payment instruments involves
- Configuring SEPA mandate reference counter
- Creating a flow for managing SEPA payment instruments
- Optionally, using placeholders on invoice PDF generation
Configuring SEPA Mandate Reference Counter
JustOn requires the specific invoice counter MandateReferencePaymentInstrument to act as the SEPA mandate reference counter. Once set up, the SEPA mandate reference for the payment instrument is set automatically by the flow on creation or update.
-
Click to enter Setup, then open Custom Settings.
In Salesforce Lightning, navigate to Custom Code > Custom Settings.
In Salesforce Classic, navigate to Develop > Custom Settings.
-
Click Manage in the row of Counters.
- Click New.
-
Specify the details as necessary.
- Name:
MandateReferencePaymentInstrument
-
Template: Specify the pattern as necessary.
Info
The resulting mandate string can contain up to 35 characters. The allowed characters include the alphanumeric characters
a-z A-Z 0-9
, the punctuation and symbol characters+?/-:().,'
and the space character.Note that there is no support for custom placeholders with SEPA mandate reference counters.
- Name:
-
Click Save.
Creating Flow for Managing Payment Instruments
Creating or updating SEPA mandate payment instruments requires a flow that calls the appropriate Apex class provided by JustOn. When the defined criteria are met, the flow can, generally
- Create a new Payment Instrument record with the
Account Holder
,IBAN
,SWIFT-BIC
,Direct Debit Mandate Granted
,Direct Debit Mandate Reference
andMasked PAN
fields populated, which will be used on SEPA XML export, - Deactivate an existing payment instrument and create a new one if a new IBAN value is available,
- Deactivate all payment instruments if the IBAN value is empty.
If applicable, the flow sets the active payment instrument in the Account field Current SEPA Mandate
.
The source object for the flow depends on the object to be monitored for changes to the SEPA-related information – usually Account or, if set up accordingly, on another custom object. Generally, the input data include (and must therefore be available on the source object):
Field | Required | Notes |
---|---|---|
Account ID | ||
Bank Account Owner | ||
Bank Account (IBAN) | Providing an IBAN either creates a new or updates an existing payment instrument for an account. Executing the flow with an empty IBAN value deactivates existing payment instruments. |
|
Bank Code (BIC) | Required if the debtor's or the creditor's bank is located in non-EEA SEPA countries Andorra, Monaco, San Marino, Switzerland, United Kingdom or Vatican City State. | |
Direct Debit Mandate Granted | Can specify a specific date, falls back to TODAY if empty |
Note
Depending on your use cases, the flow setup and the objects to involve will vary.
- Click to enter Setup, then navigate to Process Automation > Flows.
- Click New Flow.
- Select
Record-Triggered Flow
and click Create. -
Configure the Start element.
Option Description Object The object whose record modifications are to create or deactivate a payment instrument, usually Account
Trigger The type of record change that triggers the flow, must be A record is created or updated
Conditions The use case-specific trigger conditions, one or more filter criteria for evaluating certain field values or a formula for evaluating records Optimize for Actions and Related Records
-
Click and add the following Action element.
Option Description Action The Apex class to call, must be Manage Payment Instrument records for SEPA
Input Values Invocable variables for the Apex class
Account Id: specifies the reference to the ID field of the relevant account
Bank Account Owner: specifies the reference to the field that holds the bank account owner
IBAN: specifies the reference to the field that holds the IBAN, used to pass a new bank account
BIC: optionally specifies the reference to the field that holds the bank code (BIC)
Mandate Date: optionally specifies a specific dateSpecify a label and an API name as required.
-
Click Save.
Specify a label and an API name as required.
-
Click Activate.
When the defined conditions are met, JustOn triggers the flow. It deactivates the existing payment instrument and creates a new one with the new IBAN.
For help about creating flows, see Flows in the Salesforce Help.
Example use case: IBAN of an account is modified
The IBAN of an account is kept in BankAccount__c
. To trigger the flow when the value is modified, specify:
Flow Element | Option | Value |
---|---|---|
Start | Object | Account |
Trigger | A record is created or updated |
|
Conditions | All Conditions Are Met (AND) BankAccount__c Is changed {!$GlobalConstant.True} |
|
Action | Action | Manage Payment Instrument records for SEPA |
Input Values | Account Id: {!$Record.Id} Bank Account Owner: {!$Record.BankAccountOwner__c} IBAN: {!$Record.BankAccount__c} |
This triggers JustOn to execute the flow when the BankAccount__c
field of an account modified: It deactivates the existing payment instrument and creates a new one with the new IBAN.
Using Payment Instrument Placeholders
When using direct debits, an invoice PDF must usually show the relevant SEPA mandate information. To this end, JustOn provides a set of custom placeholders for payment instruments that can be used for the invoice PDF generation.
If enabled and set, the active payment instrument is kept in the field Current SEPA Mandate
on the account. For the placeholder support, JustOn sets the active payment instrument also in the invoice field Last Payment Instrument
on invoice creation and finalization if the current payment method is Direct Debit
or Bank Transfer
. If the conditions are not met or if the current SEPA mandate is not active, the Last Payment Instrument
field is cleared.
Info
A successful SEPA Direct Debit export also updates the invoice field Last Payment Instrument
. But at this stage, any new data have no further influence on the invoice PDF.
The following payment instrument-related placeholders are available by default:
Placeholder | Description |
---|---|
[PaymentInstrumentType] |
The type of the payment, for example, Direct Debit . |
[PaymentInstrumentAccountHolder] |
The name of the card holder or bank account owner. |
[PaymentInstrumentMaskedPAN] |
The masked account number (like credit card, IBAN) as provided by the payment provider. |
[PaymentInstrumentIBAN] |
The International Bank Account Number. |
[PaymentInstrumentBIC] |
The Bank Identifier Code. |
[PaymentInstrumentDDMandateGranted] |
The date on which the direct debit mandate has been granted. |
[PaymentInstrumentDDMandateReference] |
The unique mandate reference assigned by the creditor. |
[PaymentInstrumentValidUntil] |
The date until which the payment instrument is valid and can be captured. |
[PaymentInstrumentPaymentInstitution] |
The name of the bank (only useful for the type Bank Account ). |
[PaymentInstrumentPaymentProvider] |
The payment provider that handles this payment instrument. |
Info
You can also define your own custom placeholders with PaymentInstrument
set as Source
. For details, see Defining Custom Placeholder.