Skip to content

    SEPA Direct Debit

    Overview - SEPA Direct Debit

    The Single Euro Payments Area (SEPA) is an European initiative which aims to address making cashless payments across European borders by creating common payment instruments and a more innovative market for retail payments.

    The European payments industry has created three basic payment instruments introduced across Europe: SEPA Credit Transfer, SEPA Direct Debit and SEPA for Cards.

    • With SEPA Credit Transfers, people can move funds in a single transaction to an account inside or outside their home country within a single business day.
    • With SEPA Direct Debits, a company in one country can directly charge an account in another country.
    • SEPA for Cards enables consumers to use the payment cards they are using in their own country for purchases elsewhere in Europe and merchants can readily accept payment cards from all over Europe. SEPA for Cards combines convenience with a high level of security.

    Main advantages of this payment method:

    • SEPA Payment Instruments are used for all credit transfers and direct debits in euro, both within the euro area countries, and between them.
    • Internet payments based on SEPA foster electronic commerce in Europe.
    • SEPA has paved the way for other innovative services, such as mobile payments.
    • Consumers can easily buy goods and services anywhere in Europe.
    • Payments are fast and reliable, what you see is what you pay.
    • Companies can centralize their European treasuries and make all their payments through just one account.
    • Banks and payment providers can expand their businesses.

    Customer Experience - SEPA Direct Debit

    • Select the SEPA payment method.
    SEPA-CE-1
    • Provide your bank account details: - mandatory: Account Holder and IBAN - optional: BIC and Bank Name
    SEPA-CE-2

    Accept SEPA mandate by marking a check box.

    SEPA-CE-3

    You will be redirected to the Payment form success or the Payment form failure popup window.

    SEPA-CE-4

    PayEngine Details - SEPA Direct Debit

    General

    NameDetails
    ProductSEPA
    TypeDirect debit
    ChannelsECOM, MOTO
    CurrenciesEUR
    Countries AT, BE, CY, EE, FI, FR, DE, GR, IE, IT, LV, LT, LU, MT, NL, PT, SK, SI, ES, CH
    Technical FlowSynchronous
    RecurringYes
    ChargebacksYes
    Reusable Payment InstrumentsYes

    Supported Features and Services

    NameDetails
    DebitYes
    PreauthorizationYes
    CancelationYes (full, partial)
    CaptureYes (full, partial)
    RefundsYes (Refunds can only be executed if the merchant bank account connection is set up)
    NotificationsYes - webhook, email
    Settlement ReportingYes

    Integration Types

    NameDetails
    APIYes
    WidgetYes
    Bridge
    • Payment Instruments can be created via bridge.
    • Mandate creation within the bridge
    Shop PluginNo (on the roadmap)
    PaylinkYes

    Technical Flow

    Prerequisite: Collect mandate acceptance

    Before creating a SEPA direct debit order, your customer must accept the SEPA Direct Debit mandate. The acceptance authorizes Concardis to collect payments for the specified amount from their bank account, using SEPA Direct Debit.

    What is a mandate?

    Usually, the SEPA mandate is a paper document, but since it is not possible to implement a paper document in eCommerce, electronic mandates (eMandates) are used. The Mandates are stored within the Payengine payment instrument.

    These mandates have a unique mandateId, and store the mandateText as well as the createdDateTime (the timestamp the customer agreed to the specific mandate).

    Within Payengine, the mandate object of a payment instrument is used for tracking the usage of a payment instrument through the type property.

    SEPA mandate text

    "Ich ermächtige die Concardis GmbH, Helfman-Park 7 in 65760 Eschborn, GläubigerID DE82ZZZ00000346626, Zahlungen von meinem Konto mittels SEPA-Lastschrift unter der Mandatsreferenz [mandateId] einzuziehen. Zugleich weise ich mein Kreditinstitut an, die von Concardis GmbH auf mein Konto gezogenen SEPA-Lastschriften einzulösen.
    
    	Hinweis: Ich kann innerhalb von acht Wochen, beginnend mit dem Belastungsdatum, die Erstattung des belasteten Betrages verlangen. Es gelten dabei die mit meinem Kreditinstitut vereinbarten Bedingungen.

    Single Order

    When a customer provides authorization for a single usage of his bank details for a payment.

    You can: - Collect payment data and place the order in your shop. - Create debit or preauth with the directDebitType set to SINGLE

    For more information, see Single Order.

    Recurring Order

    When a customer provides authorization to perform a series of payments with his bank details.

    Recurring payments are handled with use of the directDebitType of mandate object which points to the type of usage for the particular order. Mark the orders as FIRST, RECURRING or FINAL.

    Recurring Order Types:

    There are two types of recurring orders: Recurring Order With initial Payment and Recurring Order Without initial Payment.

    Recurring Order Without initial Payment

    This option provides:

    • Collect payment data and place the order in your shop.
    • Perform the backend-to-backend payment instrument request POST /payment-instruments with the directDebitType set to FIRST. This request should result in a recurring payment instrument.
    • For recurring usage, see next paragraph.

    For more information, see Recurring Order Without Initial Payment.

    Recuring Order With Initial Payment

    This option provides:

    • Collect payment data and place the order in your shop.
    • Create debit or preauth with the directDebitType set to FIRST. This request should result in a recurring payment instrument.
    • Use the already created payment instrument for executing orders providing only the directDebitType that stands for the current usage of the mandate. (RECURRING/FINAL).

    For more information, see Recurring Order with Initial Payment.

    Specifications - SEPA Direct Debit

    POST/payment-instruments specific request parameters

    ParameterMandatory/Optional (M/O)Description
    payment.bankNameO string
    The name of the bank of the SEPA account.
    minLength: 1
    maxLength: 255
    payment.ibanM string
    maxLength: 34
    IBAN of the SEPA account.
    payment.bicOBIC of the SEPA account.
    payment.accountHolderM string
    minLength: 4
    maxLength: 128

    The account holder's name of the SEPA account.
    order.statementDescriptionO The statement description from your system/shop of this order.

    The field order.statementDescription will be used as purpose text.
    When no order.statementDescription is present the following logic will be applied:
    1) order.merchantOrderId is used when it's present
    2) order.orderId is used when order.merchantOrderId is not present
    For both cases
    fields merchant.companyName and merchant.shopUrl will be added after either order.merchantOrderId or order.orderId separated with space.
    The max length of the purpose text is 108 characters and it will be cut off if it's longer.
    Please see the sample below the table.
    mandate.mandateIdO The mandateId assigned to the SEPA mandate (Optionally, Payengine will generate the ID (if it not available). The ID must follow the '^[a-zA-Z0-9-]{1,35}' pattern.
    mandate.createdDateTimeM number($date-time)

    Timestamp for mandate creation (mandatory).
    mandate.mandateTextM string

    Mandate text displayed to the customer (mandatory)
    mandate.directDebitTypeM string title: DirectDebitType

    The current mandate type of the direct debit type.
    The mandate type can be one of the following:

    • FIRST: It is the first execution of the mandate 
    • SINGLE: It is used only for one execution of the mandate 
    • RECURRING: It is used for recurring mandate usage 
    • FINAL: It is the last execution of the recurring mandate.
    mandate.directDebitType.SINGLEOne execution-
    mandate.directDebitType.FIRSTThe initial usage of the recurring payment instrument-

    Sample of orderstatementdescription logic

    String statementDescription = order.getStatementDescription();
    
    if ( StringUtils.isEmpty( statementDescription ) ) {
    	statementDescription = order.getMerchantOrderId() != null ? order.getMerchantOrderId() : order.getBusinessKey() + " " + merchant.getCompanyName() + " " + merchant.getShopUrl();

    POST/payment-instruments specific response parameters

    ParameterMandatory/Optional (M/O)Description
    mandateIdMIf there is no mandateID transmitted in the request, Payengine will generate one and send it back in the response.

    POST/customers specific request parameters

    ParameterMandatory/Optional (M/O)DescriptionExample
    emailMThe customer e-mail address.user@example.com

    POST/orders/preauth/

    POST/orders/debit request parameters

    ParameterMandatory/Optional (M/O)Description
    payment.bankNameO string

    The name of the bank of the SEPA account.
    minLength: 1
    maxLength: 255
    payment.ibanMstring

    maxLength: 34

    IBAN of the SEPA account
    payment.bicOBIC of the SEPA account.
    payment.accountHolderMstring

    minLength: 4
    maxLength: 128

    The account holder's name of the SEPA account.
    mandate.mandateIdO The mandateId assigned to the SEPA mandate (Optionally, Payengine will generate the ID if it is not available). The ID must follow the '^[a-zA-Z0-9-]{1,35}' pattern.
    mandate.createdDateTimeМnumber($date-time)

    Timestamp for mandate creation (mandatory).

    NOTE: Should only be transmitted for directDebitType FIRST, SINGLE.
    mandate.mandateTextМstring

    Mandate text displayed to the customer (mandatory)

    NOTE: Should only be transmitted for directDebitType FIRST, SINGLE.
    mandate.directDebitTypeМ string title: DirectDebitType

    The current mandate type of the direct debit type.
    The mandate type can be one of the following_
    FIRST: It is the first execution of the mandate 
    SINGLE: It is used only for one execution of the mandate 
    RECURRING: It is used for recurring mandate usage 
    FINAL: It is the last execution of the recurring mandate.
    mandate.directDebitType.SINGLEOne execution-
    mandate.directDebitType.FIRSTThe initial usage of the recurring payment instrument-
    mandate.directDebitType.RECURRINGAny further usage of the payment instrument.-
    mandate.directDebitType.FINALThe last usage of a payment instrument.-

    Refunds

    To use the refund service of PayEngine, configure your bank account connection at the Concardis Merchant Center.

    Testing - SEPA Direct Debit

    ResultDescription
    SuccessAny amount + any merchant/customer IBAN: The transaction's status changes from OK to SUCCESS
    Chargeback Each of the amounts listed below + any merchant/customer IBAN: The transaction succeeds but a dispute is immediately created.
    The debit's/preauth's status stays in success and a new chargeback transaction is created with status "booked". This might take some time, according to the scheduler settings.

    • 33333 (333,33 €)
    • 11111 (111,11 €)
    • 111 (1,11 €)

    Settlements - SEPA Direct Debit

    You can see all settlement information in the Unified Settlement Report. For more information on the format and mappings, see Unified Settlement Report.

    Settlement Reports are only available for 12 months, after which period they are deleted.

    Was this helpful?

    What was your feeling about it?