Barcode Breakdown

Every barcode, translated.

Barcode Breakdown splits any barcode into its parts, names each one, checks it, and says what it means.

  1. 614141company prefix
  2. 00003item reference
  3. 6check digit

‘Product 00003 from company 614141, whose prefix GS1 US issued. The check digit adds up.’

Download on the App Store

Free on iPhone. Reads 57 kinds of barcode.

Ready for 2D.

US retail is moving to 2D barcodes that carry batch, expiry and serial numbers alongside the product number. GS1 US calls the goal Sunrise 2027. Barcode Breakdown already reads them, GS1 Digital Link QR codes included.

  1. https://id.gs1.orgweb address
  2. /01/00614141123452product number (GTIN)
  3. /10/ABC123batch or lot
  4. ?17=271231expiry date

‘A web page that is also product 00614141123452, batch ABC123, expiring 31 December 2027.’

Barcode Breakdown on an iPhone, reading a GS1 Digital Link QR code: Valid GS1, GTIN 00614141123452, with an Open id.gs1.org button.
In the appValid GS1 · GS1 Digital Link · GTIN 00614141123452View full size

Not just groceries.

Letters, UPS parcels, pallets, medicine packs, boarding passes. Barcode Breakdown reads the postal and shipping codes on what lands at your door as readily as the one on a cereal box.

  1. 01barcode ID
  2. 234service type
  3. 567094mailer ID
  4. 987654321serial number
  5. 012345678ZIP+4
  6. 91delivery point

‘A letter for ZIP 01234-5678, delivery point 91: piece 987654321 from mailer 567094.’

Barcode Breakdown on an iPhone, decoding a USPS Intelligent Mail barcode: ZIP 01234-5678, mailer ID 567094, serial number 987654321, delivery point 91.
In the appDecoded · US mail piece · ZIP 01234-5678View full size

Bad codes, caught.

One wrong digit and a barcode names a product that doesn’t exist. Barcode Breakdown checks GS1 data with GS1’s Barcode Syntax Engine and tells you which digit is wrong.

  1. (01)product number follows
  2. 0packaging level
  3. 0padding
  4. 614141company prefix
  5. 12345item reference
  6. 3check digit, should be 2

‘Item 12345 from company 614141, but the check digit should be 2, not 3. The code is invalid.’

Barcode Breakdown on an iPhone, marking GTIN 00614141123453 as Invalid: GS1’s Barcode Syntax Engine rejects it because the check digit should be 2, not 3.
In the appInvalid · The check digit should be 2, not 3.View full size

Fifty-seven kinds. One app.

Sample codes from shops, post rooms, pharmacies and ticket gates. The line in italics under each one is what Barcode Breakdown shows first when it reads that code.

In the shop

Grocery product

036000291452

UPC-A

‘Retail product · UPC-A 036000291452 · Kimberly-Clark Global Sales, Inc.’

Store random-weight label

204011105994

UPC-A

‘Store random-weight label · Item 04011 · $5.99’

Paper coupon

(8110)106141416543213500110000310123196000

DataBar Expanded Stacked

‘Coupon · $5.00 off your total when you buy 1 item’

Retail 2D

(01)09521234543213(17)261231(10)ABC123

GS1 QR Code

‘Product with batch, date or serial · GTIN 09521234543213 + use by or expiry, batch/lot’

European product

5901234123457

EAN-13

‘Retail product · EAN-13 5901234123457’

Produce sticker

(01)00614141007349

GS1 DataBar Stacked Omni

‘Produce sticker (likely) · GS1 DataBar · GTIN 00614141007349’

DataBar Stacked

(01)09501101530010

GS1 DataBar Stacked

‘Produce sticker (likely) · GS1 DataBar · GTIN 09501101530010’

Fresh meat by weight

(01)90614141000015(3202)000275(15)261015(3922)1499

GS1 DataBar Expanded

‘Variable-measure item · GTIN 90614141000015 + net weight (lb), best before or best by, price’

Digital Link QR

https://id.gs1.org/01/09521234543213/10/ABC123?17=261231

QR Code

‘GS1 Digital Link · id.gs1.org · GTIN 09521234543213’

Book (ISBN)

9780306406157

EAN-13

‘Book · ISBN 9780306406157’

Book with price add-on

9780306406157 51299

EAN-13

‘Book · ISBN 9780306406157’

Small package

01234565

UPC-E

‘Retail product · UPC-E 01234565 · Darrenkamp's’

Product with lot

331234567890|(10)ABC123(17)271231

EAN-13 + 2D composite

‘Retail product · EAN-13 3312345678903 + batch/lot, use by or expiry’

Produce with use-by

(01)09501101530010|(17)271231(10)ABC

DataBar + 2D composite

‘Retail product · GTIN 09501101530010 + use by or expiry, batch/lot’

Small product with use-by

1234567|(17)271231

EAN-8 + 2D composite

‘Retail product · EAN-8 12345670 + use by or expiry’

Small package with lot

0123456|(10)LOT1

UPC-E + 2D composite

‘Retail product · UPC-E 01234565 · Darrenkamp's + batch/lot’

