The UPC-A barcode is an omnidirectional, numeric barcode with 12 digits and is the standard version of the UPC (Uniform Product Code). EAN / UPC barcodes employ a 1-digit checksum as an error detection mechanism.
Example Barcode
The following example barcode encodes the information 01234567890
as an UPC-A barcode:
Details
The UPC-A barcode encodes 12 digits (11 digits, plus one check digit) of information, and has a symbol length of 113 modules. 1
Barcode Breakdown
The barcode is split into the following sections:
-
UPC Company Prefix - Variable length unique identifier indicating the producer (GS1 Company Prefix without leading zero).
-
Product Number - Variable length individual product number.
-
Checksum Digit - Final digit, used to ensure data integrity.
The first digit of the UPC Company Prefix partitions the items for use as follows: 1
0: UPC Company Prefixes
1: UPC Company Prefixes
2: RCNs (Restricted Circulation Numbers) within a geographic region
3: Used to issue UPC Company Prefixes
4: Used to issue RCNs within a company
5: Reserved for future use
6: Used to issue UPC Company Prefixes
7: Used to issue UPC Company Prefixes
8: Used to issue UPC Company Prefixes
9: Used to issue UPC Company Prefixes
Managing Organization
The UPC was managed by the UCC (Uniform Code Council) until 2005, when the UCC and EAN (European Article Number) merged to form GS1 (Global Standards One), at which point the UCC became GS1 US (GS1 United States). 2
Platform-Specific Notes
If you use Barcode Xpress to detect UPC-A barcodes, you should set the BarcodeType property to this barcode type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with a EAN-13 barcode.
Barcode Xpress generates an error if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress calculates it anyway.
UPC-A requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MinimumBarWidth property to 3 pixels (narrow bar size), you should set the HorizontalWhiteSpace property to 30 pixels.
The UPC-A barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center, and right guard bars are greater than the height of the bars encoding the actual barcode value, creating a notch in the barcode where the text value can be written. Barcode Xpress provides the user with control over the size of this notch with the TextNotchPercent property.
The TextNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if TextNotchPercent is 10, and the bar height is set to 100 pixels, the tall bars (left, center, and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.
If you use Barcode Xpress to detect UPC-A barcodes, you should set the BarcodeType property to this barcode type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with a EAN-13 barcode.
Barcode Xpress generates an error if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress calculates it anyway.
UPC-A requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MinimumBarWidth property to 3 pixels (narrow bar size), you should set the HorizontalWhiteSpace property to 30 pixels.
The UPC-A barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center, and right guard bars are greater than the height of the bars encoding the actual barcode value, creating a notch in the barcode where the text value can be written. Barcode Xpress provides the user with control over the size of this notch with the TextNotchPercent property.
The TextNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if TextNotchPercent is 10, and the bar height is set to 100 pixels, the tall bars (left, center, and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.
If you use Barcode Xpress to detect UPC-A barcodes, set the barcode type to search for during recognition to this barcode type using the SetBarcodeReaderType method so that the barcode engine specifically looks for UPC-A barcodes. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with a EAN-13 barcode.
Barcode Xpress generates an error if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress calculates it anyway.
UPC-A requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MakeBarcodeBarSize property to 3 pixels (narrow bar size), you should set the MakeBarcodeBWidth property to 30 pixels.
The UPC-A barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center, and right guard bars are greater than the height of the bars encoding the actual barcode value, creating a notch in the barcode where the text value can be written. Barcode Xpress provides the user with control over the size of this notch with the MakeBarcodeUPCNotchPercent property.
The MakeBarcodeUPCNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if MakeBarcodeUPCNotchPercentis 10, and the bar height is set to 100 pixels, the tall bars (left, center, and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.
If you plan to detect UPC-A barcodes, you should set the type parameter to this barcode type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with an EAN-13 barcode.
An error is generated if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress for Java calculates it anyway.
If you plan to detect UPC-A barcodes, you should set the BarcodeType property to this barcode type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with an EAN-13 barcode.
An error is generated if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress for Linux calculates it anyway.
UPC-A requires a quiet zone, which should be at least the width of 10 narrow bars. This means that if you set the MinimumBarWidth property to 3 pixels (narrow bar size), you should set the HorizontalWhiteSpace property to 30 pixels.
The UPC-A barcode is also commonly written with 2 different bar heights. Typically, the height of the left, center, and right guard bars are greater than the height of the bars encoding the actual barcode value, essentially creating a notch in the barcode where the text value can be written. The user has control over the size of this notch with the TextNotchPercent property.
The TextNotchPercent property can be set to a value of 0 to 50. This number represents the percentage of the tall bar height the short bars will be shortened by. For example, if TextNotchPercent is 10, and the bar height is set to 100 pixels, the tall bars (left, center, and right guard bars) will be 100 pixels tall, and the short bars (bars encoding the value) will be 90 pixels tall.
If you plan to detect UPC-A barcodes, you should set the type parameter to this type so that the barcode engine specifically looks for UPC-A. If you don’t tell the barcode engine to specifically look for UPC-A barcodes, it might confuse a UPC-A barcode with a EAN-13 barcode.
An error is generated if you have characters in your barcode value that are not allowed. You can have 11 or 12 digits in the UPC-A value. You don’t need to include the 12th digit (checksum) since Barcode Xpress for Node.js calculates it anyway.
Similar Barcode Types
UPC-A barcodes are also referred to as "UPC-12" barcodes. Since the transfer of specification management to the GS1, this barcode has been defined by GTIN (Global Trade Identification Number) key "GTIN-12". 3
Barcode Variants
UPC-E barcodes are a condensed representation of UPC-A barcodes.
Related Barcodes
UPC-A barcodes fall into the GS1 system specification, relating them to various other barcodes including EAN-8, EAN-13, UPC-E, and GS1 Databar.
References
-
"GS1 Standard Specifications." GS1, GS1 Organization, Jan. 2020, www.gs1.org/sites/default/files/docs/barcodes/GS1_General_Specifications.pdf.
-
GS1 US. "Our Mission and History." GS1 US, GS1 US, 2020,
www.gs1us.org/what-we-do/about-gs1-us/mission-history
. -
GS1. "EAN/UPC Family." GS1, GS1, 2015,
www.gs1.org/docs/barcodes/GS1_Barcodes_Fact_Sheet-GS_ EAN_UPC_family.pdf
.
For additional background and use-case information see our UPC-A barcode page.
For more information, see the Barcode Xpress SDK product page or try our online demos.