
General
The merchant starts by sending the request for a Sofortbanking payment to a BPE transaction gateway. The gateway processes the request and sends a response to the merchant. If the request is sent to a gateway without a customer redirect, the response will contain a redirect URL to which the customer must be redirected. If in the original request the customer was redirected along to the Buckaroo public gateway, the customer is automatically redirected to payment page at Sofortbanking by the transaction gateway. Once the customer reaches this page, he can enter his banking information. Once these have been entered and verified the payment is executed immediately and the customer will be redirected back to the merchant website, along with the result. Additionally, the Payment Engine will also perform a Transaction Push, with the status of the payment.
Servicecodes and actions
The Sofort services uses these servicecodes: Sofortueberweisung, SofortDigital
The Sofort service supports the following actions: Pay, Refund. For both actions channel "Web" is supported.
Minimum transaction amount
In order to perform a successful Sofort transaction, it is required to provide a minimum transaction amount of 0.10 euro. Anything below that amount will result in a failure. This applies both in test and live mode.
Recurring payments
It is also possible to use a Sofort transaction as a reference transaction for recurring SEPA Direct Debit transactions. To do this, add the basic parameter "StartRecurrent" with value "True" to your Sofort API request. Once successful, you can perform a recurring SEPA direct debit transaction. Please see the SEPA Direct Debit section for an explanation of the "PayRecurrent" request.
Pay
The default action for Sofortbanking is Pay. This action has no input except the basic transaction details. Upon receiving this input, the consumer will be redirected to Sofortbanking site for verification and confirmation of the payment. After completion at the Sofortbanking site, the customer is redirected back to the merchant site.
Request
JSON gateway request
JSON
{
"Currency": "EUR",
"AmountDebit": 10,
"Invoice": "testinvoice 123",
"ClientIP": {
"Type": 0,
"Address": "0.0.0.0"
},
"Services": {
"ServiceList": [
{
"Name": "sofortueberweisung",
"Action": "Pay"
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
JSON
{
"Key": "F3FCCF41EBE243389838AD64718XXXXX",
"Status": {
"Code": {
"Code": 791,
"Description": "Pending processing"
},
"SubCode": {
"Code": "S002",
"Description": "An additional action is required: RedirectToSofort"
},
"DateTime": "2017-07-20T10:59:08"
},
"RequiredAction": {
"RedirectURL": "https://testcheckout.buckaroo.nl/html/redirect.ashx?r=8649FE9B96E641E281BE954E1ACXXXXX",
"RequestedInformation": null,
"PayRemainderDetails": null,
"Name": "Redirect",
"TypeDeprecated": 0
},
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "sofortueberweisung",
"IsTest": true,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "N074",
"MutationType": 1,
"RelatedTransactions": null,
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": "F10431F7293D4147A436FB3B43DXXXXX"
}
Push
JSON push response
If the immediate succes option is enabled, a confirmed payment will return a succes status (190).
CustomerIBAN
string
|
IBAN bank account number of the customer. |
CustomerBIC
string
|
BIC code of the customers' bank. |
JSON
{
"Transaction": {
"Key": "F3FCCF41EBE243389838AD64718XXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "sofortueberweisung",
"Status": {
"Code": {
"Code": 190,
"Description": "Success"
},
"SubCode": {
"Code": "P190",
"Description": "Payment has not yet arrived. A reversal is still possible. Refunding is not yet possible."
},
"DateTime": "2017-07-20T11:00:18+02:00"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountDebit": 10,
"TransactionType": "N074",
"Services": [
{
"Name": "sofortueberweisung",
"Action": null,
"Parameters": [
{
"Name": "CustomerIBAN",
"Value": "NL10SFRT00234XXXXX"
},
{
"Name": "CustomerBIC",
"Value": "SFRTNL20XXX"
}
],
"VersionAsProperty": 1
}
],
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": null,
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": "John Smith",
"PayerHash": null,
"PaymentKey": "F10431F7293D4147A436FB3B43DXXXXX"
}
}
Refund
To refund a successful Sofortbanking transaction, use the action Refund. A bank transfer is then initiated which transfers the amount of the original transaction back to the consumer. This is only possible once Buckaroo received the money from the original payment. This can take up to two working days after the initial succes confirmation of the original payment.
Request
JSON gateway request
OriginalTransactionKey
string
|
Required
Transactionkey of the payment that needs to be refunded. |
JSON
{
"Currency": "EUR",
"AmountCredit": 1,
"Invoice": "testinvoice 123",
"OriginalTransactionKey": "F3FCCF41EBE243389838AD64718C497B",
"Services": {
"ServiceList": [
{
"Name": "sofortueberweisung",
"Action": "Refund"
}
]
}
}
Response 200 Status: Ok 400 Status: Access denied 500 Status: Bad request
JSON gateway response
JSON
{
"Key": "DCA29123BE8A4FBFB901886AA2DXXXXX",
"Status": {
"Code": {
"Code": 690,
"Description": "Rejected"
},
"SubCode": {
"Code": "S122",
"Description": "The transaction is non-refundable."
},
"DateTime": "2017-07-20T11:23:36"
},
"RequiredAction": null,
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"RequestErrors": null,
"Invoice": "testinvoice 123",
"ServiceCode": "sofortueberweisung",
"IsTest": true,
"Currency": "EUR",
"AmountCredit": 1,
"TransactionType": "C543",
"MutationType": 1,
"RelatedTransactions": [
{
"RelationType": "refund",
"RelatedTransactionKey": "F3FCCF41EBE243389838AD64718XXXXX"
}
],
"ConsumerMessage": null,
"Order": null,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": "1A303AEB9E46437E900524A9453XXXXX"
}
Push
JSON push response
JSON
{
"Transaction": {
"Key": "DCA29123BE8A4FBFB901886AA2DXXXXX",
"Invoice": "testinvoice 123",
"ServiceCode": "sofortueberweisung",
"Status": {
"Code": {
"Code": 690,
"Description": "Afgewezen"
},
"SubCode": {
"Code": "S122",
"Description": "De transactie kan niet worden gerefund."
},
"DateTime": "2017-07-20T11:23:36+02:00"
},
"IsTest": true,
"Order": null,
"Currency": "EUR",
"AmountCredit": 1,
"TransactionType": "C543",
"Services": null,
"CustomParameters": null,
"AdditionalParameters": null,
"MutationType": 1,
"RelatedTransactions": [
{
"RelationType": "refund",
"RelatedTransactionKey": "F3FCCF41EBE243389838AD6471XXXXX"
}
],
"IsCancelable": false,
"IssuingCountry": null,
"StartRecurrent": false,
"Recurring": false,
"CustomerName": null,
"PayerHash": null,
"PaymentKey": "1A303AEB9E46437E900524A9453XXXXX"
}
}