Product with serial

331234567890|(10)ABC123(21)SERIAL0123456789

EAN-13 + 2D composite

‘Retail product · EAN-13 3312345678903 + batch/lot, serial’

Parcels, pallets and post

UPS label

[)>␞01␝96152382802␝840␝001␝1Z00004951␝UPSN␝06X610␝159␝1234567␝1/1␝␝Y␝634 ALPINE WAY␝PITTSBURGH␝PA␞␄

MaxiCode

‘UPS shipping label · UPS · 1Z00004951’

US letter (Intelligent Mail)

0123456709498765432101234567891

Intelligent Mail

‘US mail piece · ZIP 01234-5678’

Air cargo

16012345675

IATA 2 of 5

‘Air cargo shipment · AWB 160-1234 5675 · Cathay Pacific’

Pallet label (SSCC)

(00)106141412345678908(02)10614141000415(37)24

GS1-128

‘Pallet / logistics unit · SSCC 106141412345678908 + content, count’

DHL parcel

563102430313

Identcode

‘Deutsche Post parcel · Identcode 563102430313’

Shipping case

15400141288763

ITF-14

‘Case or inner pack · GTIN-14 15400141288763 · indicator 1’

Produce case label (PTI)

(01)10850510002011(13)261005(10)46587443HG234

GS1-128

‘Case label (PTI format) · GTIN + lot + date’

Case with lot (GS1-128 composite)

(01)09521234543213|(10)ABC123(17)271231(21)SERIAL0123456789

GS1-128 + 2D composite

‘Retail product · GTIN 09521234543213 + batch/lot, use by or expiry, serial’

Case with lot (GS1-128, CC-C)

(01)09521234543213|(10)ABC123(17)271231

GS1-128 + 2D composite

‘Retail product · GTIN 09521234543213 + batch/lot, use by or expiry’

US letter (POSTNET)

12345678901

POSTNET

‘US mail piece · ZIP 12345-6789’

US letter (PLANET)

1234567890123

PLANET

‘US mail piece · PLANET 1234567890123’

UK letter (Royal Mail 4-State)

BX11LT1A

Royal Mail 4-State

‘UK mail piece · Postcode BX1 1LT’

UK letter (Mailmark 2D)

JGB 011123456712345678CW14NJ1T 0EC2M2QS REFERENCE1234567890QWERTYUIOP

Data Matrix

‘UK mail piece (Mailmark) · Postcode CW1 4NJ’

Dutch letter

1231FZ13XHS

KIX

‘Dutch mail piece · Postcode 1231 FZ’

Australian letter

5956439111ABA 9

Australia Post

‘Australian mail piece · DPID 56439111’

Japanese letter

15400233-16-4-205

Japan Post

‘Japanese mail piece · 〒154-0023’

Medicine and healthcare

Pharma pack

(01)03453120000011(17)271125(10)ABCD1234(21)9876543210

GS1 DataMatrix

‘Serialized product · GTIN 03453120000011 + use by or expiry, batch/lot, serial’

HIBC medical product

+A123BJC5D6E71/$$3261231LOT42H

Code 128

‘HIBC medical product · BJC5D6E7’

Italian medicine

12345678

Code 32

‘Italian medicine · AIC 123456788’

German pharmacy pack

1234562

PZN

‘German pharmacy product · PZN 01234562’

HIBC label

A123BJC5D6E71/$$3261231LOT42

Codablock F

‘HIBC medical product · BJC5D6E7’

Pharmacode

1234

Pharmacode

‘Pharmaceutical packaging code · Pharmacode 1234’

Two-track Pharmacode

117480

Two-track Pharmacode

‘Pharmaceutical packaging code · Two-track Pharmacode 117480’

Tickets, payments and everyday QR

Boarding pass

M1DESMARAIS/LUC EABC123 YULFRAAC 0834 326J001A0025 100

PDF417

‘Boarding pass · Luc Desmarais · YUL → FRA’

Swiss QR-bill

SPC↵0200↵1↵CH4431999123000889012↵S↵Robert Schneider AG↵Rue du Lac↵1268↵2501↵Biel↵CH↵↵↵↵↵↵↵↵1949.75↵CHF↵S↵Pia-Maria Rutschmann-Schnyder↵Grosse Marktgasse↵28↵9400↵Rorschach↵CH↵QRR↵210000000003139471430009017↵Order dated 18.06.2020↵EPD

QR Code

‘Swiss QR-bill · Robert Schneider AG · CHF 1,949.75’

Wi-Fi network

WIFI:T:WPA;S:Warehouse Guest;P:pallets2026;;

QR Code

‘Wi-Fi network · Network “Warehouse Guest”’

SEPA bank transfer (EPC)

BCD↵001↵1↵SCT↵BPOTBEB1↵Red Cross of Belgium↵BE72000000001616↵EUR1↵CHAR↵↵Urgency fund↵Sample EPC QR code

QR Code

‘SEPA bank transfer · Red Cross of Belgium · €1.00’

Pix payment (Brazil)

00020126580014br.gov.bcb.pix0136123e4567-e12b-12d1-a456-4266554400005204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***63041D3D

