SEPA Direct Debit

SEPA Direct Debit (aka SDD) is a way of paying for a product or service by means of collecting money directly from the consumer's bank account by using a particular description.

The consumer must agree to the Direct Debit via an optional E-mandate, or by using another successful payment as a mandate transaction. Look in the Payment Methods section to see for which payment methods SDD is supported.

📘

Note

  • SDD Core (also known as B2C: Business To Consumer) payments are not guaranteed!. They can be refused by the debtor's bank or reverted by the debtor.
  • Please make sure you clearly specify Escrow CURO Payments (identification code NL87ZZZ570002710000) as the originator for the payment, or consumers may issue a reversal or chargeback of the payment!
  • Consumers are allowed to revert a SDD Core (Consumer-to-Business or C2B) payment within 56 days without having to specify a reason. This is made even easier via the Mobile Banking applications used by consumers.
  • Due to the setup of SDD, you will always receive a confirmation of the payment first (usually a code 7XX) which may be followed by a completion, or a chargeback/reversal later, which can be any time from a few minutes, 56 days or even 13 months.
    UPDATE November 2020:

Due to recent changes to the SEPA Rule Book (EU Regulation 2015/847 – FATF16 recommendations) is it now mandatory to submit address, city and country_id information of the consumer for the following non EEA countries:

  • CH Switzerland
  • MC Monaco
  • SM San Marino
  • PM Saint-Pierre and Miquelon
  • JE Jersey
  • GG Guernsey
  • IM Isle of Man
  • GB Great Britan
  • UK United Kingdom

These fields must be submitted in the [consumer] container in the request of the master/mandate transaction.

Please check the Transactions for generic information applicable to all payment methods.


Direct Debit Payment

⚠️

Important

When a Direct Debit job is succesfully registered, the response will contain SEPA Creditor Information that will be used. It is mandatory that you communicate this information clearly to the consumer to prevent chargebacks!

Entry point: /rest/v1/curo/payment/directdebit/

REST request elements

See the Direct Debit request parameters in the API reference.

Field nameType LengthRequiredDescription
[request]containerrequiredGeneral container for this resource. Includes the generic request items.
[consumer]containerrequiredConsumer information for this transaction (See the generic Consumer and Shipping elements for this transaction.)
[cartitems]containerrequiredThe cart items of the webshop order. (See the generic CartItems elements.)
namestring 64requiredName of the account holder.
ibanstring 34requiredIBAN number to debit the amount from. Only SEPA countries are supported.
bicstring 10optionalSWIFT/BIC code. Optional since 2016 for SEPA.
emandateboolean 1optionalOptional flag to enable E-mandates for this payment.
b2bboolean 1optionalOptional flag to enable Direct Debit B2B (Business-to-Business). By default SEPA "CORE" will be used.
  • Successful SEPA B2B debits are guaranteed and non-reversable (except in case of fraud)
  • B2B always requires an E-mandate and is not supported by all banks

REST response elements

See the Direct Debit Payment response elements.

Field nameType LengthDescription
[payment]containerGeneral container for this resource.
actionstring 12The default action that should be undertaken (redirect).
externalboolean 1Indicates, if TRUE, that the url is to an external website.
urlstring 255Complete issuer URL to which the consumer must be redirected for authentication.
The url will always contain a link to the default CURO Direct Debit page on the gateway, where a summary of the transaction is given. Consumers will also have to option to request an e-mail containing the payment instructions. You can use this URL or present the information to the consumer on your own system.
transaction_idstring 12Newly created transaction ID.
[pmdata]containerContainer for payment method specific data.
  recipient_namestring 64Creditor Name as it will appear on the debitors bank statement. default Escrow CURO Payments.
  recipient_ibanstring 18Creditor IBAN number that will collect the money. default DE73202208000000021845.
  recipient_bicstring 10Creditor BIC number. default SXPYDEHH.
  recipient_identifierstring 32Creditor Identifier that will be visible on the bank statement. default NL87ZZZ570002710000.
  amountinteger 10Amount to be collected in cents.
  currency_idstring 3Currency of the transaction. Always EUR.
  mandate_idstring 12Transaction Id of the mandate for this direct debit. This will be the initial transaction that was registered using the recurring option.
  mandate_datedate 10Date of the mandate transaction.
  descriptionstring 128The description that will be on debtors the bank statement.
  execute_datedate 10Date when the Direct Debit will be executed by the bank. By default the minimum date will be used.
The minimum execution date will date + 2 (business-)days if submitted before 23:00h (GMT+2). See SEPA Timeline from ING Bank as an example (this is the same for all banks working with SEPA). As per SEPA regulations, you must inform the debtor about the payment 14 days before the execution date, unless otherwise agreed. See SEPA Direct Debit Core Rulebook for detailed information.
  sequence_typestring 4SEPA transaction type for the Direct Debit:
  • FRST First direct debit
  • RCUR Recurring direct debit
  namestring 255Debtors name as it is known in the CURO system.
  ibanstring 32Debtors IBAN.
  bicstring 16Debtors BIC.

Direct Debit Refund

See the generic Refund information and request elements.


Direct Debit Recurring

When the initial Bank Transfer transaction was registered with the option recurring enabled, subsequent recurring payments can be created using the account information available.

Recurring payments for this method will use SEPA Direct Debit transactions using the initial transaction id as mandate.

📘

