GS1 Barcode / AI Parser
Paste a GS1 element string — raw scanner output like ]C1010401…, bracketed notation like (01)0950…(17)…, or a GS/FNC1-separated scan — and get every Application Identifier decoded. Nothing is uploaded.
Accepts ]C1/]d2/]Q3 symbology identifiers, (AI) brackets, and FNC1 separators written as ^, |, <GS>, or ASCII 29.
Common Application Identifiers
| AI | Meaning | Format |
|---|---|---|
| 00 | SSCC — pallet/container serial | N18 |
| 01 | GTIN — trade item number | N14 |
| 02 | Contained GTIN | N14 |
| 10 | Batch / lot number | X≤20, variable |
| 11 | Production date | YYMMDD |
| 15 | Best before date | YYMMDD |
| 17 | Expiration date | YYMMDD |
| 20 | Internal product variant | N2 |
| 21 | Serial number | X≤20, variable |
| 240 | Additional item ID | X≤30, variable |
| 241 | Customer part number | X≤30, variable |
| 30 | Count of items | N≤8, variable |
| 310n | Net weight (kg) — n = decimals | N6 |
| 330n | Logistic gross weight (kg) | N6 |
| 390n | Amount payable, local currency | N≤15, variable |
| 391n | Amount payable + ISO currency | N≤18, variable |
| 400 | Customer purchase order | X≤30, variable |
| 401 | GINC — consignment number | X≤30, variable |
| 402 | GSIN — shipment ID | N17 |
| 410–417 | GLN — location numbers | N13 |
| 420 | Ship-to postal code | X≤20, variable |
| 422 | Country of origin (ISO 3166) | N3 |
| 7003 | Expiry date + time | N10 |
| 8003 | GRAI — returnable asset | N14+X≤16 |
| 8004 | GIAI — individual asset | X≤30, variable |
| 90–99 | Company internal data | X≤30–90, variable |
How it parses: the AI table drives a longest-prefix match — fixed-length AIs (GTIN, dates, GLN) consume a set number of characters, while variable-length AIs (batch, serial) run to the next FNC1 separator or end of data. Check digits are verified on SSCC, GTIN, GSIN, GLN, GRAI, GDTI, GCN, and GSRN fields; dates are decoded to ISO format; measure AIs are scaled by their decimal indicator.
Need to verify just the trade item number? The GTIN / UPC / EAN validator covers check digits, format conversion, and country-prefix lookup in more depth.
Frequently asked questions
What is a GS1 Application Identifier?
An AI is a 2–4 digit prefix that tells the receiver what the data after it means.(01) is always a GTIN, (17) an expiry date, (10) a batch number. One GS1-128 or DataMatrix symbol can carry many elements — a carton label might encode GTIN + expiry + lot + serial in a single string like ]C101…17…10…21….
What is the ]C1 or ]d2 at the start of my scan?
That's the ISO/IEC 15424 symbology identifier — the scanner announcing which barcode type it read: ]C1 = GS1-128, ]d2 = GS1 DataMatrix, ]Q3 = GS1 QR Code, ]e0 = GS1 DataBar. It's metadata, not part of the data, and can be disabled in most scanner settings.
What is FNC1 and why does my scan show a strange character?
FNC1 is a special control character GS1 barcodes use to separate variable-length fields — batch and serial numbers have no fixed length, so a separator tells the parser where one ends and the next AI begins. Scanners emit it as ASCII 29 (Group Separator), often shown as ^, |, or<GS>. This tool accepts all of them.
Why does the date show a two-digit year?
GS1 dates are encoded YYMMDD — the century is not in the barcode. This tool decodes to 20xx, which is correct for any data generated this century. A day of00 is legal and means "end of month / day not specified."
What does a check-digit warning mean?
Identification keys like GTIN (01), SSCC (00), and GLN (410–417) end in a GS1 mod-10 check digit. A mismatch means the barcode was mistyped, truncated, or generated by software that computed the digit wrongly — scan the symbol again or re-key the number.
Can I parse QR codes and regular retail barcodes?
Retail UPC/EAN barcodes carry only a GTIN — use the GTIN validator for those. This parser is for GS1 element strings: GS1-128, GS1 DataMatrix, GS1 QR Code, GS1 DataBar Expanded, and GS1 DotCode, the symbologies used on cases, pallets, pharma packs, and logistic labels.
