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.

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
Minimum payment amountEUR 0.10
Maximum payment amountEUR 1,000.00 (configurable)
Recurring Payment SupportYes
Separate Capture SupportYes
Refund- Full

- Partial
- Multiple Partial
Refund validity365 days
ChargebackYes
Chargeback validityUp to 13 months
Sandbox AvailabilityPPRO-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 FieldRequiredDescription
paymentMethodYSEPA_DIRECT_DEBIT
amount.valueYThe amount to be paid in the smallest units of the currency used.
amount.currencyYEUR The currency used for the payment.
instrument: BANK_ACCOUNT
details.iban
YThe IBAN of the consumer's bank account.
instrument: BANK_ACCOUNT
details.debitMandateId
YThe mandate ID you have generated in your system to identify the SEPA mandate.
consumer.nameYFull name of the consumer.
consumer.countryYThe country where the consumer is shopping.
autoCaptureIf set to true, payment will be executed as a single step payment with immediate automatic capture.
webhooksUrlYou 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, orCAPTUREDif 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 FieldRequiredDescription
paymentMethodYSEPA_DIRECT_DEBIT
consumer.nameYFull name of the consumer.
consumer.countryYThe country where the consumer is shopping.
startDateYThe time from which the agreement is valid.
instrument: BANK_ACCOUNT
details.iban
YThe IBAN of the consumer's bank account.
instrument: BANK_ACCOUNT
details.debitMandateId
YThe mandate ID you have generated in your system to identify the SEPA mandate.
webhooksUrlYou 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": 1599,
						"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": 9000,
        "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.