Skip to content
barcoder

Standards/intelligent-mail-package-barcode

Intelligent Mail Package Barcode

Type1D Linear
PrimaryUS
Completeness75%high

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]:

  1. Start C character.
  2. FNC1 separator (marks the symbol as GS1-128).
  3. Application Identifier — typically 420 (3 digits), designating domestic parcel routing.
  4. Routing ZIP Code — 5 digits for the destination.
  5. FNC1 separator.
  6. Channel AI — e.g. 92 (2 digits) for commercial mailers using 9-digit IDs.
  7. Service Type Code (STC)3 digits identifying the mail class and service combination (e.g. Priority Mail with Delivery Confirmation).
  8. Mailer ID (MID)6 or 9 digits, identifying the customer.
  9. Serial / Package ID — 7 digits (optionally 11 digits per later specs) giving each piece a unique number.
  10. Mod-10 check digit.
  11. Mod-103 symbology check character (the code-128 symbol check).
  12. 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.

source · docs/standards/intelligent-mail-package-barcode/index.md