Sofort | Direct Bank Transfer
Learn how to accept direct bank transfer payments
Sofort, also known as Pay now with Klarna, is a popular online banking method in Germany, Austria, and Switzerland, and Belgium.
In order to pay with Sofort, customers are redirected to Sofort’s site where they enter their bank login credentials. Upon authentication, Sofort initiates a bank transfer from their bank account.
Although successful authorization indicates a very high likelihood of payment, funds are not guaranteed to your business until they are actually received, which is typically two business days later (but can be up to 14 days later). Once received, payments cannot be reversed except by business-initiated refunds.
Payment type | Online banking |
Market | Austria, Belgium, France, Germany, Italy, Netherlands, Poland, Spain, Sweden, Switzerland |
Customer currencies | EUR |
Processing currencies | EUR |
Settlement currencies | EUR |
Refunds | No |
Step 1. Make a transaction request
From your server, make a POST /payment_preauthorize request.
POST https://sandbox.payabl.com/pay/backoffice/payment_preauthorize
The process flow of this payment system is the same as the 3DSecure transaction procedure. Please note the following exceptions:
- For sofortüberweisung transactions, we don’t need
param_3d
parameter. - The redirect URL is provided in redirect_url, instead of
url_3ds
(used in step 2 and step 3) - Only Preauthorize interface should be used for sending transactions.
- Merchant would be notified on the notification URL about the accepted, success and the failed transaction, capture may remain in the accepted state until
credited
ornot_credited
notification has been received from the - Please pay special attention to the following pre-authorization interface parameters:
merchantid
: The merchant identification number.orderid
: The field orderid is optional and exclusively for the merchant's convenience.amount
: The amount field contains the transaction’s total amount. This is the amount that will be transmitted to the authorizing system.currency
: The currency field contains the alphanumeric currency code for the transaction, according to ISO 4217, e.g. EUR.payment_method
: The payment method id - 17.signature
: The signature field contains a 40-figure hexadecimal value. This signature value is a checksum designed to protect the merchant account from unauthorized access.email
: The customer's email address.url_return
: redirect URL after transaction completionurl_success
: Success transaction URLurl_failed
: Failed transaction URL
You can see a full list of parameters in Pre-Authorization.
Request example
/powercash21-3-2/backoffice/payment_preauthorize&merchantid=syed&amount=1.23¤cy=USD&orderid=Powercash21-Test&language=en&gender=M&lastname=Mann&street=An+der+Welle+4&zip=60322&city=Frankfurt&country=DEU&customerid=&salutation=Herr&title=&firstname=Muster&company=Powercash21&birthday=07071971&house=19&postbox=&state=HE&email=test%40inatec.com&phone=XXXXXXXXXX8501&fax=&mobile=&customerip=127.0.0.1&custom1=&custom2=&custom3=&url_return=http%3A%2F%2Fdev-sim-ng.inatec.local%2F%7Esimdad%2FInatecResponse%2Fredirect_response.php¬ification_url=http%3A%2F%2F83.169.19.140%2Fsimulation%2Fbilling_response.php&payment_method=118&signature=f92d6faa96f68296f95ebc45a7aafcdc9613cb1f
SofortÜberweisung contains an additional notification parameter which is payment_state
, which could contain the following values:
not_credited_yet
: Capture - Accepted.credited
: Capture - Successful.not_credited
: Capture - Failed.
Each state change would trigger a notification to the notification URL, notification URL is the URL that was provided when the merchant account was created.
Sofort does not support iFrame, full page redirect needs to be done.
Step 2. Handle the redirect
To complete the payment, you need to redirect the customer to the correct URL in the response.
Response
transactionid=213533786&transid=213533786&status=2000&errormessage=pending&errmsg=pending&amount=1.23&price=1.23¤cy=USD&orderid=Powercash21-Test&amount=1.23¤cy=USD&redirect_url=https%3A%2F%2Frouting.eps.or.at%2Fappl%2FepsSO-test%2Ftransinit%2Fbankauswahl_prepare.html%3Flang%3Dde%26caiSO%3D%252BPwCnU1ujZDOeD5qZHmWXHtRo&user_id=46929&redirect_url=http%3A%2F%2Fdevpc21n-03.inatec.local%3A12930%2Fpowercash21-3-2%2Fcaf19e52af1818535f57ab1a9cd5ab3bee602e57%2Fpayment%2Fredirect_to_bank
Notification example - Accepted Notification
"timestamp=1664178208&type=capture&orderid=Payabl-Test&errormessage=&payment_state=not_credited_yet&security=XXXXcd1173c7f012c1c913309412f40a968cb08ee06f122f76da88f13ebc746e&payment_method=118&transactionid=215437637&errorcode=0"
Notification example - Successful Notification
"errormessage=&type=capture&errorcode=0&payment_state=credited&payment_method=118&transactionid=215437637&orderid=Payabl-Test×tamp=1664194338&security=XXXXe01aba2542627958ffadaf2cc05025cc7ccb4b9ca27e08f225667"
Additional Customer details can be added to both callbacks. Please contact Tech support to enable them:
- bank_country (alpha2 format)
- bic
- payment_system
- account_holder
- iban
When the customer finished or canceled the payment, he will be redirected back to url_return
, provided by you in the initial request to payment_preauthorize. After that, you will receive a notification, posted to notification_url
, with the final transaction status, which you suppose to use to update your system.
url_return
andnotification_url
should be provided by you to payabl. technical team.
Notification example with additional account parameters.
"bank_number=70440&account_number=LTXXXXXXXXXXXXXX4024&payment_state=credited&bank_name=SEB&
errormessage=&type=capture&transactionid=116033311&account_holder=muster+mann&
bank_country=LITHUANIA×tamp=1605788760&
security=19667fb6d9d2f3c8457e29d949f72319a9986b88b0be47050d9fc49f746d279b&orderid=6eebd443fb407e3f35f0&errorcode=0" "https://www.notification_url"
Updated 4 months ago