TaxID LatAm
Valida identificadores tributarios de 18 países de América Latina con un solo endpoint. Respuesta instantánea, sin dependencias externas, 99.9% uptime en el edge de Cloudflare.
Base URL: https://latam.rootspa.cl
¿Por qué TaxID LatAm?
Cada país de América Latina tiene su propio formato de ID tributario, algoritmo de dígito verificador y reglas de tipo de entidad. Construir y mantener esa lógica in-house para 18 países son semanas de trabajo — y es fácil equivocarse.
TaxID LatAm lo resuelve:
- Validación instantánea — dígito verificador calculado matemáticamente, sin scraping
- Un solo endpoint para todos los países — una integración, una API key
- Errores detallados — indica exactamente por qué un ID es inválido, no solo true/false
- Formato normalizado — retorna el ID en el formato estándar de cada país
Endpoints
| Método | Path | Descripción |
|---|---|---|
POST | /v1/validate | Valida un Tax ID con algoritmo de dígito verificador |
POST | /mcp | MCP server (JSON-RPC) para agentes de IA |
GET | /openapi.json | Esquema OpenAPI 3.1 |
GET | /health | Health check |
POST /v1/validate
Ejemplo con curl
curl -X POST https://latam.rootspa.cl/v1/validate
-H "Authorization: Bearer <tu_token>"
-H "Content-Type: application/json"
-d '{"id": "11.222.333/0001-81", "country": "BR"}' Request
{
"id": "11.222.333/0001-81",
"country": "BR"
} | Campo | Tipo | Descripción |
|---|---|---|
id | string | ID tributario a validar (con o sin formato) |
country | string | Código ISO 2 letras del país |
Response — válido (200)
{
"id": "11.222.333/0001-81",
"country": "BR",
"id_type": "CNPJ",
"entity_type": "persona_moral",
"is_valid": true,
"dv_check": "passed",
"format_normalized": "11.222.333/0001-81",
"errors": []
} Response — inválido (200)
Un ID inválido también retorna 200 — la validación fue exitosa, el resultado es que el ID no es válido.
{
"id": "12.345.678/0001-00",
"country": "BR",
"id_type": "CNPJ",
"entity_type": "persona_moral",
"is_valid": false,
"dv_check": "failed",
"format_normalized": "12.345.678/0001-00",
"errors": ["Dígito verificador inválido"]
} Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID original enviado |
country | string | Código ISO del país |
id_type | string | Tipo de identificador (RUT, RFC, CNPJ, CPF, NIT, etc.) |
entity_type | string | persona_fisica, persona_moral, extranjero o generico |
is_valid | boolean | true si el ID pasa todas las validaciones |
dv_check | string | passed, failed o not_applicable (países sin algoritmo público) |
format_normalized | string | ID en formato estándar del país |
errors | string[] | Lista de errores de validación. Vacío si is_valid es true |
Probar endpoint
POST /validatePaíses soportados
| País | Código | Tipo de ID | Validación |
|---|---|---|---|
| México | MX | RFC | ✅ Algoritmo SAT con dígito verificador |
| Brasil | BR | CNPJ / CPF | ✅ Doble mod-11 |
| Chile | CL | RUT | ✅ Mod-11 con dígito K |
| Colombia | CO | NIT / CC | ✅ DIAN mod-11 |
| Argentina | AR | CUIT / CUIL | ✅ AFIP mod-11 |
| Perú | PE | RUC | ✅ SUNAT mod-11 |
| Ecuador | EC | RUC / CI | ✅ Mod-10 / mod-11 |
| Venezuela | VE | RIF | ✅ SENIAT mod-11 |
| Guatemala | GT | NIT | ✅ SAT mod-11 con dígito K |
| República Dominicana | DO | RNC / CI | ✅ DGII mod-11 |
| Uruguay | UY | CI / RUT | ✅ Mod-10 |
| Bolivia | BO | NIT | Formato + longitud |
| Paraguay | PY | RUC | Formato + longitud |
| Panamá | PA | RUC | Formato + longitud |
| Costa Rica | CR | Cédula Jurídica / Física | Formato + longitud |
| El Salvador | SV | NIT / DUI | Formato + longitud |
| Honduras | HN | RTN | Formato + longitud |
| Nicaragua | NI | RUC | Formato + longitud |
MCP Server (agentes de IA)
Endpoint MCP stateless para integraciones con Claude u otros agentes compatibles:
POST https://latam.rootspa.cl/mcp
Content-Type: application/json Herramientas disponibles
| Tool | Descripción |
|---|---|
validar_tax_id | Valida RUT, RFC, CNPJ, NIT y 14 tipos más para 18 países |
Configuración en Claude Code
{
"mcpServers": {
"taxid-latam": {
"url": "https://latam.rootspa.cl/mcp",
"transport": "streamable-http"
}
}
} Autenticación
API Token (suscripción)
Authorization: Bearer <tu_token> Pagos x402 (pay-per-call)
Los endpoints requieren pago de $0.001 USDC por request en la red Base si no se envía token de suscripción.
Errores
| Código | Causa | Descripción |
|---|---|---|
401 | Sin autenticación | Token inválido, expirado o no enviado |
402 | Pago requerido | No se incluyó pago x402 ni token de suscripción |
422 | Parámetros inválidos | country no reconocido o campos faltantes |
429 | Rate limit | Límite de requests excedido en modo demo |
Notas
- La API acepta IDs con o sin caracteres de formato (puntos, guiones, barras) — los normaliza automáticamente.
- Un ID inválido retorna
HTTP 200conis_valid: false. ElHTTP 422se reserva para errores de parámetros (país desconocido, campos faltantes). - Para países marcados como Formato + longitud, se valida la estructura y longitud pero no existe un algoritmo de dígito verificador público —
dv_checkretornanot_applicable. persona_fisica= persona natural.persona_moral= persona jurídica / empresa.