QR Code

‘Payment QR code · Fulano de Tal · Pix (Brazil)’

German fiscal receipt

V0;95BFxcVh3UCKOgu9T4n46w;Kassenbeleg-V1;Beleg^21.10_27.20_0.00_0.00_0.00^48.30:Unbar;8785;19599;2026-09-29T13:39:17.000Z;2026-09-29T13:39:17.000Z;ecdsa-plain-SHA256;unixTime;JQ/wWcPlJepLiUurbHqIOC9pabjMvFWza1d48vzAsYI3kU+pSrekinEAk4LcozcuY4NVSAwr5LnAIEmnLtuqzg==;BHcerutLLnmy6Hw/68N6EClooHYwr+3T4ecFHGwtMaCUwq4NWI0sfz57kPUsfhm2rohgPFc57a+FbCSaLxCP/QI=

QR Code

‘German fiscal receipt · Sale · €48.30’

Contact card

BEGIN:VCARD↵VERSION:3.0↵FN:Jane Doe↵ORG:Fresh Produce Co.↵TEL;TYPE=CELL:+1 555 0100↵EMAIL:jane@example.com↵END:VCARD

QR Code

‘Contact card · Jane Doe’

Web link

https://www.bahn.de/gastro

QR Code

‘Web link · www.bahn.de’

Plain QR code

Hello from Barcode Breakdown

QR Code

‘Not GS1 data · Hello from Barcode Breakdown’

Driver's license (made up)

@↵␞ANSI 636014090102DL00410279ZC03200024DLDAQD1234562↵DCSSAMPLE↵DDEN↵DACJOHN↵DDFN↵DADQUINCY↵DDGN↵DCAC↵DCBNONE↵DCDNONE↵DBD08312023↵DBB01151990↵DBA01152031↵DBC1↵DAU069 IN↵DAYBRO↵DAG1234 MAIN STREET↵DAISACRAMENTO↵DAJCA↵DAK958220000 ↵DCF00/00/0000NNNAN/ANFD/YY↵DCGUSA↵DDAF↵DDB08292017↵DDK1

PDF417

‘Driver's license · John Quincy Sample · CA’

Mistakes it catches

*Wrong check digit

(01)09521234543214

GS1-128

‘Retail product · GTIN 09521234543214’

Invalid. The check digit should be 3, not 4.

?Missing separator

(01)09521234543213(10)ABC12317261231

GS1-128

‘Case label (PTI format) · GTIN + lot’

Warning. There’s no separator after the batch number, so the batch swallows “17261231”, which looks like a (17) use-by date of 31 Dec 2026. The app reads the code but flags it with a warning.

Industrial and specialist

BC412 (wafer)

AQ45670

BC412

‘Industrial barcode · AQ45670’

Rectangular Micro QR

rMQR test 12345

rMQR

‘Not GS1 data · rMQR test 12345’

Codablock F

Codablock F test 1234567890 ABCDEFGHIJ

Codablock F

‘Not GS1 data · Codablock F test 1234567890 ABCDEFGHIJ’

Code 11

123-4567

Code 11

‘Industrial barcode · 123-4567’

Telepen

Telepen Alpha

Telepen

‘Telepen code · Telepen Alpha’

Code 16K

Code 16K test 123456

Code 16K

‘Not GS1 data · Code 16K test 123456’

Code 49

CODE 49 TEST

Code 49

‘Not GS1 data · CODE 49 TEST’

Industrial 2 of 5

123456789

Industrial 2 of 5

‘Industrial barcode · 123456789’

Matrix 2 of 5

1234567

Matrix 2 of 5

‘Industrial barcode · 1234567’

COOP 2 of 5

1234567890

COOP 2 of 5

‘Industrial barcode · 1234567890’

Plessey

01234ABCD

Plessey

‘Industrial barcode · 01234ABCD’

Channel Code

1234

Channel Code

‘Industrial barcode · 1234’

PosiCode

POSICODE-1234

PosiCode

‘Industrial barcode · POSICODE-1234’

All 57 types it reads

UPC-A · UPC-E · EAN-13 · EAN-8 · EAN-2 · EAN-5 · ITF-14 · GS1-128 · GS1 DataBar · DataBar Stacked · DataBar Expanded · DataBar Expanded Stacked · DataBar Limited · GS1 Composite · QR Code · Micro QR · rMQR · Data Matrix · DMRE · PDF417 · MicroPDF417 · Aztec Code · Aztec Rune · MaxiCode · Codablock F · Code 16K · Code 49 · Intelligent Mail · POSTNET · PLANET · Royal Mail 4-State · Mailmark · KIX · Australia Post · Japan Post · Code 128 · Code 39 · Code 93 · Codabar · Interleaved 2 of 5 · Industrial 2 of 5 · Matrix 2 of 5 · IATA 2 of 5 · Datalogic 2 of 5 · COOP 2 of 5 · Code 11 · MSI Plessey · Plessey · Telepen · BC412 · Channel Code · PosiCode · DX film edge · Code 32 · PZN · Pharmacode · Two-Track Pharmacode

‘Point it at a barcode. Read what it says.’