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.

View in playground

Request


JSON gateway request

JSON

copy
{
   "Currency": "EUR",
   "AmountDebit": 10,
   "Invoice": "testinvoice 123",
   "ClientIP": {
      "Type": 0,
      "Address": "0.0.0.0"
   },
   "Services": {
      "ServiceList": [
         {
            "Name": "sofortueberweisung",
            "Action": "Pay"
         }
      ]
   }
}

Response


JSON gateway response

JSON

copy
{
   "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

IBAN bank account number of the customer.

CustomerBIC

BIC code of the customers' bank.

JSON

copy
{
   "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.

View in playground

Request


JSON gateway request

OriginalTransactionKey
Required

Transactionkey of the payment that needs to be refunded.

JSON

copy
{
   "Currency": "EUR",
   "AmountCredit": 1,
   "Invoice": "testinvoice 123",
   "OriginalTransactionKey": "F3FCCF41EBE243389838AD64718C497B",
   "Services": {
      "ServiceList": [
         {
            "Name": "sofortueberweisung",
            "Action": "Refund"
         }
      ]
   }
}

Response


JSON gateway response

JSON

copy
{
   "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

copy
{
   "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"
   }
}