Skip to content
100% Privacy — Files Stay On Your Device
>_
English

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.

CodeMeaningResult
00Approved or completed successfullyApproved
01Refer to card issuerDeclined
02Refer to card issuer, special conditionDeclined
03Invalid merchantError
04Pick up card (no fraud)Pick up card
05Do not honorDeclined
06ErrorError
07Pick up card, special condition (fraud)Pick up card
08Honor with identificationApproved
09Request in progressSystem
10Approved for partial amountApproved
11Approved (VIP)Approved
12Invalid transactionError
13Invalid amountError
14Invalid card number (no such number)Error
15No such issuerError
16Approved, update track 3Approved
17Customer cancellationDeclined
18Customer disputeDeclined
19Re-enter transactionError
20Invalid responseError
21No action takenDeclined
22Suspected malfunctionSystem
23Unacceptable transaction feeError
24File update not supported by receiverError
25Unable to locate record in fileError
26Duplicate file update record, old record replacedError
27File update field edit errorError
28File update file locked outError
29File update not successful, contact acquirerError
30Format errorError
31Bank not supported by switchError
32Completed partiallyApproved
33Expired card, pick upPick up card
34Suspected fraud, pick upPick up card
35Card acceptor contact acquirer, pick upPick up card
36Restricted card, pick upPick up card
37Card acceptor call acquirer security, pick upPick up card
38Allowable PIN tries exceeded, pick upPick up card
39No credit accountDeclined
40Requested function not supportedError
41Lost card, pick upPick up card
42No universal accountDeclined
43Stolen card, pick upPick up card
44No investment accountDeclined
51Not sufficient fundsDeclined
52No checking accountDeclined
53No savings accountDeclined
54Expired cardDeclined
55Incorrect PINDeclined
56No card recordDeclined
57Transaction not permitted to cardholderDeclined
58Transaction not permitted to terminalDeclined
59Suspected fraudDeclined
60Card acceptor contact acquirerDeclined
61Exceeds withdrawal amount limitDeclined
62Restricted cardDeclined
63Security violationDeclined
64Original amount incorrectError
65Exceeds withdrawal frequency limitDeclined
66Card acceptor call acquirer security departmentDeclined
67Hard capture (pick up card at ATM)Pick up card
68Response received too lateSystem
75Allowable number of PIN tries exceededDeclined
76Invalid / non-existent "to" account specifiedError
77Invalid / non-existent "from" account specifiedError
78Invalid / non-existent account specified (general)Error
90Cut-off is in process (switch ending a business day)System
91Issuer or switch is inoperativeSystem
92Financial institution or intermediate network facility cannot be found for routingSystem
93Transaction cannot be completed, violation of lawDeclined
94Duplicate transmissionError
95Reconcile errorError
96System malfunctionSystem
97Reserved for ISO useSystem
98MAC errorError
99Reserved for private useSystem

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.

Related tools