Valide o formato de CEP por país
Códigos postais são curtos, mas seus formatos variam muito entre países. Esta capacidade recebe um CEP ou código postal e um código de país de duas letras, então verifica o valor pelo padrão estrutural correspondente.
Executar grátis
O resultado é determinístico e não exige consulta de rede, geocodificação nem base de endereços. Use-o para encontrar letras trocadas, dígitos ausentes e separadores incorretos antes que os dados cheguem ao checkout, à expedição, ao faturamento ou ao cadastro de clientes. Um país não reconhecido gera um erro de entrada claro.
Valide o formato no contexto nacional correto
Não é possível avaliar um código postal com segurança sem saber o país. Cinco dígitos são normais nos Estados Unidos, na França, na Alemanha e na Espanha, mas não bastam para Índia, China ou Singapura. O Canadá alterna letras e números, a Polônia exige hífen e o Reino Unido possui diferentes arranjos alfanuméricos. Esta capacidade separa essas regras e seleciona exatamente um padrão pelo código de país de duas letras. Ela remove espaços externos inofensivos e aceita o país em maiúsculas ou minúsculas, mas não transforma silenciosamente o código postal em outro valor. A resposta informa o país normalizado, o código recortado, o formato esperado e um resultado booleano. Assim, o sistema pode decidir pelo booleano e o formulário pode orientar sobre o formato correto quando o valor for inválido. Se o país não constar na tabela, a solicitação falha claramente, em vez de considerar inválido qualquer valor desconhecido. Essa distinção impede que uma cobertura incompleta produza uma orientação enganosa sobre a qualidade dos seus dados.
Entenda o alcance da verificação de formato
O algoritmo verifica estrutura, não existência nem possibilidade de entrega. Um resultado válido significa que caracteres, comprimento e separadores seguem o padrão representado para o país. Ele não confirma que a autoridade postal atribuiu o código, que uma rua pertence à região ou que uma transportadora atende o destino. Essas conclusões mais fortes exigem dados externos atualizados e geralmente um endereço completo. Essa fronteira precisa ficar clara: a validação determinística é rápida, privada e repetível, enquanto a confirmação de entrega é outro serviço. O validador preserva zeros à esquerda porque códigos postais são identificadores, não números. Envie-os como texto para manter intactos códigos franceses, italianos ou de regiões dos Estados Unidos. Letras não diferenciam maiúsculas de minúsculas quando o sistema nacional as utiliza, e espaços opcionais só são aceitos onde essa variação é habitual. A pontuação não é removida de modo geral, pois um separador pode ser obrigatório em um país e incorreto em outro. A indicação de formato explica a estrutura esperada sem afirmar que toda combinação possível foi realmente atribuída.
Valide no primeiro ponto de entrada dos dados
O melhor momento para conferir é logo depois que a pessoa escolhe o país e informa o código postal. Um checkout pode validar antes de criar o pedido, um cadastro pode sinalizar um provável erro antes de salvar o perfil e uma importação pode testar cada registro antes de incorporá-lo à base de clientes. Em formulários interativos, mantenha o valor original visível e use o formato retornado como orientação, sem substituir o texto inesperadamente. Em lotes, registre o booleano e o país junto da linha para separar códigos malformados de falhas causadas por países sem suporte. A função é determinística e não possui rede, aleatoriedade, relógio nem estado mutável; portanto, a mesma entrada sempre gera a mesma resposta. A automação por API custa US$ 0,002 por solicitação concluída, e cada código validado é um item mensurável. Trate um resultado falso como pedido de correção, não como prova de fraude ou endereço inexistente. Um erro de país desconhecido representa uma questão de configuração ou cobertura que exige uma decisão explícita.
Casos de uso
Aviso no checkout
Confira o CEP após a escolha do país e mostre o padrão nacional antes de gerar uma etiqueta de envio.
Controle de importação no CRM
Sinalize códigos estruturalmente incorretos e separe países sem suporte dos valores apenas inválidos.
Cadastros internacionais
Aplique as regras certas de letras, dígitos, tamanho e separadores sem manter expressões regulares em cada aplicativo.
Perguntas frequentes
Um resultado válido prova que o endereço existe?
Não. Ele prova somente que o código segue o formato estrutural do país; não confirma atribuição nem entrega.
O que acontece com um país não reconhecido?
A solicitação retorna um erro de entrada inválida. A falta de cobertura nunca vira um falso resultado enganoso.
Devo enviar códigos postais como números?
Não. Envie texto para preservar zeros iniciais, letras, espaços e sinais obrigatórios.
Letras minúsculas são aceitas?
Sim, nos países com códigos alfabéticos. O país também ignora caixa e volta normalizado em maiúsculas.
Quanto custa a validação?
Cada solicitação de API concluída com sucesso custa US$ 0,002. Entradas incorretas são informadas como erros.
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/data/postal-code-validate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"postal_code":"94105","country_code":"US"}'const res = await fetch("https://api.kit.forhosting.com/data/postal-code-validate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"postal_code": "94105",
"country_code": "US"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/postal-code-validate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"postal_code": "94105",
"country_code": "US"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/postal-code-validate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"postal_code":"94105","country_code":"US"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"postal_code":"94105","country_code":"US"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/postal-code-validate", 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
{
"postal_code": "94105",
"country_code": "US"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.postal_code_validate",
"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_mb | 25 |
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. |