QR Decode
Decode a QR

Local barcode tool

UPC-A Barcode Generator

Be the first to rate this page.

Create a 12-digit UPC-A retail barcode and show its EAN-13 representation.

Generated and checked in this browser. Nothing entered here is uploaded.

Processed locally

Your input stays in this browser.

Ready to verify

Review the result before saving or printing.

No expiry

Static codes keep working without a subscription.

Identifier structure

UPC-A is the twelve-digit retail symbol used widely in the United States and Canada. It consists of an eleven-digit body and a modulo-10 check digit. The number is an identifier assigned in a GS1 system; making a valid checksum does not grant a new product identifier or prove ownership of a number.

Worked numerical example

For 03600029145, multiply alternating body digits from the right by three: 0×3 + 3 + 6×3 + 0 + 0×3 + 0 + 2×3 + 9 + 1×3 + 4 + 5×3 = 58. The check digit is 2, making 036000291452. The same retail identity written in EAN-13 has a prefixed zero: 0036000291452. The leading zero is representation, not an extra item digit.

How the symbol encodes data

A UPC-A pattern has start, centre and end guard bars and two six-digit halves. Each ordinary digit occupies seven modules; guards provide the scanner with reference positions. The human-readable number should remain beneath the bars, but it is not a replacement for a clean optical symbol when a warehouse or checkout scanner reads the label.

Physical failure mode

Most failures are physical: a too-small X-dimension, insufficient white quiet zone, ink spread, truncated guard bars, print scaling that changes width unevenly, or placing dark graphics behind the spaces. Exporting as SVG preserves modules better than a resampled bitmap. Print at its intended size and scan the actual production file before a run.

Operational boundary

UPC-A differs from EAN-13 chiefly in number length and the conventional leading-zero conversion. It differs from EAN-8 because it carries a longer retail body. It is not the carton code: ITF-14 begins from a GTIN and has bearer-bar requirements for logistics packaging.

A format-specific proof

A frequent UPC-A import error is treating 036000291452 as a number. A numeric field can drop the first zero and leave 36000291452, an eleven-character string that no longer has the required representation even though the visible nonzero digits match. Store the value as text and test its character count before calculating. The zero-prefixed EAN form is for comparison, not permission to replace the requested retail artwork.

Worked check-digit example

For 03600029145, multiply alternating body digits from the right by three: 0×3 + 3 + 6×3 + 0 + 0×3 + 0 + 2×3 + 9 + 1×3 + 4 + 5×3 = 58. The check digit is 2, making 036000291452. The same retail identity written in EAN-13 has a prefixed zero: 0036000291452. The leading zero is representation, not an extra item digit.

How the bars carry data

A UPC-A pattern has start, centre and end guard bars and two six-digit halves. Each ordinary digit occupies seven modules; guards provide the scanner with reference positions. The human-readable number should remain beneath the bars, but it is not a replacement for a clean optical symbol when a warehouse or checkout scanner reads the label.

Printing and scanning limits

Most failures are physical: a too-small X-dimension, insufficient white quiet zone, ink spread, truncated guard bars, print scaling that changes width unevenly, or placing dark graphics behind the spaces. Exporting as SVG preserves modules better than a resampled bitmap. Print at its intended size and scan the actual production file before a run.

When to use this format

UPC-A differs from EAN-13 chiefly in number length and the conventional leading-zero conversion. It differs from EAN-8 because it carries a longer retail body. It is not the carton code: ITF-14 begins from a GTIN and has bearer-bar requirements for logistics packaging.

A shelf-label reconciliation with twelve digits

A supplier receives the approved GTIN-12 036000291452 for one 500 mL bottle. Store it as a 12-character text value, compare all twelve characters with the product master, and use the generator only to make a visual proof. The calculated final digit 2 checks the body 03600029145; it does not confirm that the bottle, flavour, size and market record are correct. Scan the printed shelf proof into the destination point-of-sale test and compare the returned value with the same 12-character record. GS1 describes UPC-A as the carrier for a GTIN-12 in its current retail guideline: https://ref.gs1.org/guidelines/2d-in-retail/1.0.0/. A value that scans cleanly but retrieves another item is a master-data failure, not a reason to change the check digit.

Do not confuse database padding with artwork

In a system that stores GTINs in a 14-character field, the UPC-A value 036000291452 may be represented as 00036000291452. Those two leading zeroes are filler for the database representation; they are not an instruction to draw a 14-digit retail barcode. Keep the stored form, the consumer-unit carrier and the human-readable digits as separately named fields. A common import error is to cast the value to a number and lose the initial zero, leaving 36000291452. Run a character-count check before the checksum, then compare the approved UPC-A proof against the retail system rather than against a reformatted export.

Release the consumer unit and case as two records

A 12-pack carton can hold twelve bottles that each carry UPC-A 036000291452, while the outer case needs its own approved case-level identifier and carrier. Do not copy the consumer-unit UPC-A onto a corrugated case merely because it is the only number visible in a design file. The receiving team may need a case scan, and the checkout team needs a consumer-unit scan; their expected records are different. Keep a release table with package level, printed value, symbology, scanner used and proof date. Test one bottle at checkout and one case at receiving. This exposes a packaging-level mix-up before thousands of labels make a technically valid but operationally wrong symbol.

A final UPC-A release test

Before approving a bottle run, compare the source GTIN-12, generated SVG, human-readable digits and checkout result in one review. Use a plain proof and the final substrate, because a correct control can still fail after varnish, trimming or uneven scaling. Keep the returned point-of-sale record with the artwork revision. If the record belongs to a different product, stop the release and correct master data; if the scanner cannot read the final print, correct geometry or print settings. Neither failure is solved by inventing a replacement UPC-A number. The barcode generator is a local rendering tool, while allocation, catalogue ownership and retail acceptance remain separate approvals.

What a UPC-A result means

A local check-digit result confirms arithmetic for the supplied body. It does not allocate the GTIN-12, create a catalogue record or approve a retail print. Keep those decisions with their owners.

Keep the retail proof

Retain one scanned final label with the approved GTIN-12 and product record. It makes a future reprint checkable without reading bars by eye.

Enter your values, review the result, then use it with confidence.

Rate this page

Be the first to rate this page.