SEPA Direct Debit

Integrate SEPA Direct Debit and allow merchants to collect euro-denominated payments from bank accounts in 30+ SEPA countries and associated territories. Learn more about SEPA Direct Debit.

MarketsEU/EEA countries: AT BE BG CY CZ DE DK EE ES FI FR GR HR HU IE IS IT LI LT LU LV MT NL NO PL PT RO SE SI SK

Non-EEA Countries with bilateral agreements: AD CH GB MC SM VA

Non-EEA Territories: GG IM JE PM
Processing currenciesEUR
Consumer currenciesEUR
Settlement currenciesEUR
Authentication methodsN/A
Minimum payment amount0.10 EUR
Maximum payment amount1,000.00 EUR (configurable)
Payment instrumentBANK_ACCOUNT
Recurring paymentsYes
Separate capturesYes
RefundFull - Partial - Multiple
Refund validity365 days
DisputesYes
Disputes validityUp to 13 months
Sandbox availabilityPPRO provided

Make a SEPA Direct Debit payment

SEPA Direct Debit is most commonly used for recurring payments but can also be used for one-time payments. SEPA Direct Debit does not require an additional consumer authentication step. However, we recommend including all relevant settings for any authentication methods you support.

To make a SEPA Direct Debit payment, you'll need to provide the following data at minimum when calling our /v1/payment-charges API:

Data FieldDescription
paymentMethodSEPA_DIRECT_DEBIT
amount.valueThe amount to be paid in the smallest units of the currency used.
amount.currencyEUR
consumer.nameFull name of the consumer.
consumer.countryThe country where the consumer is shopping.
instrument: BANK_ACCOUNT
details.iban
The IBAN of the consumer's bank account.
instrument: BANK_ACCOUNT
details.debitMandateId
Generate a mandate ID (maximum 35 alphanumeric characters).

Request:

POST /v1/payment-charges

{
  "paymentMethod": "SEPA_DIRECT_DEBIT",
  "amount": {
    "value": 1000,
    "currency": "EUR"
  },
  "consumer": {
    "name": "John Smith",
    "country": "FR"
  },
  "instrument": {
    "type": "BANK_ACCOUNT",
    "details": {
      "iban": "FR1420041010050500013M02606",
      "debitMandateId": "YOURDIRECTDEBITMANDATEID12123"
    }
  }
}

Response:

Since SEPA Direct Debit has no additional consumer authentication step, you'll receive our standard payment charge response (see potential responses in the API Reference) with the available authentication methods.

{
  "id": "charge_s9KGjildrixhGpcSOVyCF",
  "paymentMethod": "SEPA_DIRECT_DEBIT",
  "paymentMedium": "ECOMMERCE",
  "scheduleType": "UNSCHEDULED",
  "instrumentId": "instr_w8yFLFrhvqnzNaJU1g1GL",
  "currency": "EUR",
  "country": "FR",
  "status": "AUTHORIZATION_ASYNC",
  "consumer": {
    "name": "John Smith",
    "country": "FR"
  },
  "authenticationMethods": [],
  "authorizations": [
    {
      "id": "authz_jBssECRurIpwaBShQpADm",
      "amount": 1000,
      "status": "PROVIDER_CONFIRMATION_PENDING",
      "createdAt": "2025-04-14T14:02:57.939Z",
      "updatedAt": "2025-04-14T14:02:57.939Z"
    }
  ],
  "captures": [],
  "refunds": [],
  "voids": [],
  "createdAt": "2025-04-14T14:02:57.624Z",
  "updatedAt": "2025-04-14T14:02:57.939Z",
  "_links": {
    "authorizations": {
      "href": "/v1/payment-charges/charge_s9KGjildrixhGpcSOVyCF/authorizations"
    },
    "captures": {
      "href": "/v1/payment-charges/charge_s9KGjildrixhGpcSOVyCF/captures"
    },
    "refunds": {
      "href": "/v1/payment-charges/charge_s9KGjildrixhGpcSOVyCF/refunds"
    },
    "voids": {
      "href": "/v1/payment-charges/charge_s9KGjildrixhGpcSOVyCF/voids"
    }
  }
}

Handling the payment result

The payment charge status will initially be set to AUTHORIZATION_ASYNC for 5 days. If there are no reversals or refusals from the consumers bank during this period, the payment charge will update to CAPTURE_PENDING and you'll be notified through a webhook. However, if a reversal or refusal occurs, the status will change to FAILED with one of the reason codes below.

Response codes

CodeISO definition
AC01Incorrect Account Number
AC04Consumer Bank Reversal
AC06Blocked Account
AC13Invalid Debtor Account Type
AG01Transaction Forbidden
AG02Invalid Bank Operation Code
AM04Insufficient Funds
AM05Duplication
BE05Unrecognised Initiating Party
CNORCreditor Bank Is Not Registered
DNORDebtor Bank Is Not Registered
ED05Settlement Failed
FF01Invalid File Format
MD01No Mandate
MD02Missing Mandatory Mandate Information in Mandate
MD06Refund Request By End Customer
MD07End Customer Deceased
MS02Not Specified Reason Customer Generated
MS03Not Specified Reason Agent Generated
RC01Bank Identifier Incorrect
RR01Missing Debtor Account Or Identification
RR02Missing Debtor Name Or Address
RR03Missing Creditor Name Or Address
RR04Regulatory Reason
SL01Specific Service Offered By Debtor Agent

Payment instrument

An instrument of type BANK_ACCOUNT will be created to support SEPA Direct Debit payments. It securely stores the consumer's bank account details and mandate ID, and can be used to initiate recurring payments.

GET /v1/payment-instruments/{instrument-id}

Response

{
  "id": "instr_w8yFLFrhvqnzNaJU1g1GL",
  "details": {
    "holderName": "John Smith",
    "iban": "FR1420041010050500013M02606",
    "debitMandateId": "YOURDIRECTDEBITMANDATEID12123"
  },
  "type": "BANK_ACCOUNT"
}