Ir al contenido
Clientes

FISCALISTO / API / REFERENCIA

Validar los datos fiscales de un cliente

POST
/v1/tax_ids/validate

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.

Autorización

bearerAuth
headerAutorizaciónBearer <llave>

Su llave secreta: fk_test_… en pruebas, fk_live_… en producción. Desarrolladores › Llaves.

Encabezados

Idempotency-Key?string

Opcional (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).

Longitud1 <= length <= 255

Cuerpo de la solicitud

application/json
  1. body
tax_id*string

El RFC del cliente.

Longitud1 <= length <= 20
legal_name?string

El nombre o razón social que va a poner en la factura.

Longitudlength <= 300
tax_system?string

Su régimen fiscal (c_RegimenFiscal), como 601 o 612.

zip?string

El código postal de su domicilio fiscal.

use?string

El uso del CFDI (c_UsoCFDI), como G03.

cif_id?string

El 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.

Cuerpo de la respuesta

Correcto.

application/json
  1. response

Si los datos fiscales de un cliente van a pasar el SAT.

object*string

Qué tipo de objeto es («invoice», «customer»…).

tax_id*string

El RFC revisado.

kind*string

company (persona moral, 12 caracteres), person (persona física, 13) o generic (XAXX010101000, XEXX010101000).

Uno de"company""person""generic"
valid*boolean

true si no hay errores: con lo que mandó, el SAT no debería rechazar la factura por los datos del cliente.

checked_with_sat*boolean

true 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"  }}