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.
Markets | EU/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 currencies | EUR |
Consumer currencies | EUR |
Settlement currencies | EUR |
Minimum payment amount | EUR 0.10 |
Maximum payment amount | EUR 1,000.00 (configurable) |
Recurring payments | Yes |
Separate captures | Yes |
Refund | Full - Partial - Multiple Partial |
Refund validity | 365 days |
Chargeback | Yes |
Chargeback validity | Up to 13 months |
Sandbox availability | PPRO provided |
Make a SEPA Direct Debit Payment
SEPA Direct Debit payments are at their most useful in recurring payment and subscription scenarios. However, they can also be used for single payments.
Collect Consumer Details and Create Mandate
First, you'll need to collect the consumer's name, email and IBAN details, and obtain their approval of the direct debit mandate.
In your system, generate a mandate ID for this approval.
Create Payment Charge
To make a SEPA DD payment, you'll need to provide at minimum the following data when calling our /v1/payment-charges API:
Data Field | Required | Description |
---|---|---|
paymentMethod | Y | SEPA_DIRECT_DEBIT |
amount.value | Y | The amount to be paid in the smallest units of the currency used. |
amount.currency | Y | EUR The currency used for the payment. |
instrument: BANK_ACCOUNT details.iban | Y | The IBAN of the consumer's bank account. |
instrument: BANK_ACCOUNT details.debitMandateId | Y | The mandate ID you have generated in your system to identify the SEPA mandate. |
consumer.name | Y | Full name of the consumer. |
consumer.country | Y | The country where the consumer is shopping. |
autoCapture | If set to true, payment will be executed as a single step payment with immediate automatic capture. | |
webhooksUrl | You should include the endpoint URL where you want to receive webhooks for updates to the payment charge. |
Request:
POST /v1/payment-charges
{
"paymentMethod": "SEPA_DIRECT_DEBIT",
"amount": {
"value": 9000,
"currency": "EUR"
},
"paymentDescriptor": "Acme Digital - March 2023",
"paymentChargeMerchantReference": "your-external-identifier",
"instrument": {
"type": "BANK_ACCOUNT",
"details": {
"iban": "FR1420041010050500013M02606",
"debitMandateId": "YOURDIRECTDEBITMANDATEID12123"
}
},
"consumer": {
"name": "Connor Sumer",
"email": "[email protected]",
"country": "NL"
},
"autoCapture": true
}
Response:
Since SEPA Direct Debit has no additional consumer authentication step, you'll likely receive a standard payment charge response with status CAPTURE_PENDING
, orCAPTURED
if you included the autoCapture
field with value: true
.
Handling the Payment Result
When you send us a Payment Charge request, the transaction status will be set to “authorization_async” and funds status as “Fund_waiting”. Following a period of 5 days without any reversals or refusals from the payer's banks, the transaction status will be modified to "Captured" and the funds status will reflect as "Funds_received". Conversely, in the event of reversals or refusals from the payer's banks, the transaction status will be altered to "Failed" and the funds status will indicate as "Missing".
Recurring Payments
You can leverage our Payment Agreements API to set up recurring payments with SEPA Direct Debit. Just like with one time payments, you'll need to collect the consumer's name, email and IBAN details, and obtain their approval of the direct debit mandate. In your system, generate a mandate ID for this approval.
Create the Payment Agreement
To set up a recurring agreement for SEPA DD, you'll need to provide at minimum the following data when calling our /v1/payment-agreements API:
Data Field | Required | Description |
---|---|---|
paymentMethod | Y | SEPA_DIRECT_DEBIT |
consumer.name | Y | Full name of the consumer. |
consumer.country | Y | The country where the consumer is shopping. |
instrument: BANK_ACCOUNT details.iban | Y | The IBAN of the consumer's bank account. |
instrument: BANK_ACCOUNT details.debitMandateId | Y | The mandate ID you have generated in your system to identify the SEPA mandate. |
webhooksUrl | You should include the endpoint URL where you want to receive updates to the agreement and payment charges. |
You can also include the initialPaymentCharge object in this agreement creation call to immediately initiate the first payment without making a separate call. If you include this object, you'll need to specify the exact amount.value
and amount.currency
of the first payment.
If you don't include an initialPaymentCharge
during agreement creation, you'll need to make a separate API call to /v1/payment-agreements/{agreement_id}/payment-charges to create the first charge.
Request
POST /v1/payment-agreements
{
"paymentMethod": "SEPA_DIRECT_DEBIT",
"instrument": {
"type": "BANK_ACCOUNT",
"details": {
"iban": "FR1420041010050500013M02606",
"debitMandateId": "YOURDIRECTDEBITMANDATEID12123"
}
},
"consumer": {
"name": "Connor Sumer",
"email": "[email protected]",
"country": "NL"
},
"initialPaymentCharge": { // optional, allows you to create the first charge instantly
"amount": {
"value": 1499,
"currency": "EUR",
},
"merchantPaymentChargeReference": "your-external-identifier", //optional
"autoCapture": true //optional
}
Response
You will receive the Agreement details in the response, with status ACTIVE
. If you included an initialPaymentCharge
, the response will include the id for this charge as well.
Make Subsequent Recurring Charges
Once you've set up a payment agreement once, it's simple to create subsequent charges against it. In your /v1/payment-agreements/agreement-id/payment-charges/ request, you just need to include:
{
"amount": {
"amount": 1499,
"currency": "EUR"
},
"paymentChargeMerchantReference": "external-identifier", //optional
"autoCapture": true
}
You will receive webhooks for all charges created under a Payment Agreement the same way you would for individual charges, and can respond accordingly.
SEPA Direct Debit Chargebacks
Consumers can issue a chargeback on a completed SEPA direct debit transaction via their bank. Reasons for issuing a chargeback include:
- The consumer did not receive the product
- The consumer is unsatisfied with the product
- Fraud (the payment was not authorized)
- Insufficient funds
- Nonexistent or Incorrect IBAN
SEPA Direct Debit has no real-time authorization that checks the balance available on the accounts. The transaction will be in a successful state even if a consumer does not have sufficient funds in their bank account to complete it. This behavior will lead to a chargeback.
Thresholds
Chargeback ratios vary by industry and among individual merchants in a given industry.
Chargeback ratios, as seen by PPRO, are higher for SEPA Direct Debit than credit cards by SEPA's own design. As measured by transaction volume, an individual merchant's chargeback ratio exceeding 7.5% risks a response from PPRO to coordinate reducing the merchant's chargeback ratio and/or suspension of the merchant should chargeback mitigation be unsuccessful or at a volume that is considered an unacceptable risk by PPRO's banking partners.
Dispute process
It’s not possible to collect chargeback funds via SEPA Direct Debit. The merchant needs to collect the funds directly from the consumer, for example, via a collection agency.
Merchants using SEPA Direct Debit usually:
Ensure they have a good risk system in place, with velocity checks to mitigate the risk
Perform rigorous checks on the consumer before they allow SEPA Direct Debit payments, for example, completing credit checks, such as Schufa in Germany
Only allow a payment-guaranteed payment method for the first transaction with a particular customer
Employ a collection agency in case of chargebacks
Note
A refund does not protect you from a chargeback.
Time frame
The standard chargeback window for SEPA Direct Debit is eight weeks. After that time, the likelihood of chargebacks decreases if the merchant handles a mandate confirming the consumer's agreement for being charged.
It is still possible to get a chargeback after eight weeks in case the bank fights the mandate. The percentage of chargebacks issued after that time frame is below 0.1%. This extended chargeback period is 13 months.
Updated 3 months ago