Standards/intelligent-mail-package-barcode
Intelligent Mail Package Barcode
Overview
The Intelligent Mail Package Barcode (IMpb) is the United States Postal Service's standard barcode for packages and parcels. It is a GS1-128 symbol — a specialized application of code-128 (ISO/IEC 15417) using GS1 Application Identifiers — that concatenates destination routing information (such as a ZIP code) together with a unique package identification code into a single barcode [2]. The IMpb consolidates routing data, the payment channel, the mail class/service, the mailer's identity, and a per-piece serial number into one integrated symbol, enabling end-to-end tracking and delivery confirmation [2, 3].
The IMpb is the package-tier counterpart to the letter-mail four-state intelligent-mail-barcode (IMb): IMb routes and tracks letters and flats, while IMpb does the same for parcels using a width-modulated code-128/GS1-128 symbol instead [2].
History
USPS introduced the IMpb to replace its earlier fragmented set of package barcodes (Delivery Confirmation, Signature Confirmation, and other service-specific symbols) with one integrated barcode per parcel [2, 3]. The implementation for commercial parcels was formalised through a 2011 Federal Register rulemaking, and USPS indicated that effective January 22, 2012 it would provide end-to-end tracking — including confirmation of delivery — at no additional charge on all commercial parcels, with required implementation phased in afterward [1, 3]. The authoritative technical document is USPS Publication 199, the IMpb Implementation Guide for Confirmation Services and Electronic Verification System (eVS) mailers [1].
Technical specification
The IMpb is built on GS1-128, a specialized form of code-128 that uses an FNC1 in the first position and GS1 Application Identifiers (AIs) to delimit data fields [2]. A typical domestic IMpb encodes the following sequence [2]:
- Start C character.
- FNC1 separator (marks the symbol as GS1-128).
- Application Identifier — typically 420 (3 digits), designating domestic parcel routing.
- Routing ZIP Code — 5 digits for the destination.
- FNC1 separator.
- Channel AI — e.g. 92 (2 digits) for commercial mailers using 9-digit IDs.
- Service Type Code (STC) — 3 digits identifying the mail class and service combination (e.g. Priority Mail with Delivery Confirmation).
- Mailer ID (MID) — 6 or 9 digits, identifying the customer.
- Serial / Package ID — 7 digits (optionally 11 digits per later specs) giving each piece a unique number.
- Mod-10 check digit.
- Mod-103 symbology check character (the code-128 symbol check).
- Stop character.
The combination of MID + STC + serial forms the Package Identification Code (PIC) — the unique tracking number for the piece [2]. The three-digit STCs let a single barcode identify the exact product and extra-service combination, eliminating the need for separate service barcodes [3].
Print parameters. A representative IMpb printed at 16 pt has a height of about 0.75″ and an X-dimension of about 0.013″; the human-readable interpretation inserts spaces between every four digits [2].
Use cases
- Parcel routing and end-to-end tracking across the USPS network [2, 3].
- Delivery and Signature Confirmation services, encoded directly via the service type code [3].
- Commercial parcel shipping by high-volume mailers participating in eVS and Confirmation Services [1].
- Payment channel designation through the GS1 Application Identifier / channel AI [2].
Implementations
- zint (C, 771★, active 2026) — open-source library that encodes code-128 / GS1-128, the underlying symbology of the IMpb [4].
- Numerous commercial label/shipping platforms (USPS-certified vendors) generate compliant IMpb symbols per Publication 199 [1].
Comparison
| Feature | IMpb | intelligent-mail-barcode (IMb) |
|---|---|---|
| Mail tier | Packages / parcels | Letters / flats |
| Symbology | GS1-128 (code-128, 1D width-modulated) | Four-state height-modulated |
| Data | Routing ZIP + PIC (MID + STC + serial) | Routing code + tracking + barcode ID |
| Tracking granularity | Per-piece unique | Per-piece unique |
| Replaces | Delivery/Signature Confirmation barcodes | POSTNET + PLANET |
The IMpb and IMb are deliberately complementary: both give every mailpiece a unique trackable identifier, but IMpb uses a 1D GS1-128 symbol suited to packages while intelligent-mail-barcode uses a four-state symbol suited to letter sorting [2, 3].
Fun facts
- The IMpb folds what used to be several separate barcodes (routing, Delivery Confirmation, payment) into a single GS1-128 symbol, with the service captured by just a 3-digit Service Type Code [3].
- Although it is a "postal" barcode, the IMpb is technically a standard GS1-128 retail/logistics symbol under the hood, readable by ordinary GS1-128 scanners [2].
Status
The IMpb is currently mandatory for parcels shipped through USPS and is actively maintained; USPS periodically updates Publication 199 (service type codes and validations) [1, 2].
Sources
1 Intelligent Mail Package Barcode (IMpb) Specification — USPS PostalPro 2 USPS GS1-128 IMpb FAQ & Tutorial — BarcodeFAQ.com 3 IMpb Implementation for Commercial Parcels — Federal Register, 2011 4 zint/zint — GitHub, 2026
Deployments
No country reports mention this standard by name.