Dígito verificador GTIN-14
Digite os 13 dígitos 1001234567890 e receba o dígito verificador 2, formando o código de caixa completo 10012345678902. Use para completar o GTIN-14 de uma caixa ou conferir um código de 14 dígitos antes que chegue ao sistema do armazém. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Número
- 1001234567890
- Modo de cálculo
- Compute
- Entrada
- 1001234567890
- Dígito verificador
- 2
- Com dígito verificador
- 10012345678902
Itens comerciais que circulam como caixas, packs ou unidades logísticas são identificados com um Global Trade Item Number de catorze dígitos: o GTIN-14. O primeiro dígito é um indicador de embalagem que distingue a unidade do GTIN de consumo; os dígitos do meio carregam o prefixo da empresa e a referência do artigo; o último é um dígito verificador GS1 que detecta erros de um único dígito ao digitar ou escanear antes que o código chegue a um armazém ou marketplace. Esta capacidade aplica a regra padrão mod-10 sobre uma carga de treze dígitos —pesos contados da direita, posições ímpares vezes três e pares vezes um— e devolve o dígito verificador mais a cadeia completa de catorze dígitos, ou valida um código de catorze dígitos com um indicador valid explícito e o dígito esperado.
Como o dígito verificador GTIN-14 é calculado
Um GTIN-14 tem sempre catorze dígitos. O primeiro é o indicador (muitas vezes de zero a oito para a hierarquia de embalagem, nove para medida variável em alguns esquemas); os dígitos de dois a treze formam o número base do item comercial, com frequência um GTIN-13 preenchido com zeros sem o próprio dígito verificador ou um prefixo de empresa mais referência de artigo equivalente; o dígito catorze é o verificador.
Para calculá-lo, pegue os treze dígitos de carga e percorra-os da direita para a esquerda: multiplique o dígito mais à direita por três, o seguinte por um, alternando, e forme o dígito verificador como dez menos essa soma ponderada módulo dez, módulo dez de novo para que resto zero produza dígito verificador zero. De forma equivalente, a cadeia completa de catorze dígitos incluindo o verificador deve ter uma soma ponderada GS1 múltipla de dez quando os mesmos pesos da direita para a esquerda são aplicados nas catorze posições.
É a mesma família de regras mod-10 usada em GTIN-8, GTIN-12 (UPC-A), GTIN-13 (EAN-13) e GTIN-14; só o comprimento fixo e a presença do dígito indicador tornam o GTIN-14 específico. O algoritmo é determinístico e local: sem consulta a catálogo GS1, sem chamada de rede e sem relógio. Esta ferramenta não atribui indicadores de embalagem, não desenha a simbologia ITF-14 e não afirma que um checksum válido significa produto registrado na GS1: só prova que a cadeia de dígitos está bem formada sob a regra do dígito verificador GTIN-14.
Em comparação com validadores de código de barras multissimbologia, a intenção de busca aqui é estreita: quem precisa da calculadora de dígito verificador GTIN-14 para cargas de treze dígitos, não um verificador geral de UPC ou ISBN.
Onde os dígitos verificadores GTIN-14 cabem em fluxos reais
Equipes de armazém e logística recebem números internos de caixa de treze dígitos —indicador mais corpo do GTIN de consumo sem verificador— e devem acrescentar o dígito verificador GTIN-14 oficial antes de imprimir etiquetas ITF-14 ou GS1-128 para paletes e caixas externas. Aplicativos de recebimento validam códigos de catorze dígitos no cais para que uma única transposição não crie um SKU de caixa fantasma nem um descompasso de estoque em relação ao ASN.
Jobs de qualidade de dados percorrem cada coluna GTIN-14 em um catálogo ou exportação EDI, chamam o modo validate e colocam em quarentena as linhas em que valid é false, capturando edições humanas e bugs de geradores que preencheram GTIN-13 incorretamente. Não trate um GTIN-14 que passa a verificação como prova de titularidade de marca, hierarquia de embalagem correta ou registro GS1; só prova que o dígito mod-10 é consistente com a carga de treze dígitos sob os pesos padrão GS1.
Casos de uso
Auditar colunas GTIN-14 em catálogos e exportações EDI
Valide em lote cada GTIN logístico de catorze dígitos em um PIM ou arquivo de parceiro e coloque em quarentena as linhas cujo dígito verificador já não coincida com o valor esperado recalculado.
Perguntas frequentes
O que é um dígito verificador GTIN-14?
É o décimo quarto dígito de um código GTIN-14, calculado com uma soma ponderada GS1 mod-10 para que erros de um dígito ao digitar ou escanear sejam normalmente detectados antes de armazenar ou imprimir o código de caixa ou pack.
O que acontece com comprimento errado, letras ou hífens?
Tarefas de validação com falha não são faturadas.
A ferramenta de dígito verificador GTIN-14 é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
O que indica o primeiro dígito de um GTIN-14?
É o indicador de embalagem: ele diferencia a caixa ou o pacote da unidade vendida ao consumidor. Costuma ir de 0 a 8 conforme o nível de embalagem, e em alguns esquemas o 9 indica itens de medida variável.
Como transformo um EAN-13 em GTIN-14?
Tire o último dígito do EAN-13, coloque na frente o indicador de embalagem e calcule aqui um novo dígito verificador sobre esses 13 dígitos. O dígito verificador do EAN-13 original não é aproveitado.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/gtin14 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"1001234567890"}'const res = await fetch("https://api.kit.forhosting.com/enc/gtin14", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "1001234567890"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/gtin14",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "1001234567890"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/gtin14", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"1001234567890"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"1001234567890"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/gtin14", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"number": "1001234567890"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.gtin14",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Entrada não numérica e comprimentos incorretos falham com invalid_input em vez de um recorte silencioso, para que voce nunca armazene um código de caixa pela metade. A mesma aritmética pura roda grátis no navegador e ao preço publicado da API para automação.
Contrato de entrada, modos e comportamento de erro
Envie um campo number que contenha apenas caracteres de zero a nove. Comprimento incorreto é um erro explícito que nomeia o modo e o comprimento enviado —treze para compute, catorze para validate— para que formulários cliente mostrem «precisam-se treze dígitos» sem adivinhar. Strings vazias, number ausente e valores de mode inválidos falham antes de qualquer soma ponderada e não são faturados. Prefira compute quando criar ou completar GTINs logísticos a partir de um indicador mais a base; prefira validate quando condicionar uma leitura de armazém, uma linha ASN ou a importação de arquivo de parceiro a um código completo de catorze dígitos. Espaços, hífens, letras e pontos decimais são rejeitados como entrada não numérica com invalid_input para que um valor recortado em silêncio nunca chegue ao armazenamento. O modo compute é o padrão: o motor exige exatamente treze dígitos, devolve check_digit como string de um caractere e devolve with_check como o GTIN-14 de catorze dígitos que voce pode imprimir em uma etiqueta de caixa ou persistir em um PIM. O modo validate exige exatamente catorze dígitos; a resposta indica valid true quando o dígito final coincide com o expected_check_digit recalculado, e sempre inclui payload (os treze primeiros dígitos), check_digit, expected_check_digit e length catorze. Alias como digits, gtin e code são aceitos para o mesmo campo de carga, de modo que integrações que já falam «gtin» não precisem renomear. Como o caminho é parse puro sem relógio, fonte aleatória nem rede, o mesmo corpo JSON sempre produz o mesmo resultado JSON na ferramenta gratuita do navegador e na API a US$ 0,002 por solicitação bem-sucedida.
Onde os dígitos verificadores GTIN-14 cabem em fluxos reais
Formulários de onboarding de e-commerce e marketplaces podem recalcular expected_check_digit e mostrar uma correção amigável quando um vendedor cola um GTIN de caixa com o último dígito errado. Em todo fluxo o contrato é o mesmo: só dígitos, comprimento fixo por modo, JSON estruturado que voce pode testar com goldens, comportamento idêntico no navegador gratuito e na API pré-paga, e invalid_input honesto quando a string não é uma sequência pura de dígitos do comprimento certo.
Casos de integração
Completar um número de caixa de 13 dígitos para etiquetas logísticas
Chame o modo compute com a carga de treze dígitos (indicador mais base), armazene with_check e envie o GTIN-14 de catorze dígitos para a impressora de etiquetas ITF-14 ou GS1-128.
Validar GTIN-14 escaneado ou digitado no recebimento
Quando um scanner ou formulário ASN enviar catorze dígitos, chame o modo validate e bloqueie a armazenagem se valid for false, mostrando expected_check_digit para corrigir um erro de um dígito.
Perguntas técnicas
Como calculo um dígito verificador GTIN-14 com esta API?
Faça POST com number de exatamente treze dígitos e mode compute (ou omita mode). A resposta inclui check_digit e with_check (o GTIN-14 completo de catorze dígitos).
Como valido um GTIN-14 completo de catorze dígitos?
Faça POST com a string de catorze dígitos e mode validate. A resposta inclui valid, check_digit, expected_check_digit e payload (os dígitos sem o último).