Response Codes
Understanding Response Codes & Approvals
When integrating with the E-xact Gateway, the most critical step is accurately reading the response to determine if a transaction was approved, declined, or resulted in an error.
The E-xact gateway does not return boolean values (true or false) for transaction approvals. Depending on your integration method, you will receive integers (1 or 0) or specific strings ("YES", "1").
Quick Reference: The "Source of Truth" Matrix
Because response payloads differ based on how you connect to the gateway, use this table to find the primary approval field for your specific integration.
| Integration Method | Payload Format | Primary Approval Field | Value for Approval |
|---|---|---|---|
| Transaction API | JSON | transaction_approved | 1 (Integer) |
| HCO: Silent Post, Relay Response, & AUTO POST | URL-Encoded String | Transaction_Approved | "YES" (String) |
| HCO: POST, GET, & AUTO GET | URL-Encoded / Query String | x_response_code | 1 (String) |
1. API Integrations
For API calls, the gateway uses Integers (1 or 0) to indicate success alongside supplementary text strings.
To confidently confirm an approval in your code, evaluate the following key-value pairs:
transaction_approved:1(1 = Approved, 0 = Declined)transaction_error:0(0 = No Error, 1 = Error)exact_resp_code:"00"(Indicates "Transaction Normal")
Note on Bank Response Codes:The
bank_resp_codevariable contains the raw response from the acquiring bank. Do not use this to check for approvals. Because the gateway connects to multiple processors, the approval code varies (e.g.,"000","00","027"). Always rely ontransaction_approvedinstead.
Example API Approved Response (JSON):
{
"transaction_error": 0,
"transaction_approved": 1,
"exact_resp_code": "00",
"exact_message": "Transaction Normal",
"bank_resp_code": "000",
"bank_message": "Approved"
}2. Hosted Checkout (HCO): Silent Post, Relay Response, & AUTO POST
If you have configured your HCO Receipt Page Settings to use the Silent Post, Relay Response (server-to-server), or the AUTO POST redirect method, the gateway returns our most comprehensive dataset. It includes both standard Authorize.net emulation fields and proprietary E-xact fields.
To verify an approval using these "full payload" methods, rely on the E-xact specific fields:
Transaction_Approved:"YES"(String value "YES")Transaction_Error:"false"(String value "false")
Example String Snippet (Approved):
x_response_code=1&x_response_reason_text=Transaction+has+been+approved&Transaction_Approved=YES&Transaction_Error=false&EXact_Resp_Code=003. Hosted Checkout (HCO): POST, GET, & AUTO GET
If your HCO Receipt Page Settings are configured to rely on standard POST, GET, or AUTO GET methods to return the customer to your website, the payload structure is shorter to optimize the browser redirect.
Important Note: These standard redirect payloads return ONLY the Authorize.net emulation fields. The proprietary E-xact fields (like Transaction_Approved=YES) are intentionally omitted from these payloads.
To verify an approval via POST, GET, or AUTO GET, you must rely on the x_ variables:
x_response_code:1(1 = Approved, 2 = Declined, 3 = Error)x_response_reason_code:1
Example Standard Redirect Snippet (Approved):
x_response_code=1&x_response_subcode=S&x_response_reason_code=1&x_response_reason_text=Transaction+has+been+approved&x_auth_code=ET127728Understanding Secondary Codes
While the fields listed above are your primary "Source of Truth" for determining if a transaction is approved, you will also see secondary codes that provide more context—especially useful for logging declines or errors.
exact_resp_code(orEXact_Resp_Code): This is the gateway's internal system code."00"always means the gateway successfully processed the request without technical failure.bank_resp_code(orBank_Resp_Code): This is the actual code returned by the acquiring bank network."000"indicates a standard approval. Other codes (e.g.,"051") represent specific bank declines like "Insufficient Funds."
E-xact Response Code (exact_resp_code or EXact_Resp_Code)
exact_resp_code or EXact_Resp_Code)This is the internal code generated by the gateway. It is consistent regardless of which processor you use.
| Code | Meaning |
|---|---|
00 | Transaction Normal |
08 | CVV2/Data Not Verified |
12 | Message Timed-Out at Host |
22 | Invalid Card Number |
25 | Invalid Expiry Date |
34 | Card Volume Exceeded |
35 | Maximum Sale Exceeded |
36 | Below Minimum Sale |
38 | IP Volume Exceeded |
44 | Address not Verified |
77 | Reversal Complete |
79 | Reversal Sent to Bank |
93 | Invalid Authorization Num entered on pre-auth completion |
Bank Response Code (bank_resp_code or Bank_Resp_Code)
bank_resp_code or Bank_Resp_Code)This field contains the raw response from the processor. Use these only for logging or displaying detailed error messages.
TSYS
TSYS uses standard ISO 8583 2-digit response codes.
- Success:
00is the standard approval. - Declines: Specific codes indicating the exact reason.
| Code | Category | Meaning |
|---|---|---|
00 | Approved | Success |
51 | Decline | Insufficient Funds |
05 | Decline | Do Not Honor |
54 | Decline | Expired Card |
62 | Decline | Restricted Card |
Chase (Paymentech)
Chase uses a categorizing system where codes are grouped by "Type" of error.
- Success:
000is the standard approval. - Declines: In the 200 range.
| Code | Category | Meaning |
|---|---|---|
000 | Approved | Success. |
200 - 299 | Decline | Decline (e.g., 201 = Insufficient Funds). |
Moneris
Moneris uses a specific Range-Based system.
- Success: Any code between
001and049. - Declines: Any code
050or higher.
| Code Range | Category | Meaning |
|---|---|---|
001 - 049 | Approved | Success (e.g., 027 is the common Moneris approval). |
050 - 999 | Decline | Declined (050 is generic, others are specific). |
NULL / Empty | Error | If empty, check exact_resp_code for gateway errors. |
Fiserv (First Data)
Fiserv codes can vary by platform, but they generally use a mix of 2-digit and 3-digit codes.
- Success:
00is the standard approval. - Declines: Often fall into the
100or200series.
| Code | Category | Meaning |
|---|---|---|
00 | Approved | Success. |
110 | Soft Decline | Insufficient Funds (common on some platforms). |
303 | Error | Generic System Error. |
500+ | Error | Formatting/System errors. |
Updated 4 days ago
