iDEAL
Integrate iDEAL and allow consumers to authorize payments from their online or mobile banking apps.
Payment Method Properties
Available country codes | NL |
Processing (Presentation) currencies | EUR |
Settlement currencies | EUR |
Consumer currencies | EUR |
Channel member tag | ideal |
Scheme name in the settlement file | Ideal |
Minimum transaction amount | EUR 0.01 |
Maximum transaction amount | Subject to transaction approval from the consumer’s bank |
Session timeout | 60 minutes |
Refund | |
Refund Validity | 365 days |
Chargeback | No |
Integration Type | Asynchronous |
Sandbox | PPRO-hosted |
Transaction Flow
- The consumer selects iDEAL as their preferred payment method.
- The consumer is redirected to a payment page where they are presented with an option to select their preferred bank or to scan a QR code.
- If:
- The consumer chooses a bank from the list, they are redirected to their online bank where they are requested to confirm the payment.
- The consumer scans their QR code, they must confirm the payment in the banking app.
- The merchant receives the payment confirmation.
- The merchant can ship the order/deliver the goods to the consumer.
iDEAL Integration
Specific input parameters for the TRANSACTION call
Field Name | M/O/C | Type | Regex | Description |
---|---|---|---|---|
specin.bic | O | ascii | [A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1} | Valid BIC. It can only contain 8 or 11 alphanumeric characters. Must be an iDEAL issuer’s BIC as listed below. |
For standard input parameters, see Input parameters for the TRANSACTION call.
Specific output parameters for the TRANSACTION call
Field Name | Type | Description |
---|---|---|
SPECOUT.PAYMENTPURPOSE | ascii | Reflects what a consumer sees on the proof of payment |
SPECOUT.SRCACCOUNTHOLDER | ascii | The account holder |
SPECOUT.SRCIBAN | ascii | IBAN of the consumer’s account |
SPECOUT.SRCBIC | ascii | BIC of the consumer’s account |
For standard output parameters, see Output parameters for the TRANSACTION call.
TRANSACTION call input
tag=ideal
&txtype=TRANSACTION
&countrycode=NL
¤cy=EUR
&amount=1055
&merchanttxid=cNKeGUHheQzp
&login=johndoetest
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOETESTCONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php
¬ificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=DynDescriptor
&accountholdername=John%20Doe
&returnmode=urlencodeext
TRANSACTION call output
REQUESTSTATUS=SUCCEEDED
&STATUS=SUCCEEDED
&TXID=599028382
&ERRMSG=
&CHANNEL=testchannel
&TAG=ideal
&PAYMENTGUARANTEE=NONE
&REDIRECTSECRET=P7QEgfywdtrB7pgwdVEVzu4gqrHOXA1m
&SPECOUT.PAYMENTPURPOSE=3IOLJ1S
&SPECOUT.SRCACCOUNTHOLDER=John Doe
&SPECOUT.SRCBIC=ABNANL2A
&SPECOUT.SRCCOUNTRY=NL
&SPECOUT.SRCIBAN=NL18ABNA0484869868
Additional Information
Transaction state changes
Transactions may change from any state at any time. This change occurs especially from a FAILED
to a SUCCEEDED
state. SUCCEEDED
is considered a stable state (see also Important note about transaction states).
Integration options
There are two integration options:
- Using a PPRO-hosted payment page
- By-passing the HPP and redirecting straight to the iDEAL supported banks
Using a PPRO-hosted payment page
If specin.bic
is not provided, the consumer is redirected to a bank selection page.
Within the PPRO-hosted payment page, the consumer is either prompted to select a bank or scan the QR code.
The payment page adjusts to different screen sizes based on the device of the consumer:
- Small mobile devices (<350px width): The bank list is rendered in a single column; no QR code; The transaction summary is above the bank list
- Large mobile devices (350px - 1280px width): The bank list is rendered in two columns; no QR code; The transaction summary is above the bank list
- Large screens (>1280px width): The bank list is rendered in 2 columns; the QR code is shown to the right of the bank list; the transaction summary is rendered above the QR code
By-passing the HPP and redirecting straight to the iDEAL supported banks
The second option requires you to send PPRO the BIC of each supported bank:
Bank Name | BIC |
---|---|
Rabobank | RABONL2U |
ABN AMRO | ABNANL2A |
Van Lanschot Baniers | FVLBNL22 |
Triodos Bank | TRIONL2U |
ING Bank | INGBNL2A |
SNS Bank | SNSBNL2A |
ASN | ASNBNL21 |
RegioBank | RBRBNL21 |
Knab | KNABNL2H |
Bunq | BUNQNL2A |
Revolut | REVOLT21 |
Yoursafe | BITSNL2A |
Branding Guidelines
For information regarding branding, see the iDEAL branding guidelines.
FAQ
Why does the iDEAL bank-hosted checkout page break when using iframes?
iDEAL does not allow using iframes for rendering its flows. Many of the iDEAL banks will fail to render checkout elements or display errors during the process. The scheme’s rules strictly forbid the use of iframes. PPRO recommends not using iframes for any LPMs as iframes can be misleading or cause unexpected behavior with an LPM.
Why is an "invalid URL" error displayed at the bank’s checkout when using a mobile browser on iOS?
The error is being displayed because the consumer may have erroneously tapped the “open in [bankname] app” link/button during the bank’s iDEAL checkout process. The link/button is ultimately an app url (ex: INGNLBANK://) designed to invoke the bank’s own app to complete the payment. iOS can't handle these URLs if an app is not installed as a handler of the URL, therefore an error is emitted that the URL is not known.
Updated 9 months ago