Try it Out (Sandbox)

This guide explains how to try code examples and test Rabobank’s Payment Request APIs in the Sandbox environment.

📘

The Rabobank Sandbox uses stubs.

  • You cannot test end-to-end flows. The Sandbox returns simulated responses only.
  • The Sandbox does not validate certificates against production requirements.

Authentication In Sandbox

We provide a key and certificate for mTLS authentication and request signing:

mTLS

Signing

Base URL

All sandbox API endpoints start with:

https://api-sandbox.rabobank.nl/openapi/sandbox/payments

Available Endpoints

Payment Request Initiation

  • Payment Request initiation: POST /payment-requests
  • Payment Request QR code generation: GET /payment-requests/{id}/qr-codes

Payment Request Details

  • Get details Payment Request: GET /payment-requests/{id}
  • Get status Payment Request: GET /payment-request/{id}/transactions/{transactionID}

Payment Request Lists

  • Get list of accounts: GET /payment-requests/accounts
  • Get list of Payment Requests: GET /payment-requests

Payment Request Deletion

  • Delete Payment Request: GET /payment-requests/{id}

Example Request And Responses

Get A List Of Accounts

Endpoint: GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/accounts

Request

X-Request-ID: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811

Response

[
    {
        "iban": "NL19RABO0123456790",
        "currency": "EUR",
        "segment": "BUSINESS"
    }
]

Initiate A Payment Request

Endpoint: POST https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests

Request

date: Tue, 26 Oct 2021 08:12:31 GMT
digest: sha-512=ttXH7VYT0BBoIFTsSrSkTMhKMbuBuC8ZaR3rZBSxwd1leleIsA4uLyfB0rHWUzALHUxA71iy6T2N7dAcGr08Gw==
signature: keyId="474941545142452678797059264714336600071935444114",algorithm="rsa-sha512",headers="date digest x-request-id",signature="QOdKmjW0bzVU0bea/Ch9F6n8K4e3hjORMqzEVjl1DlVwIp67WMvy76iNIMdo47P5llBqwvAiVZ6jwVmM5xT080egBF5Ht63+LnL2KXiUJt6H2S+x739lkyIASX/xrzXD8GaQ6/A5uIDkHuvlpHfnrIkkVrv93Bq5lhPiUfIHV/2mMxiSlliAvE3C7xqxKEGpp5KE0C1MQWdB7/KPbYf6p0TcZPcw3sMPM4bxXJ40+cjBBQruyhhBBO3kqTVUHYKkHwUKnOEIdHs2dyjeMohCccuMW8zsCzBGwhRGJe8/+UPC7DVCcr9TvudRVzrVW52tJy9a4PhozlLRfoJAe8JsbA=="
signature-certificate: MIID9DCCAtygAwIBAgIUUzEdjjbjLOePU7NeZfai6bv9RJIwDQYJKoZIhvcNAQELBQAweDEyMDAGA1UEAwwpUmFib2JhbmsgZGV2ZWxvcGVyIHBvcnRhbCBTYW5kYm94IHRlc3RpbmcxCzAJBgNVBAYTAk5MMRAwDgYDVQQIDAdVdHJlY2h0MRAwDgYDVQQHDAdVdHJlY2h0MREwDwYDVQQKDAhSYWJvYmFuazAgFw0yNTExMTIxNTQ3MzRaGA8yMTAwMTAyNTE1NDczNFoweDEyMDAGA1UEAwwpUmFib2JhbmsgZGV2ZWxvcGVyIHBvcnRhbCBTYW5kYm94IHRlc3RpbmcxCzAJBgNVBAYTAk5MMRAwDgYDVQQIDAdVdHJlY2h0MRAwDgYDVQQHDAdVdHJlY2h0MREwDwYDVQQKDAhSYWJvYmFuazCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALGoQqBxfADuEAHs/k1UoKkqn1XrK3ocV/rItsnCU3ynW9gahC8Ggj4UtcjNcXh8fBieV+6oeFcMRXofY6PiS6IM3YxofwMUM0JqTC/JZcoVhnEButAbg+DVJJfR7jxEDFUR2LL2RTLHYugtJdbg92kuUy7bXjayj6/Ef2R3s+cI7rHiI7oAftce61k4sVmQxGtxAVt+jrSB8eX/hVqdzfNb1MSzRbfII56rLgeaSbWm7gkYcJimyWjPuabqxY0cIvwkum5BRJ87x+QRdxzJuXYuwZsUMaY4ETYiiwUv7Q2vOZ066a6zBs++JSdgCUypvqm9YvRn3vCxB3+me+jvhdUCAwEAAaN0MHIwHQYDVR0OBBYEFHr3mI71/GxAJ/nDhNTZL+XEX6cZMB8GA1UdIwQYMBaAFHr3mI71/GxAJ/nDhNTZL+XEX6cZMA4GA1UdDwEB/wQEAwIFoDAgBgNVHSUBAf8EFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAEZod53U0IhIQZSVo4mVSn/bWT53uaeAcSwtRi+hyb8K2nDmT8wWdb6xewghd6EXIpWwetG8+odqvCaatdwPa4XjxE9XEecZC+EAYucY7joEk+maDjgJdgNNCwmWGQvOi9Fav9o2bbSGC3Y615K34aMmSNfuCGJHTw88RciLhPUdLMQF3gUTcQjlRcmE0oBZilZ0BF8Q1BIaJiFZZ7nNb4FGYB3ouySsmz/aPTz+VENZp2geCGjxW+SUIVpKiWA6NN2iJkp4Zywe39FxCca0Fw+QHl0vuMhh5fxyFA3eJLZREsZdgqwXnvIwNIM6/Yd1lxUIEyHL1J/m/vcJv/X0ZY4=
x-request-id: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811
Content-Type: application/json
Accept: application/json
{"amountCents":10000,"currency":"EUR","description":"Mchi Restaurant","iban":"NL19RABO0123456790","clientReference":"Client-Reference","numPayers":1,"hasVariableAmount":false}

