The information provided here describes how to create and implement the various types of automation used by the United States Postal Service (USPS). Information about barcode generation, printing and verification is provided for Postnet, Planet, GS1-128, EAN-128, FIM, OCR-A and USPS Intelligent Mail® Barcode (aka: OneCode Solution 4-State Customer Barcode)
- Formatting and Printing of USPS barcode types:
- Postnet – used to encode the zip code and delivery point.
- Planet – tracks both inbound and outbound letter mail.
- Intelligent Mail (aka: OneCode 4-State Customer Barcode) – combines the zip code data of Postnet and the tracking of Planet into one barcode symbol.
- USPS GS1-128 (EAN-128) – used for special services such as delivery confirmation.
- OCR-A – a text font typeface used to automate the reading of address data.
- FIM – The Facing Identification Mark is used to identify business reply, courtesy and OCR readable mail.
- Reading, scanning and verifying barcodes
- Postnet check character calculation example
- Links to more information
The POSTNET (Postal Numeric Encoding Technique) barcode type was developed by the U. S. Post Office to encode zip code information. POSTNET barcodes on U.S. mail improve the speed, accuracy and delivery of mail. Some U.S. Post Offices also offer a discount for sending bulk mail that contains the POSTNET barcode. However, the USPS plans to require the Intelligent Mail barcode to qualify for automation discounts beginning January of 2009. For this reason, IDAutomation has implemented unique encoding in IDAutomation Postnet Fonts, which allow printing of Postnet, Planet and Intelligent Mail barcodes with the same font, to meet the requirements today with the needs of tomorrow.
All IDAutomation Barcode Products support the printing of Postnet such as the Barcode Components, Label Software and the Postnet Font Advantage Package, which includes over 30 encoders for easy integration, including support for Microsoft Access, Crystal Reports, Oracle Reports and FileMaker.
Determining the Data to Encode:
To create a proper Postnet Barcode with IDAutomation barcode products, a single string of numbers must be entered that is made up of the following:
|Complete string from example data above: 12345123412|
After the string is obtained, it is encoded with IDAutomation’s products.
POSTNET barcodes can be printed as a 5-digit POSTNET barcode, ZIP+4 POSTNET barcode or a Delivery Point Barcode, which is also referred to as DPBC. If unsure as to which method to use, contact the local post office for assistance.
- The 5-digit POSTNET barcode consists of the start/stop character, 5 digit ZIP code data, check digit and the start/stop character, for a total of 32 bars.
- The ZIP+4 POSTNET barcode consists of the start/stop character, 9-digit ZIP code data, check digit and the start/stop character, for a total of 52 bars.
- The DPBC POSTNET barcode consists of the start/stop character, 9-digit ZIP code data, two DPBC numbers, check digit and the start/stop character, for a total of 62 bars. The two DPBC numbers are usually the last two digits of the street address, PO Box or route number. If the plan is to use DPBC, examine chapter 5 of the USPS Domestic Mail Manual for information on handling abnormal addresses.
Generating a barcode:
- After the string is obtained, it is sent to the component or application to generate a barcode image. The following is an image generated from the example string:
- When using Postnet Barcode Fonts, start, stop and checksum characters must be added to the string to create a symbol that can be read by the USPS. The text below was formatted with the IDAutomation Barcode Font Tools and will create an accurate barcode when combined with the IDAutomation Postnet Barcode Fonts:
- Postnet images may be generated online from the Free Barcode Creator, for example:
(Generating images from BCGEN is subject to the Free License portion of the License Agreement. The licensed version does not contain the “powered by” watermark.)
The size of the POSTNET barcode must be between 22 and 24 bars per inch. The size may be adjusted by setting the narrow bar width. Additional font widths are provided with IDAutomation Postnet Barcode Fonts for this purpose.
Location of the symbol:
The POSTNET barcodes must be printed on specific areas of mail, usually directly below the address. For more information about the formatting and placement of POSTNET barcodes or FIM symbol placement, refer to
Chapter 5 of the USPS document Domestic Mail Manual and USPS Publication 25 or contact the local post office Automation Specialist for assistance.
Create Intelligent Mail Barcodes using Postnet Barcode Fonts
USPS Intelligent Mail (Aka: OneCode, the 4-State Customer Barcode, 4CB and USPS4CB) includes a height-modulated barcode designed for use in high speed, automated, mail sorting machines that allow both PLANET and POSTNET barcode information to be combined into a single barcode to track mailings, request address-quality services (including updated address-change information) and return-mail service. The unique encoding used in IDAutomation Postnet Barcode Fonts allows printing of Postnet, Planet and Intelligent Mail barcodes with the same font.
Note: The OneCode Solution is also known as the Intelligent Mail Customer Barcode. The encoding of each is the same. In IDAutomation products, the selection of OneCode will create the same barcode as the Intelligent Mail Customer Barcode.
- Intelligent Mail Overview
- Formatting Intelligent Mail Barcodes
- Printing & Generating Intelligent Mail Barcodes
- Barcode Generation Examples
- Intelligent Mail Sizing and Location
The USPS Planet barcode is designed to track both inbound and outbound letter mail. The Planet barcodes complement the existing Postnet barcodes. The Planet barcodes are required by the U. S. Post Office to use their Confirm service. USPS Intelligent Mail OneCode Confirm should be considered for new implementations of this barcode type, because it combines Postnet and Planet data into a single barcode symbol.
CONFIRM provides confirmation that customers received the mail, allowing mailers to synchronize telemarketing programs with direct mail campaigns or augment other advertising media with their mailings.
Confirm is built on the PLANET Code, a 12-digit barcode:
- The first two digits represent the service (21=Origin Confirm or 22=Destination Confirm).
- The next nine digits identify the mail piece (see Figures 2 and 3 in section 5, from the manual, for more detail).
- The 12th digit is a checksum digit that helps USPS detect errors.
- For more information about printing and generating PLANET barcodes, please visit here.
Contact the USPS manager of the Planet program at the post office to receive more information on the formatting and placement of PLANET barcodes.
The United States Postal Service uses the EAN-128 barcode (also known as Code 128 and GS1-128) for special services such as delivery confirmation. When used for the USPS, the IDAutomationC128L font provided in the Code 128 Barcode Font Advantage Package and the Postnet Barcode Font Advantage Package should be printed at 16 points, which will produce a height of .75″ and an X dimension of .013″ as required. The IDAutomationC128M font may also be used at 18 points to achieve a greater X dimension (a wider barcode) with the same height.
Other products that support the printing of the Code 128 symbology include IDAutomation Barcode Components, Label Software and the Image Generator. For information about formatting USPS GS1-128 (UCC/EAN128) barcodes with IDAutomation products, refer to the USPS portion of the Code 128 Barcode FAQ.
OCR-A is not a barcode, but a font that enables text to be easily read by OCR (Optical Character Recognition) scanners at the post office. When used for the USPS, the IDAutomationOCRa font provided in the OCR Font Advantage Package and the Postnet Barcode Font Advantage Package should be printed at 9 points. This size is required for USPS scanners to automatically read the address when the barcode is unavailable or not readable.
The Facing Identification Mark (FIM) is a type of barcode with vertical and horizontal bars used to identify business reply, courtesy reply and OCR-readable mail. This barcode type is only provided in the Postnet Barcode Font Advantage Package and should be printed at 36 points.
Before sending the printed barcodes to the post office, IDAutomation suggests verifying the result with a verifier, which is provided in the form of a hand-held 2D barcode image reader. The image reader will grade the barcodes with a quality assurance test and report possible problems. Below is an example of the output received when scanning a Postnet barcode with the IDAutomation 2D Barcode Scanner:
>>> PQA <<< POSTNET: 62 Bars, nominally from 02.54 to 03.05 in. in Width Bar Sequence: 10011000110011001100010100000111100000110100011000101010011001 [A] (Ok) < Tall Bar Heights: 0.130 in. [B] (Hi) < Short Bar Heights: 0.058 in. [A] (Ok) < Bar Widths = 0.021 in. [A] (Ok) < Inter-Bar Gaps = 0.024 in.
The IDAutomation 2D Barcode Scanner also reads OCR-A and may help verify the correct printing of OCR text.
IDAutomation provides several font tools, macros and source code samples that are free to use with IDAutomation barcode fonts, and will automatically format the data to the fonts. Additionally, IDAutomation Barcode Components automatically perform all necessary calculations. Therefore, manual check digit calculations are usually not necessary.
To manually calculate the check digit for the Postnet barcode:
- Ensure the start/stop character is added to the beginning and ending of every Postnet barcode. When using IDAutomation Postnet Barcode Fonts, the parentheses are used for start and stop characters; “(” for start and “)” for stop. Start and stop codes are also located at the “!, *, s, and S” characters in the font.
- The last digit of the printed POSTNET barcode symbol is a check digit. The check digit is obtained by determining the number, that when added to the sum of all numbers in the POSTNET code, will produce a multiple of 10. For example; the check digit for the POSTNET number of 33727-1426 is 5 because (3+3+7+2+7+1+4+2+6=35 and 35+5=40) Therefore, the sum of all POSTNET data including the check digit must be a multiple of 10.
- The actual font characters used to print this POSTNET code would be (3372714265).
- The IDAutomation Online Barcode Font Encoder may be used to verify check digits, or to create barcodes one at a time.
To manually calculate the check digits for USPS EAN128 / GS1-128, please refer to the USPS section of the Code 128 Barcode FAQ. The USPS Intelligent Mail (Aka: OneCode & 4-State Customer Barcode) is very complex to create and contains many more calculations than a simple check digit. The source code used to create Intelligent Mail barcodes can be provided with the purchase of the Unlimited Developer License and a signed Source Code License Agreement for one of the products supporting Intelligent Mail & OneCode barcodes.