Validação de Tax IDs na América do Sul, uma única API.
Cada país roda um checksum diferente. CUIT usa Mod-11 com pesos custom, CPF roda duas rodadas seguidas de Mod-11, RFC carrega uma homoclave alfanumérica, RUT tem um dígito verificador que pode ser a letra K. A Normadata implementa todos atrás de um único endpoint batch.
Cada país, seu próprio algoritmo de checksum
Um CUIT argentino e um CPF brasileiro não compartilham nenhuma regra. O RFC mexicano inclui uma homoclave alfanumérica que poucas bibliotecas open-source resolvem direito. O RUT chileno é Mod-11 da direita para a esquerda com um dígito verificador que pode ser K. Todo time que escreve os próprios validadores copia um snippet de Stack Overflow que falha em algum edge case ou paga uma licença enterprise para rodar um regex. A Normadata centraliza a lógica por país — formato, checksum e normalização — num endpoint batch com um único schema JSON.
Cada checksum, cada formato
Os tipos de tax ID validados em produção, cada um com seu algoritmo.
Argentina · CUIT, CUIL
Mod-11 com pesos custom, 11 dígitos, verificador no final com a regra especial de 10 → swap.
Brasil · CPF, CNPJ
Duas rodadas seguidas de Mod-11, 11 dígitos para CPF, 14 para CNPJ. Formato com pontos e traços na saída.
México · RFC
12 chars para moral, 13 para físico. Homoclave alfanumérica contra a tabela oficial do SAT.
Chile, Uruguai · RUT
Mod-11 da direita pra esquerda. Chile permite a letra K como verificador. Uruguai usa outro vetor de pesos.
Colômbia · NIT, Cédula
NIT com checksum ponderado estilo DIAN. Cédula validada contra comprimento e perfil do país.
Peru, Equador · RUC
Variantes de RUC por país — 11 dígitos no Peru, 13 no Equador com o terceiro dígito indicando tipo de contribuinte.
Mercados sul-americanos · +20 tax IDs
Cada mercado sul-americano vivo tem pelo menos um validador de tax ID em produção. A tabela completa — tipo, categoria, exemplo e algoritmo — está na página de cobertura.
Um lote, um resultado por item
Mande um array items com value, country e type por item (até 1.000). Receba um results com valid, normalized e formatted, correlacionado pelo id que você fornece. O mesmo endpoint valida 1 ou N.
$ curl -X POST https://api.normadata.io/v1/validate/tax-ids \
-H "X-API-Key: nd_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5" \
-H "Content-Type: application/json" \
-d '{"items":[
{"id":"a","value":"20-12345678-6","country":"AR","type":"cuit"},
{"id":"b","value":"123.456.789-09","country":"BR"}
]}'{
"results": [
{
"id": "a",
"country": "AR",
"type": "cuit",
"valid": true,
"normalized": "20123456786",
"formatted": "20-12345678-6"
},
{
"id": "b",
"country": "BR",
"type": "cpf",
"valid": true,
"normalized": "12345678909",
"formatted": "123.456.789-09"
}
]
}Como a Normadata se compara?
Comparações honestas contra as alternativas que mais nos perguntam.
Normadata vs. validator.js
A biblioteca NPM open-source de fato para strings genéricos — e onde fica aquém com tax IDs LATAM.
Normadata vs. AFIP scraper
O site da AFIP expõe dados reais do contribuinte — quando não quebra antes.
Normadata vs. Receita Federal scraper
O cadastro da Receita Federal expõe dados reais do contribuinte — quando o WS está no ar.
Pare de manter validadores de tax ID por país
Grátis durante o acesso antecipado. Mande um email e respondemos em 24 horas.