No momento, esta página não está disponível em português
Payment-method icon

iDEAL for API only

Add iDEAL to your API-only integration.

You can add iDEAL to your existing integration. The following instructions show only what you must add to your integration specifically for iDEAL.

If an instruction on this page corresponds with a step in the main integration guide, it includes a link to corresponding step of the main integration guide.

Requirements

Requirement Description
Integration type Make sure that you have an existing API-only integration.
Redirect handling Make sure that your existing integration is set up to handle the redirect.
action.type: redirect.
Setup steps Before you begin, add iDEAL in your Customer Area.

How it works

  1. The shopper selects iDEAL as the payment method.
  2. The shopper enters their details in the payment form that you build.
  3. When you make the payment request, you include additional information about the items that the shopper intends to purchase.
  4. You fulfill the order by sending items to the shopper.

Build your payment form

Include fields to collect the following information from your shopper in the payment form.

You can download the logo for iDEAL to use in your form.

Get iDEAL as an available payment method

When you make the /paymentMethods to get available payment methods, specify the following so that iDEAL is included in the response.

Parameter Values
countryCode NL
amount.currency EUR
amount.value The value of the payment.

Add additional parameters to your /payments request

When you make a payment, add the following parameters:

Parameter Description
paymentMethod.type ideal
returnUrl The URL where the shopper will be redirected back to after they complete the payment. This URL can have a maximum of 1024 characters.

Handle the redirect

  1. To complete the payment, redirect the shopper to the action.url returned in the /payments response, taking into account the following recommendations:

    • When using the HTTP GET method:
      For security reasons, when showing the redirect in the app, we recommend that you use SFSafariViewController for iOS or Chrome Custom Tabs for Android, instead of WebView objects. Also refer to the security best practices for WebView.

    • Redirection for mobile integrations:
      For mobile integrations, we strongly recommended that you redirect the shopper to the default browser of their device. Redirecting to the default browser ensures the best compatibility, handling of multi-factor authentication, app-to-app redirection, and error handling.

  2. After the shopper is redirected back to your website, check the payment result by making a POST /payments/details request, specifying:

    • details: object that contains the URL-decoded redirectResult returned when the shopper was redirected back to your site.
  3. In the response note the following:

    • resultCode: use this to present the result to your shopper.
    • pspReference: our unique identifier for the transaction.

Recurring payments

Adyen supports recurring payments for iDEAL through SEPA Direct Debit. To make recurring payments, you need to:

  1. Create a shopper token.
  2. Use the token to make future payments for the shopper.

1. Create a token

We strongly recommend that you request explicit permission from the shopper if you intend to make recurring SEPA payments. Being transparent about the payment schedule and the charged amount reduces the risk of chargebacks.

To create a token, include in your /payments request:

  • amount: The transaction must have a minimum value of EUR 0.01.
  • storePaymentMethod: true
  • shopperReference: your unique identifier for the shopper (minimum length three characters). Do not include personally identifiable information (PII), such as name or email address.
  • recurringProcessingModel: Subscription or UnscheduledCardOnFile

    From Checkout v70, recurringProcessingModel is a required parameter when creating or using a token.

When the payment is settled, you receive a recurring.token.created webhook containing:

  • type: recurring.token.created
  • shopperReference: your unique identifier for the shopper.
  • eventId: the pspReference of the initial payment.
  • storedPaymentMethodId: the token that you need to make recurring payments for this shopper.

Make sure that your server is able to receive the Recurring tokens life cycle events webhook. You can set up this webhook in your Customer Area.

2. Make a payment with a token

For each recurring payment for this shopper, make a SEPA payment to the /payments endpoint, specifying:

For more information about the shopperInteraction and recurringProcessingModel fields, refer to Tokenization.

If the payment was successfully received, the response contains:

  • resultCode: Received
  • pspReference: a unique identifier for this transaction.

You can track whether the payment was successful using webhooks.

Store the shopper's preferred bank

iDEAL allows you to store the shopper's preferred bank. With stored bank details, the shopper is redirected from your checkout page to their bank without having to select it.

To store the shopper's preferred bank:

  1. Configure your webhook to include bank account details:
    1. Navigate to your CA > Developers > Webhooks.
    2. Next to your webhook, click the three-dot menu and select Edit webhook.
    3. Under Additional settings > Bank, click the Include Bank Account Details checkbox.
    4. At the bottom of the page, click Save configuration.
  2. When you receive the webhook with the Authorised iDEAL, store the Bank Identifier Code (BIC) field as the shopper's preferred bank.

Create a payment with the shopper's stored preferred bank

  1. Present the stored bank to the shopper on your Checkout page.

  2. In your /payments request, include paymentMethod.issuer, where the issuer value is the BIC of the stored bank.

  3. Handle the redirect.

  4. Present the payment result.

If a shopper with a stored preferred bank wants to pay with a different bank, make a payment as usual without paymentMethod.issuer.

BICs for iDEAL partner banks

The available banks for iDEAL are different in the test and live environment:

Test and go live

The iDEAL test environment is unreliable and may not always work to test your changes. We recommend doing live penny tests to verify your integration.

Request iDEAL for the live environment

Before you can accept live payments, you need to add iDEAL in your live Customer Area.

Live Penny Testing

  1. Get a live bank account from one of the iDEAL issuers.
  2. Create an iDEAL payment on live and redirect to the iDEAL Payment Page.
  3. Scan the QR code on the iDEAL Payment Page or Click Select your bank to navigate to a list of issuers.
  4. Authorise the payment.
  5. Check the status of test payments in your live Customer Area > Transactions > Payments.

Testing on the Test environment

In case the iDEAL test environment is up and running, it may be possible to test using your test account. You are always redirected to a test payment page where you can simulate different iDEAL result codes.

On the payment page:

  1. Click Select your bank to navigate to a list of issuers.
  2. Select the TESTNL2A issuer.
  3. Select the test simulation you want to run according to the following table:

    Test simulation resultCode produced
    Success Authorised
    Cancellation Canceled
    Cancellation before login Canceled
    Expiration Pending or Received
    Failure Refused

When possible, we recommend that you test each scenario before you go live, otherwise you should perform a Live Penny Test to verify your integration.

Check the status of test payments in your Customer Area > Transactions > Payments.

See also