# API error codes

`VALIDATION_FAILED`, `UNAUTHENTICATED`, `FORBIDDEN`, `ACCOUNT_SUSPENDED`, `LOGIN_RATE_LIMITED`, `IDEMPOTENCY_KEY_REQUIRED`, `IDEMPOTENCY_CONFLICT`, `QUOTE_INVALID`, `QUOTE_EXPIRED`, `QUOTE_OWNER_MISMATCH`, `RATE_UNAVAILABLE`, `CORRIDOR_INACTIVE`, `AMOUNT_OUT_OF_RANGE`, `DAILY_CAP_EXCEEDED`, `MERCHANT_CANNOT_SEND`, `MERCHANT_CANNOT_RECEIVE`, `WRONG_ORIGIN_COUNTRY`, `WRONG_COUNTRY`, `CODE_NOT_FOUND`, `CODE_EXPIRED`, `ALREADY_REDEEMED`, `TRANSFER_ON_HOLD`, `TRANSFER_CANCELLED`, `ILLEGAL_TRANSITION`, `CODE_NOT_RESENDABLE`, `SETTLEMENT_NOT_DRAFT`, `SETTLEMENT_NOT_CONFIRMED`, `INTERNAL_ERROR`.

Verify business states are: `VALID`, `ALREADY_REDEEMED`, `EXPIRED`, `NOT_FOUND`, `ON_HOLD`. A local anti-abuse extension may return `RATE_LIMITED` with `retry_after`.
