# iDEAL

**iDEAL is by far the most popular payment method in the Netherlands. There are no chargebacks and faster settlement times as iDEAL is a bank-to-bank transfer, covered by all major Dutch consumer banks.**

## **Features**

| Available country codes    | NL                                                       |
| -------------------------- | -------------------------------------------------------- |
| Processing currencies      | EUR                                                      |
| Settlement currencies      | EUR                                                      |
| Minimum transaction amount | 0.01 EUR                                                 |
| Maximum transaction amount | Subject to transaction approval from the consumer’s bank |
| Refunds                    | ✅                                                        |
| Refund validity            | 365 days                                                 |
| Chargeback                 | ❌                                                        |

# **Integration Method**

**Payment method enumeration values:`ideal`**

**There are two integration methods for iDEAL**

1. Direct API
2. Checkout

## **Direct** **API** 

### **How to integration**

For direct API integration, you can create a PaymentIntent and get url in only one step. The following is the demo of creating payment intent:

[**Create a PaymentIntent**](api-42631218)

A PaymentIntent is an object that represents your intent to collect payment from your customer and tracks the lifecycle of the payment process. Create a PaymentIntent on your server and specify the amount to collect and a supported currency. If you have an existing Payment Intents integration, add **iDEAL** to the list of payment method types.

Please note that for this payment method, you need to specify the country in `billing_details.address` as Netherlands, which country code is `NL`.

***Request*** 

```JSON
{
    "amount": 2000,
    "currency": "EUR",
    "confirm": true,
    "payment_method_data": {
        "type": "ideal",
        "billing_details": {
            "address": {
                "country": "NL"
            },
            "firstName": "Anthony",
            "lastName": "VDK"
        }
    },
    "merchant_order_id": "id_XXXXXXX",
    "return_url": "https://XXXX.XXXX"
}
```

***Response***

```JSON
{
    "id": "pi_1729469366946234368",
    "object": "payment_intent",
    "created": 1701172604000,
    "livemode": false,
    "currency": "EUR",
    "amount": 2000,
    "status": "requires_action",
    "merchant_order_id": "id_XXXXXXX",
    "client_secret": "pi_1729469366946234368_secret_hhO53N5LZyOcWHuaDn3BZLnh",
    "next_action": {
        "type": "ideal_handle_redirect",
        "ideal_handle_redirect": {
            "url": "https://r3.girogate.de/ti/simideal?tx=2162055858&rs=b2tsas0LfwxxNW6cxYnNzsnJIHeDPFwl&cs=a4c7bacb35015bddd31b5f1786c8ca241226c4a4e323ac7b6c4accb420b6043f"
        }
    },
    "payment_method_types": [
        "ideal"
    ],
    "confirmation_method": "automatic",
    "return_url": "https://XXXX.XXXX",
    "payment_method": "pm_1729469366799433728",
    "capture_method": "automatic"
}
```

## **Checkout**

### Payment flow

1. Customer selects iDEAL from the list of payment methods available and clicks on the Pay botton


![660c5d23-2469-4ec6-8dae-d41235cc7ab4.png](https://api.apifox.com/api/v1/projects/1296482/resources/424315/image-preview)

1. Customers will be redirected to iDEAL's page


![298e17b2-3ec3-4773-9d7e-ef00bae2ac7e.png](https://api.apifox.com/api/v1/projects/1296482/resources/424316/image-preview)

1. Customers select their bank and approve payment

### [Create a Session](api-42654181)

***Request*** [Create a Session](api-42654181)

```JSON
{
    "cancel_url": "www.wooshpay.com",
    "mode": "payment",
    "success_url": "https://wooshpay.com/",
    "payment_method_types": [
        "ideal"
    ],
    "payment_intent_data":{
        "billing_details":{
            "address":{
                "country":"NL"
            }
        }
    },
    "line_items": [
        {
            "price_data": {
                "currency": "EUR",
                "unit_amount": 2000,
                "product_data": {
                    "id": null,
                    "name": "apple",
                    "description": "very delicious",
                    "url": "www.wooshpay.com"
                },
                "billing_scheme": "testscheme",
                "lookup_key": "test_lookup_key"
            },
            "quantity": 1
        }
    ]
}
```

***Response***

```JSON
{
    "id": "cs_1729471425581940736",
    "object": "checkout.session",
    "created": 1701173095000,
    "livemode": true,
    "currency": "EUR",
    "customer": "",
    "mode": "payment",
    "status": "open",
    "url": "https://checkout.wooshpay.com/pay/cs_1729471425581940736?key=cGtfbGl2ZV9OVEUxT0RrNU5UWTJOak01TkRFMk5qUTNOamd4T21WR2VWWjJlSG8yVjNoWGEwTm9ZbkUxYkU1VU0zWk5SakUyTmpjNU1UQXhPRE16TXpFPQ==",
    "cancel_url": "www.wooshpay.com",
    "line_items": {
        "object": "list",
        "data": [
            {
                "id": "li_1729471425607106560",
                "object": "item",
                "currency": "EUR",
                "description": "apple",
                "price": {
                    "id": "price_1729471425615495168",
                    "object": "price",
                    "created": 1701173095000,
                    "livemode": true,
                    "active": false,
                    "currency": "EUR",
                    "product": {
                        "id": "prod_1729471425623883776",
                        "object": "product",
                        "created": 1701173095000,
                        "livemode": true,
                        "active": false,
                        "description": "very delicious",
                        "name": "apple",
                        "url": "www.wooshpay.com",
                        "updated": 1701173095000
                    },
                    "type": "one_time",
                    "unit_amount": 2000,
                    "billing_scheme": "per_unit",
                    "lookup_key": "test_lookup_key"
                },
                "quantity": 1,
                "amount_subtotal": 2000,
                "amount_total": 2000
            }
        ]
    },
    "payment_intent": "pi_1729471428119494656",
    "payment_method_types": [
        "ideal"
    ],
    "payment_status": "unpaid",
    "success_url": "https://wooshpay.com/",
    "amount_subtotal": 2000,
    "amount_total": 2000,
    "billing_address_collection": "auto",
    "expires_at": 1701259494543,
    "payment_link": "",
    "client_secret": "pi_1729471428119494656_secret_lZ2kwASrV5VH6i2BSPTU1xDI"
}
```

# **Next step**

You can add more features to your integration as needed

## [Create a Webhook](doc-2517709)

Listen to events on your WooshPay account so your integration can automatically trigger reactions. Create a webhook that mainly focuses on enabled_events and url.

## [Create a Refund](api-51369554)

Create a refund to repay funds to your customer. You can also perform partial refunds, but not every payment method supports them. A partial refund is when you refund only part of the original transaction amount.
