# Intelligent Mail Package Barcode

> Source: https://docs.barcoder.ai/docs/standards/intelligent-mail-package-barcode
> research date 2026-06-04 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [Intelligent Mail Package Barcode (IMpb) Specification — USPS PostalPro](https://postalpro.usps.com/shipping/impb/BarcodePackageIMSpec)
- [USPS GS1-128 IMpb FAQ & Tutorial — BarcodeFAQ.com](https://www.barcodefaq.com/usps-postal/usps-impb-gs1-128/)
- [IMpb Implementation for Commercial Parcels — Federal Register, 2011](https://www.federalregister.gov/documents/2011/09/27/2011-24705/intelligent-mail-package-barcode-impb-implementation-for-commercial-parcels)

## 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](https://docs.barcoder.ai/docs/standards/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 <sup>[2][2]</sup>. 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 <sup>[2][2], [3][3]</sup>.

The IMpb is the **package-tier counterpart** to the letter-mail four-state [Intelligent Mail Barcode](https://docs.barcoder.ai/docs/standards/intelligent-mail-barcode) (IMb): IMb routes and tracks letters and flats, while IMpb does the same for parcels using a width-modulated [Code 128](https://docs.barcoder.ai/docs/standards/code-128)/GS1-128 symbol instead <sup>[2][2]</sup>.

## 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 <sup>[2][2], [3][3]</sup>. 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 <sup>[1][1], [3][3]</sup>. The authoritative technical document is **USPS Publication 199, the IMpb Implementation Guide** for Confirmation Services and Electronic Verification System (eVS) mailers <sup>[1][1]</sup>.

## Technical specification

The IMpb is built on **GS1-128**, a specialized form of [Code 128](https://docs.barcoder.ai/docs/standards/code-128) that uses an FNC1 in the first position and GS1 Application Identifiers (AIs) to delimit data fields <sup>[2][2]</sup>. A typical domestic IMpb encodes the following sequence <sup>[2][2]</sup>:

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](https://docs.barcoder.ai/docs/standards/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 <sup>[2][2]</sup>. The **three-digit STCs** let a single barcode identify the exact product and extra-service combination, eliminating the need for separate service barcodes <sup>[3][3]</sup>.

**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 <sup>[2][2]</sup>.

## Use cases

- **Parcel routing and end-to-end tracking** across the USPS network <sup>[2][2], [3][3]</sup>.
- **Delivery and Signature Confirmation** services, encoded directly via the service type code <sup>[3][3]</sup>.
- **Commercial parcel shipping** by high-volume mailers participating in eVS and Confirmation Services <sup>[1][1]</sup>.
- **Payment channel designation** through the GS1 Application Identifier / channel AI <sup>[2][2]</sup>.

## Implementations

- **[zint](https://github.com/zint/zint)** (C, 771★, active 2026) — open-source library that encodes [Code 128](https://docs.barcoder.ai/docs/standards/code-128) / GS1-128, the underlying symbology of the IMpb <sup>[4][4]</sup>.
- Numerous commercial label/shipping platforms (USPS-certified vendors) generate compliant IMpb symbols per Publication 199 <sup>[1][1]</sup>.

## Comparison

| Feature | IMpb | [Intelligent Mail Barcode](https://docs.barcoder.ai/docs/standards/intelligent-mail-barcode) (IMb) |
|---|---|---|
| Mail tier | Packages / parcels | Letters / flats |
| Symbology | GS1-128 ([Code 128](https://docs.barcoder.ai/docs/standards/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](https://docs.barcoder.ai/docs/standards/intelligent-mail-barcode) uses a four-state symbol suited to letter sorting <sup>[2][2], [3][3]</sup>.

## 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 <sup>[3][3]</sup>.
- 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 <sup>[2][2]</sup>.

## 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) <sup>[1][1], [2][2]</sup>.

## Sources

[1]: https://postalpro.usps.com/shipping/impb/BarcodePackageIMSpec
[2]: https://www.barcodefaq.com/usps-postal/usps-impb-gs1-128/
[3]: https://www.federalregister.gov/documents/2011/09/27/2011-24705/intelligent-mail-package-barcode-impb-implementation-for-commercial-parcels
[4]: https://github.com/zint/zint

[1] [Intelligent Mail Package Barcode (IMpb) Specification](https://postalpro.usps.com/shipping/impb/BarcodePackageIMSpec) — USPS PostalPro
[2] [USPS GS1-128 IMpb FAQ & Tutorial](https://www.barcodefaq.com/usps-postal/usps-impb-gs1-128/) — BarcodeFAQ.com
[3] [IMpb Implementation for Commercial Parcels](https://www.federalregister.gov/documents/2011/09/27/2011-24705/intelligent-mail-package-barcode-impb-implementation-for-commercial-parcels) — Federal Register, 2011
[4] [zint/zint](https://github.com/zint/zint) — GitHub, 2026

## Deployments

_No country reports mention this standard by name._
