USPS Barcode FAQ & Tutorial
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)
USPS POSTNET Formatting
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
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
Label Software and the
Postnet Font Advantage Package, which includes over 30 tools for
easy integration, including support for
Oracle Reports and
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:
from example data above:
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:
- 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
Intelligent Mail &
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
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.
PLANET Barcode Formatting
The USPS Planet barcode is designed to track both inbound and outbound
letter mail. The Planet barcodes compliment the existing Postnet barcodes.
The Planet barcodes are required by the U. S. Post Office to use their
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
for more detail).
- The 12th digit is a check-sum digit that helps USPS detect errors.
- For more information about printing and generating PLANET barcodes,
Contact the USPS manager of the
at the post office to obtain more information on the formatting and
placement of PLANET barcodes.
USPS EAN-128 / GS1-128
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
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
Other products that support the printing of the Code 128 symbology
Label Software and the
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 Font Typeface
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
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.
FIM - Facing Identification
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
Reading, Scanning and Verifying
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
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.
IDAutomation 2D Barcode Scanner also reads OCR-A and may help verify
the correct printing of OCR text.
Check Character Calculation Examples
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,
Barcode Components automatically perform all necessary calculations.
Therefore, manual check digit calculations are usually not necessary.
To manually calculate the check digit for the
- 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
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.
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.
For additional information, please visit
The U.S. Postal Service. Intelligent
Mail, OneCode ACS and OneCode Confirm are trademarks of the
U. S. Postal Service.
Back to Top