CASO DE USO
Valida tax IDs en el checkout antes de generar la factura
La facturacion fiscal en LATAM requiere un identificador fiscal valido en cada documento — CUIT en Argentina, CPF o CNPJ en Brasil, RFC en Mexico, RUT en Chile. Un ID invalido significa que la factura es rechazada legalmente. El cliente no puede deducirla. Tu equipo de operaciones maneja la correccion manualmente. Validar en el checkout — de forma inline, antes de enviar — detecta el error donde es mas barato corregirlo: en el punto de ingreso.
EL PROBLEMA
Los tax IDs invalidos en facturas generan rechazos downstream
El rechazo de facturas por tax IDs invalidos requiere correccion manual, re-emision y en algunas jurisdicciones un proceso formal de cancelacion. El costo por rechazo es desproporcionado respecto al costo de validar al ingreso.
Cada pais de LATAM tiene requisitos de facturacion distintos
Argentina requiere un CUIT con checksum modulo-11 valido. Brasil acepta CPF (personas fisicas) o CNPJ (empresas), cada uno con un algoritmo diferente de doble digito verificador. Mexico requiere RFC con homoclave valida. Chile requiere RUT con un digito verificador especifico. Un checkout que maneja un pais correctamente suele tener bugs en los otros.
Los errores aparecen despues del paso de pago
Si validas los tax IDs al generar la factura (no al enviar el formulario), el usuario ya pago. Entonces necesitas contactarlo para corregir el ID, re-emitir la factura y posiblemente cancelar la original. Esto genera overhead de soporte y reduce la conversion en compras futuras.
IDs con formato correcto pero checksum invalido
Un CPF de 11 digitos donde ambos digitos verificadores son incorrectos parece valido para un regex. Un CUIT con la longitud correcta pero un digito verificador incorrecto parece valido para una verificacion de longitud. Estos pasan la validacion basica del frontend y fallan silenciosamente en el paso de facturacion.
POR QUE LAS SOLUCIONES ESTANDAR NO ALCANZAN
Por que la validacion solo del lado del frontend es insuficiente
Atributo HTML pattern
Pattern valida la clase de caracteres y la longitud. No puede calcular el doble digito verificador del CPF o el resultado modulo-11 del CUIT. Una cadena numerica de 11 digitos pasa el pattern independientemente de la validez del checksum.
Paquetes npm especificos por pais
Librerias como cpf-cnpj-validator (Brasil) funcionan bien para un pais. Para un checkout multi-pais necesitas paquetes separados por pais, cada uno con APIs diferentes y cadencias de actualizacion diferentes.
Validar al generar la factura
Para cuando generas la factura, el pago ya fue capturado. Corregir un tax ID invalido despues del pago requiere contactar al cliente, re-emitir y posiblemente una cancelacion formal de factura — nada de lo cual es gratuito.
COMO NORMADATA AYUDA
Como Normadata te ayuda
Llama a Normadata validate al perder el foco del campo o al enviar el formulario, antes de que el checkout avance al pago. Muestra un error especifico y amigable para el usuario si valid=false. El usuario corrige el ID antes del paso de pago, no despues. Normadata devuelve las representaciones normalized y formatted del ID. Pre-popula tu sistema de facturacion con la forma canonica — no necesitas reformatear despues. Un endpoint maneja CUIT (Argentina), CPF/CNPJ (Brasil), RFC (Mexico), RUT (Chile/Colombia) y mas. Tu logica de validacion en el checkout es la misma para todos los paises. MIRALO EN ACCION
Miralo en accion
# Validate the tax ID inline at checkout before the form submits
$ curl -X POST api.normadata.io/v1/validate/tax-ids \
-H "X-API-Key: nd_a8f3b2c1d4e5f6g7h8i9j0k1l2m3n4o5" \
-d '{"items":[{"id":"f","country":"AR","type":"cuit","value":"20-31456789-1"}]}'
{
"results": [
{
"id": "f",
"valid": false,
"error": "invalid_check_digit"
}
]
}
# Show an inline error before the user reaches the payment step
# Correct value: 20-31456789-0
# Same schema for CPF/CNPJ (BR), RUT (CL), NIT (CO) — just change country/type
LIMITACIONES
Que no hace Normadata aqui
—Normadata no confirma que el tax ID corresponda a un contribuyente registrado o que el negocio este al dia con la autoridad fiscal.
—Normadata no se integra con AFIP, SAT, Receita Federal ni SII. Valida formato y checksum segun la especificacion publica de cada identificador.
PREGUNTAS FRECUENTES
Preguntas frecuentes
Puedo usar Normadata para validacion en tiempo real mientras el usuario escribe?
Si, pero recomendamos validar al perder el foco del campo (cuando el campo pierde el focus) en lugar de en cada teclazo, para evitar disparar llamadas API antes de que el usuario haya terminado de escribir. Usa debounce de al menos 300ms si validas en input.
Normadata soporta CNPJ ademas de CPF para checkouts B2B?
Si. Pasa country=BR y type=cnpj. Normadata valida CNPJ (14 digitos, dos digitos verificadores) de forma independiente del CPF. Para checkouts que aceptan tanto personas fisicas como empresas, llama validate con el tipo apropiado segun lo que seleccione el usuario.
Integra Normadata en tu stack
El acceso se otorga manualmente. Unite a la lista de espera y te damos acceso a la API.