SDD Mandates Migration & Bulk Upload
1. Introduction
SDD is a Europe-wide direct debit system that allows merchants to collect Euro-denominated payments from accounts in the 36 SEPA countries and associated territories. SDD has now been implemented in all Eurozone countries and non-Eurozone SEPA countries. In these countries, all Euro-denominated payments must be collected via the SEPA payment scheme.
What is SEPA?
SEPA (Single Euro Payment Area) is a system of transactions that was created by the European Union. SEPA harmonises the way in which cashless payments are transacted between Euro countries. Types of SEPA transfers:
SEPA Credit Transfer (SCT) uses an IBAN (International Bank Account Number) and sometimes a BIC (Bank Identifier Code) to transfer money from one bank account to another. A beneficiary obtains the money within a business day after a payment has been received.
SEPA Instant is where money is transferred from one bank account to another in a matter of seconds and does not involve any intermediaries in the process. However, for this function to work, both the sending and receiving banks must be registered as SEPA Instant members.
SEPA Direct Debits (SDD) are an option for recurring payments.
Signed consent and authorisation given by a debtor (merchant’s client) to a creditor (merchant) and to a creditor’s (merchant’s) financial institution to enable:
A creditor to initiate a debit from a debtor’s nominated payment account.
A debtor’s financial institution to comply with such instructions.
A mandate can be issued and signed in paper or electronic format.
Whilst a mandate is a single agreement, it may be triggered several times in its lifetime.
The focus on this guide is on the preparation of CSV files containing SEPA Direct Debits mandates.
2. CSV file preparation
A CSV (comma-separated value) file is a plain text file in which each row includes data (i.e., fields) required for each mandate. The values within each row are separated with commas (not spaces) and the rows are separated with carriage returns (i.e., enter). Essentially, each row is a record or mandate. Although a CSV file can be manually created with a simple text editor, the easiest way is to input data using Microsoft Excel (or a similar spreadsheet app) and then export the file as a comma-delimited CSV file.
Characteristics of the CSV files used for these imports:
The field delimiter is the comma (,).
If a text field contains commas, then quotation marks must be used to enclose text.
The only allowed character set is ASCII.
Headers are not required.
The file extension is ‘.csv’ (not ‘.xlsx’).
The record delimiter is an ASCII character Carriage Return followed by ASCII character Line Feed (CRLF).
The CSV file for upload must be prepared as per the following:
2.1. Fields & data types
The fields and the data types that make up a mandate CSV file are defined in the table below:
Column | Field | Data type | Length | Pattern | Field description |
---|---|---|---|---|---|
A | Mode | Alphabetic | 7 | ^([A-Za-z]){1,7}$ | Operation to be executed: “Create”, “Cancel”, “Trigger”. |
B | MerchantID | Alphanumeric | 35 | ^([A-Za-z0-9]){8,35}$ | ID of the merchant that uniquely identifies a merchant in the system to track transactions & manage accounts. This ID is provided by the central bank of the merchant’s country. |
C | First_Name | Alphabetic | 70 | ^[A-Za-z\s]{1,70}$ | First name of the originator for personalization & identification. |
D | Middle_Name | Alphabetic | 70 | ^[A-Za-z\s]{0,70}$ | Middle name of the originator & used in conjunction with the first name & last name for full identification. |
E | Last_Name | Alphabetic | 70 | ^[A-Za-z\s]{1,70}$ | Last name of the originator & used in conjunction with the first name & middle name for full identification. |
F | Mobile | Alphanumeric | 50 | ^\+?[0-9]{5,50}$ | Mobile telephone number of the originator. Validates to a correct format & limited to numeric characters – allows for the optional "+" country code format. |
G | Alphanumeric | 200 | ^[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,200}$ | Email address of the originator. Validates to a standard email address format, e.g., containing an "@". If the ‘Email’ field is completed, then the owner of the email address will be sent an email by the system upon mandate creation, execution & cancellation. | |
H | ACNO | Alphanumeric | 34 | ^[A-Z]{2}\d{2}[A-Z0-9]{1,34}$ | IBAN of the originator. Account number field that stores financial identifiers. Validates to international pattern starting with 2 letter country code, followed by 2 digits & then up to 30 alphanumeric characters. |
I | MandateID | Alphanumeric | 35 | ^[A-Za-z0-9]{1,35}$ | ID of the mandate, containing reference codes or numbers for tracking transactions or customer inquiries. |
J | Reference | Alphanumeric | 35 | ^[A-Za-z0-9]{1,35}$ | Unique reference in our system. |
K | Amount | Decimal | 7 | ^(0|[1-9]\d{0,5}|1000000)$ | Amount of money moved between originator & beneficiary. Limited to numeric characters, allowing for a zero value, with minimum & maximum amounts. Decimals must be separated with a period, not a comma. |
L | Currency | Alphabetic | 3 | ^[A-Z]{3}$ | Currency used for the transaction: “EUR”. |
M | Type | Alphabetic | 9 | ([A-Za-z]){1,9} | Nature of the transaction: “Limited”, “Recurring”, “Frequent“, “OneOff“. |
N | Frequency | Alphabetic | 20 | ([A-Za-z]){1,20} | Determines how often an event occurs: “Monthly”. |
O | DebitDate | Integer |
| ^(0?[1-9]|[12][0-9]|3[01])$ | Scheduled day of the month for funds to be withdrawn from an account. Integer with a value from 1 to 31. If the selected day is 29, 30 or 31, then, depending on the month, the system will execute the instruction on the last day of the month if the month ends earlier. |
P | Identifier | Numeric | 50 | ^[A-Za-z0-9]{1,50}$ | Unique identifier in a merchant system (e.g., CRM) assigned to a transaction for identification & tracking. |
The Reference value is passed into the details of a DC. You can use this to perform reconciliation.
The Identifier field refers to the end-user’s unique ID in your system. This will be passed into the notifications to you.
2.1.2. Character sets
All content is restricted to the Latin character set as defined below:
a b c d e f g h i j k i m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9
/ - ? : ( ) . , ' +
Space
Content must not start or end with a '/' & must not contain '//'.
2.2. Mandatory & optional fields
Mandatory fields versus optional fields that make up a mandate CSV file are defined in the table below:
Case | Mode | marchantID | Full_Name | Middle_Name | Last_Name | Mobile | ACNO | MandateID | Reference | Amount | Currency | Type | Frequency | DebitDate | Identifier | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Create (Limited) | mandatory | mandatory | mandatory | optional | mandatory | optional | optional | mandatory | mandatory | optional | mandatory | mandatory | mandatory | mandatory | - | optional |
Create (Monthly) | mandatory | mandatory | mandatory | optional | mandatory | optional | optional | mandatory | mandatory | optional | mandatory | mandatory | mandatory | mandatory | mandatory | optional |
Cancel | mandatory | mandatory | - | - | - | - | - | - | mandatory | optional | - | - | - | - | - | - |
Trigger | mandatory | mandatory | mandatory | optional | mandatory | - | - | mandatory | mandatory | optional | mandatory | mandatory | - | - | - | optional |
2.3. Field options
2.3.1. Mode
The options of the “Mode” field are defined in the table below:
Modes | Description | Priority |
---|---|---|
Create | Create a mandate | 1st |
Cancel | Cancel a mandate | 2nd |
Trigger | Execute a mandate | 3rd |
2.3.2. Type
The options of the “Type” field are defined in the table below:
Types | Description |
---|---|
Frequent | A fixed amount, with no fixed date. |
Limited | An amount with a max. cap on a scheduled day (e.g., electricity bill, up to a certain amount, every month). If the amount due is more than the max. cap, the payment is rejected. |
Recurring | A fixed amount on a scheduled day (e.g., fixed rent every month). |
OneOff | A fixed amount that is scheduled to take place only once (the mandate & the trigger do not necessarily have to have the same amount - the amount set during the creation of the mandate is the maximum amount & the triggered amount cannot exceed this). No monthly limit renewal. After it is executed successfully, then the mandate is cancelled regardless if the transfer is successful or rejected. The mandate is cancelled immediately after the first trigger event or it expires after 36 months if the mandate is not triggered. The Frequency & DebitDate fields are not mandatory - they can be null. |
2.3.3. Frequency
The options of the “Frequency” field are defined in the table below:
Frequencies | Description |
---|---|
Monthly | Recurrence on a monthly basis. |
2.4. Sample mandate dataset
The table below outlines a valid dataset of mandates:
Mode | marchantID | Full_Name | Middle_Name | Last_Name | Mobile | ACNO | MandateID | Reference | Amount | Currency | Type | Frequency | DebitDate | Identifier | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Create | MT74Z27T | John |
| Evans | +357 | name@domain.co | GL8964710123456789 | Winner01 | DSFIHEY234 | 50 | EUR | Limited | Monthly | 13 | 0937348SDF |
Create | MT74Z27T | Damian |
| Smith | +357 | name@domain.co | BE71096123456769 | Winner02 | 8374HDIDH | 30 | EUR | Recurring | Monthly | 15 | 0283Y43FSDF |
Create | MT74Z27T | Joe |
| Lopez | +357 | name@domain.co | DK9520000123456789 | Winner03 | SDF4REWR | 20 | EUR | Frequent | Monthly |
| 373Y38DBHD |
Cancel | MT74Z27T |
|
|
|
|
|
| Winner04 | SFSDFWER |
|
|
|
|
|
|
Cancel | MT74Z27T |
|
|
|
|
|
| Winner05 | JHGJYU566 |
|
|
|
|
|
|
Trigger | MT74Z27T | Tim |
| Fairfield | +357 | name@domain.co | LU120010001234567891 | Winner06 | TRET5Y745I | 25 | EUR |
|
|
| UEEH2823WQ |
Trigger | MT74Z27T | Raquel | Zoë | Angeli |
|
| NL02ABNA0123456789 | Winner07 | GR6U6GWT | 15 | EUR |
|
|
| FNDOSWK384 |
Trigger | MT74Z27T | Helen |
| Winter |
|
| NO8330001234567 | Winner08 | 56425UREF | 10 | EUR |
|
|
| 8393JWNDD |
A sample of a mandate CSV file is displayed in the screenshot below, which is populated with the dataset from the above table:
2.5. Additional notes
A single CSV file may contain creation and/or execution and/or cancellation mandates. The ’Mode’ field determines whether a mandate is for creation, execution, or cancellation.
If a single CSV file contains mandates in multiple modes, the priority of each API determines the order for processing mandates based on mode (refer to Table 4: Modes).
A single CSV file may contain up to 10,000 mandates.
Values in each row are separated with commas (not spaces). Rows are separated with carriage returns (i.e., enter).
Sample CSV file
A sample CSV file is available for download below:
3. Sending the CSV file for processing
Having created and saved the CSV file, it must be sent to us for processing.
This must be done using the Online messaging system.
Once received and processed by us, we will send a response back to you with the results.
Another way of providing the CSV file to the ISX team is by uploading it to an SFTP folder. More information is provided here.
© ISX Financial EU PLC 2024. All rights reserved.