GETTING STARTED
Authentication
Authenticate with a project API key and Business ID.
Send the project API key as a Bearer token in Authorization and include your Business ID in X-Business-Id on every call.
Authorization: Bearer $DUTCH_PROJECT_KEY
X-Business-Id: $DUTCH_BUSINESS_ID📘Keys are stored only as a hash. The secret is shown once when you create the key. If you lose it, revoke the key and create a new one.
Scopes
| Scope | Grants |
|---|---|
| accounts:read | GET /v1/balances |
| transactions:read | GET /v1/transactions, GET /v1/payouts/{id}, GET /v1/collections/{id} |
| payouts:create | POST /v1/payouts, POST /v1/payouts/quote |
| collections:create | POST /v1/collections, POST /v1/collections/quote |
| fx:quote | POST /v1/fx/quote |
| transfers:create | POST /v1/fx/convert, POST /v1/funding |
| webhooks:manage | POST, GET and DELETE /v1/webhooks |
Give a key only the scopes it needs. A call without the right scope answers 403 insufficient_scope.
IP allow-list
If your organization has any address on its allow-list, calls from any other address are refused with 403 ip_not_allowed.
Authentication errors
| Status | error | Meaning |
|---|---|---|
| 401 | live_api_key_required | The Authorization header is missing or malformed. |
| 401 | invalid_live_api_key | The project key does not exist or was revoked. |
| 400 | business_id_required | The X-Business-Id header is missing. |
| 403 | business_id_mismatch | The Business ID does not belong to the project key. |
| 401 | project_key_required | The key is not linked to a project. |
| 403 | project_not_active | The project is not active. |
Updated 2026
Did this page help you?