iDEAL
Description
iDEAL is the most popular online payment method in the Netherlands, allowing users to pay directly from their bank account through a secure, real-time transfer. It's fast and offers immediate payment confirmation.
Availability
Netherlands.
Transaction Types
Payment Flow
Example iDEAL redirect experience
API Implementation
Required value for payment_type parameter: ideal.
Payment Page Redirect
Redirect the customer to the iDEAL experience hosted by their selected bank after creating a payment.
Implementation flow:
- Make a Payment API request.
- Receive the API response with
client_action = redirect. - Redirect your customer to the
URLprovided inaction_data. - The customer selects their bank, authenticates with their bank, and authorises the payment.
- The bank displays the payment result and redirects the customer back to your success_url or error_url, depending on the outcome. You will also receive asynchronous postbacks with the payment status. Use the postback as the source of truth, as the redirect may arrive before or after the postback.
Payment API
Payment API Request
payment_typeStringrequiredidealorder_idStringrequiredAny alphanumeric string to identify the Merchant's order
amountFloatrequiredAmount of the transaction including all taxes and shipping fees
currencyStringrequired3 letter currency code
postback_urlStringrequiredThe URL for updates about transaction status are posted
success_urlStringrequiredWhere to redirect the user after a successful transaction
error_urlStringrequiredWhere to redirect the user after a failed transaction
This example includes only the minimum required parameters to create an iDEAL payment. See the Create Payment API reference for the full list of supported parameters.
Example Request
POST /rest/payment
Authorization: Basic <base64(api_key:api_password)>
Content-Type: application/json
{
"payment_type": "ideal",
"order_id": "IDEAL-12345",
"amount": "29.90",
"currency": "EUR",
"postback_url": "https://your-postback.url.com",
"success_url": "https://your-success.url.com",
"error_url": "https://your-error.url.com"
}
Payment API Response
transaction_idStringID of the created transaction
payment_typeStringPayment type of the transaction
status_codeIntegerStatus code of the transaction
statusStringStatus of the transaction
order_idStringOrder ID of the transaction
messageStringOptional additional information about the transaction result
additional_transaction_dataStringAdditional transaction data provided by you. This will be shown in the dashboard as well as when you query for transaction data. It will also be sent back to your
postback_url as part of the postback data.amountFloatAmount of the transaction
included_feesStringIncluded fees for the transaction
error_codeIntegerError code for the response
client_actionStringIndicates the required client-side action after a payment request. Possible values: redirect (redirect to the
url in action_data) or postform (build and submit a POST form using the data in action_data). When not returned, no client-side action is required.action_dataObjectPresent when
client_action is specified. Contains: url (target URL of the action) and, in case of a postform, fields (key/value pairs of the data to be posted).Example Response
{
"transaction_id": "6c2e7e30-b741-4c5e-bc50-91dffdf0e5fb",
"payment_type": "ideal",
"status_code": 1,
"status": "started",
"order_id": "IDEAL-12345",
"message": null,
"additional_transaction_data": null,
"amount": 29.9,
"included_fees": "0.00",
"error_code": 0,
"client_action": "redirect",
"action_data": {
"url": "https://testapi.betterpayment.de/ideal/6c2e7e30-b741-4c5e-bc50-91dffdf0e5fb"
}
}
Postbacks
For the full list of payment postback fields, see the Payment API. For retry policy and signature verification, see Postbacks.
Test Data
Follow these steps to trigger the iDEAL sandbox flow:
- In
Or use internet banking, clickSelect your bank. - Choose
TESTNL2Aas the bank. - Select the desired test simulation (success, cancellation, etc.).