Most codes on this page are 1xxx request-validation and processing errors. Some code numbers are also used by Hosted Payments with a different meaning, so always read TEXT along with CODE.
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 when the TERMID isn't recognized, and 9128), see Authentication.
| Code | Message | Description |
|---|
1000 | FORMAT ERROR | TERMID or TYPE is missing or malformed. Other missing or invalid fields return their own codes below. |
1001 | INVALID TERMID / INVALID SUBTYPE / INVALID OPERID | One of these fields contains invalid characters or is the wrong length. (1001 is also used for authentication errors — see Authentication.) |
1003 | DECLINED (CV) | Card velocity limit reached: this card already has the maximum number of approved transactions allowed on this terminal in the last 24 hours. Only applies if the terminal has a velocity limit set. |
1011 | MISSING AMT / ILLEGAL AMT / INVALID AMT / INVALID USERFEE / INVALID PLATFEE / INVALID PLATCHRG | AMT is missing, zero or negative (ILLEGAL AMT), or an amount field is malformed. |
1013 | AMT TOO HIGH / USERFEE TOO HIGH / PLATFEE TOO HIGH / PLATCHRG TOO HIGH | An amount exceeds the gateway maximum. |
1019 | RETURNS DISABLED / INVALID TRANTYPE E | Refunds are disabled on this terminal (RETURNS DISABLED), or the SUBTYPE isn't supported (INVALID TRANTYPE E). |
1028 | INVALID OPERID | OPERID is too short. Other OPERID format problems return 1001. |
1031 | MISSING REF / INVALID REF LEN / BAD CHAR IN REF | REF is missing, the wrong length, or contains invalid characters. |
1032 | Card data error | The card data or token failed validation. TEXT contains the specific message: INVALID TOKEN, INVALID OTT, MISSING CARD NUMBER, INVALID CARD NUMBER, INVALID CARD NUMBER LEN, MISSING EXPIRY DATE or INVALID EXPIRY DATE. |
1036 | INVALID INV / INVALID INV LEN | The invoice number contains invalid characters or 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). |
1041 | MISSING ZIP / INVALID SOURCE | The terminal requires a ZIP/postal code but none was sent on a Sale, Auth or Pre-Auth (MISSING ZIP), or SOURCE is malformed (INVALID SOURCE). |
1042 | INVALID ZIP | A ZIP was supplied but is not a valid US ZIP/ZIP+4 or Canadian postal code. |
1043 | INVALID CUSTEMAIL | CUSTEMAIL isn't a valid email address. |
8422 | INVALID CUSTID | CUSTID contains invalid characters or is too long. |
| 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 / INVALID AUTH | Force Post (TYPE=F) was sent without an AUTH number, or an AUTH value on any transaction type is malformed. |
1035 | DUPLICATE REF | An approved transaction with this REF already exists in the open batch. Declined transactions aren't recorded, so they never cause 1035. |
Important: 1035 means an approved transaction with this REF is already in the open batch — possibly from an earlier attempt of the same request. The gateway returns an error, not the original result. Before re-submitting with a new REF, query the original via Transaction Query so you don't charge twice.
| Code | Message | Description |
|---|
1037 | USERFEE NOT ALLOWED / USERFEE TOO SMALL | The merchant isn't enrolled in CustomerPay, USERFEE was sent on a transaction type that doesn't allow it (only Sale, Pre-Auth, Force Post and Completion do), or USERFEE is below the required minimum for the transaction amount. |
1038 | PLATFEE NOT ALLOWED | The terminal isn't enabled for Platform Fees, or the transaction type doesn't allow them (only Sale, Pre-Auth, Force Post and Completion do). |
1039 | PLATCHRG NOT ALLOWED | The terminal isn't enabled for Platform Charges, or the transaction type doesn't allow them (only Sale, Pre-Auth, Force Post, Completion and Refund do). |
| Code | Message | Description |
|---|
1033 | NOTHING TO SETTLE | The batch has no transactions ready to settle. By default only Sales, Refunds, Force Posts and Completions dated before midnight are included; send FORCECLOSE to include today's. |
9134 | TERMID BUSY TRY LATER | Another settlement is already running for this terminal. Retry shortly. |
9203 | BATCH ERROR | The processor rejected the settlement batch. Contact [email protected]. |
| Code | Message | Description |
|---|
8601 | INVALID APIKEY | The API key passed to Interpay.tokenize() is invalid. 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 |
|---|
1097 | BANK ERROR | The gateway couldn't communicate with the processor. Check the transaction with Transaction Query before retrying. |
9102 | TRAN TIMEOUT / GATEWAY CONFIG ERROR | TRAN TIMEOUT: the transaction took too long, and the gateway cancelled it or reversed the approval. GATEWAY CONFIG ERROR: the terminal is misconfigured — contact [email protected]; don't retry. |
| Code | Message | Description |
|---|
9100 | GATEWAY ERROR / DATA UPDATE ERROR | Internal gateway error. GATEWAY ERROR can occur after the processor has already approved the transaction, so check it with Transaction Query before retrying a payment. |
| Code | Message | Description |
|---|
8421 | PROGRAM FMT INVALID | A PROGRAM entry is missing its Name or AMT. Inside a split, transfer or schedule, also returned when the Name is malformed. |
8422 | PROGRAM AMT INVALID / PLAYER AMT INVALID / ACCOUNT AMT INVALID | Inside a split, transfer or schedule: an entry's AMT is malformed, zero or negative. |
8423 | PLAYER FMT INVALID | A PLAYER entry is missing its id or AMT. Inside a split, transfer or schedule, also returned when the id is malformed. |
8424 | ACCOUNT FMT INVALID / PROGRAM SUM TOO LARGE / PLAYER SUM TOO LARGE / ACCOUNT SUM TOO LARGE | An ACCOUNT entry is missing its DESC or AMT (inside a split, transfer or schedule, also when the DESC is malformed); or, inside a split, transfer or schedule, a group's entries add up to more than the amount they belong to. |
1035 Duplicate Reference — critical for idempotent retry logic. An approved transaction with this REF is already in the open batch. Query it via Transaction Query before re-submitting with a new REF.
- Validation errors (
1000, 1001, 1011, 1013, 1019, 1028, 1031, 1036, 1040, 1041, 1042, 1043, 8421–8424) — bugs in your integration. Fix the request format.
1032 Card data error — user-facing. Show the customer a "please check your card details" message.
1003 Card velocity limit — user-facing. This card can't be used again on this terminal for 24 hours; ask the customer for a different card.
- 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.
- Settlement errors (
9134, 9203) — retry 9134 shortly; contact support for 9203.
- Embedded Tokenization (
8601, 8602) — request a fresh API key via GetAPIKey and prompt the customer to re-enter card details.
- Network and gateway errors (
1097, 9100, 9102) — the transaction may or may not have gone through. Query it with Transaction Query before retrying, then fall over to the alternate gateway server if needed.