
General
The Sepa Direct Debit transaction starts by sending the request for a direct debit to the BPE transaction gateway. The gateway processes the request and sends a response to the merchant. Additionally, a transaction push can be sent to the merchant as well (Both contain the current status of the transaction). The Payment Engine will then perform the direct debit on the account of the customer. This will take a few days and will either fail or succeed after which the status is again pushed to the merchant site. If it succeeds, it is still possible that at a later point a reversal occurs. This will create a new transaction with a credit amount, to deduct the previous amount from the merchant account. Again, this status is pushed to the merchant site.
Mandates SEPA Direct debit requires a merchant to obtain a mandate from a customer to be allowed to perform a direct debit. A reference to this mandate and the signing date of the mandate is then used for all direct debits.
Recurring SEPA direct debits It is possible to perform multiple direct debits, using the same mandate. Performing a recurring direct debit has several requirements:
The mandate must mention that it is given for recurring direct debits. The first transaction needs to be performed separately and needs to have the flag “StartRecurrent” set to true. The follow-up recurring transactions need to reference this original transaction. The maximum period between 2 recurring transactions is 36 months. (After 36 months of not using a mandate, it expires).
Notification of a direct debit To have the Payment Engine send a notification to the consumer, notifying the consumer of an impending direct debit, add the supplementary Notification service with the action ExtraInfo to the request. Also, use the notification type ‘PreNotification’. Reversals and Rejects
It is possible that direct debit initially appear to succeed, but after a few days actually turn out to have failed. This can be due to insufficient funds on a bank account or because a consumer has blocked his account for direct debit. Additionally, a consumer can contact his bank and reverse a specific direct debit. In all of these cases a reversal transaction is then created, to correct the merchant balance on his Buckaroo account. It is also possible that direct debit initially appear to succeed, but after the success we receive a reject due to a wrong account number. In this case a reject transaction is then created, to correct the merchant balance on his Buckaroo account. Lastly, if a reversal takes place 56 days or more after the original transaction there are additional bank costs. In this case we create a reversal and also a MOI transaction. The transactiontype of the MOI transaction is an informational transaction. This informational transaction has no influence on the balance since this is only a registration for the additional bank costs. MOIs cannot happen if the direct debit transaction was created in combination with an e-mandate. This is only possible for SEPA Direct Debit if you are using the ExtraInfo action to also send the mandatereference. For information on e-mandates, see the e-mandate manual. If you wish to use the e-mandate service, contact Buckaroo’s sales department.
Servicecodes and actions
Use the service code sepadirectdebit (b2c) or sepadirectdebitb2b (b2b).
The SEPA Direct Debit service supports the following actions: Pay, Refund, ExtraInfo, PayRecurrent, Authorize. For Refund and Authorize use channel 'Backoffice'. The rest uses channel 'Web' (default).
Pay
The pay action is used to register a direct debit and it will result in a pending transaction. After the direct debit has been processed by the bank, the transaction status is updated to success or failed. If this is the first direct debit of a series of recurrent direct debits, then also provide the basic gateway field StartRecurrent with its value set to true. To provide your own Mandate Reference and Mandate signing date, please use the supplementary action ExtraInfo. Otherwise, the transaction key and the transaction date are used for these.
Request
JSON gateway request
customeraccountname
string
|
Required
The name of the accountholder for the account on which the direct debit should be performed. |
customerbic
string
|
The BIC code for the customer bank account on which the direct debit should be performed. |
customeriban
string
|
Required
The IBAN for the customer bank account on which the direct debit should be performed. |
collectdate
string
|
The date (dd-mm-yyyy) on which the direct debit should be collected from the consumer account. Important note: if combined with Credit Management, the collect date should always precede the due date of the invoice, since you don't want to trigger a reminder step before debiting the customer. If however, the collect date is accidentally set after the due date, then the first reminder step will be postponed till the collect date, but only if it's set within 14 days after the due date. If it's set further than that, then our system will perform another check after 14 days and so on. |
MandateReference
string
|
The mandate reference for the SEPA Direct Debit. It is possible to provide your own unique reference, or use the mandateID from an Emandate, In any case, the MandateReference should always begin with a three digit prefix which can be found in the Sepadirectdebit subscription details in your Buckaroo account. |
MandateDate
string
|
The signing date of the mandate. |
StartRecurrent
string
|
Set this parameter to True if you wish to use this transaction as a reference for future recurring transactions. Recurring transactions can be performed with the PayRecurrent action. Note: this is a basic parameter, not a service parameter. |
JSON
{
"Currency": "EUR",
"StartRecurrent": "True",
"AmountDebit": 10,
"Invoice": "testinvoice 123",
"Services": {
"ServiceList": [
{
"Name": "SepaDirectDebit",
"Action": "Pay,ExtraInfo",
"Parameters": [
{
"Name": "CollectDate",
"Value": "2019-08-01"
},
{
"Name": "customeraccountname",
"Value": "John Smith"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "customerbic",
"Value": "TESTNL2A"
},
{
"Name": "MandateReference",
"Value": "02Qtestreference"
},
{
"Name": "MandateDate",
"Value": "2019-07-03"
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, a pending status is returned. This means the amount has yet to be debited from the customers' account.
customerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
customerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
mandatereference
string
|
The mandate reference used for the direct debit. |
mandatedate
string
|
The signing date of the mandate that was used. |
collectdate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
directdebittype
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Key": "FDA9EEEEA53C42BF875C35C6C2B7Exxx",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "C620",
"Description": "Awaiting transfer to bank."
},
"DateTime": "2019-07-03T13:55:30"
},
"RequiredAction": null,
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "02Qtestreference"
},
{
"Name": "MandateDate",
"Value": "2019-07-03"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "CustomerBIC",
"Value": "TESTNL2A"
},
{
"Name": "CollectDate",
"Value": "2019-08-01"
},
{
"Name": "DirectDebitType",
"Value": "Recurring"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "C004",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": {
"MustRead": true,
"CultureName": null,
"Title": "Your SEPA Direct Debit has been scheduled.",
"PlainText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Thursday, 01 August 2019. It will be done using the mandate reference 02Qtestreference.",
"HtmlText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Thursday, 01 August 2019. It will be done using the mandate reference <b>02Qtestreference<\/b>."
},
"Order": null,
"IssuingCountry": null,
"StartRecurrent": true,
"Recurring": false,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "BBEAC81184744ED99082F5CD1561Fxxx"
}
Push
JSON push response
The initial transaction status will be 'pending', which will be pushed first. When the amount has been debited from the consumer's bank account, a second push with the final (succes) status will be performed.
customerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
customerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
mandatereference
string
|
The mandate reference used for the direct debit. |
mandatedate
string
|
The signing date of the mandate that was used. |
collectdate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
directdebittype
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Transaction": {
"Key": "FDA9EEEEA53C42BF875C35C6C2B7Exxx",
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "C000",
"Description": "Success"
},
"DateTime": "2019-07-03T13:57:37"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "C004",
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "02Qtestreference"
},
{
"Name": "MandateDate",
"Value": "2019-07-03"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "CustomerBIC",
"Value": "TESTNL2A"
},
{
"Name": "CollectDate",
"Value": "2019-08-01"
},
{
"Name": "DirectDebitType",
"Value": "Recurring"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": true,
"Recurring": false,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "BBEAC81184744ED99082F5CD1561Fxxx"
}
}
Refund
To refund a successful direct debit transaction, use the action Refund. A bank transfer is then initiated which transfers (some of) the amount of the original transaction to the consumer.
Request
JSON gateway response
OriginalTransactionKey
string
|
Required
Transaction key of the original transaction that needs to be refunded. Please note: This is a basic request variable, not a service specific variable. |
JSON
{
"Currency": "EUR",
"AmountCredit": 1.00,
"Invoice": "testinvoice 123",
"OriginalTransactionKey": "3D175524FCF94C94A23B67E8DCXXXXXX",
"Services": {
"ServiceList": [
{
"Name": "sepadirectdebit",
"Action": "Refund",
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
This is a response example of a failed refund. The reason is because the channel 'WEB' is not supported on action Refund for service SepaDirectDebit. The solution is to change it to a supported channel.
This action does not have service specific response variables.
JSON
{
"Key": "3997D8A96D9E480FBE8C81E813XXXXXX",
"Status": {
"Code": {
"Code": 491,
"Description": "Validation failure"
},
"SubCode": null,
"DateTime": "2017-03-30T19:11:56"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": {
"ChannelErrors": [
{
"Service": "SepaDirectDebit",
"Action": "Refund",
"Name": "WEB",
"Error": "ChannelUnsupported",
"ErrorMessage": "Channel 'WEB' not supported on action Refund for service SepaDirectDebit."
}
],
"ServiceErrors": [],
"ActionErrors": [],
"ParameterErrors": [],
"CustomParameterErrors": []
},
"Invoice": "testinvoice 123",
"ServiceCode": null,
"IsTest": true,
"Currency": "EUR",
"AmountCredit": 1,
"TransactionType": null,
"MutationType": 0,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
Push
JSON push response
This is a push example of a succesful refund.
customeraccountname
string
|
The name of the accountholder for the account on which the direct debit should be performed. |
CustomerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
JSON
{
"Transaction": {
"Key": "4CE60140C0104BF78A741216C6XXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"Status": {
"Code": {
"Code": 190,
"Description": "Succes"
},
"SubCode": {
"Code": "S001",
"Description": "Transactie succesvol uitgevoerd"
},
"DateTime": "2017-03-30T16:24:23"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountCredit": 10,
"TransactionType": "C500",
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "customeraccountname",
"Value": "John Smith"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": [
{
"RelationType": "refund",
"RelatedTransactionKey": "3D175524FCF94C94A23B67E8DCXXXXXX"
}
],
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "EC1076FE6870481EB8FFF45D34XXXXXX"
}
}
Authorize
The Authorize action is used to import the data of a previously perform SEPA direct debit into the payment engine, so that new recurrent payments can be performed using the payment engine. Because it is the used to enable recurrent payment, please remember to also provide the basic gateway field StartRecurrent with its value set to true.
Request
JSON gateway request
customeraccountname
string
|
Required
The name of the accountholder for the account on which the direct debit should be performed. |
customeriban
string
|
Required
The IBAN for the customer bank account on which the direct debit should be performed. |
customerbic
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
MandateReference
string
|
Required
The mandate reference for the SEPA Direct Debit. It is possible to provide your own unique reference, or use the mandateID from an Emandate, In any case, the MandateReference should always begin with a three digit prefix which can be found in the Sepadirectdebit subscription details in your Buckaroo account. |
mandatedate
string
|
Required
The signing date of the mandate (dd-mm-yyyy). |
JSON
{
"Currency": "EUR",
"AmountDebit": 10,
"Invoice": "testinvoice 123",
"Services": {
"ServiceList": [
{
"Name": "SepaDirectDebit",
"Action": "Authorize",
"Parameters": [
{
"Name": "customeraccountname",
"Value": "John Smith"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "customerbic",
"Value": "TESTNL2A"
},
{
"Name": "MandateReference",
"Value": "02Qtestreference"
},
{
"Name": "MandateDate",
"Value": "2017-01-01"
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
This is a response example of a failed refund. The reason is because the channel 'WEB' is not supported on action Authorize for service SepaDirectDebit. The solution is to change it to a supported channel.
JSON
{
"Key": "034CF63421E640D0955C1020A8XXXXXX",
"Status": {
"Code": {
"Code": 491,
"Description": "Validation failure"
},
"SubCode": null,
"DateTime": "2017-06-01T10:12:27"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": {
"ChannelErrors": [
{
"Service": "SepaDirectDebit",
"Action": "Authorize",
"Name": "WEB",
"Error": "ChannelUnsupported",
"ErrorMessage": "Channel 'WEB' not supported on action Authorize for service SepaDirectDebit."
}
],
"ServiceErrors": [],
"ActionErrors": [],
"ParameterErrors": [],
"CustomParameterErrors": []
},
"Invoice": "testinvoice 123",
"ServiceCode": null,
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": null,
"MutationType": 0,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": null
}
PayRecurrent
The PayRecurrent action is used to perform a recurrent direct debit payment. The action is used to register a direct debit and it will result in a pending transaction. After the direct debit has been processed by the bank, the transaction status is updated to success or failed. To be able to perform this transaction, an original transaction is needed, that was performed with the StartRecurrent set to true. This can be an iDEAL, SepaDirectDebit, Bancontact, Sofort, EPS, Giropay and Payconiq transaction. You can provide it's original transaction key with your SDD payrecurrent request, or you can use a mandate reference (if available) as an original transaction reference .
Request
JSON gateway request
CollectDate
string
|
The date (dd-mm-yyyy) on which the direct debit should be collected from the consumer account. Important note: if combined with Credit Management, the collect date should always precede the due date of the invoice, since you don't want to trigger a reminder step before debiting the customer. If however, the collect date is accidentally set after the due date, then the first reminder step will be postponed till the collect date, but only if it's set within 14 days after the due date. If it's set further than that, then our system will perform another check after 14 days and so on. |
JSON
{
"Currency": "EUR",
"OriginalTransactionKey": "FDA9EEEEA53C42BF875C35C6C2B7xxxx",
"AmountDebit": 10,
"Invoice": "testinvoice 123",
"Services": {
"ServiceList": [
{
"Name": "SepaDirectDebit",
"Action": "PayRecurrent",
"Parameters": [
{
"Name": "CollectDate",
"Value": "2019-08-01"
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, a pending status is returned. This means the amount has yet to be debited from the customers' account.
customerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
customerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
mandatereference
string
|
The mandate reference used for the direct debit. |
mandatedate
string
|
The signing date of the mandate that was used. |
collectdate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
directdebittype
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Key": "150FE29DB67F48E7B15EDFFD75XXXXXX",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "C620",
"Description": "Awaiting transfer to bank."
},
"DateTime": "2017-06-01T10:34:35"
},
"RequiredAction": null,
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "02Q8402A480031D43B395EE78AE2B0F0F7E"
},
{
"Name": "MandateDate",
"Value": "2017-06-01"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "CustomerBIC",
"Value": ""
},
{
"Name": "CollectDate",
"Value": "2019-08-01"
},
{
"Name": "DirectDebitType",
"Value": "Recurring"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 1,
"TransactionType": "C005",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": true,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "1F3D4980A663449BA4F4328FAAXXXXXX"
}
Push
JSON push response
The initial transaction status will be 'pending', which will be pushed first. When the amount has been debited from the consumer's bank account, a second push with the final status will be performed.
customerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
customerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
mandatereference
string
|
The mandate reference used for the direct debit. |
mandatedate
string
|
The signing date of the mandate that was used. |
collectdate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
directdebittype
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Transaction": {
"Key": "150FE29DB67F48E7B15EDFFD75XXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"Status": {
"Code": {
"Code": 190,
"Description": "Succes"
},
"SubCode": {
"Code": "C000",
"Description": "Succes"
},
"DateTime": "2017-06-01T10:38:34"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 1,
"TransactionType": "C005",
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "02Q8402A480031D43B395EE78AE2B0F0F7E"
},
{
"Name": "MandateDate",
"Value": "2017-06-01"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "CustomerBIC",
"Value": ""
},
{
"Name": "CollectDate",
"Value": "2017-06-06"
},
{
"Name": "DirectDebitType",
"Value": "Recurring"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": true,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "1F3D4980A663449BA4F4328FAAXXXXXX"
}
}
ExtraInfo
The ExtraInfo action can be used to optionally provide the mandate information under which a direct debit should be executed. This action should only be provided on the Pay action , because it determines extra information for the Pay action. It is used to provide additional mandate information, that is then used for the direct debit, instead of having the service use defaults for this.
Request
JSON gateway request
mandatereference
string
|
The mandate reference for SEPA Direct Debits. It is possible to provide your own unique reference, or use the mandateID from an Emandate, In any case, the MandateReference should always begin with a three digit prefix which can be found in the Sepadirectdebit subscription details in your Buckaroo account. |
mandatedate
string
|
The signing date of the mandate (dd-mm-yyyy). |
customercode
string
|
The customer ID, giving a unique ID to the customer for the merchant. |
customername
string
|
The name of the customer. |
customerreferencepartycode
string
|
The customer referenceparty ID, giving a unique ID to the customer reference party for the merchant. |
customerreferencepartyname
string
|
The name of the customer reference party. (The person on whose behalf the customer is making a payment) |
street
string
|
The street name of the consumer. |
housenumber
|
The house number of the consumer. |
housenumbersuffix
string
|
The house number suffix of the consumer. |
zipcode
string
|
The zipcode of the consumer. |
city
string
|
The city of the consumer. |
state
string
|
The state of the consumer. |
country
string
|
The country of the consumer. |
contractID
string
|
The contract identifier for which the payment is being done. |
JSON
{
"Currency": "EUR",
"AmountDebit": 10,
"Invoice": "testinvoice 123",
"Services": {
"ServiceList": [
{
"Name": "SepaDirectDebit",
"Action": "Pay,ExtraInfo",
"Parameters": [
{
"Name": "customeraccountname",
"Value": "John Smith"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "customerbic",
"Value": "TESTNL2A"
},
{
"Name": "MandateDate",
"Value": "2017-01-01"
},
{
"Name": "Country",
"Value": "NL"
},
{
"Name": "HouseNumberSuffix",
"Value": ""
},
{
"Name": "CustomerReferencePartyCode",
"Value": ""
},
{
"Name": "CustomerName",
"Value": "T.Tester"
},
{
"Name": "City",
"Value": "Heerenveen"
},
{
"Name": "CustomerCode",
"Value": ""
},
{
"Name": "HouseNumber",
"Value": "90"
},
{
"Name": "ContractID",
"Value": ""
},
{
"Name": "ZipCode",
"Value": "844ER"
},
{
"Name": "MandateReference",
"Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
},
{
"Name": "Street",
"Value": "Hoofdstraat"
},
{
"Name": "State",
"Value": ""
},
{
"Name": "CustomerReferencePartyName",
"Value": ""
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, a pending status is returned. This means the amount has yet to be debited from the customers' account.
customerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
customerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
mandatereference
string
|
The mandate reference used for the direct debit. |
mandatedate
string
|
The signing date of the mandate that was used. |
collectdate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
directdebittype
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Key": "8A535904648F4A90A2A9A97824XXXXXX",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "C620",
"Description": "Awaiting transfer to bank."
},
"DateTime": "2017-06-01T11:41:08"
},
"RequiredAction": null,
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
},
{
"Name": "MandateDate",
"Value": "2017-01-01"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "CustomerBIC",
"Value": ""
},
{
"Name": "CollectDate",
"Value": "2017-06-06"
},
{
"Name": "DirectDebitType",
"Value": "OneOff"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "C004",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": {
"MustRead": true,
"CultureName": null,
"Title": "Your SEPA Direct Debit has been scheduled.",
"PlainText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Tuesday, June 6, 2017. It will be done using the mandate reference 02Q3D175524FCF94C94A23B67E8DCE48E43.",
"HtmlText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Tuesday, June 6, 2017. It will be done using the mandate reference <b>02Q3D175524FCF94C94A23B67E8DCE48E43<\/b>."
},
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "6AC8A96E26BD4F7D8D200C53BEXXXXXX"
}
Push
JSON push response
The initial transaction status will be 'pending', which will be pushed first. When the amount has been debited from the consumer's bank account, a second push with the final status will be performed.
customerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
customerIBAN
string
|
The IBAN for the customer bank account on which the direct debit will be performed. |
mandatereference
string
|
The mandate reference used for the direct debit. |
mandatedate
string
|
The signing date of the mandate that was used. |
collectdate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
directdebittype
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Transaction": {
"Key": "8A535904648F4A90A2A9A97824XXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "SepaDirectDebit",
"Status": {
"Code": {
"Code": 190,
"Description": "Succes"
},
"SubCode": {
"Code": "C000",
"Description": "Succes"
},
"DateTime": "2017-06-01T11:43:45"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "C004",
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
},
{
"Name": "MandateDate",
"Value": "2017-01-01"
},
{
"Name": "CustomerIBAN",
"Value": "NL13TEST0123456789"
},
{
"Name": "CustomerBIC",
"Value": ""
},
{
"Name": "CollectDate",
"Value": "2017-06-06"
},
{
"Name": "DirectDebitType",
"Value": "OneOff"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "6AC8A96E26BD4F7D8D200C53BEXXXXXX"
}
}
PayWithEmandate
Create a Sepadirectdebit using only the mandatereference of a valid Emandate. All bankinformation needed for the transaction will be retrieved from the Emandate.
Request
JSON gateway request
Important note: if you plan on using the transaction for recurring payments, then provide an Emandate mandatereference that's activated for recurring direct debits (please see the CreateMandate action in the Emandates section). Secondly, also provide the basic parameter Startrecurrent with value TRUE.
MandateReference
string
|
Required
This is the MandateID retrieved from a successful Emandate request. |
Collectdate
date
|
The date (dd-mm-yyyy) on which the direct debit should be collected from the consumer account. Important note: if combined with Credit Management, the collect date should always precede the due date of the invoice, since you don't want to trigger a reminder step before debiting the customer. If however, the collect date is accidentally set after the due date, then the first reminder step will be postponed till the collect date, but only if it's set within 14 days after the due date. If it's set further than that, then our system will perform another check after 14 days and so on. |
Startrecurrent
boolean
|
This is a basic parameter, not a service specific parameter. Required to be TRUE if the transaction should be able to be used as a reference for recurring payments. If not then the parameter can be left out or have value FALSE. |
JSON
{
"Currency": "EUR",
"AmountDebit": 10,
"Invoice": "testfactuur123",
"Services": {
"ServiceList": [
{
"Name": "SepaDirectDebit",
"Action": "PayWithEmandate",
"Parameters": [
{
"Name": "MandateReference",
"Value": "001D284C4A887F84756A1425A369997xxxx"
}
]
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
MandateReference
string
|
This is the MandateID from the Emandate. |
MandateDate
date
|
The signing date of the mandate that was used. |
CustomerIBAN
string
|
The IBAN number of the customer bank account |
CustomerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
CollectDate
string
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
DirectDebitType
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Key": "A96C49E911D647019AD4FFAF2C65xxx",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "C620",
"Description": "Awaiting transfer to bank."
},
"DateTime": "2017-09-05T08:37:24"
},
"RequiredAction": null,
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "001D284C4A887F84756A1425A369997xxxx"
},
{
"Name": "MandateDate",
"Value": "2017-08-10"
},
{
"Name": "CustomerIBAN",
"Value": "NL44RABO012345xxxx"
},
{
"Name": "CustomerBIC",
"Value": "INGBNL2A"
},
{
"Name": "CollectDate",
"Value": "2017-09-08"
},
{
"Name": "DirectDebitType",
"Value": "OneOff"
}
]
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testfactuur123",
"ServiceCode": "SepaDirectDebit",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "C004",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": {
"MustRead": true,
"CultureName": null,
"Title": "Your SEPA Direct Debit has been scheduled.",
"PlainText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Friday, September 8, 2017. It will be done using the mandate reference 001D284C4A887F84756A1425A369997F732.",
"HtmlText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Friday, September 8, 2017. It will be done using the mandate reference <b>001D284C4A887F84756A1425A369997xxxx<\/b>."
},
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "J. de Tèster",
"PayerHash": null,
"PaymentKey": "793DB44B0B1D4E0FB2E97862ABF2xxxx"
}
Push
JSON push response
Once the money has been collected from the consumer, the transaction will receive a success status and will be pushed.
MandateReference
string
|
This is the MandateID from the Emandate. |
MandateDate
date
|
The signing date of the mandate that was used. |
CustomerIBAN
string
|
The IBAN number of the customer bank account |
CustomerBIC
string
|
The BIC code for the customer bank account on which the direct debit will be performed. |
CollectDate
date
|
The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit. |
DirectDebitType
string
|
Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence. |
JSON
{
"Transaction": {
"Key": "A96C49E911D647019AD4FFAF2C65xxxx",
"Invoice": "testfactuur123",
"ServiceCode": "SepaDirectDebit",
"Status": {
"Code": {
"Code": 190,
"Description": "Succes"
},
"SubCode": {
"Code": "C000",
"Description": "Succes"
},
"DateTime": "2017-09-05T08:41:05"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "C004",
"Services": [
{
"Name": "SepaDirectDebit",
"Action": null,
"Parameters": [
{
"Name": "MandateReference",
"Value": "001D284C4A887F84756A1425A369997xxxx"
},
{
"Name": "MandateDate",
"Value": "2017-08-10"
},
{
"Name": "CustomerIBAN",
"Value": "NL44RABO012345xxxx"
},
{
"Name": "CustomerBIC",
"Value": "INGBNL2A"
},
{
"Name": "CollectDate",
"Value": "2017-09-08"
},
{
"Name": "DirectDebitType",
"Value": "OneOff"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "J. de Tèster",
"PayerHash": null,
"PaymentKey": "793DB44B0B1D4E0FB2E97862ABF2xxxx"
}
}