Verificar y validar correctamente la estructura de un CFDI (XML) ¿Que certificado debo utilizar?



Lo legal

Una de las tareas mas tediosas que nos dejó el SAT es el tener que validar la existencia de las facturas electrónicas que recibimos. Una carga mas de trabajo para el contribuyente (y sus contadores…) :-?

Art. 29 del CFF:

(…)

VI. Cumplir con las especificaciones que en materia de informática determine el Servicio de Administración Tributaria mediante reglas de carácter general.

Los contribuyentes podrán comprobar la autenticidad de los comprobantes fiscales digitales por Internet que reciban consultando en la página de Internet del Servicio de Administración Tributaria si el número de folio que ampara el comprobante fiscal digital fue autorizado al emisor y si al momento de la emisión del comprobante fiscal digital, el certificado que ampare el sello digital se encontraba vigente y registrado en dicho órgano desconcentrado.

(…)

Nótese que dice: «Podrán» y aquí PUEDES esgrimir tus muchos argumentos cuando el SAT no quiera recibir una factura, como por ejemplo esta tesis de jurisprudencia:

La SCJN resuelve que el SAT no puede cuestionar validez de una factura.

Nótese que dice: «en la página de Internet del Servicio de Administración Tributaria» y NO dice: «en alguna pagina de validación de los cientos de proveedores de validación existentes…»

Existen muchos validadores de xml los cuales son hechos muy a medida de las empresas que contratan sus servicios, validando aspectos que solo a la empresa contratante le interesan (como las addendas) pero esto no significa que su validador contratado sea «el mero mero..» Aunque acepto que si ayudan bastante en este proceso tan tedioso de la validación.

Ok, partiendo de que el único validador OFICIAL es la pagina del SAT. Continuemos…

Verificar la existencia y status de un CFDI:

El primer paso es verificar que el CFDI que tenemos esté debidamente registrado en la base de datos del SAT, considero que a estas alturas ya muchos (todos) conocemos el validador:

https://verificacfdi.facturaelectronica.sat.gob.mx/

O también desde este enlace mas cortito: https://elconta.mx/verificacdfi (Es más fácil de recordar ;) )

validador_cfdi_sat

Y el procedimiento consiste en ingresar el folio fiscal de tu CFDI, el RFC de quien emite, el RFC de quien recibe y un numerito (captcha) de seguridad.

Este tarea es bastante sencilla y existen varias maneras de llevarlo a cabo:

  • Manualmente (uno por uno y dentro de la misma página del SAT)
  • En lote desde alguna página o servicio que puede ser contratado ó gratuito. (Gratis recomiendo al sitio Factura Fiel)
  • Con un scanner de código QR ó desde tu telefóno inteligente. (Te recomiendo Verifica CFDI (De paga pero te da 100 verificaciones gratis) ó Aplicación Factura Fiel (Gratuito)

Validando la estructura del CFDI

Aquí es donde el asunto es un poco mas complejo y MUCHA gente «se atora».

En lo personal considero que si la factura xml es válida en el proceso anterior (verificación CFDI) este proceso de validación de estructura es un tanto excesivo. ¿Tú que opinas?

La validación de la estructura XML del CFDI se lleva acabo de la siguiente manera:

1. Ingresar al sitio OFICIAL del SAT:

https://www.consulta.sat.gob.mx/sicofi_web/moduloECFD_plus/ValidadorCFDI/Validador%20cfdi.html

También te dejo este enlace mas corto para acceder: https://elconta.mx/validacfdi

2. Integrar la información requerida:

2a. Comprobante

Se refiere al XML de tu factura electrónica.

2b. CSD del SAT

Se refiere al certificado de tu proveedor de timbrado. No al certificado tuyo ó de la empresa emitió ese xml

 

Si utilizamos incorrectamente nuestros archivo del certificado *.cer obtendremos un error de validación como este:

cfdi_estructura_error1

 

Como te comenté en el punto 2b, es necesario ingresar el certificado del PAC que nos haya timbrado nuestro comprobante fiscal.

Para conocer quién es el PAC que certificó nuestra factura CFDI basta con validar nuestro comprobante fiscal (ver líneas mas arriba el proceso) y en los resultados aparece ese dato:

PAC_certifico_cfdi

Ahora… a buscar el certificado del PAC… :-?

En teoría ese certificado se lo debes pedir a tu proveedor de facturación electrónica.

En nuestro caso tenemos varios proveedores de timbrado tal y como lo expusimos en nuestra entrada: ¿Con quién timbra ElConta.Com?

Nosotros hemos recopilado algunos certificados de los PAC mas importantes y aquí te los compartimos (si tienes mas envíalos a contacto arroba elconta punto com para integrarlos):

  • Ecodex
  • Plataformas Digitales
  • FEL
  • Se Factura
  • Expide tu factura
  • Se Factura
  • Invoice One
  • Factupronto

Puedes descargar el archivo coprimido en zip con estos certificados desde este enlace.

Una vez que haces la validación utilizando el certificado de tu PAC obtendrás como resultado lo siguiente:

cfdi_correcto

:arrow: Ahora va el comercial:

Si tienes necesidad de emitir recibos ó facturas electrónicas nos ponemos a tus órdenes en este enlace (clic en la imagen):

ElConta.Com te recomienda.

 


Errores conocidos al validar los XML de nuestro comprobante fiscal:

El XML viene en formato ANSI en lugar de UTF-8

Problema:

Resulta que un emisor de CFD me envío un XML que no pasó la validación del SAT, ya que indica que está codificado en ANSI, le hago la anotación al emisor, y me envía un nuevo xml, que ahora si pasa la validación SAT, yo iba a hacer el reclamo, porque sabemos que un XML no debe ser modificado, pero verificando me encuentro que es el mismo número de folio, la misma hora, la misma fecha que el primer XML, que no pasó la validación, incluso el mismo sello.

Así que abro ambos XML en un editor hexadecimal, y me encuentro que el error entre ambos archivos es, precisamente que uno viene códificado en ANSI, en el nodo país, México, y el otro es correcto.

http://www.universolibre.org/node/178

Solución:

No abrir los XML con ningún otro programa que no sea Notepad y/o un navegador de internet porque al abrirlo con otro programa y darle en grabar el archivo «se daña» y ya no pasa la validación :-?

SI ya te da ese error del formato ANSI, abre el archivo en Notepad y dale guardar (sobreescribe el archivo) y listo, vuelve a pasarlo por el verificador y verás que ya pasa ;)