Response

{
    "paymentPageUrl": "https://fake.nl/fakebetaalverzoek/?id=baVGVJPZRg2nNc8-WlLzSw",
    "assignedId": "fe129503-4141-4f6e-967d-5bdb5b1fd630"
}

Create A QR code

Endpoint: GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}/qr-codes

Request

X-Request-ID: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811

Response






Get Status Payment Request

Endpoint: GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}

Request

X-Request-ID: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811

Response

{
    "currentDateTime": "2026-04-30T13:35:19.481Z",
    "paymentRequestWithMetadata": {
        "paymentRequest": {
            "id": "2f280203-fb0f-43db-ac3b-3211d3b98f22",
            "created": "2018-09-17T15:43:51.459Z",
            "accountIban": "NL19RABO123456790",
            "accountName": "The Requester",
            "currency": "EUR",
            "amountCents": 10000,
            "hasVariableAmount": false,
            "numPayers": 1,
            "description": "Can you please pay me for the present",
            "accountSegment": "BUSINESS",
            "clientReference": "TEST ref",
            "transactions": [
                {
                    "id": "800b42aa-9a8d-4e5e-a955-bda223e1e80f",
                    "tsPaid": "2018-09-17T15:43:51.459Z",
                    "accountIban": "NL63RABO0000000000",
                    "accountName": "The Payer",
                    "amountCents": 10000,
                    "chosenAmountCents": 10000
                }
            ],
            "expired": false
        },
        "paymentPageUrl": "https://fake.nl/fakebetaalverzoek/?id=_hKVA0FBT26WfVvbWx_WMA"
    }
}

Get Status Payment Request

Endpoint: GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}/transactions/{transactionId}

Request

X-Request-ID: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811

Response

