ISO8583 Response Codes For Transaction Processing - NeaPay

ISO8583 Response Codes for Transaction processing

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]
CodeDescription
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]
CodeDescription
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