VALIDATION_ERROR | Request body, query parameter, or field value is invalid. | Fix the request before retrying. |
UNAUTHORIZED | API key or session is missing or invalid. | Check environment and key storage. |
FORBIDDEN | The key or user does not have permission for the action. | Check key type, payout policy, or dashboard permission. |
NOT_FOUND | Resource does not exist or does not belong to the business. | Check IDs and environment. |
CONFLICT | Request conflicts with current resource state. | Fetch the resource and resolve state before retrying. |
DUPLICATE_REQUEST | A duplicate create request was detected. | Reuse idempotency keys and inspect the existing resource. |
IDEMPOTENCY_REQUEST_IN_PROGRESS | Another request with the same key is still processing. | Wait, then fetch the resource or retry safely. |
IDEMPOTENCY_KEY_MISMATCH | Same idempotency key was reused with a different payload. | Use stable keys per unique business action. |
RATE_LIMIT_EXCEEDED | Too many requests in a window. | Back off and reduce polling. |
INSUFFICIENT_BALANCE | Available business balance is not enough for the action. | Reconcile balance or reduce the amount. |
WITHDRAWAL_AMOUNT_EXCEEDS_AVAILABLE_BALANCE | Requested withdrawal exceeds current withdrawable capacity after policy checks. | Use a smaller amount, wait for pending_funds to clear where applicable, or resolve recovery-required funds. |
SPONSORED_GAS_CREDIT_INSUFFICIENT | Sponsored outbound operation needs more gas credit. | Top up gas credits or wait for the next included allowance. |
WEBHOOK_EVENT_IN_FLIGHT | Webhook delivery is already being processed. | Wait for terminal delivery state. |
WEBHOOK_EVENT_ALREADY_SCHEDULED | Retry or replay is already scheduled. | Do not schedule another duplicate attempt. |
WEBHOOK_EVENT_ALREADY_DELIVERED | Webhook already reached a delivered state. | Treat as successful or replay only when supported. |
WEBHOOK_EVENT_NOT_FOUND | Webhook event ID was not found. | Check environment and event ID. |
WEBHOOK_RETRY_COOLDOWN | Retry is temporarily blocked by cooldown. | Retry later. |
WEBHOOK_REPLAY_NOT_SUPPORTED | The event cannot be replayed. | Use normal retry or fetch the resource directly. |
WEBHOOK_REPLAY_REQUIRES_TERMINAL_STATE | Event must reach terminal state before replay. | Wait for delivery to finish. |
WEBHOOK_REPLAY_COOLDOWN | Replay is temporarily blocked by cooldown. | Retry later. |
BILLING_INVOICE_NOT_FOUND | Billing invoice was not found. | Check invoice ID and environment. |
BILLING_UNDERPAYMENT | Billing payment was lower than required. | Pay the required invoice amount. |
BILLING_INVOICE_NOT_PAYABLE | Billing invoice is cancelled, expired, or not payable. | Start a new billing or upgrade flow. |
BILLING_PAYMENT_REPLAY_CONFLICT | Billing payment conflicts with a prior payment record. | Contact support with request ID. |
REDIS_COORDINATION_UNAVAILABLE | Temporary coordination dependency is unavailable. | Retry later with idempotency. |
SERVICE_UNAVAILABLE | PayChain dependency or service is temporarily unavailable. | Retry later with backoff. |
INTERNAL_SERVER_ERROR | Unexpected PayChain error. | Retry if safe, then contact support with request ID. |