EAN Generator
Fictieve EAN-13- en EAN-8-productcodes en 18-cijferige EAN-codes voor stroom- en gasaansluitingen, allemaal met een kloppend GS1-controlecijfer. Met validator en export naar Excel, CSV en JSON.
FictiefAlle gegenereerde gegevens zijn fictief en alleen bedoeld voor test- en ontwikkelomgevingen. Een willekeurig geldig nummer kan toevallig bestaan: gebruik het nooit als echt gegeven.
Productcode van 13 cijfers (GTIN-13). Het laatste cijfer is het controlecijfer.
GS1-prefix voor demonstraties en voorbeelden: botst nooit met een echt product.
EAN-code controleren
Controleert het GS1-controlecijfer van codes met 8, 12, 13, 14 of 18 cijfers.
Hoe is een EAN-13 opgebouwd?
Een EAN-13 (officieel GTIN-13) bestaat uit een GS1-bedrijfsprefix, een artikelnummer dat het bedrijf zelf kiest, en een controlecijfer. De eerste cijfers zijn de GS1-prefix: die zegt welke GS1-organisatie het nummer heeft uitgegeven, niet waar het product is gemaakt.
| Prefix | Betekenis (GS1) |
|---|---|
| 870–879 | GS1 Nederland |
| 952 | Gereserveerd voor demonstraties en voorbeelden van het GS1-systeem |
| 020–029, 200–299 | Restricted Circulation Numbers: alleen voor intern gebruik binnen een regio, zoals artikelen met een variabel gewicht |
| 040–049 | Restricted Circulation Numbers binnen één bedrijf |
| 978–979 | Boeken (ISBN) |
Een EAN-8 is de korte variant voor kleine verpakkingen. GS1-organisaties geven die per stuk uit, alleen als er geen ruimte is voor een EAN-13. De generator maakt EAN-8-codes met prefix 952, met een 2 (intern gebruik) of willekeurig.
Het GS1-controlecijfer berekenen
Alle GS1-codes gebruiken hetzelfde controlecijfer, of ze nu 8, 13 of 18 cijfers hebben. Begin bij het cijfer direct links van het controlecijfer en vermenigvuldig afwisselend met 3 en 1. Tel de uitkomsten op. Het controlecijfer is wat er nodig is om het eerstvolgende tiental te halen, of 0 als de som al op een tiental eindigt.
Uitgewerkt voor het voorbeeld van GS1, 629104150021:
| Cijfer | 6 | 2 | 9 | 1 | 0 | 4 | 1 | 5 | 0 | 0 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Gewicht | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 |
| Product | 6 | 6 | 9 | 3 | 0 | 12 | 1 | 15 | 0 | 0 | 2 | 3 |
Som = 57. Het volgende tiental is 60, dus het controlecijfer is 3 en de volledige code 6291041500213. Voor een code van 18 cijfers werkt het net zo: het voorbeeld 37610425002123456 uit de GS1 General Specifications krijgt controlecijfer 9.
EAN-18: de code van een stroom- of gasaansluiting
Elke aansluiting voor stroom en gas heeft een EAN-code van 18 cijfers, toegekend door de netbeheerder. Nederlandse codes beginnen meestal met 871. In de berichtenstandaarden van de energiesector is het veld gedefinieerd als een GS1 Global Service Relation Number (GSRN) van 18 cijfers, met als laatste cijfer het GS1-controlecijfer.
Een energieleverancier heeft de EAN-code nodig bij een overstap of verhuizing; je vindt hem op de rekening en via het EAN-codeboek van de netbeheerders. Voor aansluitingen bestaat geen speciale testreeks: de generator maakt codes die met 871 beginnen en een kloppend controlecijfer hebben, maar een code kan toevallig bij een echte aansluiting horen. Gebruik ze dus alleen in testomgevingen, eventueel samen met een fictief adres uit de Postcode Generator.
Wanneer heb je fictieve EAN-codes nodig?
- Webshops en productfeeds — vul een test-PIM of marktplaatskoppeling met GTINs. Prefix 952 voorkomt dat een testproduct samenvalt met een bestaand artikel.
- Kassa- en scannersoftware — test het inlezen van barcodes, de controle van het laatste cijfer en de afhandeling van interne codes die met een 2 beginnen.
- Barcodebibliotheken — controleer dat je renderer het controlecijfer zelf berekent of juist een fout cijfer weigert.
- Energie-apps en overstapformulieren — valideer de EAN van een aansluiting (18 cijfers, controlecijfer) in formulieren voor verhuizen, overstappen of het aanmelden van zonnepanelen.
EAN-code valideren in TypeScript
export function gs1CheckDigit(data: string): number {
let sum = 0;
// Van rechts naar links: gewicht 3, 1, 3, 1, ...
for (let i = data.length - 1, weight = 3; i >= 0; i--, weight = 4 - weight) {
sum += Number(data[i]) * weight;
}
return (10 - (sum % 10)) % 10;
}
export function isValidEan(code: string): boolean {
const digits = code.replace(/\s/g, '');
if (!/^(\d{8}|\d{12,14}|\d{18})$/.test(digits)) return false;
return gs1CheckDigit(digits.slice(0, -1)) === Number(digits.slice(-1));
}Veelgestelde vragen
Zijn de gegenereerde EAN-codes echt?
Nee. Ze zijn willekeurig gegenereerd en hebben alleen een kloppend controlecijfer. Met prefix 87 kan een code toevallig gelijk zijn aan een product dat een bedrijf via GS1 Nederland heeft uitgegeven. Met prefix 952 gebeurt dat niet: GS1 heeft die prefix gereserveerd voor demonstraties en voorbeelden. Daarom is 952 de standaardinstelling.
Mag ik deze EAN-codes op echte producten gebruiken?
Nee. Voor producten in de handel heb je een GS1-bedrijfsprefix nodig, die je in Nederland bij GS1 Nederland aanvraagt. Zelfverzonnen codes kunnen botsen met bestaande producten.
Wat is het verschil tussen EAN en GTIN?
GTIN (Global Trade Item Number) is de officiële GS1-naam, EAN de oude naam die nog veel wordt gebruikt. Een EAN-13 is een GTIN-13, een EAN-8 een GTIN-8. Het controlecijfer wordt voor alle lengtes op dezelfde manier berekend, ook voor de 18-cijferige codes.
Hoe is de EAN-code van een energieaansluiting opgebouwd?
Elke aansluiting voor stroom of gas heeft een eigen EAN-code van 18 cijfers, toegekend door de netbeheerder. Nederlandse codes beginnen meestal met 871. In de gegevensuitwisseling van de energiesector is het veld gedefinieerd als GSRN (Global Service Relation Number) van GS1; het laatste cijfer is het GS1-controlecijfer. Er bestaat geen testreeks: een gegenereerde code kan toevallig bij een echte aansluiting horen.
Hoe test ik een fout controlecijfer?
Verhoog het laatste cijfer van een geldige code met 1 (9 wordt 0). De GS1-methode vindt elke fout in één cijfer, dus je validator moet de gewijzigde code afkeuren. Test ook spaties, een verkeerde lengte en letters.