Sofort integration guide

Sofort logo 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 nameSofort through Checkout.com
Supported transaction typesTutorial )
  • Refund ( API
  • Tutorial )
    Supported integration methods
    Supported processing currenciesEUR
    Webhook event types
    • TRANSACTION_AUTHORIZED
    • TRANSACTION_REFUNDED
    • TRANSACTION_SETTLED

    Gateway-specific information

    You can choose to integrate with the Sofort alternative payment method through the Checkout.com connection/gateway.

    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)
    • Netherlands, The (NL)
    • Spain (ES)

    Configuration

    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.

    FieldRequired?Description
    data.amountYesThe transaction amount.
    data.currencyYesThe three-character ISO currency code for the transaction.
    For Sofort through Checkout.com (sofortCheckout), supported currency is only EUR.
    data.customer.orderNumberYesThe order number.
    data.customer.firstNameYesThe customer's first name, as it is set for the payment method.
    data.customer.lastNameYesThe customer's last name, as it is set for the payment method.
    data.customer.emailYesThe customer's email address.
    data.customer.billToCountryNoThe two-character (Alpha-2) ISO country code.
    Supported countries for sofortCheckout are AT, BE, DE, IT, NL, and ES.

    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.shipToAddressOneNoThe shipping address, if different from the billing address.
    data.customer.shipToAddressTwoNoAdditional shipping address information, if required.
    data.customer.shipToCityNoThe shipping city.
    data.customer.shipToStateNoThe shipping state or province. (If in the US, this must be the two-character state abbreviation).
    data.customer.shipToPostalNoThe shipping postal code.
    data.customer.shipToCountryNoThe two-character (Alpha-2) ISO shipping country code.
    data.customer.shipToPhoneNoThe shipping phone number.
    data.descriptionNoA description of the transaction.
    data.paymentMethodNoThe 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 sofortCheckout.
    customerRedirectUrlNoThe 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.merchantIdNoThe Nexio merchant ID (MID).
    processingOptions.paymentOptionTagNoA custom value used to route transactions to a specific gateway or merchant account.
    uiOptions.displaySubmitButtonNoSet to true to include a submit button in the multi iframe.
    uiOptions.cssNoThe 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": "sofortCheckout",
        "customer": {
          "orderNumber": "12345678",
          "firstName": "John",
          "lastName": "Doe",
          "email": "[email protected]",
          "billToCountry": "DE"
        }
      }
    }'
    
    {
      "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": [...],
      "buttonIFrameUrls": [
        {
          "paymentMethod": "sofortCheckout",
          "url": "https://api.nexiopaysandbox.com/apm/v3?token=830d36f6-a5e3-4455-9600-3a55b63e2fc2&paymentMethod=sofortCheckout"
        }
      ]
    }
    

    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.

    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:

    Testing data

    For testing data, see 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 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.

    SaleSuccessful sale transactions have the following statuses:
    • pending*
    • settled
    RefundSuccessful refund transactions have the following status:
    • settled

    *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.