ISO8583 Response Codes For Transaction Processing - NeaPay
Maybe your like
Posted on 29th Jan 2021 130291 views

List of ISO8583 Response Codes, description and use with Video guide of example in the ISO8583 Simulator . Video below
Wikipedia already has a very in-depth description of the ISO 8583 standard.
In the highly competitive and time-sensitive world of payment processing, clarity in communication is paramount. Every electronic financial transaction—from a simple ATM withdrawal to a complex e-commerce purchase—requires a response, and this response is codified by the ISO 8583 Response Code (Data Element 39).
For payment technology providers like NeaPay, which offer ISO 8583 interfaces, simulators, and switching solutions, the handling, mapping, and generation of these response codes is a core function that ensures system interoperability, clear customer feedback, and accurate internal accounting.
What are ISO 8583 Response Codes (DE 39)?
The ISO 8583 Response Code, contained in Data Element 39 (DE 39), is a two-digit or three-digit numeric field that is returned in the response message (e.g., MTI '1110' for an authorization response) to indicate the final status of a transaction requested in the original message.
These codes are standardized to ensure that all parties in the payment chain—the terminal, the acquirer, the network, and the issuer—understand why a transaction was approved, declined, or failed due to a system error.
Key Categories of Response Codes:
Response codes generally fall into three broad categories:| Category | Example Codes | Meaning |
| Success/Approval | 00, 08, 11 | The transaction was successfully authorized or completed. |
| Declined (Soft) | 01, 02, 19 | The transaction was declined, but the card is valid, and the request can sometimes be retried or referred to the issuer. |
| Declined (Hard) | 04, 41, 54, 57 | The transaction was declined, usually due to a fatal reason (e.g., lost card, expired card, insufficient funds) and should not be retried. |
| System/Network Error | 91, 96 | The transaction failed due to an issue with a system, link, or component (e.g., Issuer unavailable, System malfunction). |
NeaPay's Role in Response Code Processing
NeaPay's suite of products—including the ISO 8583 Simulator, Converter, and Card Switch Router—deals with response codes in several critical ways:
1. Authorization Response Generation (Issuer Simulation)
When the NeaPay Simulator acts as an Issuing Host during testing, it is responsible for generating the correct response codes based on defined scenarios:
-
Rule-Based Authorization: Test cases in the Simulator allow defining specific conditions (e.g., if Amount (DE 4) > $100 and Card Type = Savings (DE 3), return code 51 (Not Sufficient Funds)). This allows banks and processors to rigorously test how their acquiring system handles every possible decline reason.
-
Response Code Customization: As ISO 8583 is a base standard, many card schemes or national switches (which NeaPay products support) have proprietary or extended codes. NeaPay's configurable platforms allow these non-standard codes to be precisely generated for compliance testing.
2. Response Code Mapping and Conversion
In real-world payment networks, a NeaPay Converter or Switch may act as a bridge between different protocol versions or between ISO 8583 and modern APIs (like JSON/REST). This requires careful response code mapping:
-
ISO 8583 to Internal/External API: If an incoming ISO 8583 transaction is converted to a JSON API call for an internal authorization host, the external system will return its own status. The NeaPay Converter must accurately map the API status back to the correct two-digit ISO 8583 response code before sending the message back to the Acquirer.
-
Example: Internal API returns status "Card_Blocked" $rightarrow$ NeaPay maps this to ISO 8583 code 57 (Transaction not permitted to cardholder) or 04 (Pick Up Card), depending on the scheme rules.
-
-
Response Code Normalization: NeaPay's Switch can normalize response codes across multiple connections, ensuring a consistent set of decline reasons is presented to the originating terminal or acquirer, simplifying the management of complex multi-network environments.
3. Error Handling and System Reliability
Response codes in the 90 series are particularly critical as they signify system errors, and NeaPay products are designed to manage the fallout:
-
Switch/Host Failure: If an issuer connected to the NeaPay Switch fails to respond (times out), the Switch can be configured to send a standard network error code like 91 (Issuer or Switch Inoperative) back to the originator.
-
Stand-in Processing: In advanced configurations, if the primary issuer link is down and returns a 91, the NeaPay Switch can invoke a Stand-In-Authorization (STIP) service. This service can approve small-value, low-risk transactions, returning an 00 (Approved), thus maintaining service continuity even when a critical component is unavailable.
Essential ISO 8583 Response Codes and Their NeaPay Handling
While the full list of codes is extensive, certain codes drive the majority of business logic and are rigorously tested using NeaPay's tools:
Essential ISO 8583 Response Codes| NeaPay Code (DE 39) | Description | NeaPay Product Handling |
| 00 | Approved or Completed Successfully | Simulator returns this for passing test cases. Switch ensures all internal approvals map correctly to this code before forwarding. |
| 05 | Do Not Honor | A general decline code used when a specific reason is not disclosed. Simulator uses this to test general soft-decline logic on acquiring systems. |
| 14 | Invalid Card Number (No Such Number) | Simulator/Authorization Host validates the Primary Account Number (PAN). If invalid, this code is returned immediately, testing the acquirer's ability to handle bad data. |
| 51 | Not Sufficient Funds | A common hard decline. Simulator ensures this code triggers the correct terminal message ("Insufficient Funds") without allowing retries. |
| 54 | Expired Card | A hard decline that requires the card to be picked up. Simulator tests the terminal's compliance with card pick-up prompts. |
| 55 | Incorrect Personal Identification Number (PIN) | Tests PIN validation logic. Simulator is configured to check encrypted PIN Block (DE 52) against a stored value and return 55 on failure. |
| 91 | Issuer or Switch Inoperative | Switch/Simulator tests routing failure and Stand-In behavior. NeaPay Switch can generate this code when an upstream connection times out. |
| 96 | System Malfunction | A critical system error. Used in performance testing with the NeaPay Simulator to measure system stability under stress. |
ISO8583 v1987 - HISO87
The following table shows response codes and their meanings for ISO 8583-1987, later versions uses 3 and 4 digit response codes.
HISO87 Response codes full list [ISO8583 v1987]| Code | Description |
|---|---|
| 00 | Approved or completed successfully |
| 01 | Refer to card issuer |
| 02 | Refer to card issuer's special conditions |
| 03 | Invalid merchant |
| 04 | Pick-up |
| 05 | Do not honor |
| 06 | Error |
| 07 | Pick-up card, special condition |
| 08 | Honour with identification |
| 09 | Request in progress |
| 10 | Approved for partial amount |
| 11 | Approved (VIP) |
| 12 | Invalid transaction |
| 13 | Invalid amount |
| 14 | Invalid card number (no such number) |
| 15 | No such issuer |
| 16 | Approved, update track 3 |
| 17 | Customer cancellation |
| 18 | Customer dispute |
| 19 | Re-enter transaction |
| 20 | Invalid response |
| 21 | No action taken |
| 22 | Suspected malfunction |
| 23 | Unacceptable transaction fee |
| 24 | File update not supported by receiver |
| 25 | Unable to locate record on file |
| 26 | Duplicate file update record, old record replaced |
| 27 | File update field edit error |
| 28 | File update file locked out |
| 29 | File update not successful, contact acquirer |
| 30 | Format error |
| 31 | Bank not supported by switch |
| 32 | Completed partially |
| 33 | Expired card |
| 34 | Suspected fraud |
| 35 | Card acceptor contact acquirer |
| 36 | Restricted card |
| 37 | Card acceptor call acquirer security |
| 38 | Allowable PIN tries exceeded |
| 39 | No credit account |
| 40 | Requested function not supported |
| 41 | Lost card |
| 42 | No universal account |
| 43 | Stolen card, pick-up |
| 44 | No investment account |
| 45-50 | Reserved for ISO use |
| 51 | Not sufficient funds |
| 52 | No checking account |
| 53 | No savings account |
| 54 | Expired card |
| 55 | Incorrect personal identification number |
| 56 | No card record |
| 57 | Transaction not permitted to cardholder |
| 58 | Transaction not permitted to terminal |
| 59 | Suspected fraud |
| 60 | Card acceptor contact acquirer |
| 61 | Exceeds withdrawal amount limit |
| 62 | Restricted card |
| 63 | Security violation |
| 64 | Original amount incorrect |
| 65 | Exceeds withdrawal frequency limit |
| 66 | Card acceptor call acquirer's security department |
| 67 | Hard capture (requires that card be picked up at ATM) |
| 68 | Response received too late |
| 69-74 | Reserved for ISO use |
| 75 | Allowable number of PIN tries exceeded |
| 76-89 | Reserved for private use |
| 76-89 | Reserved for private use |
| 76-89 | Reserved for private use |
| 76-89 | Reserved for private use |
| 90 | Cutoff is in process (switch ending a day's business and starting the next. Transaction can be sent again in a few minutes) |
| 91 | Issuer or switch is inoperative |
| 92 | Financial institution or intermediate network facility cannot be found for routing |
| 93 | Transaction cannot be completed. Violation of law |
| 94 | Duplicate transmission |
| 95 | Reconcile error |
| 96 | System malfunction |
| 97-99 | Reserved for national use |
| Zero A-9Z | Reserved for ISO use |
| A Zero-MZ | Reserved for national use |
| N Zero-ZZ | Reserved for private use |
ISO8583 v1993 - HISO93
HISO93 Response codes full list [ISO8583 v1993]| Code | Description |
|---|---|
| 000‑099 | Used in 1110, 1120, 1121, 1140 and 1210, 1220, 1221 and 1240 messages to indicate that the transaction has been approved. |
| 000 | approved |
| 001 | honour with identification |
| 002 | approved for partial amount |
| 003 | approved (VIP) |
| 004 | approved, update track 3 |
| 005 | approved, account type specified by card issuer |
| 006 | approved for partial amount, account type specified by card issuer |
| 007 | approved, update ICC |
| 008‑059 | reserved for ISO use |
| 060‑079 | reserved for national use |
| 080‑099 | reserved for private use |
| 100‑199 | Used in 1110, 1120, 1121, 1140 and 1210, 1220, 1221 and 1240 messages to indicate that the transaction has been processed for authorization by or on behalf of the card issuer and has been denied (not requiring a card pick-up) |
| 100 | do not honour |
| 101 | expired card |
| 102 | suspected fraud |
| 103 | card acceptor contact acquirer |
| 104 | restricted card |
| 105 | card acceptor call acquirer's security department |
| 106 | allowable PIN tries exceeded |
| 107 | refer to card issuer |
| 108 | refer to card issuer's special conditions |
| 109 | invalid merchant |
| 110 | invalid amount |
| 111 | invalid card number |
| 112 | PIN data required |
| 113 | unacceptable fee |
| 114 | no account of type requested |
| 115 | requested function not supported |
| 116 | not sufficient funds |
| 117 | incorrect PIN |
| 118 | no card record |
| 119 | transaction not permitted to cardholder |
| 120 | transaction not permitted to terminal |
| 121 | exceeds withdrawal amount limit |
| 122 | security violation |
| 123 | exceeds withdrawal frequency limit |
| 124 | violation of law |
| 125 | card not effective |
| 126 | invalid PIN block |
| 127 | PIN length error |
| 128 | PIN key synch error |
| 129 | suspected counterfeit card |
| 130‑159 | reserved for ISO use |
| 160‑179 | reserved for national use |
| 180‑199 | reserved for private use |
| 200‑299 | Used in 1110, 1120, 1121, 1140 and 1210, 1220, 1221 and 1240 messages to indicate that the transaction has been processed for authorization by or on behalf of the card issuer and has been denied requiring the card to be picked up. |
| 200 | do not honour |
| 201 | expired card |
| 202 | suspected fraud |
| 203 | card acceptor contact acquirer |
| 204 | restricted card |
| 205 | card acceptor call acquirer's security department |
| 206 | allowable PIN tries exceeded |
| 207 | special conditions |
| 208 | lost card |
| 209 | stolen card |
| 210 | suspected counterfeit card |
| 211‑259 | reserved for ISO use |
| 260‑279 | reserved for national use |
| 280‑299 | reserved for private use |
| 300‑399 | Used in 1314, 1324, 1325 and 1344 messages to indicate the result of the file action. |
| 300 | successful |
| 301 | not supported by receiver |
| 302 | unable to locate record on file |
| 303 | duplicate record, old record replaced |
| 304 | field edit error |
| 305 | file locked out |
| 306 | not successful |
| 307 | format error |
| 308 | duplicate, new record rejected |
| 309 | unknown file |
| 310‑359 | reserved for ISO use |
| 360‑379 | reserved for national use |
| 380‑399 | reserved for private use |
| 400‑499 | Used in 1430, 1432, 1440 and 1442 messages to indicate the result of the reversal or chargeback. |
| 400 | accepted |
| 401‑459 | reserved for ISO use |
| 460‑479 | reserved for national use |
| 480‑499 | reserved for private use |
| 500‑599 | Used in 1510, 1512, 1530 and 1532 messages to indicate the result of a reconciliation. |
| 500 | reconciled, in balance |
| 501 | reconciled, out of balance |
| 502 | amount not reconciled, totals provided |
| 503 | totals not available |
| 504 | not reconciled, totals provided |
| 505‑559 | reserved for ISO use |
| 560‑579 | reserved for national use |
| 580‑599 | reserved for private use |
| 600‑699 | Used in 1614, 1624, 1625, and 1644 messages |
| 600 | accepted |
| 601 | not able to trace back original transaction |
| 602 | invalid reference number |
| 603 | reference number/PAN incompatible |
| 604 | POS photograph is not available |
| 605 | item supplied |
| 606 | request cannot be fulfilled - required/requested documentation is not available |
| 607‑659 | reserved for ISO use |
| 660‑679 | reserved for national use |
| 680‑699 | reserved for private use |
| 700‑799 | Used in 1720, 1721, 1740, 1722, 1723 and 1742 messages. |
| 700 | accepted |
| 701‑749 | reserved for ISO use |
| 750‑769 | reserved for national use |
| 770‑799 | reserved for private use |
| 800‑899 | Used in 1814, 1824, 1825 and 1844 messages. |
| 800 | accepted |
| 801‑859 | reserved for ISO use |
| 860‑879 | reserved for national use |
| 880‑899 | reserved for private use |
| 900 | Advice acknowledged, no financial liability accepted |
| 901 | Advice acknowledged, financial liability accepted |
| 902‑949 | Used in request response and advice response messages to indicate transaction could not be processed. |
| 902 | invalid transaction |
| 903 | re-enter transaction |
| 904 | format error |
| 905 | acquirer not supported by switch |
| 906 | cutover in process |
| 907 | card issuer or switch inoperative |
| 908 | transaction destination cannot be found for routing |
| 909 | system malfunction |
| 910 | card issuer signed off |
| 911 | card issuer timed out |
| 912 | card issuer unavailable |
| 913 | duplicate transmission |
| 914 | not able to trace back to original transaction |
| 915 | reconciliation cutover or checkpoint error |
| 916 | MAC incorrect |
| 917 | MAC key sync error |
| 918 | No communication keys available for use |
| 919 | encryption key sync error |
| 920 | security software/hardware error - try again |
| 921 | security software/hardware error - no action |
| 922 | message number out of sequence |
| 923 | request in progress |
| 924‑929 | reserved for ISO use |
| 930‑939 | reserved for national use |
| 940‑949 | reserved for private use |
| 950‑999 | Used in advice response messages (1x3x) to indicate the reason for rejection of the transfer of financial liability. |
| 950 | violation of business arrangement |
| 951‑983 | reserved for ISO use |
| 984‑991 | reserved for national use |
| 992‑999 | reserved for private use |
For organizations leveraging NeaPay's ISO 8583 products, response codes are not just error flags; they are the definitive signal of transaction state. By providing configurable simulators, robust switching logic, and precise conversion capabilities, NeaPay ensures that its clients can confidently process, test, and troubleshoot the intricate web of financial transactions, knowing that every approval, decline, or error is communicated with industry-standard accuracy.
Tag » Code Réponse Iso 8583
-
ISO 8583 - Wikipedia
-
Card Response Codes - 2C2P
-
Field 39: Response Code | Elavon Developer Portal
-
ISO 8583-1:2003(en), Financial Transaction Card Originated Messages
-
ISO 8583
-
Response Codes - Cross River Documentation
-
Tables And Codes > ISO Response Code | CommerceWeb
-
ISO 8583 Wiki | TheReaderWiki
-
ISO8583 Messaging Standard - IBM
-
ISO 8583 Authorization Response (1110) - 1Library
-
Response Codes | Online Payments - MyPOS Developers Portal
-
ISO Definitions - SAP Documentation - SAP Help Portal