Setup
Please follow the common Adyen instructions to get set up with Sofort. Next, make sure to enable Sofort as a payment method on your configured account.Supported countries
Adyen supports transactions from buyers in the following countries:| Country code | Country code | Country code | Country code | Country code | Country code |
|---|---|---|---|---|---|
AT | BE | CH | DE | ES | NL |
Supported currencies
Adyen supports processing payments in the following currencies:| Currency code | Currency code | Currency code |
|---|---|---|
CHF | EUR |
Integration
For Sofort, the default integration for Adyen is through a redirect to a hosted payments page.Redirect integration
Start by creating a new transaction with the following required fields.payment_method.approval_url and the buyer_approval_pending status.
approval_url so they can complete authentication and approve the payment. After approval the buyer is redirected to the redirect_url you provided when creating the transaction. Do not rely solely on the redirect - either poll the transaction or (recommended) rely on webhooks to detect the final status (for example capture_succeeded or failure states).
Direct integration
Adyen provides web, Android and iOS SDKs for a direct integration. For these flows you should indicate the platform by setting an appropriateintegration_client when creating the transaction, and then build a client-side integration that uses the POST /transactions/:transaction_id/session API to initialize the Adyen SDK.
To start, create a new transaction with the appropriate integration_client.
integration_client to ios or android and use your app deep link for redirect_url (for example, yourapp://).
After the transaction is created, the API response includes a session_token which can be used to get the session data for that transaction.
sessionId and sessionData required to load the Adyen SDK.
Complete the transaction
Recommended On mobile integrations, after the buyer completes the payment flow, the Adyen SDK provides the developer with anonFinished call, which includes a statusCode.
The system automatically syncs the status through webhooks, but to complete the transaction it is also recommended sending a GET request to the default_completion_url provided in the session response with the sessionId and the sessionResult as query parameters to finalize the transaction. This also moves the transaction to a completed status without waiting for the webhook to be sent.
The call returns a 204 No Content response. After receiving this response, you can also optionally fetch the transaction to confirm final status.