Dígito verificador ISBN-13
Os 12 dígitos 978030640615 recebem o dígito verificador 7, e o ISBN-13 completo fica 9780306406157. Complete o número de um livro antes de imprimir o código de barras, ou confira um ISBN de 13 dígitos antes que ele chegue ao sistema de uma livraria. 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
- 978030640615
- Modo de cálculo
- Compute
- Entrada
- 978030640615
- Dígito verificador
- 7
- Com dígito verificador
- 9780306406157
Livros modernos e muitos produtos de mídia são identificados com um International Standard Book Number de treze dígitos: o ISBN-13. Os três primeiros dígitos são um prefixo GS1 bookland (normalmente 978 ou 979), os dígitos do meio codificam o grupo de registro, o registrante e a publicação, e o dígito final é um dígito verificador que detecta erros de um único dígito ao digitar ou escanear antes que o código chegue a um catálogo, livraria ou anúncio em marketplace. Esta capacidade aplica a regra padrão ISBN-13 mod-10 sobre uma carga de doze dígitos —pesos alternados um e três a partir da esquerda— e devolve o dígito verificador mais o código de barras completo de treze dígitos, ou valida uma string de treze dígitos com um indicador valid explícito e o dígito esperado.
Como o dígito verificador ISBN-13 é calculado
Um ISBN-13 tem sempre treze dígitos e é estruturalmente idêntico a um código de barras de produto EAN-13 / GTIN-13 usado em embalagens de varejo. Os doze primeiros dígitos formam a carga do número do livro: um prefixo GS1 de três dígitos (quase sempre 978 ou 979 para livros), um elemento de grupo de registro, um elemento de registrante (editora) e um elemento de publicação cujos comprimentos variam conforme as regras da agência. O décimo terceiro dígito é o verificador.
Para calculá-lo, percorra os doze dígitos de carga da esquerda para a direita com posições base 1: multiplique cada dígito em posição ímpar por um e cada dígito em posição par por três, some esses produtos e tome o dígito verificador como dez menos essa soma módulo dez, módulo dez de novo para que resto zero produza dígito verificador zero. De forma equivalente, a string completa de treze dígitos incluindo o verificador deve ter uma soma ponderada múltiplo de dez com os mesmos pesos da esquerda para a direita.
É a mesma família de regras mod-10 usada em GTIN-8, GTIN-12 (UPC-A), GTIN-13 (EAN-13 / ISBN-13) e GTIN-14; só a forma fixa de treze dígitos bookland e o prefixo 978/979 tornam o ISBN-13 específico para quem pesquisa. O algoritmo é determinístico e local: sem consulta à agência ISBN, sem chamada de rede e sem relógio.
Esta ferramenta não converte ISBN-10 em ISBN-13 além de aceitar strings só de dígitos, não hifeniza grupos de registro e não afirma que um checksum válido significa que o título está registrado numa agência ISBN: apenas prova que a string de dígitos está bem formada segundo a regra do dígito verificador ISBN-13.
Em relação a validadores de código de barras multi-simbologia, a intenção de busca aqui é estreita: quem precisa da calculadora de dígito verificador ISBN-13 para cargas de doze dígitos, não de um verificador geral de UPC ou GTIN de caixa.
Onde os dígitos verificadores ISBN-13 se encaixam em fluxos reais
Editoras e equipes de catálogo recebem números internos de livro de doze dígitos — prefixo mais grupo de registro, registrante e título — e devem acrescentar o dígito verificador ISBN-13 oficial antes de imprimir códigos de barras EAN-13 em capas, sobrecapas ou etiquetas. Aplicativos POS de livraria e de recebimento validam códigos de treze dígitos no balcão para que uma única transposição não crie um título fantasma nem um descompasso de estoque.
Jobs de qualidade de dados em bibliotecas e agregadores percorrem cada coluna ISBN-13 num export MARC, ONIX ou CSV, chamam o modo validate e colocam em quarentena linhas onde valid é false — capturando tanto edições humanas quanto bugs de geradores que ainda emitem ISBN-10 legado sem conversão adequada. Não trate um ISBN-13 que passa a verificação como prova de titularidade do título, registro na agência ou grupos de hifenização corretos; só prova que o dígito mod-10 é consistente com a carga de doze dígitos sob os pesos padrão ISBN-13.
Casos de uso
Auditar colunas ISBN-13 em catálogos e exportações ONIX
Valide em lote cada ISBN de treze dígitos num PIM, carga bibliotecária ou CSV de parceiro e coloque em quarentena linhas cujo dígito verificador não coincida mais com o valor esperado recalculado.
Perguntas frequentes
O que é um dígito verificador ISBN-13?
É o décimo terceiro dígito de um código de barras ISBN-13, calculado com uma soma ponderada mod-10 (pesos alternados 1 e 3 a partir da esquerda) para que erros de um único dígito ao digitar ou escanear sejam normalmente detectados antes de armazenar ou imprimir o código.
O que acontece com comprimento errado, letras ou hífens?
Tarefas de validação com falha não são cobradas. Remova os hífens antes de enviar.
A ferramenta de dígito verificador ISBN-13 é gratuita?
A ferramenta do navegador é gratuita e roda localmente.
Como é calculado o dígito verificador do ISBN-13?
Pegue os 12 primeiros dígitos da esquerda para a direita, multiplique-os alternando por 1 e por 3, e some os produtos. O dígito verificador é dez menos o resto da divisão por dez; se der dez, o dígito é 0.
O que significam os prefixos 978 e 979?
São os prefixos GS1 de livros, que marcam o número como sendo de um livro; quase todo ISBN-13 começa com um deles. Os dígitos seguintes indicam o grupo de registro, o editor e a publicação.
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/isbn13 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"978030640615"}'const res = await fetch("https://api.kit.forhosting.com/enc/isbn13", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "978030640615"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/isbn13",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "978030640615"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/isbn13", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"978030640615"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"978030640615"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/isbn13", 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": "978030640615"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.isbn13",
"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 você nunca armazene um ISBN pela metade. A mesma aritmética pura roda grátis no navegador e ao preço publicado da API para pipelines de automação.
Contrato de entrada, modos e comportamento de erro
Envie um campo number que contenha apenas caracteres de zero a nove. Comprimento errado é um erro explícito que nomeia o modo e o comprimento enviado — doze para compute, treze para validate — para que formulários cliente possam mostrar «precisam de doze 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 cobrados. Prefira compute quando criar ou completar números de livro a partir de um corpo de doze dígitos; prefira validate quando condicionar uma importação de catálogo, varredura POS ou anúncio em marketplace a um código de barras ISBN-13 completo de treze 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 silenciosamente recortado nunca chegue ao armazenamento — se você colar 978-0-306-40615 sem o dígito verificador, deve remover os hífens no cliente primeiro ou enviar a forma só de dígitos. O modo compute é o padrão: o motor exige exatamente doze dígitos, devolve check_digit como string de um caractere e devolve with_check como o ISBN-13 de treze dígitos que você pode imprimir num código de barras ou persistir num catálogo. O modo validate exige exatamente treze dígitos; a resposta indica valid true quando o dígito final coincide com o expected_check_digit recalculado, e sempre inclui payload (os doze primeiros dígitos), check_digit, expected_check_digit e length treze. Alias como digits, isbn e code são aceitos para o mesmo campo de carga, de modo que integrações que já falam «isbn» não precisem renomear. Como o caminho é parse puro sem relógio, fonte aleatória ou 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 ISBN-13 se encaixam em fluxos reais
Formulários de cadastro de e-commerce e marketplaces podem recalcular expected_check_digit e mostrar uma correção amigável quando um vendedor cola um ISBN com o último dígito digitado errado. Em todo fluxo o contrato é o mesmo: só dígitos, comprimento fixo por modo, JSON estruturado que você 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 livro de 12 dígitos para códigos de barras de capa
Chame o modo compute com a carga de doze dígitos, armazene with_check e envie o ISBN-13 de treze dígitos à impressora de códigos de barras EAN-13 ou ao registro do catálogo.
Validar ISBN-13 escaneado ou digitado na entrada
Quando um scanner ou formulário enviar treze dígitos, chame o modo validate e bloqueie a consulta se valid for false, mostrando expected_check_digit para corrigir um erro de um único dígito.
Perguntas técnicas
Como calculo um dígito verificador ISBN-13 com esta API?
Faça POST com number de exatamente doze dígitos e mode compute (ou omita mode). A resposta inclui check_digit e with_check (o ISBN-13 completo de treze dígitos).
Como valido um ISBN-13 completo de treze dígitos?
Faça POST com a string de treze dígitos e mode validate. A resposta inclui valid, check_digit, expected_check_digit e payload (os dígitos sem o último).