- METHOD TYPEReal-Time Bank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Sofort is now part of Klarna, streamlining payments for a superior and more efficient checkout experience.
Supported Countries
- Austria
- Belgium
- France
- Germany
- Italy
- Netherlands
- Slovakia
- Spain
- Switzerland
Supported Currencies
- CHF
- EUR
Payment (Deposit) Flow
Do the following to perform a payment using Nuvei REST API integration:
1. Send a /payments Request
Perform the payment by sending a /payments request with its mandatory parameters including:
buyerDetails.buyerIdamountcurrencypaymentOption.alternativePaymentMethodclass containing:name: “sofort”
deviceDetailsclass containing:ipAddressbuyerDetails.billingAddressclass containing:countryCodebuyerDetailsclass containing:firstName,lastName,email
Example /payments Request
{
"processingEntityId": "<<processing entity id>>",
"amount": 12,
"currency": "EUR",
"transactionType": "Sale",
"paymentOption": {
"alternativePaymentMethod": {
"name": "sofort"
}
},
"custom": {
"description": "Some description"
},
"deviceDetails": {
"deviceType": "desktop",
"deviceName": "iPhone 5s",
"deviceOS": "iOs 10.2",
"ipAddress": "192.168.2.38"
},
"buyerDetails": {
"buyerId": "JohnSmith123",
"firstName": "John",
"lastName": "JSmith",
"companyName": "Nuvei Corp",
"locale": "bg-BG",
"dateOfBirth": "1978-01-01",
"email": "[email protected]",
"phone": "+1234567889",
"billingAddress": {
"address": "30 Alenbi st",
"zip": "1234",
"city": "Berlin",
"countryCode": "DE",
"phone": "+1234567889",
"addressMatch": true
},
"shippingAddress": {
"sameAsBilling": true,
"address": "30 Alenbi st",
"zip": "1234",
"city": "Berlin",
"countryCode": "DE",
"phone": "+1234567889"
}
}
}
The response generates and returns a redirect URL (redirectUrl) to redirect the customer to the payment page, as well as a UPO (paymentTokenId) for use in future transactions.
Example /payments Response
{
"paymentId": "a26e7096e4ce4a64ba7ad2cd7314f740",
"amount": 12,
"currency": "EUR",
"transactionType": "Sale",
"result": {
"status": "redirect"
},
"redirectUrl": "https://www.directebanking.com/payment/start?user_id=27211&project_id=132140&sender_holder=John+JSmith&sender_country_id=DE&amount=12¤cy_id=EUR&reason_1=7110000001617319&reason_2=test&user_variable_0=jumpbox.safecharge.com%2Fdmz%2FSofort%2FSofortResponse.ashx&user_variable_1=2C1D4E1ADA3ED067D1080620C7399C14&user_variable_2=2C1D4E1ADA3ED067D1080620C7399C14&user_variable_3=7110000001617319&language_id=bg&hash=0FC98A241DD95C9CA5DE3E4EDB6A9A7386EF32A3 ",
"paymentOption": {
"alternativePaymentMethod": {
"name": "sofort",
"paymentTokenId": "d18dce0f16a84bfeb5f35d2acf5873e0"
}
}
}
After the transaction is processed, Nuvei sends a webhooks (DMN) that includes the result of the transaction to the URL provided in urlDetails.webhookUrl, which Nuvei recommends including in the /payments request.
Payout (Withdrawal) Flow
To initiate payouts with Sofort, you can submit a request using either of the following parameters:
- Using
paymentOption.alternativePaymentMethodclass.
Example Request
{
"processingEntityId": "123e4567-e89b-12d3-a456-426614174000",
"amount": 60,
"currency": "EUR",
"paymentOption": {
"alternativePaymentMethod": {
"name": "sofort"
}
},
"buyerDetails": {
"buyerId": "buyerId123",
"firstName": "John",
"lastName": "JSmith",
"companyName": "Nuvei Corp",
"locale": "bg-BG",
"dateOfBirth": "1978-01-01",
"email": "[email protected]",
"phone": "+1234567889",
"billingAddress": {
"state": "TX",
"city": "Austin",
"zip": "78652",
"countryCode": "US"
},
"shippingAddress": {
"sameAsBilling": true
}
}
}
- Using
paymentToken.paymentTokenIdclass – This method utilizes a previously stored Alternative Payment Method (APM) account via a payment token.
Example Request
{
"processingEntityId": "123e4567-e89b-12d3-a456-426614174000",
"amount": 60,
"currency": "EUR",
"paymentOption": {
"paymentToken": {
"paymentTokenId": "abc123def456ghi789jkl012mno345pq"
}
},
"buyerDetails": {
"buyerId": "buyerId123",
"firstName": "John",
"lastName": "JSmith",
"companyName": "Nuvei Corp",
"locale": "bg-BG",
"dateOfBirth": "1978-01-01",
"email": "[email protected]",
"phone": "+1234567889",
"billingAddress": {
"state": "TX",
"city": "Austin",
"zip": "78652",
"countryCode": "US"
},
"shippingAddress": {
"sameAsBilling": true
}
}
}
User Experience
- The user is redirected to the Klarna website.
- The user enters the name of the bank, BLZ, IBAN, or BIC, and selects the bank.

- The user enters a username and password.

- The user selects a bank account.

- The user confirms the order using a TAN (or similar authentication).

- A confirmation message appears.

Testing
Bank code: 88888888
Account number: 1234
PIN: 1234
TAN: 12345