Errors and validations
Error reference
Errors come in three layers:
- HTTP status:
400for validation / business errors,5xxfor infrastructure issues. - Response envelope: top-level
error_code+error_message. errors[]array: granular per-field failures. For Checkout validation errors, every entry useserror_code100000; the message identifies the field and rule that failed.
Error envelope
{
"error_code": 0,
"error_message": "Request data is invalid.",
"errors": [
{ "error_code": 100000, "error_message": "order_amount: This value should not be blank." },
{ "error_code": 100000, "error_message": "order_currency: This value is not valid." }
]
}
Validation errors (1xxxxx)
Payment / Order (100000)
All Payment / Order errors return the code 100000. The difference between each case is the error message.
| Code | Error Message | Category | Cause | Fix |
|---|---|---|---|---|
100000 | payer_card_exp_month: This value should not be blank. | Missing field | Card expiry month not provided. | Send payer_card_exp_month (1–12). |
100000 | payer_card_exp_year: This value should not be blank. | Missing field | Card expiry year not provided. | Send payer_card_exp_year (4-digit year). |
100000 | payer_card_cvv: This value should not be blank. | Missing field | CVV code missing. | Include payer_card_cvv in the payload. |
100000 | order_id: This value should not be blank. | Missing field | Order identifier not sent. | Pass a unique order_id with each request. |
100000 | order_amount: This value should not be blank. | Missing field | Payment amount missing. | Include order_amount in the request. |
100000 | order_amount: This value should be greater than 0. | Invalid value | Amount is zero or negative. | Ensure order_amount > 0. |
100000 | order_currency: This value should not be blank. | Missing field | Currency code not sent. | Send a valid 3-letter ISO currency code. |
100000 | order_description: This value should not be blank. | Missing field | Order description is empty. | Provide a non-blank order_description. |
100000 | payee_card_number: This value should not be blank. | Missing field | Payee card number missing (payout). | Include payee_card_number for payout requests. |
100000 | term_url_3ds: This value should not be blank. | Missing field | 3DS return URL not provided. | Set term_url_3ds to the cardholder redirect URL after 3DS. |
100000 | amount: Amount is not valid. | Invalid value | Amount format is incorrect. | Send amount as a numeric value with up to 2 decimal places. |
100000 | card_exp_year: The date is expired and not valid. | Expired card | Card expiry year is in the past. | Use a valid, non-expired card. |
100000 | The expiration date of card is expired and not valid. | Expired card | Card expiry date is in the past. | Verify card expiry before sending the request. |
100000 | Request from this ip is not allowed. | IP restriction | Requesting IP is not whitelisted for the merchant. | Whitelist the IP in admin settings or send from an allowed IP. |
100000 | order_id: Duplicate payment. | Duplicate request | A payment with the same order_id already exists. | Use a unique order_id for every new payment attempt. |
100000 | merchant_key: Wrong merchant operation. | Auth / config | Merchant key is not permitted for this operation type. | Check that you are using the correct merchant key. |
100000 | schedule_id: Schedule is paused | Schedule state | The referenced schedule is currently paused. | Resume the schedule before sending recurring transactions. |
100000 | Schedule is not found | Schedule state | schedule_id does not exist. | Verify the schedule_id; create the schedule if deleted. |
100000 | schedule_id: Schedule cannot be used for non-recurring transaction | Schedule state | schedule_id passed for a one-time payment. | Remove schedule_id for non-recurring requests. |
100000 | Void is not allowed | Operation restriction | Void is disabled for this merchant or payment. | Enable void in MID settings or contact support. |
100000 | Refund is not allowed | Operation restriction | Refund is disabled for this merchant or payment. | Enable refund in MID settings or contact support. |