Validador de CFDI y XML del SAT
Sube tu archivo XML para validar que tu Comprobante Fiscal Digital por Internet cumple con los lineamientos del SAT.
Arrastra tu archivo XML aquí
o haz clic para seleccionar
Acepta 1 o varios archivos .xml (máx. 5). CFDI 3.3 y 4.0
Tipos soportados: Ingreso, Egreso, Nómina, Complemento de Pago, Traslado
Qué revisa el validador de CFDI
El motor aplica 437 reglas sobre la estructura del CFDI y, si te identificas, también sobre su legalidad fiscal.
Estructura, catálogos y aritmética (Anexo 20)
Sello digital, certificado, RFC, claves de catálogo, importes y totales: lo mismo que revisa un PAC al timbrar.
- Estructura y campos obligatorios32
- Catálogos del SAT32
- Importes y totales13
- Montos y tasas de impuestos36
- Sello digital, certificado y timbre24
- RFC9
- Listas negras del SAT (69-B y 69)7
- Coherencia de clave de producto y unidad11
- Ingreso, egreso y traslado13
Complementos: Pagos, Nómina, Carta Porte y Comercio Exterior
Complemento de pagos 2.0, nómina 1.2, carta porte 3.1 y comercio exterior.
- Complemento de pagos 2.052
- Nómina 1.2115
- Carta Porte 3.132
- Comercio Exterior31
Ley del ISR y Ley del IVA
Deducibilidad, acreditamiento y retenciones, con el fundamento legal de cada hallazgo.
- Ley del ISR: deducibilidad y retenciones13
- Ley del IVA: acreditamiento y retenciones9
Con tu cuenta
CFDI ajeno, pagos pendientes, estatus en el SAT y listas del 69 y 69-B.
- Revisiones con tu RFC y tus otros CFDI8
Validación técnica vs. validación fiscal del ISR y el IVA
El PAC que timbra tu factura revisa el Anexo 20: estructura, sello, catálogos y aritmética. Si el CFDI pasa esas reglas, se timbra, sin importar si el gasto es deducible o si faltó una retención.
El validador además revisa la Ley del ISR y la Ley del IVA: deducibilidad, acreditamiento y retenciones, cada hallazgo con su fundamento legal. Estos hallazgos no cambian si el CFDI es técnicamente válido: un comprobante bien timbrado puede, aun así, no ser deducible o acreditable.
Ejemplos de lo que revisa del ISR y el IVA
Compara los datos del CFDI contra las tasas y los montos vigentes en la fecha del comprobante. Cuatro ejemplos reales del motor:
- Pago en efectivo mayor a $2,000: no es deducible de ISR (LISR Art. 27 fracción III).
- Persona física en RESICO que emite a una persona moral, sin la retención del 1.25% de ISR (LISR Art. 113-J).
- Servicios o arrendamiento de una persona física a una persona moral, sin la retención de dos terceras partes del IVA trasladado (LIVA Art. 1-A fracción II).
- El importe del IVA no corresponde a la base por la tasa, código CFDI40180: puede ser un CFDI alterado o timbrado por un PAC que no valida montos.
Revisiones con tu cuenta
Con sesión iniciada o una API key ligada a tu cuenta, el validador corre además estas revisiones, que necesitan tu RFC y tus otros CFDI:
- CFDI ajeno: que el comprobante esté a nombre de tu RFC.
- PPD sin complemento de pago: que ya exista un REP antes de deducir o acreditar.
- Estatus en el SAT: si el CFDI fue cancelado o su vigencia no se ha verificado.
- Listas del 69 y 69-B del SAT: si el emisor aparece como incumplido o como EFOS.
- Retenciones a tu cargo: si debiste retener ISR o IVA y el comprobante no lo refleja.
Sin cuenta, el resto del validador funciona igual: estas cinco revisiones son las únicas que necesitan identificarte.
Validar muchos XML a la vez
Sube varios archivos .xml y valida todos con el mismo motor: 5 validaciones gratis sin cuenta, 50 al mes con una cuenta gratis, y hasta 200 por lote con el plan Básico o Pro. Ver planes
Si validas CFDI de varios clientes, conoce lo que ofrecemos para despachos. Ver para despachos
API para validar CFDI
La API v1 valida exactamente lo mismo que esta página: las mismas reglas técnicas y los mismos hallazgos de ISR e IVA. Con una llave ligada a tu cuenta corre además las revisiones con contexto.
curl -X POST https://herramientasfiscales.mx/api/v1/validate \
-H "Authorization: Bearer af_tu_api_key" \
-H "Content-Type: application/xml" \
--data-binary @factura.xmlQué no revisa el validador
El validador no puede confirmar por sí solo si un gasto es estrictamente indispensable para tu actividad (LISR Art. 27 fracción I): es un juicio sobre el giro de tu negocio. Tampoco cruza un pago PUE contra tu estado de cuenta bancario, porque no tenemos acceso a tus movimientos. Y no evalúa materialidad — que la operación haya ocurrido realmente, con contratos y entregables —, eso sigue siendo trabajo de tu contador.
Preguntas frecuentes
¿En qué se diferencia de la validación del PAC?
El PAC revisa el Anexo 20 al timbrar: estructura, sello, catálogos y aritmética. Nosotros revisamos lo mismo, más la legalidad fiscal del ISR y el IVA, con el fundamento legal de cada hallazgo.
¿El validador dice si una factura es deducible?
Señala los casos claros de que no lo es, como un pago en efectivo mayor a $2,000, con el artículo de la ley que lo sustenta. No sustituye el criterio de tu contador sobre si el gasto es estrictamente indispensable.
¿Tienen API para validar CFDI?
Sí, la API v1 valida exactamente lo mismo que esta página, con o sin llave.
¿Guardan los archivos XML que subo?
La validación de un XML en esta página se procesa en memoria y el archivo no se guarda. En la validación por lote con cuenta, los archivos se guardan temporalmente mientras se procesan y se borran al terminar; en tu historial queda el resultado (RFC, total y hallazgos), no el XML. Solo se conservan los XML que tú guardas en tu biblioteca de CFDI.
¿Preparas una devolución de IVA? Valida aquí tus CFDI y después revisa todos tus CFDI y arma el expediente de devolución.
Validador de XML del SAT
El validador lee el XML de tu CFDI y lo revisa contra las reglas del SAT: estructura del comprobante, sello digital, certificado, claves de catálogo y aritmética de importes e impuestos. No hace falta instalar nada ni registrarse: arrastras el archivo y obtienes el resultado.
Funciona con XML de CFDI 4.0 y 3.3, de ingreso, egreso, traslado, nómina, pagos, carta porte y comercio exterior. Son más de 400 reglas, con los errores explicados en español, no con el texto seco del catálogo del SAT.
Qué errores detecta el validador
- Sello digital y certificado: sello que no corresponde al certificado, certificado alterado o vencido, RFC del CSD distinto al del emisor.
- Aritmética: subtotal, total, descuentos, base e importe de impuestos que no cuadran, y reglas de redondeo.
- Catálogos: ClaveProdServ, ClaveUnidad, UsoCFDI, forma y método de pago, moneda y tipo de cambio.
- Complementos: complemento de pago 2.0, nómina, carta porte y comercio exterior.
- RFC del receptor, régimen fiscal y código postal, que es la causa más común de rechazo en CFDI 4.0.
Errores CRP del complemento de pago
Los códigos CRP son los del complemento de pagos 2.0, donde se concentran la mayoría de los rechazos. El validador los detecta y explica qué número esperaba el SAT y cuál trae tu XML.
CRP20268: la BaseP del pago no coincide con los documentos relacionados
La base gravable del IVA en el resumen del pago tiene que ser la suma de las bases de cada factura pagada. Cuando no cuadra —casi siempre por el redondeo al convertir moneda o por un EquivalenciaDR mal puesto— el SAT rechaza el comprobante y tu declaración de IVA queda con diferencias.
El campo EquivalenciaDR debe contener el valor "1"
Cuando la factura y el pago están en la misma moneda, EquivalenciaDR va en 1. Es el campo que más falla del complemento de pago: si la factura es en dólares y el pago en pesos, ahí sí lleva el tipo de cambio, no el 1.
Validar CFDI 4.0 y 3.3
El validador reconoce la versión del comprobante y aplica las reglas que le tocan. CFDI 4.0 es obligatorio desde abril de 2023 y es más estricto: exige nombre y código postal del receptor idénticos a su Constancia de Situación Fiscal, y valida la relación entre UsoCFDI y régimen fiscal. Si todavía revisas comprobantes 3.3 de ejercicios anteriores, también los procesa.
¿Es gratis validar un CFDI?
Sí, tus primeras 5 validaciones son gratis y no necesitas cuenta para hacerlas; con una cuenta gratis tienes 50 al mes. Para más hace falta un plan de paga, que también da validación en lote (hasta 200 XMLs) y guarda el historial.