Om een GTIN te valideren, bewaar je deze als tekst, verwijder je alleen expliciet toegestane scheidingstekens, controleer je de lengte en herbereken je vervolgens het laatste cijfer met het GS1-algoritme. Dit succes bewijst echter alleen de wiskundige consistentie van de code. Het toont niet aan dat het nummer door GS1 is toegekend, noch dat het bij het aangegeven merk hoort, noch dat het overeenkomt met de juiste maat of partij. Een betrouwbare controle bestaat daarom uit drie afzonderlijke uitspraken: syntax en controlecijfer, verifieerbaar bestaan of toekenning, en overeenstemming met het waargenomen product. Deze niveaus door elkaar halen levert precies de fout-positieven op die een leveranciersmatching verstoren.
De drie vragen die één booleaanse waarde niet kan beantwoorden
Een veld gtin_valide=true is te vaag. Je moet weten wat er precies is getest. Een getal kan slagen voor het controlecijfer terwijl het willekeurig is samengesteld: voor veel cijferreeksen bestaat er mechanisch een laatste cijfer dat het geheel consistent maakt. Omgekeerd kan een authentieke code beschadigd raken doordat een spreadsheet een voorloopnul verwijdert of de code in wetenschappelijke notatie weergeeft.
Scheid daarom de volgende statussen:
| Niveau | Vraag | Aanvaardbaar bewijs | Wat het resultaat niet bewijst |
|---|---|---|---|
| Formaat | Heeft de waarde een toegestane GTIN-lengte en bestaat ze alleen uit cijfers? | Ruwe tekenreeks en lengteregel | Officiële toekenning |
| Controlecijfer | Komt het laatste cijfer overeen met de GS1-berekening? | Reproduceerbare herberekening | Bestaan van het product |
| Identiteit | Is de code gekoppeld aan het juiste handelsartikel? | Merkbron, verpakking of geautoriseerd register | Actuele prijs en voorraad |
GS1 definieert de GTIN als een identificatie van een handelsartikel. De officiële rekentool van GS1 legt uit dat het laatste cijfer een controlecijfer is dat dient om te verifiëren dat het nummer correct is samengesteld. Deze formulering is belangrijk: een correct controlecijfer valideert de samenstelling, niet de volledige commerciële geschiedenis van het nummer.
Het controlecijfer stap voor stap herberekenen
Neem de volledige waarde als tekenreeks. Het laatste cijfer is het opgegeven controlecijfer; de voorgaande cijfers vormen de te controleren romp. Vertrekkend vanaf rechts in de romp, vermenigvuldig je de cijfers afwisselend met 3 en met 1. Tel de producten op. Het berekende controlecijfer is het cijfer dat deze som aanvult tot het eerstvolgende tiental; als de som al een tiental is, is het controlecijfer nul.
Hier volgt een puur didactisch voorbeeld waarvan de cijfers hypothetisch zijn en geen echt product voorstellen. Voor de romp 123456789012 zijn de producten, gelezen vanaf rechts, gewogen met 3, 1, 3, 1, enzovoort. De verkregen som is 92. Het complement tot het eerstvolgende tiental is 8: de volledige hypothetische code zou dus 1234567890128 zijn. De berekening is ook te reproduceren met de formule (10 - (som modulo 10)) modulo 10.
Controleprocedure:
1. Lees de cel zonder numerieke conversie. 2. Verwijder omringende spaties, maar log elke andere correctie. 3. Weiger letters, resterende leestekens en decimalen die door een spreadsheet zijn toegevoegd. 4. Controleer of de lengte overeenkomt met een GTIN-vorm die in deze feed wordt verwacht. 5. Scheid het opgegeven controlecijfer van de romp. 6. Bereken de gewogen som vanaf rechts. 7. Vergelijk het berekende controlecijfer met het opgegeven controlecijfer. 8. Bewaar de exacte reden bij afwijzing.
Een normalisatie naar veertien cijfers kan nuttig zijn om GS1-uitwisselingen te vergelijken, maar moet in een afgeleide kolom gebeuren. De brondata blijft ongewijzigd. GS1 geeft onder meer aan dat zijn XML-berichten een weergave van veertien cijfers met voorloopnullen gebruiken, terwijl andere uitwisselingen een variabele lengte tot veertien cijfers kunnen gebruiken.
Fout-positieven van identiteit voorkomen
Na het controlecijfer blijft het zakelijke deel over. Volgens GS1 kan een GTIN slechts aan één product worden toegekend, en krijgen variaties die handelsartikelen onderscheiden — bijvoorbeeld model, kleur, maat of presentatie — afzonderlijke referenties. Als twee regels dezelfde code gebruiken voor twee verschillende maten, mag je dus niet willekeurig de meest gelijkende kiezen. Plaats de regels in een reviewwachtrij en zoek officieel bewijs.
Het bewijs kan komen van een merkfiche, een leesbare verpakking, een geautoriseerde leveranciersfeed of een relevante GS1-dienst, afhankelijk van de toegangsrechten. Een simpele herhaling op meerdere webshops is niet voldoende: shops kunnen dezelfde fout overnemen. De methode voor het opsporen van GTIN-duplicaten tussen varianten helpt om deze conflicten te isoleren voordat ze tot matches worden.
Verwar ook GTIN en SKU niet. De SKU is doorgaans een referentie die specifiek is voor een verkoper of leverancier. Ze kan het bewijs aanvullen en updates stabiliseren, maar is niet inwisselbaar voor een GS1-identificatie. Bewaar beide kolommen, met hun herkomst.
Toegestane correcties moeten zichtbaar blijven
Een tekenreeks met spaties rond de code kan worden opgeschoond zonder de betekenis te wijzigen, mits de ruwe waarde bewaard blijft. Het blindelings aanvullen van een korte code, het verwijderen van een cijfer, het vervangen van een letter "O" door een nul of het extraheren van de eerste cijfers uit een tekst zijn daarentegen risicovolle transformaties. Ze kunnen een code opleveren die het algoritme doorstaat, maar nooit heeft bestaan.
Gebruik expliciete statussen: geldig_controlecijfer, ongeldig_controlecijfer, onverwacht_formaat, ontbrekend en dubbelzinnig_na_correctie. Voeg vervolgens een aparte status toe voor overeenstemming: product_bevestigd, variant_conflict of niet_geverifieerd. Deze modellering voorkomt dat een technisch succes via een kortsluiting een commerciële goedkeuring wordt.
Gebruik voor het vergelijken van aanbiedingen alleen regels waarvan de identiteit voldoende is vastgesteld. De procedure om twee leveranciers op dezelfde EAN te vergelijken begint precies met dit bewijs, niet met de laagste prijs.
Checklist vóór het accepteren van een GTIN
- De ruwe waarde is bewaard als tekst.
- Geen enkele voorloopnul is verdwenen.
- Eventuele correcties zijn apart gelogd.
- De verwachte lengte is gedocumenteerd voor deze feed.
- Het controlecijfer is herberekend, niet alleen gekopieerd.
- Het wiskundige resultaat is losgekoppeld van de toekenning.
- Merk, variant en presentatie komen overeen.
- Tegenstrijdige duplicaten staan in review.
- De bron-SKU blijft beschikbaar voor audit.
- Een afwijzing bevat een uitvoerbare reden.
Wat ArbitragePro+ kan automatiseren / wat de verkoper zelf moet controleren
De voorgestelde specificatie validateur-gtin zou de ruwe tekenreeks kunnen bewaren, de GS1-berekening kunnen toepassen, een afwijzingsreden kunnen toekennen en conflicten tussen varianten kunnen opsporen. Ze zou de geldigheid van het controlecijfer en het bewijsniveau van de identiteit afzonderlijk moeten tonen.
De verkoper moet de toekenning en overeenstemming op een geautoriseerde bron verifiëren, merk- of verpakkingsconflicten beslechten en nooit een match publiceren op basis van alleen het algoritme.
Een identificatie controleren in de context van het product
Open de zoekfunctie van ArbitragePro+ om beschikbare matches en bijbehorende informatie te bekijken.
Officiële bronnen
- GS1, "Check Digit Calculator", https://www.gs1.org/services/check-digit-calculator — geraadpleegd op 17-08-2026.
- GS1, "Global Trade Item Number (GTIN)", https://www.gs1.org/standards/id-keys/gtin — geraadpleegd op 17-08-2026.
- GS1 Support, "How do GS1 GTINs and barcodes work?", https://support.gs1.org/support/solutions/articles/43000734095-how-do-gs1-gtins-and-barcodes-work- — geraadpleegd op 17-08-2026.
- GS1 Support, "Required format of GTIN in GS1 EDI standards", https://support.gs1.org/support/solutions/articles/43000734355-what-is-the-required-format-of-gtin-in-gs1-edi-standards- — geraadpleegd op 17-08-2026.
