Common Errors & Fixes

A quick-reference guide to every error code you are likely to encounter, what causes it, and the fastest fix.


Authentication errors

CodeHTTP StatusCauseFix
unauthorized401Missing or invalid x-api-keyCheck header name and key value
key_revoked401API key has been revokedGenerate a new key in the dashboard
wrong_environment403Sandbox key used on production URL or vice versaMatch key prefix to base URL
forbidden403Key valid but lacks permission for this operationCheck role permissions in the dashboard
ip_not_allowed403Request IP not in whitelistAdd IP to allowed list in Settings

Request errors

CodeHTTP StatusCauseFix
missing_required_field400A required field is absent from the request bodyCheck the API Reference for required fields
invalid_field_value400A field contains an invalid value or formatVerify field format against the API Reference
missing_idempotency_key400Idempotency-Key header absent on a POST createAdd Idempotency-Key header with a UUID
invalid_content_type400Content-Type header is not application/jsonSet Content-Type: application/json
idempotency_conflict409Same key reused with different payload or endpointGenerate a new UUID for this action
validation_error422Request is well-formed but logically invalidRead error.message for specific field guidance

Organization errors

CodeHTTP StatusCauseFix
organization_not_found404Organization ID does not existVerify the org_ ID
organization_not_verified403KYC/KYB not yet approvedComplete verification before transacting
organization_suspended403Organization suspended by complianceContact your NadaPay account manager

Account and wallet errors

CodeHTTP StatusCauseFix
account_not_found404Account ID does not existVerify the acct_ ID
account_frozen403Account is temporarily lockedContact support
wallet_not_found404Wallet ID does not existVerify the wlt_ ID
wallet_frozen403Wallet is temporarily lockedContact support
insufficient_funds422available_balance is below total_debitTop up the wallet or reduce transaction amount
currency_mismatch422Wallet currency does not match quote source currencyUse the correct wallet for the corridor

Beneficiary errors

CodeHTTP StatusCauseFix
beneficiary_not_found404Beneficiary ID does not existVerify the ben_ ID
beneficiary_account_not_found404Beneficiary account ID does not existVerify the bac_ ID
beneficiary_account_invalid422Account failed validationRe-validate or correct account details
beneficiary_account_expired422Validation result has expiredRe-validate the beneficiary account
bank_account_not_found422Account could not be resolved at the bankCheck account number and bank code
unsupported_network422Network or payout method not availableUse Get Provider Networks to verify

Quote and transaction errors

CodeHTTP StatusCauseFix
quote_not_found404Quote ID does not existFetch a new quote
quote_expired422Quote TTL has passedFetch a new quote and retry immediately
limit_exceeded422Transaction exceeds min or max limitCheck limits via Get Transaction Limits
daily_limit_exceeded422Daily volume cap reachedWait until the next day or contact support to review limits
corridor_unavailable503Payout rail temporarily downRetry after a delay — check status.nadapay.com
compliance_hold403Transaction flagged for compliance reviewContact your NadaPay account manager
duplicate_reference409reference already used for a different transactionUse a unique reference per transaction

Server errors

CodeHTTP StatusCauseFix
internal_error500Unexpected NadaPay-side errorRetry with exponential backoff; check status.nadapay.com
service_unavailable503NadaPay API is temporarily unavailableRetry with backoff; check status.nadapay.com

All error responses include a request_id. Always include this when contacting support.


Retry guidance

Error typeRetriable?Strategy
4xx (client errors)❌ Generally noFix the request before retrying
insufficient_funds✅ After fundingTop up wallet, then retry with same idempotency key
quote_expired✅ After new quoteFetch fresh quote, then retry with same idempotency key
corridor_unavailable✅ With backoffWait and retry — use same idempotency key
5xx (server errors)✅ With backoffExponential backoff: 1s, 5s, 30s, 2m — use same idempotency key