Sofort

Learn how to accept Sofort 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.powercash21.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:

  1. For sofortüberweisung transactions, we don’t need param_3d parameter.
  2. The redirect URL is provided in redirect_url, instead of url_3ds (used in step 2 and step 3)
  3. Only Preauthorize interface should be used for sending transactions.
  4. 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 or not_credited notification has been received from the
  5. 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.
  • language: This parameter determines the language in which Trustly pages will be shown
    valid values: de en.
  • country: Customer country in ISO Alpha-3 format. Supported countries: AUT, BEL, CZE, DEU, DNK, EST, ESP, FIN, LTU, LVA, NLD, NOR, POL, SWE, SVK.
  • email: The customer's email address.
  • iban: Customers IBAN
  • bic: Customers BIC
  • accountname: Accountname: 3 to 100 Characters
  • url_success: Success transaction URL
  • url_failed: Failed transaction URL
    You can see a full list of parameters in Pre-Authorization.

Response example

/powercash21-3-2/backoffice/payment_preauthorize&merchantid=syed&amount=1.23&currency=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&url_success=http%3A%2F%2Fdev-sim-ng.inatec.local%2F%7Esimdad%2FInatecResponse%2Fsuccess.php&url_failed=http%3A%2F%2Fdev-sim-ng.inatec.local%2F%7Esimdad%2FInatecResponse%2Ffailed.php&notification_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&currency=USD&orderid=Powercash21-Test&amount=1.23&currency=USD&iban=&
payment_ref_identifier=&account_name=&redirect_url=https%3A%2F%2Frouting.eps.or.at%2Fappl%2FepsSO-test%2Ftransinit%2Fbankauswahl_prepare.html%3Flang%3Dde%26caiSO%3D%252BPwCnU1ujZDOeD5qZHmWXHtRo&
bic=&user_id=46929&redirect_url=http%3A%2F%2Fdevpc21n-03.inatec.local%3A12930%2Fpowercash21-3-2%2Fcaf19e52af1818535f57ab1a9cd5ab3bee602e57%2Fpayment%2Fredirect_to_bank

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.

Notification URL can be configured by our tech support team in your account on our side,
or you can send it as a parameter notification_url in the initial request to payment_preauthorize.

Notification example

"transactionid=116033311&type=capture&security=67cf6863d378sdfdsfdsaeb91dc5a9c072f7f1&
errormessage=&errorcode=0&orderid=743222831" "https://www.notification_url"

📘

url_return and notification_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&timestamp=1605788760&
security=19667fb6d9d2f3c8457e29d949f72319a9986b88b0be47050d9fc49f746d279b&orderid=6eebd443fb407e3f35f0&errorcode=0" "https://www.notification_url"

Did this page help you?