Enter the data digits and get a complete, valid GTIN — the GS1 check digit is computed and appended for you (GTIN-8, UPC-12, EAN-13, or GTIN-14). It runs entirely in your browser.
🔒 Computed entirely in your browser — nothing is sent to a server.
Keep GTINs valid across your whole catalogue
FeedArc verifies every product’s GTIN check digit and leading zeros at import, and fixes recurring identifier issues with feed rules — so invalid GTINs never become Merchant Center disapprovals.
Every GTIN ends in a check digit derived from the preceding digits with the GS1 mod-10 algorithm. It exists so any system can catch a single mistyped or transposed digit without a database lookup. Enter your data digits above and this tool appends the correct check digit, giving you a complete GTIN-8, GTIN-12 (UPC-A), GTIN-13 (EAN-13), or GTIN-14.
A valid check digit does not prove GS1 assigned the number to your product — invalid or fabricated GTINs are a frequent cause of Google Merchant Center disapprovals. For the full definition, see the GTIN glossary entry.
With the GS1 mod-10 algorithm. Starting from the rightmost data digit, each digit is multiplied by 3 or 1 in an alternating pattern, the products are summed, and the check digit is whatever brings that sum up to the next multiple of 10. This tool runs that calculation and appends the result to the digits you enter.
Enter the data digits without the check digit: 7 digits produce a GTIN-8, 11 produce a UPC-12, 12 produce an EAN-13, and 13 produce a GTIN-14. The tool appends the final (check) digit for you. Paste one set per line to generate many at once.
No — and this is important. A computed check digit only makes a number internally valid; it does not mean GS1 assigned that number to your product. Google and marketplaces verify GTIN ownership against the GS1 registry and treat invented GTINs as misrepresentation. Use this to complete a GTIN whose data digits you already legitimately have (e.g. recover a check digit), not to fabricate identifiers. If a product truly has no GTIN, set identifier_exists=no instead.
The validator takes a complete GTIN and tells you whether its check digit is correct. The generator takes the data digits and gives you the correct full GTIN. Use the generator to complete a number, then the validator to confirm a number you already have.