Urgent.News

What's breaking now, across thousands of outlets.

Tech

Cómo parsear un CFDI 4.0 en C# sin sufrir (y sin tropezar con los detalles del SAT)

Si trabajas con facturación electrónica en México, tarde o temprano te toca leer un XML de CFDI: para conciliar pagos, cargar facturas recibidas en un ERP o mostrarle al usuario qué le facturaron. Parece fácil. Es un XML, ¿no? Luego te topas con los namespaces, con el timbre metido en un complemento, con facturas 3.3 que siguen circulando y con impuestos que a veces no traen importe. Aquí va cómo…

Para procesar un CFDI 4.0 en C# sin problemas, es necesario seguir una serie de pasos cuidadosos. Primero, cargue el XML de forma segura utilizando XmlReaderSettings con DtdProcessing seteado a Prohibit, para evitar ataques de inclusión de archivos externos o bombas de entidades. A continuación, detecte la versión del CFDI antes de leer nada, ya que los namespaces varían entre versiones.

La versión 4.0 es la única válida desde abril de 2023, pero las versiones 3.3 siguen circulando. Defina las constantes XNamespace cfdi40 y cfdi33 para manejar ambas versiones. Luego, obtenga el nodo raíz del XML y verifique que sea un CFDI 3.3 o 4.0. Finalmente, extraiga los datos básicos como RFC del emisor y receptor, y el total de la factura utilizando decimal.Parse con CultureInfo.InvariantCulture para evitar problemas relacionados con la cultura del servidor.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

Transição de Laravel para .NET

Sempre fui um grande fã de tecnologias microsoft. Tomei uma decisão a respeito do meu futuro. Atualmente, trabalho com Laravel e com o ecossistema PHP, mas resolvi voltar a estudar a tecnologia que eu…

More from Sunday 27 September →