Overview
The transaction_reason_type enum is used in the Create Transaction and Create Batch request body as the optionalreason field. It describes the outcome or cause of a transaction (e.g. decline, failure, limit exceeded). If omitted, the system uses WITHOUT_REASON. The field is optional so existing integrations remain valid.
Full Enum Values
All allowed values (alphabetically):| Value | Description |
|---|---|
ACCOUNT_BLOCKED | Account is blocked |
ACCOUNT_CLOSED | Account is closed |
ACCOUNT_FROZEN | Account is frozen |
AML_ALERT | AML (Anti-Money Laundering) alert |
BENEFICIARY_BLOCKED | Beneficiary is blocked |
BENEFICIARY_LIMIT_EXCEEDED | Beneficiary limit exceeded |
CARD_BLOCKED | Card is blocked |
CARD_EXPIRED | Card has expired |
CARD_LOST_OR_STOLEN | Card reported lost or stolen |
CANCELLED_BY_MERCHANT | Cancelled by merchant |
CANCELLED_BY_SYSTEM | Cancelled by system |
CANCELLED_BY_USER | Cancelled by user |
CHANNEL_NOT_ALLOWED | Channel not allowed |
COMPLIANCE_BLOCK | Compliance block |
CONNECTION_ERROR | Connection error |
CONTACT_ISSUER | Contact card issuer |
CONVERSION_NOT_ALLOWED | Currency conversion not allowed |
COUNTRY_RESTRICTION | Country restriction |
CURRENCY_NOT_SUPPORTED | Currency not supported |
DAILY_LIMIT_EXCEEDED | Daily limit exceeded |
DOCUMENTATION_REQUIRED | Documentation required |
DO_NOT_HONOR | Do not honor (generic decline) |
DUPLICATE_TRANSACTION | Duplicate transaction |
EXCEEDS_WITHDRAWAL_FREQUENCY | Exceeds withdrawal frequency |
EXPIRED | Transaction or resource expired |
FRAUD_SUSPECTED | Fraud suspected |
INSUFFICIENT_FUNDS | Insufficient funds |
INSUFFICIENT_LIQUIDITY | Insufficient liquidity |
INVALID_ACCOUNT | Invalid account |
INVALID_AMOUNT | Invalid amount |
INVALID_BENEFICIARY | Invalid beneficiary |
INVALID_CARD | Invalid card |
INVALID_CREDENTIALS | Invalid credentials |
INVALID_PIN | Invalid PIN |
KYC_PENDING | KYC pending |
KYC_REJECTED | KYC rejected |
LIMIT_EXCEEDED | Limit exceeded (generic) |
LOST_CARD | Lost card |
MAINTENANCE | System maintenance |
MERCHANT_BLOCKED | Merchant blocked |
MERCHANT_CATEGORY_BLOCKED | Merchant category blocked |
MONTHLY_LIMIT_EXCEEDED | Monthly limit exceeded |
OTHER | Other reason |
PEP_MATCH | PEP (Politically Exposed Person) match |
PICK_UP_CARD | Pick up card (retain) |
PIN_TRIES_EXCEEDED | PIN tries exceeded |
RECURRING_NOT_ALLOWED | Recurring not allowed |
REFUSED_BY_ACQUIRER | Refused by acquirer |
REFUSED_BY_ISSUER | Refused by issuer |
REQUIRED_FIELD_MISSING | Required field missing |
RESERVATION_FAILED | Reservation failed |
RESTRICTED_CARD | Restricted card |
RISK_SCORE_THRESHOLD | Risk score threshold exceeded |
SANCTIONS_MATCH | Sanctions list match |
STOLEN_CARD | Stolen card |
SYSTEM_ERROR | System error |
TIME_RESTRICTION | Time restriction |
TIMEOUT | Timeout |
TRANSACTION_LIMIT_EXCEEDED | Transaction limit exceeded |
VALIDATION_FAILED | Validation failed |
WITHOUT_REASON | No specific reason (default when omitted) |
Usage
- Create Transaction: Send
reasonin the request body with any value from the table above. Omit to useWITHOUT_REASON. - Create Batch: Each transaction in the array can include
reason; same behavior as Create Transaction. - Rules / Conditions: Use the
transaction.global.reasonfield in rule conditions to filter or score by outcome reason.
See Also
- Create Transaction â Request body and
reasonfield - Create Batch â Batch creation with optional
reasonper transaction