Saltar al contenido
Secciones de la documentación

Validador de XML

Verifica un CFDI 4.0 antes de enviarlo a invoice/stampxml. El validador comprueba que el sello corresponda a la cadena original, que el certificado pertenezca al emisor y que los importes sean correctos. Acepta el XML o el Base64 que envías en xmlbase64.

Revisa la estructura, el sello y los importes de un CFDI 4.0 antes de timbrarlo. No consulta el estatus del comprobante en el SAT; para eso está validator/cfdi.

También puedes arrastrar el archivo a este recuadro. El XML no se almacena y se descarta al terminar la revisión.

Validación

Qué revisa

  • El sello contra la cadena original de la XSLT del SAT.
  • El certificado, la fecha y el emisor.
  • Importes, impuestos, receptor y catálogos.
  • El complemento de pagos 2.0 y el timbre, si los contiene.

Validaciones

  • Sello. Genera la cadena original con la XSLT del SAT, verifica la firma con la llave pública del atributo Certificado e indica si corresponde (CFDI40102). También muestra la cadena original para compararla con la de tu sistema.
  • Certificado. Comprueba que sea un CSD y no una e.firma, que NoCertificado corresponda al certificado, que su RFC sea el del emisor y que la fecha del comprobante esté dentro de su vigencia. Indica si es un certificado de prueba del SAT, que solo timbra en el sandbox, o uno de producción.
  • Fecha. Comprueba que el comprobante no tenga más de 72 horas de emitido ni una fecha posterior a la hora local del código postal de LugarExpedicion.
  • Importes, receptor y catálogos. Aplica las mismas reglas que el validador de JSON: SubTotal, impuestos por concepto y globales, Total, decimales, régimen y uso del receptor, RFC genérico y los catálogos breves del SAT. Cada regla indica su clave. También comprueba que el IVA al 8 % se use con un lugar de expedición de la franja fronteriza.
  • Pagos 2.0. Revisa el saldo insoluto, la suma de ImpPagado contra Monto y el valor de MontoTotalPagos.
  • Timbre. Si el XML ya contiene un TimbreFiscalDigital, muestra el UUID, comprueba que SelloCFD sea igual al sello del comprobante y presenta la cadena original del timbre.
  • RFC de prueba. Con un CSD de prueba, avisa si el CSD no figura en la LCO, si el emisor es un EFOS o si el nombre o el código postal no coinciden con los registrados.

El validador no consulta al SAT. No determina si un RFC real existe, si un UUID está cancelado ni si el CSD figura en la LCO de producción; esas validaciones las realiza el proveedor de timbrado al timbrar. Para consultar el estatus de un CFDI timbrado, usa validator/cfdi.

Cálculo de la cadena original

La cadena se calcula con la XSLT oficial del SAT, cadenaoriginal_4_0.xslt, y con los 33 complementos que incluye, entre ellos pagos, nómina, Carta Porte 2.0, 3.0 y 3.1, comercio exterior, impuestos locales, leyendas fiscales y donatarias. El orden de los campos, la omisión de atributos opcionales y la normalización de espacios siguen esa hoja de estilos, por lo que el resultado coincide con la cadena que calcula el SAT.

Cuando el sello no corresponde, la causa suele ser una de las siguientes: el XML se modificó después de sellarlo (un espacio dentro de un valor, un decimal reescrito o un nodo en otra posición), la cadena se generó manualmente o con otra XSLT, la firma se hizo con SHA-1 en lugar de SHA-256 o se usó la llave de otro certificado.

Privacidad

Revisado contra la API v5 en producción el 2026-11-03.