The IM™ Package Barcode consists of a data string encoded in a barcode that generally follows the GS1-128 specification. However, the US Postal Service has many unique operational requirements and deviates slightly from the GS1 specification where necessary. This barcode type is supported by the dBarcode DLLs, the dBarcode Developer Kit, and the Active Barcode Components. The type is also supported without the bearer bars by the dBarcode.Net components.
The barcode data consists of a number of fields. Not every barcode type may use every field, and some fields will be suppressed from the human-readable representation of the barcode.
This is a specific two-digit application identifier used to identify both the business induction channel from which the mailpiece originated and to indicate where Postal Service may locate a payment record for the mailpiece. Valid Channel Application Identifiers are “91”, “92”, “93”, “94”, and “95”.
This one-digit field is used and encoded only in Postal Service-created barcodes (Channel Application Identifier “95”). The Channel Identifier indicates the retail system from which a barcode originated (e.g., POS, APC).
This field may be 5 or 9 digits in length. It will not be required if the size of the mailpiece does not allow sufficient space for its inclusion or if a mailer presents specific evidence citing why it is overly burdensome to include routing information within the mailpiece barcode.
This six-digit field is used and encoded in Postal Service-created barcodes. The mailer shall use this field within the retail barcode construct to help maintain uniqueness and help with traceability to an exact printing source. In the near term, the Device ID for barcodes printed on POS One will be the PVI Printer ID. An APC will include a Device ID that is the 4-digit machine ID and backfilled with zeroes.
This field is used and encoded in Postal Service-created barcodes. The mailer shall use this field within the retail barcode construct to aid in establishing uniqueness. A 4-digit, YDDD format will be used.
This field may be 6 or 9 digits in length. Most mailers will be assigned a 9-digit Mailer Identifier, which is used in conjunction with AI “92”. On an individual basis, some mailers or consolidators will be assigned a 6-digit Mailer Identifier, and would then use AI “93”.
Every barcode construct shall utilize a 1-digit, Mod 10 Check Digit as the final digit in the barcode data string. The mailer shall only calculate the check digit using the package identification code (PIC) portion of the data. See Appendix E for more information.
This is a specific 3-digit GS1 Application Identifier that is used to designate the presence of a delivery Postal Code within a single Postal Authority. This field shall always be “420” and, shall precede the Destination ZIP Code if such routing information is provided. The AI (420) and the ZIP Code (5 or 9 digit) shall be suppressed in the human-readable representation of the barcode data. For example, the barcode shown above is created using the following data string, including the (420) AI, even though that AI and its associated data is no shown in human readable form under the barcode: (420)12345(92)1239123456781234567
Every barcode shall contain a serial number. Retail barcodes shall use a 5-digit serial number. Online mailers / systems shall have the option of using a 5 or 8-digit serial number, based on mail volume and uniqueness requirements. Commercial mailers, depending upon length of their Mailer Identifier, may use a 7, 10, 11, or 14-digit serial number.
This 3-digit field identifies the mail class or product and the presence of any extra services. This shall include identifying instances where no extra services have been purchased, e.g., Parcel Post with no extra services. The service type code also identifies if the mailpiece belongs to a special Postal Service program, such as Open & Distribute or Merchandise Return Service.
This 2-digit field shall be used only in conjunction with Channel Application Identifier “94”. It indicates the type of online source/platform that generated the barcode, be it a source external to the Postal Service such as a PC Postage vendor or an internal Postal Service system such as Click-N-Ship.
Note that labels containing an IMPB barcode also have other requirements including the USPS Tracking number and horizontal lines. Some dLSoft C/C++ products that support graphic images can generate these items (our .Net products do not support these). The Height specified for the barcode image is the total height from the upper horizontal line to the lower – typically 40 mm or 1.6 inch, and the X value between 14 and 20 Mils.
If the data is provided in the form
(420)12345(92)12391234567812345678901/TRACKING CODE #
Then the barcode is created with a gap above the bars to allow for tracking information to be included. However, if the data is provided with a trailing / and the Extra2 flag is set, then characters following the / may be used to provide the tracking information.
For example, the data above results in the barcode shown below
For further details of the USPS Standard see: