This page is generated from the OpenAPI responses, so it stays in sync with
the API. Program against
code; type groups codes by broad kind,
and param (when present) names the field at fault. See
Errors for the envelope shape.| Code | HTTP status | type | Retryable | Endpoints | What to do |
|---|---|---|---|---|---|
API_KEY_INVALID | 401 | AUTHENTICATION_ERROR | No | DELETE /2026-07-13/cards/, GET /2026-07-13/cards, GET /2026-07-13/cards/activities, GET /2026-07-13/cards/balances, GET /2026-07-13/cards/categories, GET /2026-07-13/cards/transaction-categories, GET /2026-07-13/cards/, GET /2026-07-13/health, GET /2026-07-13/team-members, GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/cards, POST /2026-07-13/cards//reveal, POST /2026-07-13/treasury/bank-transfer-confirmations, PUT /2026-07-13/cards/, PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//restriction, PUT /2026-07-13/cards//spend-control, PUT /2026-07-13/cards//unfreeze | API key is invalid. |
API_KEY_IP_NOT_ALLOWED | 403 | PERMISSION_ERROR | No | DELETE /2026-07-13/cards/, GET /2026-07-13/cards, GET /2026-07-13/cards/activities, GET /2026-07-13/cards/balances, GET /2026-07-13/cards/categories, GET /2026-07-13/cards/transaction-categories, GET /2026-07-13/cards/, GET /2026-07-13/health, GET /2026-07-13/team-members, GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/cards, POST /2026-07-13/cards//reveal, POST /2026-07-13/treasury/bank-transfer-confirmations, PUT /2026-07-13/cards/, PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//restriction, PUT /2026-07-13/cards//spend-control, PUT /2026-07-13/cards//unfreeze | Request IP is not allowed for this API key. |
API_KEY_RATE_LIMITED | 429 | RATE_LIMIT_ERROR | Yes | DELETE /2026-07-13/cards/, GET /2026-07-13/cards, GET /2026-07-13/cards/activities, GET /2026-07-13/cards/balances, GET /2026-07-13/cards/categories, GET /2026-07-13/cards/transaction-categories, GET /2026-07-13/cards/, GET /2026-07-13/health, GET /2026-07-13/team-members, GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/cards, POST /2026-07-13/cards//reveal, POST /2026-07-13/treasury/bank-transfer-confirmations, PUT /2026-07-13/cards/, PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//restriction, PUT /2026-07-13/cards//spend-control, PUT /2026-07-13/cards//unfreeze | API key rate limit exceeded. |
AUTH_CREDENTIAL_MISSING | 401 | AUTHENTICATION_ERROR | No | DELETE /2026-07-13/cards/, GET /2026-07-13/cards, GET /2026-07-13/cards/activities, GET /2026-07-13/cards/balances, GET /2026-07-13/cards/categories, GET /2026-07-13/cards/transaction-categories, GET /2026-07-13/cards/, GET /2026-07-13/health, GET /2026-07-13/team-members, GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/cards, POST /2026-07-13/cards//reveal, POST /2026-07-13/treasury/bank-transfer-confirmations, PUT /2026-07-13/cards/, PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//restriction, PUT /2026-07-13/cards//spend-control, PUT /2026-07-13/cards//unfreeze | Authentication is required. |
AUTH_INSUFFICIENT_PERMISSIONS | 403 | PERMISSION_ERROR | No | DELETE /2026-07-13/cards/, GET /2026-07-13/cards, GET /2026-07-13/cards/activities, GET /2026-07-13/cards/balances, GET /2026-07-13/cards/categories, GET /2026-07-13/cards/transaction-categories, GET /2026-07-13/cards/, GET /2026-07-13/health, GET /2026-07-13/team-members, GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/cards, POST /2026-07-13/cards//reveal, POST /2026-07-13/treasury/bank-transfer-confirmations, PUT /2026-07-13/cards/, PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//restriction, PUT /2026-07-13/cards//spend-control, PUT /2026-07-13/cards//unfreeze | Insufficient permissions. |
AUTH_METHOD_NOT_ALLOWED | 403 | PERMISSION_ERROR | No | DELETE /2026-07-13/cards/, GET /2026-07-13/cards, GET /2026-07-13/cards/activities, GET /2026-07-13/cards/balances, GET /2026-07-13/cards/categories, GET /2026-07-13/cards/transaction-categories, GET /2026-07-13/cards/, GET /2026-07-13/health, GET /2026-07-13/team-members, GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/cards, POST /2026-07-13/cards//reveal, POST /2026-07-13/treasury/bank-transfer-confirmations, PUT /2026-07-13/cards/, PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//restriction, PUT /2026-07-13/cards//spend-control, PUT /2026-07-13/cards//unfreeze | This endpoint does not accept the credential type provided. |
CARD_CREATION_REQUIRES_DEPOSIT | 422 | INVALID_REQUEST_ERROR | No | POST /2026-07-13/cards | Deposit funds in the dashboard. See How to add funds to your Reap Account in the Help Center. |
CARD_CREATION_UNAVAILABLE | 503 | API_ERROR | Yes | POST /2026-07-13/cards | Card creation temporarily unavailable. Please retry shortly. |
CARD_LIMIT_EXCEEDED | 429 | RATE_LIMIT_ERROR | Yes | POST /2026-07-13/cards | Your account has reached the maximum number of cards. Contact support to request more. |
CARD_STATE_CONFLICT | 409 | INVALID_REQUEST_ERROR | No | PUT /2026-07-13/cards//freeze, PUT /2026-07-13/cards//unfreeze | The requested card state transition is not allowed. |
CARDHOLDER_NOT_FOUND | 422 | INVALID_REQUEST_ERROR | No | POST /2026-07-13/cards | The team member must be approved in the dashboard first. See Managing Your Team in the Help Center. |
CURRENCY_MISMATCH | 422 | INVALID_REQUEST_ERROR | No | POST /2026-07-13/cards, PUT /2026-07-13/cards//spend-control | The provided currency does not match the card currency. |
DUPLICATE_REFERENCE | 400 | INVALID_REQUEST_ERROR | No | POST /2026-07-13/treasury/bank-transfer-confirmations | A transaction with this reference ID is already recorded. |
FREEZE_REASON_NOT_APPLICABLE | 422 | INVALID_REQUEST_ERROR | No | PUT /2026-07-13/cards//freeze | This freeze reason only applies to physical cards. |
FUNDING_METHOD_NOT_AVAILABLE | 400 | INVALID_REQUEST_ERROR | No | GET /2026-07-13/treasury/funding-instructions, POST /2026-07-13/treasury/bank-transfer-confirmations | This funding method is not available for this product. |
IDEMPOTENCY_KEY_IN_FLIGHT | 409 | INVALID_REQUEST_ERROR | No | POST /2026-07-13/cards, POST /2026-07-13/treasury/bank-transfer-confirmations | A request with this Idempotency-Key is still being processed. Retry shortly. |
IDEMPOTENCY_KEY_REUSED | 422 | INVALID_REQUEST_ERROR | No | POST /2026-07-13/cards, POST /2026-07-13/treasury/bank-transfer-confirmations | This Idempotency-Key was already used with a different request body. |
IDEMPOTENCY_UNAVAILABLE | 503 | API_ERROR | Yes | POST /2026-07-13/cards, POST /2026-07-13/treasury/bank-transfer-confirmations | The idempotent request outcome could not be safely determined. |
REAP_OPTIMIZE_TERMS_NOT_ACCEPTED | 403 | PERMISSION_ERROR | No | GET /2026-07-13/treasury/funding-instructions | Accept the Reap Optimize terms in the dashboard. See What is Reap Optimize? in the Help Center. |
SPEND_CAP_TOO_LOW | 400 | INVALID_REQUEST_ERROR | No | PUT /2026-07-13/cards//spend-control | Spend cap cannot be lower than the amount already spent on this card. |
TREASURY_NOT_AVAILABLE | 403 | PERMISSION_ERROR | No | GET /2026-07-13/treasury/funding-instructions, GET /2026-07-13/treasury/funding-options, GET /2026-07-13/treasury/transactions, POST /2026-07-13/treasury/bank-transfer-confirmations | Treasury is not available for this business. |
TREASURY_REQUESTER_NOT_AVAILABLE | 403 | PERMISSION_ERROR | No | POST /2026-07-13/treasury/bank-transfer-confirmations | The API key creator is no longer an approved team member. Create a new API key under a current team member. |