Introduction

iDEAL is one of the most used online payment methods in the Netherlands, allowing consumers to pay with their online banking account.

Sale Transaction Request

In the first step you need to submit an ApmSaleTransaction request including shipping and IDEAL as payment method type.

The following JSON document represents an example of an initial request and the related response with the transactionStatus "WAITING". In the API response you receive the ipgTransactionIdwhat you must use in the inquiry request to confirm the transaction processing status.

{
"requestType": "ApmSaleTransaction",
"transactionAmount": {
    "total": "20.85",
    "currency": "EUR",
    "components":{
        "shipping": 0.85,
        "subtotal": 15,
        "vatAmount": 4
    }
},
"paymentMethod": {
    "type": "IDEAL"
},
"storeId": "541xxxxx1806",
"order": {
    "shipping": {
        "name": "John Doe",
        "address": {
            "company": "Test Company",
            "address1": "House No: 2, street -5",
            "address2": "Weberstr",
            "city": "BONN",
            "postalCode": "53113",
            "region": "Nordrhein-Westfalen",
            "country": "Germany"
        }
    },
     "basket": {
        "items": [
            {
                "id": "item-1",
                "description": "World cup",
                "quantity": 1,
                "subTotal": 9,
                "valueAddedTax": 1,
                "deliveryAmount": 0,
                "chargeTotal": 10,
                "currency": "EUR"
            },

            {
                "id": "item-2",
                "description": "cup",
                "quantity": 1,
                "subTotal": 2,
                "valueAddedTax": 3,
                "deliveryAmount": 0,
                "chargeTotal": 5,
                "currency": "EUR"
            }
        ]
    }
},

"transactionOrigin": "ECOM",

"integrationData": [
    {
        "item": "RETURN_URL",
        "value": "https://www.fiserv.com"
    },

    {
        "item": "FAILURE_RETURN_URL",
        "value": "https://www.fiserv.com"
    }

]
}
  {
    "type": "transactionResponse",
    "clientRequestId": "e80efc8c-5acc-42bc-a8d0-16fe8748e83f",
    "apiTraceId": "Zz88J0nxtg1r7LXuIOl6JAAAA8o",
    "ipgTransactionId": "85024575497",
    "orderId": "R-cb02f20c-d198-4d6a-a6f3-7a1bfb4a4acb",
    "paymentToken": {
        "reusable": true,
        "declineDuplicates": false
    },
    "transactionTime": 1732197415,
    "transactionAmount": {
        "total": 13.00,
        "currency": "EUR",
        "components": {}
    },
    "transactionStatus": "WAITING",
    "approvalCode": "?:waiting IDEAL",
    "processor": {
        "referenceNumber": "7030579722094781",
        "responseCode": "Open",
        "responseMessage": "IDEAL",
        "taxRefundData": {}
    },
    "requiredActions": {
        "requiredRedirectionData": {
            "target": "https://ext.pay.ideal.nl/transactions/https%3A%2F%2Fext.tx.ideal.nl%2F2%2FACZHNXF5EIBB2O7HGVQFWJKWCXQ?sig=BGBCQEIAO3LPBEDPDQKC3MZ2CDUCTV5GPVQSWML5NIAIRXQJZ4C7CZ2RRBQBCCAGXEZOX3EAKRAE7N4J7W7WVZPC2Z2MHYIVLPSACZLOZGUPVQA6A7I",
            "method": "GET"
        }
    }
}

Inquiry Request with Response

In the next step you need to submit an inquiry request using the ipgTransactionId you have received in the first API response from the Gateway to check the transaction status.

GET .../payments/{ipgTransactionID} 

If the transaction status has not been updated within 60 minutes, the request times-out and the transaction is cancelled.

The following JSON document represents an example of an inquiry request with APPROVED transactionResult in the response:

{
    "type": "transactionResponse",
    "clientRequestId": "10c6ecfa-6c59-42b8-bc75-ed136492c26a",
    "apiTraceId": "Zz9Aufqjr2GPBO-Uwqtc1gAAAbc",
    "ipgTransactionId": "85024575497",
    "orderId": "R-cb02f20c-d198-4d6a-a6f3-7a1bfb4a4acb",
    "paymentToken": {
        "reusable": true,
        "declineDuplicates": false
    },
    "paymentMethodDetails": {
        "paymentCard": {
            "number": "NL44RABO0123456789",
            "cardholderName": "Pino Thebird"
        },
        "paymentMethodBrand": "IDEAL"
    },
    "transactionTime": 1732197415,
    "approvedAmount": {
        "total": 13,
        "currency": "EUR",
        "components": {
            "subtotal": 13
        }
    },
    "transactionAmount": {
        "total": 13,
        "currency": "EUR",
        "components": {
            "subtotal": 13
        }
    },
    "transactionResult": "APPROVED",
    "approvalCode": "Y:000000:5024575497:PP X:7030579722094781",
    "transactionState": "CAPTURED",
    "processor": {
        "referenceNumber": "7030579722094781",
        "responseCode": "SettlementCompleted",
        "responseMessage": "IDEAL",
        "taxRefundData": {}
    }
}

"transactionOrigin": "ECOM",

"integrationData": [
    {
        "item": "RETURN_URL",
        "value": "https://www.fiserv.com"
    },

    {
        "item": "FAILURE_RETURN_URL",
        "value": "https://www.fiserv.com"
    }

]
}

Want a quick overview?