GTIN and identifier disapprovals
How to clear GTIN and identifier disapprovals in Merchant Center, invalid check digits, reused GTINs, brand/GTIN mismatch, and "incorrect product identifier", by validating before you submit.
Identifier disapprovals are among the most common and the most preventable, a bad barcode fails a checksum Google runs in milliseconds, and a whole import can trip an account-level warning. The causes are a short, specific list: invalid check digits, GTINs reused across variants, GTIN/brand mismatches, and numbers from ranges that aren't valid online. The fix is validating identifiers before they reach Google, not after.
Why identifiers disapprove so predictably
A GTIN is a machine-checkable number, so Google checks it by machine: instantly, on every submission, with no human in the loop. That makes identifier disapprovals unusually deterministic: a bad number fails the same way every time, and the reason strings are specific. It also makes them unusually preventable, because every rule Google applies you can apply yourself before submitting. The merchants who keep tripping identifier disapprovals are the ones validating after Diagnostics lights up instead of before the feed goes out.
For the underlying rules (what GTIN, MPN and brand are, when each is required, and valid formats) read product identifiers: GTIN, MPN and brand. This guide is about the disapprovals specifically.
The four identifier disapprovals
1. Invalid check digit
The most common. The final digit doesn't match the checksum of the preceding digits, so Google rejects the number outright. Almost always a typo, a truncated number, a leading zero lost by a spreadsheet, or an invented "GTIN" that was never a real barcode. The reason string reads "invalid value [gtin]". The fix is the correct number from the packaging or manufacturer: and validating the checksum before submission so no bad number ever reaches Google.
2. Reused GTIN across variants
One GTIN submitted on multiple distinct variants: every size sharing the barcode of the base product, say. Because a GTIN uniquely identifies one sellable item, reusing it tells Google two different offers are the same product, and it flags "incorrect product identifier". The fix is the variant-specific barcode for each variant, or identifier_exists: false where a variant genuinely has none.
3. Brand / GTIN mismatch
The GTIN's registered GS1 prefix belongs to one brand, but the brand attribute says another. Google cross-references the number's ownership against your stated brand and flags the disagreement. Common when a distributor's barcode is submitted under the retailer's own-brand name, or when a copy-paste crossed two products. The fix is aligning the number and the brand to the same real product.
4. Out-of-range / restricted identifier
The number passes the checksum but comes from a range that isn't valid for online listing: variable-weight in-store prefixes (numbers starting 2, plus 02 and 04 ranges), coupon prefixes (98–99), or a retired GS1 prefix. These read as "incorrect product identifier" even though the maths checks out. The fix is a legitimately-issued GTIN, or identifier_exists: false if the product truly has no barcode.
Reason strings mapped
| Reason string | Cause | Fix |
|---|---|---|
| Invalid value [gtin] | Failed check digit: typo or invented number | Correct barcode from source |
| Incorrect product identifier | Reused across variants, or out-of-range prefix | Variant-specific / legitimate GTIN |
| Mismatched value [gtin/brand] | GTIN prefix belongs to a different brand | Align number and brand to one product |
| Missing identifier | GTIN expected but absent | Supply GTIN, or set identifier_exists false honestly |
Deep dive Why a bad import becomes an account-level warning
The classic identifier failure at catalogue scale isn't one wrong number: it's a bulk import that maps the wrong column to gtin. A supplier file where SKU lands in the gtin field, or an export that puts an internal reference where the barcode should be, and suddenly thousands of products fail check-digit validation at once.
What makes this dangerous is the escalation. A handful of invalid GTINs are item-level disapprovals: annoying, contained. But once a meaningful share of the catalogue is submitting numbers that fail validation, Google raises an account-level "incorrect product identifiers" warning, and that warning suppresses far more than the affected items: it dents Google's trust in the whole feed's identifier data, quietly capping reach on products whose GTINs were perfectly fine. One bad mapping thus costs you the disapproved items plus a suppression tax on the clean ones.
The economics are stark and one-directional. A GTIN caught pre-submission costs you nothing: you fix the mapping and never submit the bad number. The same GTIN caught by Google costs a disapproval, a full crawl cycle to clear, and sometimes an account warning that lingers after the data is fixed. So the entire game is validation position: run the checks Google runs (check digit, prefix legitimacy, one-GTIN-per-variant, brand alignment) at the feed layer, before submission, and treat any column-mapping change as a validation event. /tools validates identifiers before they reach Google and can fill genuine gaps by matching products against external barcode databases where a confident match exists, flagging the rest for a human answer. Because enrichment is non-destructive, corrected and filled GTINs live in a supplemental layer over your source data. See GTIN enrichment (GTINNER).
The fix workflow
- Read the reason string to identify which of the four you have: the fixes don't transfer.
- Trace bulk failures to a mapping. Hundreds of invalid GTINs at once is almost never hundreds of separate typos; it's one wrong column. Fix the mapping, not the rows.
- Get correct numbers from the source of truth: the manufacturer, distributor, or the barcode on the packaging. Never invent a GTIN to satisfy the field.
- Use
identifier_exists: falsehonestly for products that genuinely have no barcode; never as a dodge for products that do: that's a misrepresentation risk. See misrepresentation and account suspension. - Validate before the next submission so the corrected feed passes on the first crawl. Identifier fixes are data issues: they clear automatically once valid numbers are live, no re-review needed.
Frequently asked questions
What is a check digit and why does one wrong digit fail the whole GTIN?
The last digit of a GTIN is a modulo-10 checksum of the digits before it. Google recomputes it and rejects the number if it doesn't match, so a single mistyped digit anywhere in the barcode fails the check. It's a deliberate design that catches most typos and most invented numbers instantly.
Can I use the same GTIN for all the sizes of one product?
No. Each sellable variant with its own barcode gets its own GTIN. Reusing one GTIN across sizes or colours is a top cause of "incorrect product identifier" disapprovals, because the number no longer uniquely identifies the item Google matched it to.
Google says my GTIN is valid but "incorrect" for this product. What now?
The number passes the checksum but is registered to a different product or brand in Google's catalogue, usually a copy-paste from the wrong row, or a supplier reusing a retired number. Get the correct GTIN from the manufacturer or packaging; a passing check digit doesn't mean the number belongs to your product.