Error codes

errors.intro

CodeHTTPMeaningRecovery
AUTH_MISSING401No Authorization header was sent.Add Authorization: Bearer <api_key>.
AUTH_INVALID401The API key is revoked, malformed, or scoped to a different environment.Verify the key in dashboard.zyndpay.io/settings/api-keys.
PERMISSION_DENIED403The API key lacks the scope to perform this operation.Create a new key with the required scope — scopes are immutable after creation.
NOT_FOUND404The resource does not exist or belongs to another merchant.Double-check the id and environment (sandbox vs live are isolated).
VALIDATION_FAILED400Request body failed DTO validation. See details[] for per-field reasons.Fix the highlighted fields and retry. No idempotent retry required.
IDEMPOTENCY_CONFLICT409An earlier request with the same Idempotency-Key produced a different body.Use a fresh key — keys are bound to a specific payload hash.
RATE_LIMITED429Per-merchant rate limit exceeded (see issue #201).Back off using the Retry-After header. Default 60s.
INSUFFICIENT_BALANCE422Merchant USDT balance is lower than the requested payout or withdrawal.Top up via pay-ins or reduce the amount.
DESTINATION_NOT_WHITELISTED422Payout target address is not in the merchant whitelist.Add the address in dashboard.zyndpay.io/settings/whitelist first.
COMPLIANCE_HOLD423Transaction flagged by AML/KYB and requires manual review.Email [email protected] — do NOT retry, it will re-trigger the same review.
CHAIN_UNAVAILABLE503Upstream TRON node or Tatum is unreachable. Circuit breaker is open (#240).Retry with exponential backoff. Status page reflects ongoing incidents.
WEBHOOK_SIGNATURE_INVALID401Returned by the sandbox echo endpoint when the signature does not match.Sign raw bytes (not re-encoded JSON) with the secret you received at webhook creation.
INTERNAL_ERROR500Unexpected error — a Sentry trace has been recorded.Include the requestId field when contacting support.
Was this helpful?