ISO Standards Validator
Paste IBANs, dates, ISBNs, currency codes, ISO 8583 bank card messages and more — see at once which ISO standard each one matches, or exactly why it fails.
Everything is checked inside your browser. Nothing you paste is uploaded or saved.
Paste values above and the result appears here.
ISO 8583 reference: response codes and data elements
Look up what a DE 39 response code means, or what any data element (DE) holds and how long it must be.
| Code | Meaning | Result |
|---|---|---|
| 00 | Approved or completed successfully | Approved |
| 01 | Refer to card issuer | Declined |
| 02 | Refer to card issuer, special condition | Declined |
| 03 | Invalid merchant | Error |
| 04 | Pick up card (no fraud) | Pick up card |
| 05 | Do not honor | Declined |
| 06 | Error | Error |
| 07 | Pick up card, special condition (fraud) | Pick up card |
| 08 | Honor with identification | Approved |
| 09 | Request in progress | System |
| 10 | Approved for partial amount | Approved |
| 11 | Approved (VIP) | Approved |
| 12 | Invalid transaction | Error |
| 13 | Invalid amount | Error |
| 14 | Invalid card number (no such number) | Error |
| 15 | No such issuer | Error |
| 16 | Approved, update track 3 | Approved |
| 17 | Customer cancellation | Declined |
| 18 | Customer dispute | Declined |
| 19 | Re-enter transaction | Error |
| 20 | Invalid response | Error |
| 21 | No action taken | Declined |
| 22 | Suspected malfunction | System |
| 23 | Unacceptable transaction fee | Error |
| 24 | File update not supported by receiver | Error |
| 25 | Unable to locate record in file | Error |
| 26 | Duplicate file update record, old record replaced | Error |
| 27 | File update field edit error | Error |
| 28 | File update file locked out | Error |
| 29 | File update not successful, contact acquirer | Error |
| 30 | Format error | Error |
| 31 | Bank not supported by switch | Error |
| 32 | Completed partially | Approved |
| 33 | Expired card, pick up | Pick up card |
| 34 | Suspected fraud, pick up | Pick up card |
| 35 | Card acceptor contact acquirer, pick up | Pick up card |
| 36 | Restricted card, pick up | Pick up card |
| 37 | Card acceptor call acquirer security, pick up | Pick up card |
| 38 | Allowable PIN tries exceeded, pick up | Pick up card |
| 39 | No credit account | Declined |
| 40 | Requested function not supported | Error |
| 41 | Lost card, pick up | Pick up card |
| 42 | No universal account | Declined |
| 43 | Stolen card, pick up | Pick up card |
| 44 | No investment account | Declined |
| 51 | Not sufficient funds | Declined |
| 52 | No checking account | Declined |
| 53 | No savings account | Declined |
| 54 | Expired card | Declined |
| 55 | Incorrect PIN | Declined |
| 56 | No card record | Declined |
| 57 | Transaction not permitted to cardholder | Declined |
| 58 | Transaction not permitted to terminal | Declined |
| 59 | Suspected fraud | Declined |
| 60 | Card acceptor contact acquirer | Declined |
| 61 | Exceeds withdrawal amount limit | Declined |
| 62 | Restricted card | Declined |
| 63 | Security violation | Declined |
| 64 | Original amount incorrect | Error |
| 65 | Exceeds withdrawal frequency limit | Declined |
| 66 | Card acceptor call acquirer security department | Declined |
| 67 | Hard capture (pick up card at ATM) | Pick up card |
| 68 | Response received too late | System |
| 75 | Allowable number of PIN tries exceeded | Declined |
| 76 | Invalid / non-existent "to" account specified | Error |
| 77 | Invalid / non-existent "from" account specified | Error |
| 78 | Invalid / non-existent account specified (general) | Error |
| 90 | Cut-off is in process (switch ending a business day) | System |
| 91 | Issuer or switch is inoperative | System |
| 92 | Financial institution or intermediate network facility cannot be found for routing | System |
| 93 | Transaction cannot be completed, violation of law | Declined |
| 94 | Duplicate transmission | Error |
| 95 | Reconcile error | Error |
| 96 | System malfunction | System |
| 97 | Reserved for ISO use | System |
| 98 | MAC error | Error |
| 99 | Reserved for private use | System |
Meanings follow ISO 8583 and common card-scheme usage. Each network (Visa, Mastercard, domestic switches) keeps its own list, so check its specification for codes that differ.
What this ISO validator checks
Most identifiers that businesses exchange every day follow an ISO standard, and most of them carry a check digit so that a mistyped character is caught before it causes a failed payment, a rejected shipment or a wrong record. This tool takes whatever you paste, one value per line, works out which standard it could belong to and tells you whether it passes, together with the parts it found inside the value.
For dates and times it follows ISO 8601: calendar dates in the compact and the dashed style, week dates such as 2024-W09-4, ordinal dates, times with or without a UTC offset, durations such as P3Y6M4DT12H30M5S and intervals. It knows leap years, which years have 53 weeks, the 24:00 end-of-day notation and the leap second, and it points out the common mistakes: a space instead of the letter T, a mix of compact and dashed styles, or a 30th of February.
For money it checks IBANs against the registry of each country, including the exact length and the national account format, and verifies the mod-97 check digits. BIC codes are split into bank, country and branch, ISIN and LEI codes are verified with their own check-digit rules, and payment card numbers are tested with the Luhn formula and the issuer prefix. Currency codes come from ISO 4217 with their numeric code and minor units, and country and language codes come from ISO 3166-1 and ISO 639, including language tags such as zh-Hant-TW.
For products and logistics it validates ISBN-10 and ISBN-13 (and converts between them), ISSN, the 17 characters of a vehicle identification number, shipping container numbers with their owner code and check digit, and the format of a DOI. Remember what validation means: it proves a value is well formed, not that the book, vehicle or account exists. Everything runs locally in your browser, so even sensitive values never leave your device.
ISO 8583 is the message format behind card payments: every authorization, purchase, reversal and network test between a terminal, an acquirer and an issuer is one ISO 8583 message. A message starts with a four-digit message type indicator (MTI) whose digits give the edition (0 = 1987, 1 = 1993, 2 = 2003), the class (authorization, financial, reversal, network management…), the function (request, response, advice) and who sent it. A bitmap of 64 or 128 bits follows, and each bit that is set says that the matching data element (DE) is present, such as DE 2 for the card number, DE 3 for the processing code, DE 4 for the amount, DE 11 for the trace number or DE 39 for the response code. Paste a message either as the text most documentation shows (MTI, hexadecimal bitmap and fields as characters) or as a hex dump of the raw bytes with BCD-packed numbers; the checker detects which one it is, strips an optional length header, lists every field with its name and flags truncated or oversized fields, bad length indicators, leftover data, impossible dates and times and unknown currency or country codes. It follows the 1987 data element table, so messages that use 1993 or 2003 layouts, private fields with their own sub-structure or a tertiary bitmap may be reported as invalid even though they are valid on your network.
Beyond identifiers, the validator also understands a few banking and payment codes. A creditor reference (ISO 11649) starts with RF and two check digits and is verified with the same mod-97 rule as an IBAN, so a mistyped payment reference is caught before it reaches the bank. A CFI code (ISO 10962) is six letters that classify a financial instrument — the first letter is the category (E for equities, D for debt, F for futures…) — and a merchant category code (ISO 18245) is the four-digit number that tells the card network what kind of business a merchant runs; both are never guessed automatically because any six letters or four digits could be one, so pick the standard from the list. Track data (ISO/IEC 7813) is what a magnetic stripe stores: card number, expiry, a three-digit service code and discretionary data, checked with the Luhn rule and a real month. The reference tables under the validator list every DE 39 response code, every ISO 8583 data element and the common merchant category codes.
Two further message formats are checked as a whole rather than line by line. A SWIFT FIN message (ISO 15022 syntax) has up to five blocks — basic header, application header with the message type and receiving BIC, user header, the text in block 4 and a trailer — and block 4 is a list of :tag: fields; the validator checks the header BICs, the mandatory fields of an MT103 (customer credit transfer), an MT202 (institution transfer) and the n99 free-format messages, and the format of the common tags such as :32A: (date, currency, amount with a decimal comma), :23B:, :71A:, :20: and the BIC-bearing party fields. An ISO 20022 message is XML whose namespace names the message (for example pain.001.001.09 or pacs.008.001.08); the validator checks that the XML is well formed, the namespace and business element match, the group header is complete, the number of transactions and control sum agree with the content, and every IBAN, BIC, currency and amount is valid. It does not replace validation against the official XSD, so use your bank's schema for the final check.
Frequently asked questions
Is the value I paste sent anywhere?
No. Every check runs in your browser with the reference lists bundled in the page. Nothing you paste is uploaded or stored, not even in local storage, so it is safe to check values you would not post online.
Does "valid" mean the account, book or card really exists?
No. Validation checks the format and the check digits only. A valid IBAN has the right length, structure and check digits, but that does not prove the account exists. Likewise a valid ISBN or DOI is well-formed, not necessarily registered.
Which standards can I check?
ISO 8601 (dates, times, durations, intervals), ISO 3166-1 (countries), ISO 4217 (currencies), ISO 639 (languages and language tags), ISO 13616 (IBAN), ISO 9362 (BIC), ISO 6166 (ISIN), ISO 17442 (LEI), ISO/IEC 7812 (payment card numbers), ISO 2108 (ISBN), ISO 3297 (ISSN), ISO 3779 (VIN), ISO 6346 (container numbers) and ISO 26324 (DOI).
Why does one value match two standards?
Some short codes are valid in more than one list. ID is both Indonesia (ISO 3166-1) and Indonesian (ISO 639-1), and 840 is both the United States and the US dollar. The tool lists every standard the value satisfies.
Can I check many values at once?
Yes. Paste one value per line, up to 5,000 lines, and the tool detects the standard of each. Filter by valid or invalid, copy the valid ones, or download the result as a CSV file.
How do I check an ISO 8583 message?
Paste the whole message on one line. Two layouts are understood: text (a four-digit MTI, a 16- or 32-character hexadecimal bitmap, then the fields as characters, with LL/LLL length digits for variable fields) and a hex dump of the raw bytes (BCD MTI, binary bitmap, BCD numbers). A two-byte or four-digit length header in front is detected and skipped. The result shows the MTI meaning, the bitmap and each data element, or the first problem found. Fields follow the ISO 8583:1987 table; custom formats of your network may differ.