
SEPA Direct Debit
Integration
This payment method allows you to address various business cases. Depending on the case you choose your integration changes. Have a look at this matrix to know exactly which integration is the most suitable for you:
We offer this payment methods for the following integration modes. Regardless of the mode you choose, the flow follows some basic steps as described below. Learn in our dedicated guides about the individual difference:
I want my customers to fill in the mandate.... |
|||
---|---|---|---|
On our platform | In my webshop | ||
I will process the first transaction.... | Right after the mandate creation | CreateHostedCheckout with mandate creation |
CreatePayment with mandate creation |
Later | CreateHostedCheckout with mandate creation for a 0-amount transaction + Create payment |
Create mandate + Create payment |
If you want to process a transaction with an existing mandate, apply the flow Server-to-server with existing mandate
Hosted Checkout Page with mandate creation
Add the following properties to a standard Create Hosted Checkout request:
{
"hostedCheckoutSpecificInput": {
"returnUrl": "https://yourReturnUrl.com",
"locale": "en_GB"
},
"order": {
"amountOfMoney": {
"amount": 1000,
"currencyCode": "EUR"
}
},
"sepaDirectDebitPaymentMethodSpecificInput": {
"paymentProduct771SpecificInput": {
"mandate": {
"customerReference": "CustomerRef_{{TIMESTAMP}}",
"recurrenceType": "RECURRING",
"signatureType": "SMS"
}
}
}
}
Properties | Remarks |
---|---|
hostedCheckoutSpecificInput |
returnURL: The URL we redirect your customers to after the payment has been created locale: The language version of our Hosted Checkout Page, including the SEPA mandate form |
order.amountOfMoney amount currencyCode |
Amount: The gross amount you want to charge for this order. If you want to create the mandate first and process the transaction later, set the value to "0" |
sepaDirectDebitPaymentMethodSpecificInput.paymentProduct771SpecificInput.mandate customerReference |
customerReference: A unique reference for your customer recurrenceType: The mandate's validity. Possible values:
signatureType: The mode for signing the mandate. Possible values:
|
Server-to-server with mandate creation
Add the following properties to a standard Create Payment request:
{
"order": {
"amountOfMoney": {
"amount": 123,
"currencyCode": "EUR"
}
},
"sepaDirectDebitPaymentMethodSpecificInput": {
"paymentProduct771SpecificInput": {
"mandate": {
"returnUrl": "https://yourReturnUrl.com",
"customer": {
"bankAccountIban": {
"iban": "BE45000253450589"
},
"companyName": "yourCompanyName",
"contactDetails": {
"emailAddress": "customer@domain.com"
},
"mandateAddress": {
"city": "Paris",
"countryCode": "FR",
"street": "27 rue des fleurs",
"zip": "75008"
},
"personalInformation": {
"name": {
"firstName": "john",
"surname": "doe"
},
}
},
"customerReference": "0efaa98944324234b9ad27f9355a1093",
"language": "en",
"recurrenceType": "RECURRING",
"signatureType": "SMS"
}
},
"paymentProductId": 771
}
}
Properties | Remarks |
---|---|
order.amountOfMoney amount currencyCode |
Amount: The gross amount you want to charge for this order |
sepaDirectDebitPaymentMethodSpecificInput.paymentProduct771SpecificInput.mandate customerReference |
returnURL: The URL we redirect your customers to after the payment has been finalised customer: All required information for creating the mandate customerReference: A unique reference for your customer language: The language version of the SEPA mandate form recurrenceType: The mandate's validity. Possible values:
signatureType: The mode for signing the mandate. Possible values:
paymentProductId: The numeric identifier of the payment method on our platform. Find this id in the "Overview" tab |
Server-to-server with existing mandate
Add the following properties to a standard Create Payment request:
{
"order": {
"amountOfMoney": {
"amount": 200,
"currencyCode": "EUR"
}
},
"sepaDirectDebitPaymentMethodSpecificInput": {
"paymentProduct771SpecificInput": {
"existingUniqueMandateReference": "mandateRef_existingReference"
},
"paymentProductId": 771
}
}
Properties | Remarks |
---|---|
order.amountOfMoney amount currencyCode |
Amount: The gross amount you want to charge for this order |
sepaDirectDebitPaymentMethodSpecificInput.paymentProduct771SpecificInput.existingUniqueMandateReference |
The reference of the mandate your customer signed during the creation of the first transaction |
paymentProductId |
The numeric identifier of the payment method on our platform. Find this id in the "Overview" tab |
Create mandate
Our Create Mandate API allows you to create a mandate for later use, thus separating it from the transaction request linked to this mandate. Consequentially, you can use this mandate in subsequent Server-to-server with existing mandate requests.
Add the following properties to a standard Create Mandate request:
{
"customer":{
"bankAccountIban":{
"iban":"BE45000253450589"
},
"mandateAddress":{
"city":"Monument Valley",
"countryCode":"US",
"houseNumber":"13",
"street":"Desertroad",
"zip":"84536"
},
"personalInformation":{
"name":{
"firstName":"Jane",
"surname":"Doe"
},
}
},
"customerReference":"uniqueCustomerReference123456789012",
"language":"en",
"recurrenceType":"UNIQUE",
"returnUrl":"https://yourReturnUrl.com",
"signatureType":"SMS"
}
Properties | Remarks |
---|---|
customer bankAccountIban.iban mandateAddress |
All required information for the mandate |
customerReference |
customerReference: A unique reference for your customer language: The language version of the SEPA mandate form signatureType: The mode for signing the mandate. Possible values:
returnUrl: The URL we redirect your customers to after the payment has been finalised recurrenceType: The mandate's validity. Possible values:
|