Sofort integration guide
Sofort is a payment provider allowing customers to pay using payment methods saved to their Sofort account, a popular payment method in Europe. This section is intended to help you implement Sofort based on your preferred integration workflow.
Services and compatibility
Payment method gateway name | Sofort through Adyen Sofort through Checkout.com |
Supported transaction types | |
Supported integration methods |
|
Supported processing currencies | For Sofort through Adyen:
|
Webhook event types |
|
Gateway-specific information
You can choose to integrate with the Sofort alternative payment method through either the Adyen or Checkout.com connection/gateway.
For installments or recurring payments, you can use Sofort through Adyen to run the initial transaction, saving the APM token from a successful response. Then, use SEPA through Adyen to run subsequent transactions. Sofort through Checkout.com does not support installments or recurring payments. For additional information, see Recurring payments.
Nexio supports the following countries and regions for the customer's billing country with Sofort:
- Austria (AT)
- Belgium (BE)
- Germany (DE)
- Italy (IT) - Sofort through Checkout.com only
- Great Britain (GB) - Sofort through Adyen only
- Netherlands, The (NL) - Sofort through Checkout.com only
- Spain (ES) - Sofort through Checkout.com only
- Switzerland (CH) - Sofort through Adyen only
Configuration
Sofort through Adyen
Apart from working with Integrations Support to add Sofort through Adyen as a payment method, you do not need to do any other configuration steps.
If you want to support saved APM tokens and recurring or installment payments, you must use Sofort through Adyen. You must also work with Integrations Support to enable SEPA through Adyen.
For Sofort through Adyen, you must provide the following information to Integrations Support:
- All required information for Adyen
- Adyen client key
Sofort through Checkout.com
When adding Sofort through Checkout.com, you need to work with Integrations Support to add it as a payment method. You also need to configure your Checkout.com account to enable the Sofort payment method.
For Sofort through Checkout.com, you must provide the following information to Integrations Support:
- Checkout.com private key (secret key)
- Checkout.com processing channel ID
Required fields
The following table shows the required and optional fields for Sofort transactions in the Create APM one-time-use token request.
Field | Required? | Description |
---|---|---|
data.amount | Yes | The transaction amount. |
data.currency | Yes | The three-character ISO currency code for the transaction. For Sofort through Adyen ( adyenSofort ), supported currencies are CHF, EUR, and GBP.For Sofort through Checkout.com ( sofortCheckout ), supported currency is only EUR. |
data.customer.orderNumber | Yes | The order number. |
data.customer.firstName | Yes | The customer's first name, as it is set for the payment method. |
data.customer.lastName | Yes | The customer's last name, as it is set for the payment method. |
data.customer.email | Yes | The customer's email address. |
data.customer.billToCountry | Conditional | The two-character (Alpha-2) ISO country code. Supported countries for adyenSofort are AT, BE, DE, GB, and CH.Supported countries for sofortCheckout are AT, BE, DE, IT, NL, and ES.Required for adyenSofort .Optional for sofortCheckout , however, if not included in the request, the customer may override the country value and select an option that is not supported, resulting in an error response. |
data.customer.shipToAddressOne | No | The shipping address, if different from the billing address. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.shipToAddressTwo | No | Additional shipping address information, if required. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.shipToCity | No | The shipping city. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.shipToState | No | The shipping state or province. (If in the US, this must be the two-character state abbreviation). Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.shipToPostal | No | The shipping postal code. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.shipToCountry | No | The two-character (Alpha-2) ISO shipping country code. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.shipToPhone | No | The shipping phone number. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.customer.customerRef | No | Customer identifier. You can use this field to pass a customer ID to the APM or to manage user subscriptions. Only used with Sofort through Adyen ( adyenSofort ). |
data.description | No | A description of the transaction. Only used with Sofort through Checkout.com ( sofortCheckout ). |
data.paymentMethod | No | The identifier for the alternative payment method. Use this parameter when you want to only return the Sofort iframe button URL (rather than data for all payment methods associated with the account). The value to use is adyenSofort or sofortCheckout , depending on your integration. |
customerRedirectUrl | No | The URL to which the customer will be redirected after completing their payment. The customer will be sent here upon successful or failed payment. This URL must use the HTTPS protocol. |
processingOptions.merchantId | No | The Nexio merchant ID (MID). |
processingOptions.paymentOptionTag | No | A custom value used to route transactions to a specific gateway or merchant account. |
processingOptions.saveRecurringToken | No | If you want to save a recurring token for a future merchant-initiated transaction (MIT) or customer-initiated transaction (CIT), include this parameter in the body of your one-time-use token request and set it equal to true. Only used with Sofort through Adyen ( adyenSofort ). For more information, see Recurring payments. |
uiOptions.displaySubmitButton | No | Set to true to include a submit button in the multi iframe. |
uiOptions.css | No | The URL where your custom CSS file is hosted. This CSS only applies to the multi iframe integration method. |
Example requests
The following are example one-time-use token requests for Sofort.
curl -X POST https://api.nexiopaysandbox.com/apm/v3/token \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Basic [Base64_encoded_login]'
-d '{
"data": {
"amount": 4.00,
"currency": "EUR",
"paymentMethod": "adyenSofort",
"customer": {
"orderNumber": "12345678",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"billToCountry": "AT"
}
}
}'
curl -X POST https://api.nexiopaysandbox.com/apm/v3/token \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Basic [Base64_encoded_login]'
-d '{
"data": {
"amount": 4.00,
"currency": "EUR",
"paymentMethod": "sofortCheckout",
"customer": {
"orderNumber": "12345678",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"billToCountry": "DE"
}
}
}'
A successful request returns a response similar to the following:
{
"expiration": "2023-09-18T15:43:05.664Z",
"token": "830d36f6-a5e3-4455-9600-3a55b63e2fc2",
"asyncTraceId": "830d36f6-a5e3-4455-9600-3a55b63e2fc2",
"expressIFrameUrl": "https://www.api.nexiopaysandbox.com/v3?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2",
"redirectUrls": [
{
"paymentMethod": "adyenSofort",
"url": "https://api.nexiopaysandbox.com/apm/v3/popup?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2&paymentMethod=adyenSofort"
}
],
"buttonIFrameUrls": [
{
"paymentMethod": "sofortCheckout",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2&paymentMethod=sofortCheckout"
},
{
"paymentMethod": "adyenSofort",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2&paymentMethod=adyenSofort"
}
]
}
For the multi iframe integration method: You use the expressIFrameUrl
value in the steps for the transaction.
For the individual iframe option: You use the buttonIFrameUrls.url
(of the desired Sofort paymentMethod
) for the transaction.
For the custom redirect option: You use redirectUrls.url
of the Sofort paymentMethod
(only supported with adyenSofort
) for the transaction.
Transaction types and integration methods
Regardless of the integration method workflow you implement, consumers are redirected to Sofort to complete their transactions.
Nexio supports the following transaction types for Sofort:
- Recurring payments
- Sale
- In an iframe that displays all payment methods available to the customer (based on the customer’s location and the merchant’s configured payment methods)
- In an individual iframe
- Using your own button or image (Sofort through Adyen only)
- In an iframe that displays all payment methods available to the customer (based on the customer’s location and the merchant’s configured payment methods)
- Refund
Recurring payments
You can use Sofort through Adyen to run an initial transaction, then use the saved APM token to run subsequent transactions with SEPA through Adyen. This works similarly to saving a card token and using it for future transactions (whether the customer is present or not).
The basic steps are the following:
- Request an APM one-time-use token. In the request, include the
processingOptions.saveRecurringToken
parameter and set it equal totrue
. - Run the sale transaction as normal for the integration method.
- Save the
apm.token
value returned in a successful response. - For a subsequent transaction, whether merchant-initiated (MIT) or customer-initiated (CIT), send a POST request to the Run APM transaction endpoint. In the request, use the saved APM token.
The system runs the transaction through a Nexio merchant account that has been configured with the SEPA through Adyen payment method.
For additional information about MIT, see the Run a merchant-initiated recurring transaction topic.
Testing data
For testing data, see one of the following pages:
- Adyen's Test and go live section of the "Sofort for API only" page.
- Checkout.com's Testing Sofort section of the "Sofort" page.
Response handling
In the one-time-use token request, Sofort gets returned in the paymentMethod
parameter as adyenSofort
or sofortCheckout
.
Nexio responds with transaction results in one of the following ways, depending on your integration workflow:
- Event messages: This applies to integrations that do not pass a
customerRedirectUrl
in the request. - Response fields in the URL: This applies to integrations that do provide a
customerRedirectUrl
in the request.
In addition to one of the above, if your merchant account is configured to receive webhooks, Nexio provides responses to the webhook URLs that have been registered. For further explanation of the webhook event types, see the webhook Event types table.
For Sofort, these are the possible webhook event types:
- TRANSACTION_AUTHORIZED
- TRANSACTION_REFUNDED
- TRANSACTION_SETTLED
For information about how to run each of the integration workflows, see Transaction types and integration methods above.
Status workflows
The status of a successful transaction with Sofort varies, depending on the options you choose.
Sale | Successful sale transactions have the following statuses:
|
Refund | Successful refund transactions have the following status:
|
*Pending status displays as "authorized" or "AUTHORIZED" in the Nexio Dashboard; it displays as 10
, meaning "authorized", in the response when querying transactions (for more information about transactionStatus
, see the table).
Next steps
Now, you are ready to get started with running transactions:
If you have any additional questions or feedback, see Contact us.
Updated 28 days ago