Seja em gôndolas de supermercados, etiquetas de logística ou no preenchimento do campo obrigatório cEAN em Notas Fiscais Eletrônicas (NF-e), o código de barras EAN-13 (European Article Number) é a representação numérica e ótica mais utilizada no planeta para identificar produtos comerciais de forma exclusiva.
Gerenciado globalmente pela GS1, o código EAN-13 (também denominado comercialmente como GTIN-13 - Global Trade Item Number) possui uma estrutura padronizada rigorosa. Neste artigo técnico, desvendamos como esses 13 dígitos são divididos e como funciona o algoritmo matemático do dígito verificador.
1. A Anatomia dos 13 Dígitos do EAN-13
Um código EAN-13 é composto por quatro blocos funcionais:
| Posição | Segmento | Descrição |
|---|---|---|
| Dígitos 1 a 3 | Prefixo do País (GS1 Member) | Identifica a organização nacional da GS1. No Brasil, os prefixos são 789 e 790. |
| Dígitos 4 a 8 / 9 | Código da Empresa (Fabricante) | Número de licença atribuído pela GS1 à indústria ou importador. |
| Dígitos 9 / 10 a 12 | Código do Produto (Item) | Numeração livre atribuída pelo fabricante para identificar cada SKU, cor ou tamanho. |
| Dígito 13 | Dígito Verificador (DV) | Calculado matematicamente com o algoritmo Módulo 10 para evitar erros de digitação e leitura ótica. |
2. O Algoritmo do Dígito Verificador (Módulo 10 GS1)
O 13º dígito do código é gerado através de um cálculo ponderado oficial estabelecido pela GS1. Para os 12 primeiros dígitos (da esquerda para a direita):
- Dígitos em posições ímpares (1ª, 3ª, 5ª, 7ª, 9ª, 11ª) têm peso 1.
- Dígitos em posições pares (2ª, 4ª, 6ª, 8ª, 10ª, 12ª) têm peso 3.
- Multiplicam-se os dígitos por seus respectivos pesos e soma-se o resultado.
- O dígito verificador é o número necessário para alcançar o próximo múltiplo de 10. Se a soma já for múltiplo de 10, o DV é 0.
Exemplo Prático de Cálculo:
Vamos calcular o DV do produto brasileiro 789100031550:
Posição: 1 2 3 4 5 6 7 8 9 10 11 12
Dígito: 7 8 9 1 0 0 0 3 1 5 5 0
Peso: x1 x3 x1 x3 x1 x3 x1 x3 x1 x3 x1 x3
---------------------------------------------
Subtotal: 7+24 +9 +3 +0 +0 +0 +9 +1+15 +5 +0 = 73
Próximo múltiplo de 10: 80
Dígito Verificador (80 - 73) = 7!
Código EAN-13 completo: 7891000315507
3. Implementação em TypeScript / JavaScript
export function calculateEan13Checksum(digits12: string): number {
const clean = digits12.replace(/D/g, "");
if (clean.length < 12) return -1;
let sum = 0;
for (let i = 0; i < 12; i++) {
const val = parseInt(clean[i], 10);
sum += (i % 2 === 0) ? val * 1 : val * 3;
}
const mod = sum % 10;
return mod === 0 ? 0 : 10 - mod;
}
4. EAN-13 vs Code 128: Quando Usar Cada Um?
- EAN-13: Obrigatório para itens comerciais de consumo que passam pelo checkout de caixas de supermercados e PDVs (leitores laser e scanners de balcão). Comprimento estritamente fixo de 13 dígitos numéricos.
- Code 128: Padrão de alta densidade alfanumérico (aceita letras, números e caracteres especiais). Ideal para rastreamento interno de encomendas, controle de estoque em almoxarifados, números de série e etiquetas de transporte (como Sedex e transportadoras).
Para gerar e baixar códigos de barras vetoriais prontos para impressão em SVG ou PNG, utilize o Gerador de Código de Barras do DevThru.
🛠️ Experimente na prática
Use nossas ferramentas online gratuitas — sem cadastro, direto no navegador.
