Skip to main content
Every response — success or failure — is wrapped in a consistent envelope. On failure, status is false, data is null, and a stable, machine-readable code tells you what went wrong.
{
  "status": false,
  "message": "Wallet not found",
  "code": "not_found",
  "data": null,
  "meta": {
    "request_id": "req_01HXYZ4K5ABCDEFGHJKLMNPQRS",
    "timestamp": "2026-05-14T15:43:55.732Z",
    "version": "1"
  }
}
Branch on code, not on message — messages are human-readable and may change, while code is stable. Include meta.request_id when contacting support.

HTTP status codes

StatusMeaning
200Success.
400The request was malformed or failed validation.
401Authentication failed — missing or invalid API key.
403Authenticated, but not permitted to perform this action.
404The resource does not exist in your integration.
409The request conflicts with current state (e.g. a duplicate or an invalid status transition).
429Too many requests — you have been rate limited.
5xxAn unexpected error on our side, or an upstream provider was unavailable.

Error codes

CodeWhen it happens
invalid_inputA field is missing, malformed, or fails validation.
authentication_failedThe API key is missing or invalid.
forbiddenThe key is not allowed to perform this action.
not_foundThe referenced resource does not exist.
invalid_statusThe resource is in a state that does not allow this operation.
duplicate_resourceA resource with the same identity already exists.
idempotency_conflictAn Idempotency-Key was reused with a different request body. See Idempotency.
idempotency_in_progressA request with the same Idempotency-Key is still being processed.
ledger_insufficient_fundsThe wallet does not have enough balance for this operation.
rate_limitedYou have exceeded the request rate limit.
external_service_unavailableAn upstream provider was temporarily unavailable. Retry with backoff.
internal_errorAn unexpected error occurred on our side.