Note

  • The recurring option must be requested and approved per website before it can be used, please contact your accountmanager for further details.
  • Consumers must be informed about recurring payments when making the initial/authorizing payment in compliance with the rules of a SEPA Direct Debit transfer as agreed by all European banks!

Entry point: /rest/v1/curo/recurring/

REST request elements

Field nameType/LengthDescription
[recurring]containerGeneral container for this resource.

See generic Recurring request elements.

REST response elements

Field nameType LengthDescription
[recurring]containerGeneral container for this resource.
[pmdata]containerContainer for the payment data.
  recipient_namestring 64Name of the recipient (Escrow CURO Payments).
  recipient_ibanstring 34IBAN of the recipient.
  recipient_bicstring 10BIC/SWIFT of the recipient.
  recipient_identifierstring 34Identification number of the recipient.
  amountstring 10The amount payable in cents (with no decimal separator).
  currency_idstring 3Currency in which payment should be effected, expressed using the three-letter international currency code as per ISO-4217. (default: EUR)
  mandate_idstring 12Transaction ID of the authorizing Direct Debit payment.
  mandate_datedate 10Date when transaction will be debitted from the consumers account.
  descriptionstring 128Transaction description which will be presented to the user on the bank statement.
  execute_datedate 10Date when transaction will be debited from the consumers account.
You are required to notify the consumer of the Direct Debit by e-mail or in writing at least 3 business-days before the executing date!
  sequence_typestring 10The Type of sequence. (eg. FRST, RCUR)
  namestring 34The name of the consumer.
  ibanstring 34The IBAN number of the consumer.
  bicstring 34The BIC code of the consumer.
transaction_idstring 12Newly created transaction ID.

JSON example request

POST /rest/v1/curo/recurring/ HTTP/1.1
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Host: secure.curopayments.net
Content-type: application/json
Accept: application/json

{
    "transaction_id": "T26211231999",
    "amount": 50,
    "currency_id": "EUR",
    "reference": "RECUR_1111",
    "description": "recur_test_01"
}

Response

HTTP/1.1 200 OK
Content-Type: application/json

{
    "success": true,
    "recurring": {
        "pmdata": {
            "recipient_name": "Escrow CURO Payments",
            "recipient_iban": "NL41INGB0687547407",
            "recipient_bic": "INGBNL2A",
            "recipient_identifier": "NL87ZZZ570002710000",
            "amount": "50",
            "currency_id": "EUR",
            "mandate_id": "T26211231999",
            "mandate_date": "2026-05-19",
            "description": "recur_test_01",
            "execute_date": "2026-05-20",
            "sequence_type": "RCUR",
            "name": "Hr E G H K\u00fcppers en/of MW M.J. K\u00fcppers",
            "iban": "NL17RABO0213698412",
            "bic": "RABONL2U",
            "attempt": 1
        },
        "transaction": "T26511786216",
        "action": "redirect",
        "external": false,
        "url": "https://testserver.net/v1/payment/directdebit.app?transaction=T26511786216",
        "testmode": 1,
        "transaction_id": "T26511786216"
    }
}

Direct Debit Callback

Besides the default generic callback items the url_callback will receive extra information about SEPA Direct Debit transactions in case there is a reversal/chargeback.

⚠️

Important

The status (or curo_status in the CardGate protocol) of the chargeback transaction will be success! This is because the state of the chargeback transaction itself is technically "successful".

NameType LengthDescription
original_transaction_idstring 12The mandate transaction ID this SDD is linked to.
return_reason_codestring 4SEPA Direct Debit Reason Code. See table below for a full description.
return_reasonstring 32SEPA Direct Debit Reason. See table below for a full description.

Also see the generic Callback elements.


Direct Debit Return Codes

CodeNameDescriptionAction / Comment
AC01INCORRECTThe account number is incorrect or unknown. Check and correct the number and retry.Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
AC04CLOSEDThe account number is closed or terminated.
Contact the debtor for an alternate payment solution.
Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
AC06BLOCKEDThe account is blocked, or blocked for Direct Debit by the Debtor.
Contact the debtor for another way of payment.
Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
AG01NOT_ALLOWEDDirect debit forbidden on this account for regulatory reasons.
The account can not be used for Direct Debit payments.
Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
AG02INVALIDIncorrect operation / transaction / sequence type code.
Please check the order of FRST and RCUR payment for this transaction.
Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
AM04NO_BALANCEInsufficient funds during Direct Debit. Please contact the debtor.A new recurring transation can be created.
MD01NO_MANDATEThere is no mandate, the mandate was cancelled or has become invalid because there were no Direct Debits in 36 months.Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
MD02MANDATE_INVALIDBelgium only This code indicates a wrong sequence of FRST and RCUR, or the mandate has not (yet) been registered at the bank. Please contact the Debtor for a solution.Mandate transaction will be invalidated for future recurring.
A new mandate transaction must be created.
MD06CHARGEBACKReturn of funds requested by debtor within 56 days.Contact consumer; A new recurring transaction can be created.
MS02REFUSEDRefusal by the Debtor before execution date (Reason has not been specified).Contact consumer; A new recurring transaction can be created.
MS03REFUSEDReason has not been specified. Usually there is not enough balance on the account.Contact consumer; A new recurring transaction can be created.
SL01UNABLEDirect Debit is refused by the Debtor Bank. The account can be blocked by the Debtor for Direct Debits, or the given maximum amount has been exceeded.Contact consumer; A new recurring transaction can be created.

Did this page help you?