Skip to main content

Errors

Omniware returns errors as JSON with an error object instead of data:

{
"error": {
"code": 1023,
"message": "Hash Mismatch"
}
}

A successful response always has a top-level data object. A failed response always has a top-level error object. They never appear together.

Error categories

Validation errors (4xx semantics)

Caused by malformed input — missing required fields, bad hash, invalid amount, unknown order ID. Fix the request and retry. The most common is 1023 — Hash Mismatch, which usually means you forgot to skip an empty field or sorted on the wrong locale.

Authorization errors

Returned when your IP is not whitelisted or your api_key is wrong. Do not retry blindly — fix the credential or whitelist your IP first.

Not-found errors

Codes like 1028 — Transaction not found and 1050 — No data record found for the given input. These mean Omniware does not (yet) have a record matching your query. Retry with backoff in case the underlying transaction is still propagating.

Bank / network errors

Code 1029 — Transaction Terminated and friends. The bank or scheme could not complete the operation. Treat the original transaction as failed and retry with a fresh order_id / merchant_reference_number.

State errors

e.g. GEN-INVOICE-EXISTS, GEN-STATUS-INVALID. The resource is in a state that doesn't permit the operation. Fetch the latest state and decide whether to retry.

Retry policy

SymptomAction
Network timeout, 5xx, no responseCheck the matching status API first. Retry only with a reference that cannot create a duplicate operation.
1023 Hash mismatchDo not retry. Fix the hash and resend.
1028 Transaction not found (right after a payment)Retry 2–3× with 5–10s gaps. The lookup may lag the write.
1029 Transaction terminatedTreat as failed. Generate a new order_id if you want to try again.
1086 More than 50 recordsAdd page_number and per_page to the request.

Full code reference

See Reference → Error codes for the complete numeric table.