Learn how to process iDEAL transactions with BlueSnap's Payment API.
Important
After September 30, 2024, BlueSnap will temporarily suspend processing iDEAL transactions. BlueSnap support for iDEAL 2.0 is coming soon.
iDEAL is the most popular online payment method in the Netherlands (in the Euro) and is supported by the major Dutch banks. iDEAL enables shoppers to pay online through their banking portal and authenticate the transaction by entering their credentials, adding an additional layer of checkout security.
This guide covers the following topics:
Requirements
In your Merchant Portal, verify Real-Time Bank Transfer has been enabled and is set to Show.
iDEAL transaction processing
These are the main steps involved in processing iDEAL transactions:
-
Create a page for your shopper to enter their personal information.
-
Show a list of available banks so your shopper can make their selection. (Recommended)
-
Send a Create iDEAL Transaction request to BlueSnap from your server.
As part of the required parameters, provide areturnUrl
where you would like BlueSnap to send your shopper after they complete their purchase. -
The API response will include
idealUrl
where you'll need to direct your shopper so they can complete their purchase.
If your shopper did not select their bank on your website in step 2, then they will be prompted to select it at this time. -
Your shopper logs in to their banking portal and completes their purchase. Once complete, your shopper gets directed to the return URL you provided in step 3. You can parse the query string of your URL to get the transaction results.
Note: The transaction stays in pending status until the shopper completes the purchase. When the purchase is completed, the status updates to success or failed.
Retrieving available banks
You can get a list of available banks from BlueSnap and show them to your shopper. This enables your shopper to select their bank on your website, instead of having to complete this as a separate step later in the checkout process. The result is reduced checkout friction. Follow the steps below.
-
Send a Retrieve Bank Details request from your server. BlueSnap returns a list of
issuerId
andissuerName
parameters. -
In the UI, display the list of issuing bank names.
-
When your shopper selects their bank, associate the bank name with its
issuerId
. You'll need this value when you create the transaction. -
In the Create iDEAL Transaction request request, include the
issuerId
parameter.
Including issuerId
in the request tells BlueSnap which bank your shopper selected and removes this step later in the checkout process. When you direct your shopper to the idealUrl
provided by BlueSnap, they will go directly to their banking portal.
Return URL query string parameters
Before redirecting your shopper to your return URL, BlueSnap appends the query string with the following parameters to inform you of the transaction results.
Parameter Name | Type | Description |
---|---|---|
| string | The status of the transaction. Possible values:
|
ORDER-ID | integer | BlueSnap identifier for the order. |
TRANSACTION-ID | string | BlueSnap identifier for the approved transaction. Only returned if STATUS is SUCCESS |
MTI | string | The Merchant Transaction ID. Only returned if the value was included in the Create iDEAL Transaction request. |
API integrations
iDEAL transactions are supported in BlueSnap's Payment API. See:
Sandbox testing
You can use the following test cases to test various scenarios in Sandbox via the Create iDEAL Transaction request.
Test Case | Result |
---|---|
Append your firstName value with _APPROVE.For example: Jane_APPROVE | The transaction status is SUCCESS . |
Append your firstName value with _REJECT.For example: Jane_REJECT | The transaction status is FAIL . |
Append your firstName value with _DELAYAP. For example: Jane_DELAYAP | The initial transaction status is PENDING , then changes to SUCCESS within 15 minutes. |
Append your firstName value with _DELAYRJ. For example: Jane_DELAYRJ | The initial transaction status is PENDING , then changes to FAIL within 15 minutes. |