Direct Payment Errors

Error codes returned by Direct with Embedded Tokenization.

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.

Request Validation

CodeMessageDescription
1000FORMAT ERRORTERMID or TYPE is missing or malformed. Other missing or invalid fields return their own codes below.
1001INVALID TERMID / INVALID SUBTYPE / INVALID OPERIDOne of these fields contains invalid characters or is the wrong length. (1001 is also used for authentication errors — see Authentication.)
1003DECLINED (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.
1011MISSING AMT / ILLEGAL AMT / INVALID AMT / INVALID USERFEE / INVALID PLATFEE / INVALID PLATCHRGAMT is missing, zero or negative (ILLEGAL AMT), or an amount field is malformed.
1013AMT TOO HIGH / USERFEE TOO HIGH / PLATFEE TOO HIGH / PLATCHRG TOO HIGHAn amount exceeds the gateway maximum.
1019RETURNS DISABLED / INVALID TRANTYPE ERefunds are disabled on this terminal (RETURNS DISABLED), or the SUBTYPE isn't supported (INVALID TRANTYPE E).
1028INVALID OPERIDOPERID is too short. Other OPERID format problems return 1001.
1031MISSING REF / INVALID REF LEN / BAD CHAR IN REFREF is missing, the wrong length, or contains invalid characters.
1032Card data errorThe 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.
1036INVALID INV / INVALID INV LENThe invoice number contains invalid characters or is the wrong length.
1040ONLY PLATFEE OR PLATCHRG / TRAN TYPE CANNOT SPLITBoth 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).
1041MISSING ZIP / INVALID SOURCEThe 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).
1042INVALID ZIPA ZIP was supplied but is not a valid US ZIP/ZIP+4 or Canadian postal code.
1043INVALID CUSTEMAILCUSTEMAIL isn't a valid email address.
8422INVALID CUSTIDCUSTID contains invalid characters or is too long.

Authorization and Capture

CodeMessageDescription
1016COMP NO MATCHCompletion (TYPE=C) was attempted but doesn't match a prior Pre-Authorization.
1017NOT VOIDABLE TYPE / VOID NO MATCHVoid (TYPE=V) or Refund Void (TYPE=M) was attempted against a transaction that doesn't exist or can't be voided.
1029MISSING AUTH / INVALID AUTHForce Post (TYPE=F) was sent without an AUTH number, or an AUTH value on any transaction type is malformed.
1035DUPLICATE REFAn 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.

CustomerPay and Platform Billing

CodeMessageDescription
1037USERFEE NOT ALLOWED / USERFEE TOO SMALLThe 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.
1038PLATFEE NOT ALLOWEDThe terminal isn't enabled for Platform Fees, or the transaction type doesn't allow them (only Sale, Pre-Auth, Force Post and Completion do).
1039PLATCHRG NOT ALLOWEDThe 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).

Settlement

CodeMessageDescription
1033NOTHING TO SETTLEThe 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.
9134TERMID BUSY TRY LATERAnother settlement is already running for this terminal. Retry shortly.
9203BATCH ERRORThe processor rejected the settlement batch. Contact [email protected].

Embedded Tokenization

CodeMessageDescription
8601INVALID APIKEYThe API key passed to Interpay.tokenize() is invalid. Request a fresh one from GetAPIKey.
8602Card data validation errorCard data submitted to the tokenization endpoint failed validation. The TEXT field contains the specific message.

Network and Host

CodeMessageDescription
1097BANK ERRORThe gateway couldn't communicate with the processor. Check the transaction with Transaction Query before retrying.
9102TRAN TIMEOUT / GATEWAY CONFIG ERRORTRAN 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.

Gateway Errors

CodeMessageDescription
9100GATEWAY ERROR / DATA UPDATE ERRORInternal gateway error. GATEWAY ERROR can occur after the processor has already approved the transaction, so check it with Transaction Query before retrying a payment.

Reconciliation Detail

CodeMessageDescription
8421PROGRAM FMT INVALIDA PROGRAM entry is missing its Name or AMT. Inside a split, transfer or schedule, also returned when the Name is malformed.
8422PROGRAM AMT INVALID / PLAYER AMT INVALID / ACCOUNT AMT INVALIDInside a split, transfer or schedule: an entry's AMT is malformed, zero or negative.
8423PLAYER FMT INVALIDA PLAYER entry is missing its id or AMT. Inside a split, transfer or schedule, also returned when the id is malformed.
8424ACCOUNT FMT INVALID / PROGRAM SUM TOO LARGE / PLAYER SUM TOO LARGE / ACCOUNT SUM TOO LARGEAn 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.

How to Handle

  • 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, 84218424) — 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.

Related


Did this page help you?