SEPA through Adyen integration guide
The SEPA (Single Euro Payments Area) through Adyen is a pan-European network that allows consumers to send and receive payments in euros (€) between two cross-border bank accounts in the eurozone. With SEPA, sending money within the eurozone is as easy as making your usual domestic bank transfers.
Services and compatibility
Payment method gateway name | Adyen |
Supported transaction types | |
Supported integration methods |
|
Supported processing currencies | EUR |
Webhook event types |
|
Gateway-specific information
Because SEPA through Adyen is only for euros, the merchant account (MID) used for this payment method must have EUR as the settlement currency.
SEPA through Adyen supports the iframe integration method. However, Nexio recommends that integrations use the Adyen Drop-in because it gives a better experience to the user and easier implementation for the merchant. Note that the drop-in is not for auth-only transaction types. When using the Drop-In, you must include all the required fields for all the potential alternative payment methods that you want to display in the Drop-In.
Important
When using the Adyen Drop-in, ensure that you configure Adyen to only use Adyen alternative payment methods that Nexio supports. Failure to do this results in errors.
SEPA through Adyen also supports installments or recurring payments. To enable it for a transaction, include the processingOptions.saveRecurringToken
parameter in the request to create a one-time-use token. For additional information, see Recurring payments.
Bank transactions, such as with SEPA through Adyen, do not allow for chargebacks.
Configuration
Apart from working with Integrations Support to add SEPA through Adyen as a payment method, you do not need to do any other configuration steps. You need to provide Integrations Support with your Adyen client key.
If you want to use the Adyen Drop-In, work with Integrations Support to add that as a separate payment method. You must also configure the Drop-in through Adyen's site. Ensure that you configure it to only use payment methods that Nexio supports.
Required fields
The following table shows the required and optional fields for SEPA through Adyen 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 SEPA through Adyen ( adyenSepa or adyenDropIn ), the only supported currency is EUR. |
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.orderNumber | Yes | The order number. |
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. For more information about how this changes the process flow, see Response handling below. |
data.customer.customerRef | No | Customer identifier. You can use this field to pass a customer ID to the APM or to manage user subscriptions. |
data.description | No | A description of the transaction. |
data.paymentMethod | No | The identifier for the alternative payment method. Use this parameter when you want to only return the SEPA iframe button URL (rather than data for all payment methods associated with the account). The value to use is adyenSepa or adyenDropIn , depending on your integration. |
isAuthOnly | No | Set to true to run an auth only transaction. |
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. 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 SEPA through Adyen for the iframe integration methods:
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": 10.15,
"currency": "EUR",
"customer": {
"orderNumber": "12345678",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]"
},
"paymentMethod": "adyenSepa"
}
}'
curl --request POST \
--url https://api.nexiopaysandbox.com/apm/v3/token \
--header 'accept: application/json' \
--header 'authorization: Basic Z3dpbm5AbmV4LmlvOjZ6VVFjOlFlekg4NndQRQ==' \
--header 'content-type: application/json' \
--data '
{
"isAuthOnly": false,
"data": {
"amount": 10.15,
"currency": "EUR",
"customer": {
"orderNumber": "210058A",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"customerRef": "RP006"
},
"description": "Description",
"paymentMethod": "adyenSepa"
},
"processingOptions": {
"saveRecurringToken": false,
"merchantId": "000999",
"paymentOptionTag": "paymentoptiontag"
},
"uiOptions": {
"css": "https://tester.nexiopaysandbox.com/example1.css"
},
"customerRedirectUrl": "https://www.your-ecommerce-website.com"
}
'
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": 10.15,
"currency": "EUR",
"customer": {
"orderNumber": "12345678",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]"
},
"processingOptions": {
"saveRecurringToken": true
}
"paymentMethod": "adyenSepa"
}
}'
A successful request returns a response similar to the following:
{
"expiration": "2023-09-18T15:43:05.664Z",
"token": "54a0106y-7750-45b1-961e-29ad95763a23",
"asyncTraceId": "54a0106y-7750-45b1-961e-29ad95763a23",
"expressIFrameUrl": "https://api.nexiopaysandbox.com/apm/v3?token=54a0106y-7750-45b1-961e-29ad95763a23",
"redirectUrls": [
...
],
"buttonIFrameUrls": [
{
"paymentMethod": "adyenSepa",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=54a0106b-7750-45b1-961e-29ad95763a23&paymentMethod=adyenSepa"
},
{
"paymentMethod": "adyenDropIn",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=54a0106b-7750-45b1-961e-29ad95763a23&paymentMethod=adyenDropIn"
},
{
"paymentMethod": "klarnaCheckout",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=54a0106b-7750-45b1-961e-29ad95763a23&paymentMethod=klarnaCheckout"
}
],
"scriptUrl": "https://api.nexiopaysandbox.com/apm/v3/scripts?token=54a0106y-7750-45b1-961e-29ad95763a23"
}
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 "paymentMethod": "adyenSepa"
for the transaction.
For the Adyen Drop-in option: You use the buttonIFrameUrls.url
of the adyenDropIn
paymentMethod
. Add this URL to the "src" of an iframe on the payment page.
Transaction types and integration methods
Regardless of the integration method workflow you implement, consumers see a payment form in an iframe on the page.
Nexio supports the following transaction types for SEPA through Adyen:
- Auth Only
- 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
- In the Adyen drop-in
- 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)

Recurring payments
You can use SEPA through Adyen to run an initial transaction, then use the saved APM token to run subsequent transactions. You can do this for transactions that are merchant-initiated (MIT) or customer-initiated (CIT). 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.
For additional information about MIT, see the Run a merchant-initiated recurring transaction topic.
Testing data
Adyen has an extensive list of test accounts. For more information, see SEPA Direct Debit on Adyen's site.
Response handling
In the one-time-use token request, SEPA through Adyen gets returned in the paymentMethod
parameter as adyenSepa
or adyenDropIn
.
When implementing merchant-initiated recurring transactions, you need to save the apm.token
parameter from the response. For more information, see Run a merchant-initiated recurring transaction.
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 SEPA through Adyen, these are the possible webhook event types:
- TRANSACTION_AUTHORIZED
- TRANSACTION_CAPTURED
- TRANSACTION_REFUNDED
- TRANSACTION_SETTLED
- TRANSACTION_VOIDED
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 SEPA through Adyen varies, depending on the options you choose.
Sale | When isAuthOnly is false , successful sale transactions have the following statuses:
|
Auth only | When isAuthOnly is true , successful sale transactions have the following statuses:
|
Capture | Successful capture transactions have the following status:
|
Void | Successful void transactions have the following status:
|
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 8 days ago