Aplicar numeração Bates
A numeração Bates atribui um identificador estável e sequencial a cada página de um conjunto documental.
Executar grátis
Esta calculadora produz o plano completo antes de qualquer carimbo no PDF: informe o total de páginas, o prefixo exigido, o número da primeira página e a largura desejada. O resultado associa cada posição física ao valor numérico e à etiqueta final. Ele também verifica antecipadamente o fim da sequência, impedindo que uma largura pequena demais gere identificadores inconsistentes no meio do arquivo.
Defina o plano antes de alterar o PDF
Um fluxo Bates confiável começa com um plano de numeração, e não com texto desenhado nas páginas. Primeiro, obtenha o total de páginas por meio de um leitor ou processo documental confiável. Depois, escolha um prefixo que identifique o processo, a produção, o cliente, o anexo ou o lote sem depender do nome do arquivo. O número inicial é atribuído à primeira página física, enquanto a largura determina quantas posições aparecem na parte numérica. Por exemplo, iniciar em 17 com largura cinco resulta em 00017. A capacidade calcula toda a sequência e retorna, para cada página, sua posição, o número bruto e a etiqueta pronta. Como ela não recebe nem modifica os bytes do PDF, você pode revisar o plano, arquivá-lo em uma auditoria ou encaminhá-lo a outro processo de aplicação. Essa separação ajuda quando é necessária aprovação antes de marcas permanentes ou quando várias ferramentas precisam concordar exatamente.
Evite mudanças de largura dentro do documento
O preenchimento não é apenas uma preferência visual. Números com largura fixa são classificados corretamente como texto, ficam alinhados e facilitam comparações entre produções. A verificação importante não é saber se o primeiro número cabe, mas se o último caberá depois de contar todas as páginas. Um PDF de 20 páginas iniciado em 990 termina em 1009; portanto, largura três é inválida, embora 990 pareça adequado. A calculadora determina primeiro o valor final e retorna erro quando a quantidade de dígitos supera a largura solicitada. Ela nunca amplia silenciosamente as últimas etiquetas, pois isso tornaria a série inconsistente. Se outros arquivos continuarão a sequência, reserve espaço para o crescimento esperado. O último número retornado orienta o próximo lote: comece com esse valor mais um e mantenha prefixo e largura para preservar uma produção contínua, sem sobreposições ou lacunas acidentais.
Use as etiquetas com segurança em fluxos jurídicos
O resultado é determinístico: entradas idênticas sempre geram o mesmo mapeamento de páginas, sem consulta à rede, horário atual ou aleatoriedade. Isso o torna apropriado para preparar provas, atender pedidos de registros públicos, organizar anexos contratuais, apoiar investigações internas e indexar arquivos. Quando a cadeia de custódia for relevante, guarde o mapeamento junto ao checksum do documento original e ao do arquivo final carimbado. Antes da aplicação, confirme que o total inclui todas as páginas processadas pela ferramenta, inclusive capas, separadores, apêndices e páginas intencionalmente vazias. Confirme também a grafia e pontuação do prefixo, o início e a largura exigidos pela produção. Esta capacidade somente calcula etiquetas: ela não edita o PDF, inspeciona conteúdo, detecta números existentes nem escolhe a posição da marca. Assim, você valida a sequência separadamente e usa depois uma ferramenta com controles explícitos de fonte, cor e margem.
Casos de uso
Planejar uma produção jurídica
Crie o mapeamento exato entre página e etiqueta antes de renderizar carimbos Bates permanentes no lote.
Continuar a numeração entre PDFs
Use o número final do lote anterior para iniciar o próximo documento sem identificadores duplicados ou lacunas.
Validar um carimbo automatizado
Compare as etiquetas planejadas com as marcas extraídas ou revisadas visualmente após outra ferramenta modificar o PDF.
Perguntas frequentes
Esta capacidade modifica meu PDF?
Não. Ela recebe o total de páginas e as configurações, depois retorna a etiqueta de cada página. Outra ferramenta pode aplicá-las.
O que acontece quando a largura é pequena demais?
A solicitação retorna erro de entrada inválida quando o último número tem mais dígitos que a largura definida. As etiquetas nunca são ampliadas silenciosamente.
O prefixo pode ficar vazio?
Sim. Uma string vazia produz etiquetas que contêm apenas o número sequencial preenchido com zeros.
A numeração pode começar em zero?
Sim. O início pode ser zero ou qualquer inteiro seguro não negativo, desde que toda a faixa permaneça dentro do limite seguro.
Quanto custa uma solicitação pela API?
Cada solicitação custa US$ 0,002. A versão no navegador executa o mesmo cálculo determinístico sem enviar o conteúdo do PDF.
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/pdf/bates-numbering \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}'const res = await fetch("https://api.kit.forhosting.com/pdf/bates-numbering", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/bates-numbering",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/bates-numbering", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_count":4,"prefix":"CASE-","start_number":17,"padding_width":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/bates-numbering", 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
{
"page_count": 4,
"prefix": "CASE-",
"start_number": 17,
"padding_width": 5
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.bates_numbering",
"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.
Limites
max_pages | 100000 |
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. |