How does an ISO 8583 response code work?
ISO 8583 is the message standard used for card authorizations between acquirers, networks and issuers. Stripe’s guide notes that an ISO 8583 message has 128 fields; one of them carries the response code. 00 means approved. Everything else explains a decline or an error. Stripe’s list of Visa codes includes 05 do not honor, 14 invalid account number, 41 lost card, 43 stolen card, 51 not sufficient funds, 54 expired card, 57 transaction not permitted to cardholder, 91 issuer or switch inoperative, 96 system malfunction and 1A additional customer authentication required.
Why do response codes matter?
They decide what happens next. Visa groups its codes into categories: Category 1 codes such as 04, 14, 41, 43 and 57 mean the issuer will never approve, and Visa does not allow reattempts, while Categories 2 to 4 allow a capped number. As an illustrative example: of 5,000 declines in a month, 700 carry Category 1 codes. A policy that retries every decline once sends 700 attempts that cannot succeed and that count against the merchant; a code-aware policy sends none.
What makes response codes hard to use?
Generic codes such as 05 hide the real reason, and some issuers use them even for permanent problems. Providers rename and regroup codes. Networks reuse numbers with different meanings, such as Mastercard code 65, which Stripe lists as exceeds withdrawal count limit or an Identity Check soft decline. And codes change over time, so mappings need regular review against real outcomes.
Where does Omno use it?
Omno’s routing-decision log records the response code for every attempt, a rejected payment moves to the next provider in the merchant’s rule, and success metrics break declines down by provider, method and country.