FISCALISTO / API / REFERENCIA
Validar los datos fiscales de un cliente
Antes de timbrar: si el RFC, el nombre, el régimen, el código postal y el uso van a pasar. Sin cif_id revisa lo que se puede revisar sin el SAT (formato, régimen para ese tipo de persona, código postal en el catálogo, uso para el régimen, nombre sin «S.A. de C.V.») y las listas del SAT. Con el idCIF de la constancia lee el registro del SAT y compara nombre, código postal y régimen, como hará el PAC. No usa timbres.
bearerAuthAutorizaciónBearer <llave>Su llave secreta: fk_test_… en pruebas, fk_live_… en producción. Desarrolladores › Llaves.
Idempotency-Key?stringOpcional (los SDK la mandan solos). Si la respuesta se pierde, repita la solicitud con el mismo valor durante 24 horas: contesta lo mismo, con idempotent-replayed: true, y no lo hace dos veces (ni crea, ni manda correos, ni cobra).
1 <= length <= 255application/json- body
tax_id*stringEl RFC del cliente.
1 <= length <= 20legal_name?stringEl nombre o razón social que va a poner en la factura.
length <= 300tax_system?stringSu régimen fiscal (c_RegimenFiscal), como 601 o 612.
zip?stringEl código postal de su domicilio fiscal.
use?stringEl uso del CFDI (c_UsoCFDI), como G03.
cif_id?stringEl idCIF de su constancia de situación fiscal (11 dígitos, arriba a la izquierda, junto al QR). Con él se compara todo con lo que tiene el SAT.
Correcto.
application/json- response
Si los datos fiscales de un cliente van a pasar el SAT.
object*stringQué tipo de objeto es («invoice», «customer»…).
tax_id*stringEl RFC revisado.
kind*stringcompany (persona moral, 12 caracteres), person (persona física, 13) o generic (XAXX010101000, XEXX010101000).
"company""person""generic"valid*booleantrue si no hay errores: con lo que mandó, el SAT no debería rechazar la factura por los datos del cliente.
checked_with_sat*booleantrue si se comparó con el registro del SAT (mandó cif_id y el SAT contestó).
errors*array<>Lo que haría que el SAT rechace la factura. Cada uno con el campo (param), un código, la explicación y, si se puede, el valor correcto (suggestion).
warnings*array<>Lo que no impide timbrar pero conviene revisar: el dígito verificador, mayúsculas, si el RFC está en las listas del SAT.
sat_record*|Lo que tiene el SAT en la constancia (con cif_id): nombre, código postal y regímenes vigentes. null sin cif_id.
sat_error*|Si el SAT no contestó a tiempo (con cif_id): reintente en unos minutos. null si contestó o no se consultó.
sat_lists*|Si el RFC aparece en las listas del SAT. null con un RFC genérico o mal escrito.
curl -X POST 'https://api.fiscalisto.com/v1/tax_ids/validate' \ -H 'Authorization: Bearer fk_test_…' \ -H 'Idempotency-Key: 8f14e45f-ceea-467a-9575-6a1b0e5f3c21' \ -H 'Content-Type: application/json' \ -d '{ "tax_id": "ICV060329BY0", "legal_name": "Inmobiliaria CVA, S.A. de C.V.", "tax_system": "601", "zip": "33800", "use": "G03", "cif_id": "12345678901"}'{ "object": "tax_id_validation", "tax_id": "ICV060329BY0", "kind": "company", "valid": false, "checked_with_sat": true, "errors": [ { "param": "legal_name", "code": "legal_name_capital_regime", "message": "Sin «S.A. de C.V.»: en CFDI 4.0 el nombre va sin régimen de capital, como en la constancia.", "suggestion": "INMOBILIARIA CVA" }, { "param": "zip", "code": "zip_mismatch", "message": "El código postal no es el del domicilio fiscal que tiene el SAT.", "suggestion": "33826" } ], "warnings": [], "sat_record": { "legal_name": "INMOBILIARIA CVA", "zip": "33826", "tax_systems": [ "601" ] }, "sat_error": null, "sat_lists": { "object": "sat_list_check", "tax_id": "ICV060329BY0", "name": null, "listed": false, "risk": "none", "lists": [], "lists_updated_at": "2026-10-24T00:12:40-06:00" }}