Validador EAN-13
Valida o código de barras EAN-13 (13 dígitos) usado mundialmente em produtos no varejo, conferindo o dígito verificador.
Validação de EAN-13: como o código de barras do varejo realmente bate
O EAN-13 (European Article Number, 13 dígitos) é o código de barras de produto mais comum do mundo — cada caixa de cereal, frasco de shampoo e livro de bolso carrega um na contracapa. O padrão é publicado como ISO/IEC 15420 e a numeração é governada pela GS1, organização sem fins lucrativos que aloca os prefixos de país e os números de registrante. Validar um EAN-13 é provar três coisas: o comprimento é exatamente 13 dígitos, todo caractere é 0-9 e o último dígito bate com o cálculo mod 10 dos doze primeiros.
Esta página roda a aritmética no navegador, mas uma checagem completa em produção também consulta os 2-3 dígitos iniciais na tabela de prefixos GS1 para confirmar que vêm de um país/economia realmente registrado. Um código como 1234567890128 passa na matemática mas começa com 1, prefixo que a GS1 nunca alocou — um validador estrito deve marcar como suspeito mesmo com o DV correto.
Anatomia de um EAN-13
As 13 posições se dividem em prefixo GS1 (1-3 dígitos, país ou economia), empresa / registrante (comprimento variável, alocado pela GS1 nacional), referência de produto (os dígitos restantes) e um dígito verificador. O corte entre registrante e produto é privado — só a empresa dona do prefixo sabe — por isso validadores não tentam interpretar essa fronteira.
- 789, 790 — Brasil (alocado pela GS1 Brasil).
- 30-37 — França.
- 400-440 — Alemanha.
- 50 — Reino Unido.
- 489 — Hong Kong.
- 690-699 — China continental.
- 880 — Coreia do Sul.
- 978-979 — Bookland (usado por ISBN-13).
- 977 — Periódicos (usado por ISSN).
O algoritmo mod 10 do dígito verificador
Pegue as posições 1 a 12 da esquerda para a direita. Multiplique cada uma alternadamente pelos pesos 1, 3, 1, 3, … — posição 1 peso 1, posição 2 peso 3, posição 3 peso 1, e assim por diante. Some os doze produtos, tire o resto da divisão por 10 e o DV é (10 - resto) mod 10. O mod 10 externo cobre o caso em que o resto é 0, que produziria DV 10 (inválido).
// 5901234123457 — refrigerante polonês
digitos = [5,9,0,1,2,3,4,1,2,3,4,5]
soma = 5*1 + 9*3 + 0*1 + 1*3 + 2*1 + 3*3
+ 4*1 + 1*3 + 2*1 + 3*3 + 4*1 + 5*3
= 5+27+0+3+2+9+4+3+2+9+4+15 = 83
dv = (10 - 83 % 10) % 10 = (10 - 3) % 10 = 7
// EAN-13: 5901234123457
O mesmo algoritmo valida ISBN-13 (porque todo ISBN-13 é um EAN-13 da Bookland com prefixo 978/979) e o GTIN-13, identificador guarda-chuva da GS1.
EAN-13 vs UPC-A, UPC-E, EAN-8, ITF-14
O UPC-A de 12 dígitos usado na América do Norte é um subconjunto estrito do EAN-13 — retire o zero da frente e você tem UPC-A; coloque um zero na frente e converte UPC-A em EAN-13. PoS modernos leem os dois de forma transparente. O UPC-E é uma forma comprimida de 8 dígitos para produtos pequenos dos EUA, que se expande em UPC-A inserindo zeros. O EAN-8 é o equivalente europeu do UPC-E e tem alocação GS1 separada (e menor) — veja nosso validador de EAN-8. O ITF-14 envolve um EAN-13 dentro do código logístico da caixa máster com um dígito indicador adicional e DV recalculado.
Contexto varejista BR: GS1 Brasil e marketplaces
No Brasil, a GS1 Brasil (gs1br.org) é a única entidade autorizada a alocar os prefixos 789 e 790. A associação começa em torno de R$ 2.000 por ano e cresce conforme o número de SKUs. O Mercado Livre exige EAN/GTIN válido em todo anúncio de Buy Box e bloqueia vendedores que reutilizam código de concorrente. Magazine Luiza, Amazon.com.br, Shopee BR e Americanas aplicam a mesma regra. Redes de supermercado — Carrefour, Pão de Açúcar, Assaí — bloqueiam o PDV quando o DV falha. ERPs como SAP, TOTVS Protheus e Bling já trazem a validação EAN-13 embutida no cadastro de item.
Antifraude e armadilhas comuns
- Prefixo errado: um EAN "válido" começando em
140ou200-299(faixa interna de loja / cupom) é suspeito para anúncio em marketplace. - Códigos clonados: registrante não pode reutilizar EAN de outra empresa — o Mercado Livre cruza com o GEPIR da GS1.
- Confusão com zero à esquerda: um UPC-A de 12 dígitos precisa ser preenchido com
0à esquerda antes de passar por um validador EAN-13. - OCR de imagem: zero vs O e um vs L minúsculo são as substituições clássicas; o mod 10 ponderado pega erros de um dígito mas não pega transposições de dígitos adjacentes que diferem em 5.
- Bibliotecas geradoras:
JsBarcode,bwip-jsepython-barcodeproduzem o SVG/PNG imprimível do EAN-13 desde que você forneça um corpo registrado.
FAQ
EAN-13 é igual a UPC-A? Quase. O UPC-A é a versão norte-americana de 12 dígitos; o EAN-13 é o superconjunto internacional de 13 — UPC-A é exatamente um EAN-13 com zero à esquerda.
EAN é obrigatório no varejo BR? Sim para qualquer produto vendido em Mercado Livre, Magazine Luiza, Amazon.com.br, supermercados e a maioria das redes físicas — eles recusam SKU sem código.
Quanto custa a associação GS1 Brasil? Os planos começam em torno de R$ 2.000/ano e crescem com o número de códigos alocados; confira a tabela atual em gs1br.org.
Posso inventar meu próprio EAN? Tecnicamente sim para uso puramente interno (a faixa 2xx de loja existe para isso), mas marketplaces externos rejeitam. Compre um prefixo real da GS1.
DV válido prova que o produto existe? Não. A matemática só prova que o número é internamente consistente. Para confirmar registro, consulte o GS1 GEPIR ou o catálogo do marketplace.
Ferramentas Relacionadas
Validador EAN-13 (com checksum)
Valide um código de barras EAN-13 (13 dígitos) pelo dígito verificador oficial. Essencial para varejo, controle de estoque e cadastro de produtos.
Validador EAN-8 (com checksum)
Valide um código de barras EAN-8 (8 dígitos) conferindo o dígito verificador pelo algoritmo oficial. Útil para produtos pequenos, varejo e controle de estoque.
Validador UPC-A
Valida o código de barras UPC-A (12 dígitos) usado em produtos nos EUA e Canadá. Mesmo cálculo do EAN-13 com 0 inicial.