VALIDATION_ERROR | 422 | Input validation failed (e.g., invalid email format). | Check the details field for specific field errors. |
IDEMPOTENCY_CONFLICT | 409 | Idempotency-Key reused with different parameters. | Use a unique key per intent, or identical params for retries. |
CONFLICT | 409 | Resource already exists (e.g. signup with existing email). | Use a different unique identifier or login. |
API_KEY_REVOKED | 401 | The API key has been deleted/revoked. | Generate a new key in the dashboard. |
API_KEY_INVALID | 401 | The API key provided does not exist. | Double-check the key in your dashboard. |
MISSING_AUTH | 401 | Authorization header is required. | Include Authorization: Bearer <key> header. |
INVALID_CREDENTIALS | 401 | Incorrect email or password during dashboard login. | Check your credentials. |
MERCHANT_NOT_FOUND | 401 | Merchant account associated with key doesn’t exist. | Contact support. |
INVALID_TOKEN | 401 | Dashboard JWT session is invalid or expired. | Log out and log back in to the dashboard. |
FORBIDDEN | 403 | You do not have access to this resource. | Verify you are using the correct merchant context. |
NOT_FOUND | 404 | The resource (Payment, Refund, etc.) was not found. | Verify the ID in your request. |
GONE | 410 | The resource (e.g., Checkout Session) has expired. | Initiate a new payment request. |
RATE_LIMIT_EXCEEDED | 429 | Too many requests sent in a short period. | Implement exponential backoff. |
INVALID_CURSOR | 400 | The pagination cursor provided is invalid or malformed. | Ensure you are passing the exact next_cursor from the previous response. |
BAD_REQUEST | 400 | Generic bad request or malformed payload. | Check your JSON structure and required fields. |