iDeal

Payment Method String ideal
Available Countries NL
Available Currencies EUR
Min Transaction Amount
0.01 EUR
Max Transaction Amount
Subject to transaction approval from the consumer's bank
Supports Refunds
Full & Partial with 365 day limit
Chargebacks
No
Sandbox
Yes

Additional information

Optionally, the customer can be directed to their preferred bank for payment by passing the corresponding bank's BIC code in the payment-set request.

iDeal Bank Name BIC Code
ABN AMRO ABNANL2A
ASN Bank ASNBNL21
Bunq BUNQNL2A
ING INGBNL2A
Knab KNABNL2H
Rabobank RABONL2U
RegioBank RBRBNL21
SNS Bank SNSBNL2A
Triodos Bank TRIONL2U
Van Lanschot FVLBNL22

Sample request

HTTP POST (HPP)

<form method="POST" action="https://pay.sandbox.realexpayments.com/pay">
<input type="hidden" name="TIMESTAMP" value ="{{ timestamp }}">
<input type="hidden" name="MERCHANT_ID" value ="{{merchantId}}">
<input type="hidden" name="ACCOUNT" value ="internet">
<input type="hidden" name="ORDER_ID" value ="20230202205213-63dc227d70b44">
<input type="hidden" name="AMOUNT" value ="3800">
<input type="hidden" name="CURRENCY" value ="EUR">
<input type="hidden" name="SHA1HASH" value ="f77e4b8b73dffdc45d6b4db5f9b4914f70ca7dc2">
<input type="hidden" name="AUTO_SETTLE_FLAG" value ="1">
<input type="hidden" name="HPP_VERSION" value ="2">
<input type="hidden" name="HPP_CUSTOMER_COUNTRY" value ="NL">
<input type="hidden" name="HPP_CUSTOMER_FIRSTNAME" value ="James">
<input type="hidden" name="HPP_CUSTOMER_LASTNAME" value ="Mason">
<input type="hidden" name="MERCHANT_RESPONSE_URL" value ="https://www.example.com/statusUrl">
<input type="hidden" name="HPP_TX_STATUS_URL" value ="https://www.example.com/statusUrl">
<input type="hidden" name="HPP_ADDRESS_MATCH_INDICATOR" value ="false">
<input type="hidden" name="HPP_BILLING_STREET1" value ="Flat 123">
<input type="hidden" name="HPP_BILLING_CITY" value ="Halifax">
<input type="hidden" name="HPP_BILLING_POSTALCODE" value ="E77 4QJ">
<input type="hidden" name="HPP_BILLING_COUNTRY" value ="826">
<input type="hidden" name="HPP_LANG" value ="EN">
<input type="hidden" name="HPP_CHALLENGE_REQUEST_INDICATOR" value ="NO_PREFERENCE">
<input type="hidden" name="HPP_CUSTOMER_EMAIL" value ="james.mason@example.com">
<input type="hidden" name="COMMENT1" value="Mobile Channel">
<input type="hidden" name="COMMENT2" value="Down Payment">
<input type="hidden" name="CARD_PAYMENT_BUTTON" value="Pay Now">
<input type="submit" value="Click here to Purchase">
</form>

XML

<?xml version='1.0' encoding='UTF-8'?>			
<request type='payment-set' timestamp='{{timestamp}}'>			
	<merchantid>Merchant ID</merchantid>		
	<account>internet</account>		
	<amount currency='EUR'>3800</amount>		
	<autosettle flag='1' />		
	<orderid>N6qsk4kYRZihmPrTXWYS6g</orderid>		
	<paymentmethod>ideal</paymentmethod>		
	<paymentmethoddetails>		
		<returnurl>https://www.example.com/returnUrl</returnurl>	
		<errorurl>https://www.example.com/errorUrl</errorurl>	
		<statusupdateurl>https://www.example.com/statusUrl</statusupdateurl>	
		<descriptor>Test Transaction</descriptor>	
		<country>NL</country>	
		<accountholdername>James Mason</accountholdername>			
	</paymentmethoddetails>		
	<comments>		
		<comment id='1'>Mobile Channel</comment>	
		<comment id='2'>Down Payment</comment>	
	</comments>		
	<sha1hash>82f3d22c04292f8673bc1e0fb8ecf0c54e38065c</sha1hash>		
</request>

JSON

{                        
        "account_name": "{{acc_name}}",                
        "type": "SALE",                
        "channel": "CNP",                
        "amount": "3800",                
        "currency": "EUR",                
        "reference": "{{reference}}",                
        "country": "NL",                
        "payment_method": {                
                "entry_mode": "ECOM",        
                "apm": {        
                        "provider": "ideal"
                }        
        },                
        "notifications": {                
        "return_url": "<Replace with your own endpoints>",                
        "status_url": "<Replace with your own endpoints>"                
        },                
        "payer": {}                
}

 

Sample Request

Additional Fields Syntax

Type indicates whether the element is Mandatory (M), Optional (O), or Conditional (C) - dependent on another field.

Name Type Format Length Description
BIC O [a-zA-Z0-9\-\*\?/# ] 8-11

Customer Bank Code Must be a valid BIC (8 or 11 alphanumeric digits).

Dynamic Descriptor O a-z A-Z 0-9 [space] / - French-accented 25

Dynamic Descriptor allows merchants to pass through an alternative “doing business as” (DBA) name in the Charge Description field so that it appears on the customer's bank statement.