Home Articles Fix Invalid, Missing and Reused GTINs in a Product Feed: A Row-by-Row Teardown Fix Invalid, Missing and Reused GTINs in a Product Feed: A Row-by-Row Teardown Published Date: 17 Oct, 2026 Merchant Center accepts a GTIN of exactly 8, 12, 13 or 14 digits, up to ten per product, and it expects the last digit to be a correct check digit (Google, GTIN attribute). Anything else lands in Needs attention, and a fix can take 24 to 72 hours to clear. This guide is for feed owners who already have the errors and need to work out which rows are broken, why, and what to put in them instead. We take seven broken rows from a constructed example feed, show each one before and after, and give you a validation order you can apply to a whole catalog. By the end you will be able to sort every GTIN problem into one of four causes and fix it without inventing a number. The five GTIN messages and what each one means Google uses five separate issue messages for identifier problems. They look alike in a product list but need different fixes, so read the exact title before you touch the data. Message in Merchant CenterWhat triggers itFix Invalid GTIN in unsupported formatNon-digit characters, wrong length (not 8, 12, 13 or 14), or a failed check digitRestore the real number from the packaging or manufacturer Incorrect GTINA valid GTIN that belongs to a different product, usually reused by accidentLook up the right GTIN; do not make one up Restricted GTINA value in a range reserved for future useSubmit the manufacturer GTIN, or leave the field empty if none is required Unsupported GTINA coupon-only numberReplace with the product GTIN, or leave blank Missing or incorrect GTINNo usable identifier set for a product that needs oneA valid GTIN, or both MPN and brand One detail Google itself leaves slightly inconsistent: the attribute page lists coupon prefixes 05, 98 and 99, while the Unsupported GTIN page lists 981 to 984, 99 and 05. We treat any GTIN starting 05, 98 or 99 as unsafe, which covers both versions. The teardown: seven rows before and after The rows below are a constructed example for a Turkish home-textiles store. The brand name Kuzey Home and the numbers are illustrative, not client data. The check digits were calculated, so the arithmetic is real, but none of these numbers is a registered GTIN. RowBefore (gtin)DiagnosisAfter 1869123456789513 digits, but the check digit should be 0. Fails validation.Read the barcode on the packaging. If it prints 8691234567890, use it. 28.69123E+12A spreadsheet converted the number to scientific notation. Digits are lost and the characters are invalid.Re-export from the source system with the column typed as text. 30501234567890Starts with 05, a coupon prefix. Unsupported GTIN.Leave gtin empty and supply brand and MPN. 42000000012346Starts with 2, a restricted range. Possibly an internal or in-store code.Leave gtin empty and supply brand and MPN. 5KH-LIN-0042An internal SKU in the GTIN column. Letters make it invalid.Move it to id. Leave gtin empty. 6(empty)Private-label item with no GTIN, brand, MPN or identifier_exists.brand set to the store brand, MPN decided as described below. 78695555000128Valid check digit, but the same number sits on a duvet cover and a pillowcase. Incorrect GTIN.Take each product's own GTIN from its packaging. Row 1 is the one most teams get wrong. The tempting fix is to recompute the last digit and move on. That gives you a number that passes arithmetic and may identify nothing, or a different product. Google's own guidance on Incorrect GTIN is blunt: "Do not make up or create new GTINs." Use the calculation to find the bad rows, not to repair them. Row 7 shows why a check digit is not proof. Both products pass the arithmetic, and the error is only visible when you compare the number to the product. Google's minimum requirements also say not to give multiple products the same GTIN, country, language and condition, size or colour values. Step 1: Run the check digit on every row The check digit is cheap to test and catches typos, truncation and spreadsheet damage in one pass. GS1 describes the calculation for a 13-digit number as follows (GS1, calculate a check digit manually). Take the first 12 digits and multiply them by alternating weights of 1 and 3, starting with 1 on the first digit. Add the twelve products. Subtract the sum from the next multiple of ten. The result is the check digit. GS1's own example is 629104150021: the sum is 57, 60 minus 57 is 3, so the full GTIN is 6291041500213. Applied to row 1, 869123456789 sums to 130, so the check digit is 0 and the submitted 5 is wrong. For 12-digit and 14-digit numbers, the weights alternate 3 and 1 counting from the digit next to the check digit, so the weight of a given digit depends on its distance from the right end, not on the left. GS1's page only works through the 13-digit case, so test any 12 or 14-digit routine against numbers printed on real packaging before you trust it. Google also points to the GS1 check digit calculator for spot checks. Step 2: Sort every failing row into one of four causes Apply these tests in order. The first match decides the fix. Contains anything but digits: a formatting or mapping problem. Restore from the source system. Google accepts spaces and dashes and ignores them, so only other characters count here. Wrong length or failed check digit: a typo or truncation. Go back to the packaging or manufacturer. Starts with 02, 04, 2, 05, 98 or 99: a restricted or coupon range. This is almost never a real product GTIN. Empty the field. Passes everything but repeats across different products: a reuse error. Find the correct number for each product. Count how many rows land in each bucket before you fix anything. A catalog where most failures are cause 1 has an export problem, and fixing rows by hand will not hold. A catalog where most are cause 3 has an internal-barcode habit, and the answer is a rule that clears those values. Step 3: When there is no GTIN, use brand and MPN Google marks GTIN as recommended for products where the manufacturer assigned one, and says store-brand, private-label and custom items often have none. For those, the working pair is brand plus MPN. brand is required for products with a clear brand. For store brands and private label, Google says to use your store name. The limit is 70 characters, and you should not guess a brand. mpn is required for products that lack a manufacturer-assigned GTIN, with a 70 character limit. Google says to use the manufacturer's value, and to create your own only if you are the manufacturer. Its rule for doubtful cases is short: "When in doubt do not provide an MPN." identifier_exists set to false is for products that truly have no identifiers, such as custom or one-of-a-kind goods and vintage items. Google warns that setting it to no when an identifier exists triggers a warning. Sources: brand, mpn, identifier_exists. For row 6, a store that commissions its own linen range has a defensible case for brand as Kuzey Home and an in-house MPN such as KH-LIN-0042, if it is the manufacturer of record. We cannot tell you whether Google would treat your supplier relationship as manufacturing. If your contract makes a third party the manufacturer, leave the MPN empty rather than invent one, and check the product after the next fetch. Turkish and cross-border notes GS1 lists 868 and 869 as the prefix range of GS1 Türkiye, so barcodes issued in Turkey typically start with one of them. GS1 is explicit that a prefix does not identify the country of origin of a product. So an 869 barcode on an imported item is possible, and an 869 prefix says nothing about whether the number is correctly registered to your product. That matters for sellers who list Turkish-made goods abroad, or foreign brands in Turkey. Take the GTIN from the brand owner, not from a local reseller's own labelling. IdeaSoft's Turkish GTIN guide states that GS1 Türkiye is the only authorized body for obtaining a GTIN in Turkey and warns against intermediaries selling numbers (IdeaSoft, GTIN Nedir). That is one vendor's guide and it does not cite a regulation, so confirm directly with GS1 Türkiye before buying barcodes. If you sell through Google, a store-brand product without a registered GTIN is a legitimate case for brand plus MPN, not a reason to borrow a number. Field names if you submit through the Merchant API In the v1beta Merchant API reference, the repeated field is gtins, with up to 10 values. The older gtin field is marked deprecated. mpn and brand are single strings, and identifier_exists is a boolean that defaults to true when omitted (Merchant API reference). The practical consequence is that an empty identifier needs no explicit false. Only set it when the product genuinely has no identifier. A row-level checklist you can score Give each product a point for every line that passes. Anything below 6 needs a human look. CheckPass condition CharactersDigits only (spaces and dashes aside) Length8, 12, 13 or 14 digits Check digitCalculation matches the last digit PrefixDoes not begin 02, 04, 2, 05, 98 or 99 UniquenessNot shared with another product in the feed FallbackIf GTIN is empty, brand and MPN are both present A rules layer is the right place to automate the first four lines. In Feedance, feed rules can transform text and number fields per channel, and Feed Protection can skip or flag invalid data, though its page states that it is not real-time monitoring. The pages do not mention GTIN checks specifically, so treat the logic here as something you configure or script, not as a built-in validator. For the destination channel itself, see our Google Merchant Center integration page. What this does not cover, and where it breaks down A check digit proves the arithmetic, nothing more. We cannot confirm from the feed alone that a number is registered to your product, and Google's matching is not public. Row 7 style reuse and a valid-but-wrong number are visible only to someone holding the product. We also have not covered Meta, TikTok Shop or marketplace identifier rules, each of which has its own requirements. The example feed is constructed, so it cannot show how many rows in your catalog fall into each bucket. Dedicated tools such as DataFeedWatch publish their own help article on invalid GTINs in feed review, and a PIM or a data-quality service may suit you better if you need supplier-side GTIN reconciliation across thousands of SKUs. Finally, Google says missing or incorrect GTINs "may have limited visibility", but it publishes no figure, so we make no claim about ROAS impact. Frequently asked questions How many digits can a GTIN have in Google Shopping? Google accepts 8, 12, 13 or 14 digits, and a value of 0 means no GTIN. These correspond to GTIN-8, UPC-A, EAN or JAN, and ITF-14. UPC-E and ISBN-10 values should be converted to 12 and 13 digits first. Can I fix an invalid GTIN by recalculating the check digit? No. Recalculating gives you a number that passes the test but may not belong to your product. Google tells merchants not to invent GTINs. Find the number on the packaging or ask the manufacturer. What do I submit if my product has no GTIN? Submit brand and MPN, leave gtin empty, and do not fill it with a placeholder. For custom or one-of-a-kind goods you can set identifier_exists to false. Why does Merchant Center say Restricted GTIN? The number falls in a range reserved for future use. Google lists the prefixes 02, 04 and 2 on the attribute page. If you use them, check whether they are internal codes rather than product GTINs. Does the 869 prefix mean my product is registered in Turkey? No. GS1 says a prefix identifies the issuing GS1 organization and does not show the product's country of origin. Registration is a separate matter that GS1 Türkiye can confirm. How long until a corrected GTIN clears the warning? Google says changes can take 24 to 72 hours to appear on the Needs attention page. If the change affects product ratings review matching, it says to allow 7 to 10 days. Can the same GTIN appear on two products? Not if they are different products. Google's minimum requirements say not to give multiple products the same GTIN and the same country, language and variant values. Are spaces and dashes in a GTIN a problem? Google says they are accepted and ignored. Other channels may be stricter, so strip them anyway when you can. Check your own feed Run your feed URL through our free product feed audit tool and see which identifier problems show up first. Sources Google Merchant Center Help, GTIN [gtin] Google Merchant Center Help, Find a GTIN Google Merchant Center Help, brand [brand] Google Merchant Center Help, MPN [mpn] Google Merchant Center Help, identifier exists [identifier_exists] How to fix: Invalid GTIN in unsupported format How to fix: Incorrect GTIN How to fix: Restricted GTIN How to fix: Unsupported GTIN How to fix: Missing or incorrect GTIN GS1, how to calculate a check digit manually GS1 prefixes IdeaSoft, GTIN Nedir (Turkish) Merchant API products v1beta reference Cagdas Polat Co-founder of Feedance, where he leverages his background as a computer engineer and marketer to drive analytical insights. With a strong focus on transforming data into actionable strategies, he is dedicated to helping brands achieve significant growth in the digital landscape. Prev Article Where Feed-Driven Text Can Safely Sit in 9:16 Video Ads on Meta, TikTok and YouTube Shorts Related to this topic: How Bilyoner Ran Catalog Ads for the First Time and Lifted ROAS by 49% 15 Aug, 2026 How Note Cosmetics Increased ROAS by 127% — While Spending 10% Less 15 Aug, 2026 How Vivense Lifted ROAS 32% by Not Advertising Products It Couldn't Sell 15 Aug, 2026