Retail GTIN-12
UPC-A at North American Checkout: GTIN-12 & Check Digits
UPC-A is still the familiar twelve-digit retail symbol on many U.S. and Canadian packs. The POS does not "know" your brand from the bars alone -- it looks up the scanned GTIN-12 in the store item file.
Generate UPC-AWhat happens at the till
Capture
Laser or imager reads the reflectance pattern on the pack facing.
Decode
Decoder validates structure and Modulo-10, then emits twelve digits.
Lookup
POS matches price, tax, age limits, and promotions in the item master.
Failure types
Optical no-read vs "item not on file" for a valid but unauthorized GTIN.
Twelve digits on the package
Human-readable UPC-A shows 11 data digits + 1 check digit.
Store databases should keep the value as text so a leading zero is not stripped
(teaching example 036000291452).
number system
prefix + item
check digit
Classic teaching charts show a fixed 5/5 manufacturer/item split. Real GS1 company-prefix lengths vary -- do not hard-code that split in software.
Number-system overview (orientation only)
| Leading digit | How training material often describes it |
|---|---|
0, 1, 6, 7, 8, 9 |
Common regular trade-item ranges |
2 |
Often variable-measure / store-assigned patterns |
3 |
Frequently seen with pharmaceuticals / health products in NA practice |
4 |
Often in-store / non-catalog use cases |
5 |
Coupons in classic UPC numbering discussions |
Do not pick a leading digit because a blog said "3 means pharmacy" and then invent the remaining digits. Obtain numbers through authorized allocation. Coupon structures (number-system 5) have dedicated rules -- do not reuse product UPC-A artwork as a coupon by changing one digit.
Same product as EAN-13
Leading-zero pad
036000291452
0036000291452
GTIN-12 and GTIN-13 for the same trade item. Databases that store 13 digits left-pad with zero.
Chop an arbitrary EAN-13
drop first digit
You cannot chop a random thirteen-digit number to twelve and call it UPC-A.
Side-by-side detail: EAN-13 vs UPC-A.
Check digit: 03600029145 to 2
Same GS1 Modulo-10 idea as EAN-13, applied to eleven data digits. From the right of those eleven: odd positions x3, even x1; choose C so the sum is divisible by 10.
Weighted sum (data) Products from 0 3 6 0 0 0 2 9 1 4 5 with right-based 3/1 weights total 58.
Next multiple of 10 60, so check = 2. Full UPC-A: 036000291452.
Qrivio Accepts valid full twelve digits or the eleven-digit payload and computes the check. Wrong full check digits are rejected with the expected digit shown.
Batches Payload advances; check recalculates. Do not bump the full twelve-digit integer.
Print notes for POS
Quiet zones Keep left/right clear of graphics and box creases.
SVG for artwork Prefer vector when placing the symbol in packaging files.
Scanner class Verify on retail-class devices, not only a phone app.
CSV zeros Do not truncate leading zeros when exporting to label software.