Supported barcode formats
USPS IMpb (Intelligent Mail package barcode)
A 22- or 26-digit USPS tracking number is encoded as a GS1-128 symbol: Code 128
Start C, an FNC1 character, the tracking digits, then the modulo-103 symbology check. Set a
destination ZIP and the data becomes the two-FNC1 construct from USPS Publication 199,
FNC1 + 420 + ZIP + FNC1 + tracking. The human-readable line is grouped in fours the
way USPS prints it, and every IMpb card is paired with a matching GS1 DataMatrix.
USPS placards (Surface Visibility label IDs)
Placard label IDs such as 99S680--RJ06CS2Y4012026405620 are encoded as a
DataMatrix only, with the ID printed underneath and no linear barcode — matching
the placards produced inside postal facilities. Hyphens are significant and are preserved exactly.
UPU S10 international postal barcodes
Thirteen-character identifiers in the AA123456789AA pattern follow the Universal
Postal Union S10 standard, which specifies Code 128. The human-readable text is
grouped like EM 100 027 995 SE, the modulo-11 check digit is validated, and no
DataMatrix is drawn because S10 is a linear-only standard.
Code 128 for UPS, FedEx, DHL and Amazon
Anything else — UPS 1Z numbers, FedEx, DHL, Amazon TBA labels or a
free-form string — becomes a standard Code 128 barcode with automatic A/B/C
subset switching, so long numeric runs compress into subset C. UPS and S10 check digits are
verified and a mismatch is flagged on the card rather than silently accepted.
DataMatrix ECC200
Every non-S10 value also gets a square DataMatrix ECC200 symbol with Reed–Solomon error correction, sized to the smallest square that fits the data. IMpb values produce a GS1 DataMatrix with FNC1 in the first codeword position.
How to generate barcodes
Type or paste values one per line, or paste a range straight out of Excel, Google Sheets, a CSV
file or a web table. The tracking column is detected from its header, numbers printed in groups
like 9200 1903 5201 9201 8432 23 are rejoined, duplicates are collapsed, and dates
and prices are ignored. A destination ZIP column is paired to each row automatically.
Each value becomes a card showing the formats that apply to it, tinted in its carrier's colours so a long batch is easy to scan by eye. Download PNG saves a single symbol as a framed label with white padding and a border kept clear of the bars; Save PDF builds a print-ready sheet of every card, with linear barcodes capped at four inches wide and the DataMatrix pinned to the right. Your list and settings are remembered in the browser, so a refresh doesn't lose your work.
Frequently asked questions
Is Barcode Barkeep free to use?
Yes. It is free for everyone, with no account, no usage limits and no paid tier. It is never commercialized; the donation link only helps keep the site online.
Do my tracking numbers get uploaded anywhere?
No. Every barcode is encoded by JavaScript running on your own device, so the numbers you enter never leave your browser. The only network requests the page makes are for the donation button and a cookieless page-view counter, and neither one receives the values you type.
What is a USPS IMpb barcode?
The Intelligent Mail package barcode is the barcode USPS uses to track packages. It is a GS1-128 symbol: a Code 128 barcode that starts with an FNC1 character, carries the 22- or 26-digit tracking number, and ends with a modulo-103 symbology check character. Barcode Barkeep also pairs it with a matching GS1 DataMatrix.
Why can't the routing ZIP be read from the tracking number?
An IMpb tracking number encodes a payment channel, a service type code, the mailer's ID and a serial number. It contains no geographic information at all. The AI 420 routing ZIP is a separate data element that comes from the recipient's delivery address, so Barcode Barkeep captures it from a ZIP column when you paste a spreadsheet, or from a per-card field. It never invents a ZIP, because a wrong routing ZIP misroutes mail.
Can I generate barcodes in bulk from a spreadsheet?
Yes. Copy a range from Excel, Google Sheets, a CSV or a web table and paste it into the input box. The tracking numbers are pulled out of the correct column automatically, duplicates are collapsed, dates and prices are ignored, and a destination ZIP column is paired to each number by row.
Will the barcodes scan when printed?
Yes. Symbols are drawn as vectors with proper quiet zones, always pure black on pure white regardless of the page theme. PNG exports add white padding and a border kept well clear of the bars, and the PDF caps linear barcodes at four inches wide so module widths stay comfortably scannable on a thermal or laser printer.
Does it work offline?
Yes. The barcode engine is self-contained vanilla JavaScript with no external libraries, so once the page has loaded it keeps working without a connection. You can also save the page files and open index.html directly from disk.
Why does a UPU S10 number show no DataMatrix?
S10 is a linear-only postal standard, so those cards deliberately render just the Code 128 barcode. USPS placard label IDs are the opposite case: they are DataMatrix-only and show no linear barcode. You can override the format on any card with its dropdown.