Dev Tools

Código de Barras EAN-13 e GS1: Estrutura e Cálculo do Dígito Verificador

Entenda a anatomia do código de barras EAN-13 (GTIN), o significado dos prefixos brasileiros 789 e 790 e o algoritmo oficial do dígito verificador.

30 de outubro de 20266 min de leituraDevThru

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.
📌 Mito Comum: O prefixo 789 não significa necessariamente que o produto foi fisicamente fabricado no Brasil, mas sim que a empresa detentora da marca está filiada à GS1 Brasil.

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):

  1. Dígitos em posições ímpares (1ª, 3ª, 5ª, 7ª, 9ª, 11ª) têm peso 1.
  2. Dígitos em posições pares (2ª, 4ª, 6ª, 8ª, 10ª, 12ª) têm peso 3.
  3. Multiplicam-se os dígitos por seus respectivos pesos e soma-se o resultado.
  4. 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.

EAN-13Código de BarrasGS1E-commerceERPNF-eLogística

Esse artigo foi útil para você?