Errors & limits

Consistent JSON errors with machine-readable codes.

Errors use conventional HTTP status codes and a JSON body:

{
  "error": {
    "code": "validation_failed",
    "message": "The amount field is required.",
    "fields": { "amount": ["The amount field is required."] }
  }
}
HTTPcodeMeaning
401unauthenticatedMissing or unknown X-Zyvo-Key.
401invalid_signatureSignature does not match the raw body.
403merchant_frozenYour account is frozen — contact support.
404not_foundUnknown invoice or withdrawal.
422validation_failedInvalid parameters; see fields.
422insufficient_balanceWithdrawal exceeds your available balance.
422address_not_whitelisted / address_cooldownPayout address not whitelisted or still in its security cooldown.
422 / 503network_unavailableThe network is disabled or temporarily out of deposit capacity.
429rate_limitedMore than 240 requests per minute per key.