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-c357dcd78811Response
[
{
"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-c357dcd78811Response
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-c357dcd78811Response
{
"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-c357dcd78811Response
{
"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-c357dcd78811Response
{
"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-c357dcd78811Response
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
| Scenario | Response | Description |
|---|---|---|
| (default) | 200 | Happy flow for retrieving a list of accounts |
| header x-scenario = INVALID-CONSENT | 404 | No consent information specified |
| header x-scenario = TECHNICAL-ERROR | 500 | Technical error |
Create A Payment Request
POST https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests
| Scenario | Response | Description |
|---|---|---|
| (default) | 201 | Happy flow for initiating a payment request |
| invalid request (e.g. amount = 0) | 400 | Validation error |
| invalid X-IBM-Client-Id | 401 | Unauthorized |
field description = INVALID-CONSENT | 403 | No consent given for the given IBAN |
field description = TECHNICAL-ERROR | 500 | Technical error |
| for missing header - TPP-Signature-Certificate | 403 | CERTIFICATE_VALIDATION_ERROR |
| for missing header - signature, date, digest or x-request-id. or Invalid signature. | 403 | SIGNATURE_VALIDATION_ERROR |
Generate A QR Code
GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}/qr-codes
| Scenario | Response | Description |
|---|---|---|
| (default) | 204 | Happy flow for generating a QR code |
param id= 11111111-1111-1111-1111-111111111111 | 403 | No consent given for the payment request IBAN |
param id = 00000000-0000-0000-0000-000000000000 | 404 | Payment request could not be found |
param id = 22222222-2222-2222-2222-222222222222 | 500 | Technical error |
Get Payment Request Details
GET https://api-sandbox.rabobank.nl/openapi/sandbox/payments/payment-requests/{id}
| Scenario | Response | Description |
|---|---|---|
param id = fe129503-4141-4f6e-967d-5bdb5b1fd630 | 200 | Happy flow for retrieving by ID |
param id = 11 | 400 | Bad Request, id should be of type UUID |
param id = 11111111-1111-1111-1111-111111111111 | 403 | No consent information specified |
param id = 00000000-0000-0000-0000-000000000000 | 404 | Payment Request Not found |
param id = 22222222-2222-2222-2222-222222222222 | 500 | Technical 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}
| Scenario | Response | Description |
|---|---|---|
| (default) | 204 | Happy flow for deleting a payment request |
param id = 11111111-1111-1111-1111-111111111111 | 403 | No consent given for the payment request IBAN |
param id = 00000000-0000-0000-0000-000000000000 | 404 | Payment request to delete could not be found |
param id = 22222222-2222-2222-2222-222222222222 | 500 | Technical error |
