ICCID Parser / Generator
Parse, validate and generate ICCIDs per ITU-T E.118 — with the on-card EF_ICCID BCD (nibble-swap) view that generic decoders miss.
What an ICCID is
The ICCID (Integrated Circuit Card Identifier) is the serial number printed on a SIM and
stored in EF_ICCID (FID 2FE2) directly under the Master File. Per ITU-T E.118 it
breaks into a Major Industry Identifier (89 for telecom), an E.164 country code, an
issuer identifier, an individual account number and a trailing Luhn check digit.
The nibble-swap gotcha
The single biggest source of confusion is that the printed ICCID and the bytes on the card are
not the same string. EF_ICCID uses swapped-nibble BCD: the digits 8955
are stored as the bytes 98 55, and an odd digit count is padded with a trailing F.
This tool shows both forms side by side so you can reconcile what you read off the card with what is
printed on it.
FAQ
Why does my ICCID look byte-swapped when I read it off the card?
EF_ICCID (2FE2) stores the ICCID as BCD with the two nibbles of every byte swapped, and pads an odd number of digits with a trailing F. So a printed 8955… reads as 98 55… in the raw bytes. Paste either form here — the tool detects raw hex and un-swaps it automatically.
Is the last digit really a Luhn check digit?
Yes. Per ITU-T E.118 the final digit is a Luhn (ISO/IEC 7812) check over the preceding digits. This tool validates it and, when it fails, shows the digit it should have been.
Can I generate a valid test ICCID?
Use Generate mode: give an 89 + country-code + issuer prefix and a length (18–20). The tool fills the body, computes the Luhn check digit, and also shows the on-card EF_ICCID BCD form.
Related tools
Need this at production scale?
Senior SIM/USIM/OTA consulting, applet development and operator advisory — EN/PT.