{
    "paymentRequestId": "LygCA/sPQ9usOzIR07mPIg==",
    "transactionId": "b6248d63-0aad-4d68-9a4c-c925efeeb4a1",
    "status": "SUCCESS",
    "isBusiness": true,
    "accountHolderName": "Requester Name"
}

Get List Of Payment Requests

Endpoint: GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests

Request

X-Request-ID: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811

Response

{
    "currentDateTime": "2026-04-30T13:37:18.315Z",
    "paymentRequests": [
        {
            "paymentRequest": {
                "id": "fe129503-4141-4f6e-967d-5bdb5b1fd630",
                "created": "2018-09-17T15:43:51.459Z",
                "accountIban": "NL19RABO123456790",
                "accountName": "The Requester",
                "currency": "EUR",
                "amountCents": 10000,
                "hasVariableAmount": false,
                "numPayers": 1,
                "description": "Can you please pay me for the present",
                "accountSegment": "BUSINESS",
                "clientReference": "TEST ref",
                "transactions": [
                    {
                        "id": "800b42aa-9a8d-4e5e-a955-bda223e1e80f",
                        "tsPaid": "2018-09-17T15:43:51.459Z",
                        "accountIban": "NL63RABO0000000000",
                        "accountName": "The Payer",
                        "amountCents": 10000,
                        "chosenAmountCents": 10000
                    }
                ],
                "expired": false
            },
            "paymentPageUrl": "https://fake.nl/fakebetaalverzoek/?id=_hKVA0FBT26WfVvbWx_WMA"
        }
    ]
}

Delete A Payment Request

Endpoint: https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}

Request

X-Request-ID: 95126d8f-ae9d-4ac3-ac9e-c357dcd78811

Response

Test Scenarios

We offer predefined scenarios to test happy flows, errors, and edge cases.
Trigger some scenarios by using specific header values or request parameters.

Get Accounts

GET https://api.rabobank.nl/openapi/payments/payment-requests/accounts

ScenarioResponseDescription
(default)200Happy flow for retrieving a list of accounts
header x-scenario = INVALID-CONSENT404No consent information specified
header x-scenario = TECHNICAL-ERROR500Technical error

Create A Payment Request

POST https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests

ScenarioResponseDescription
(default)201Happy flow for initiating a payment request
invalid request (e.g. amount = 0)400Validation error
invalid X-IBM-Client-Id401Unauthorized
field description = INVALID-CONSENT403No consent given for the given IBAN
field description = TECHNICAL-ERROR500Technical error
for missing header - TPP-Signature-Certificate403CERTIFICATE_VALIDATION_ERROR
for missing header - signature, date, digest or x-request-id. or Invalid signature.403SIGNATURE_VALIDATION_ERROR

Generate A QR Code

GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}/qr-codes

ScenarioResponseDescription
(default)204Happy flow for generating a QR code
param id= 11111111-1111-1111-1111-111111111111403No consent given for the payment request IBAN
param id = 00000000-0000-0000-0000-000000000000404Payment request could not be found
param id = 22222222-2222-2222-2222-222222222222500Technical error

Get Payment Request Details

GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}

ScenarioResponseDescription
param id = fe129503-4141-4f6e-967d-5bdb5b1fd630200Happy flow for retrieving by ID
param id = 11400Bad Request, id should be of type UUID
param id = 11111111-1111-1111-1111-111111111111403No consent information specified
param id = 00000000-0000-0000-0000-000000000000404Payment Request Not found
param id = 22222222-2222-2222-2222-222222222222500Technical error

Get Payment Request Transaction Status

GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}/transactions/{transactionId}

No test scenario's available.

Delete A Payment Request

DELETE https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}

ScenarioResponseDescription
(default)204Happy flow for deleting a payment request
param id = 11111111-1111-1111-1111-111111111111403No consent given for the payment request IBAN
param id = 00000000-0000-0000-0000-000000000000404Payment request to delete could not be found
param id = 22222222-2222-2222-2222-222222222222500Technical error