Codes in the 1xxx range are specific to this integration method.
Check the CODE field on every response. 0000 means the transaction was approved. Any other value indicates a validation error, a setup issue, a network problem, or a card decline. The TEXT field contains a human-readable message.
For card declines from the card network, see Credit Card Declines. For authentication errors (1001, 9128), see Authentication.
| Code | Message | Description |
|---|
1000 | FORMAT ERROR | The transaction message is malformed, required fields are missing, or a value is out of bounds. |
1003 | DECLINED (CV) | Card verification check failed. |
1011 | MISSING AMT / ILLEGAL AMT | AMT is missing or has an invalid value. |
1028 | INVALID OPERID | OPERID is malformed. |
1031 | MISSING REF / INVALID REF LEN / BAD CHAR IN REF | REF is missing, too long, or contains invalid characters. |
1032 | Card data error | The card data (number, expiry, CVV) failed validation. The TEXT field contains the specific validation message. |
1034 | INVALID OVERRIDE TID | Terminal override was rejected. |
1036 | INVALID INV LEN | Invoice number is the wrong length. |
1040 | ONLY PLATFEE OR PLATCHRG / TRAN TYPE CANNOT SPLIT | Both PLATFEE and PLATCHRG were sent, or a Split was attempted on a transaction type that doesn't support it (SPLIT is only allowed on Sale, Completion, Refund, and Force Post). |
| Code | Message | Description |
|---|
1016 | COMP NO MATCH | Completion (TYPE=C) was attempted but doesn't match a prior Pre-Authorization. |
1017 | NOT VOIDABLE TYPE / VOID NO MATCH | Void (TYPE=V) or Refund Void (TYPE=M) was attempted against a transaction that doesn't exist or can't be voided. |
1029 | MISSING AUTH / ILLEGAL AUTH / INVALID AUTH | Force Post (TYPE=F) requires an AUTH number from a prior Auth Only. |
1035 | DUPLICATE REF | A transaction with this REF already exists on this terminal. This is the gateway's built-in duplicate protection. |
Important: 1035 means your request was received before, and the original transaction's outcome is the authoritative answer. Don't re-submit with a new REF to work around it — query the original transaction via Transaction Query to get the result.
| Code | Message | Description |
|---|
1037 | USERFEE NOT ALLOWED / USERFEE TOO SMALL | The merchant is not enrolled in CustomerPay, or the USERFEE is below the required minimum for the transaction amount. |
1038 | PLATFEE NOT ALLOWED | The terminal does not have ENABLE PLAT FEE set, or this transaction type does not support Platform Fees. |
1039 | PLATCHRG NOT ALLOWED | The terminal does not have ENABLE PLAT CHRG set, or this transaction type does not support Platform Charges. |
| Code | Message | Description |
|---|
1033 | NOTHING TO SETTLE | Settlement (TYPE=D) was called but the batch contains no transactions. |
| Code | Message | Description |
|---|
8601 | INVALID APIKEY | The API key passed to Interpay.tokenize() is invalid or expired. Request a fresh one from GetAPIKey. |
8602 | Card data validation error | Card data submitted to the tokenization endpoint failed validation. The TEXT field contains the specific message. |
| Code | Message | Description |
|---|
1098 | INVALID RESPONSE FROM HOST | The processing host returned an unexpected response. Retry on the alternate gateway server. |
9102 | TRAN TIMEOUT / GATEWAY CONFIG ERROR | The transaction timed out before the host responded, or the terminal is misconfigured. Retry; if it recurs, contact [email protected]. |
| Code | Message | Description |
|---|
9100 | DATA UPDATE ERROR | Internal gateway error while recording the transaction. Retry the call. |
9900 | SYSTEM ERROR | Unexpected gateway exception. Retry on the alternate gateway server. |
1035 Duplicate Reference — critical for idempotent retry logic. Never re-submit with a new REF. Query the original transaction instead.
- Validation errors (
1000, 1011, 1028, 1031, 1032, 1034, 1036, 1040, 1041) — bugs in your integration. Fix the request format.
1032 Card data error — user-facing. Show the customer a "please check your card details" message.
- Authorization flow errors (
1016, 1017, 1029) — logic issues. You're submitting a capture, void, or refund against a transaction that doesn't match the expected state. Verify your state-tracking.
- Fee-not-allowed errors (
1037, 1038, 1039) — either the terminal isn't configured for this fee type (contact [email protected]) or the transaction type doesn't support fees (see [Transaction Types]).
- Embedded Tokenization (
8601, 8602) — request a fresh API key via GetAPIKey and prompt the customer to re-enter card details.
- Network errors (
1098, 9102, 9100, 9900) — retryable. Use exponential backoff and fall over to the alternate gateway server after a timeout.