¿Qué es una Representación Impresa de un CFDI?

Cuando solicitamos una factura electrónica, se nos entregarán dos archivos: un XML y un PDF. El archivo XML es el comprobante fiscal, el que es requerido para acreditar como un gasto deducible. El archivo PDF, por su parte, es una representación, y por sí mismo no puede ser acreditado.
En este aspecto hay mucha confusión, debido a que ambos son archivos digitales. Entonces, ¿por qué no es posible deducir un gasto si solo tenemos el archivo PDF? Aquí lo explicamos.

Las entrañas de un XML

Un archivo XML no es más que un documento de texto plano, similar a un archivo de Word. La diferencia es que mientras que en Word podemos elegir formato —palabras o enunciados de diferentes tamaños y colores; usando diferentes fuentes tipográficas, diversos estilos; negritas, itálicas y subrayadas—, en texto plano no tenemos estas herramientas.

La razón es simple: un archivo de texto plano, como un XML, fue creado para ser procesado y leído por una computadora. Un escrito con formato ayuda a que un documento sea legible para un ser humano; sabemos que el enunciado más grande es el título, que las palabras subrayadas y de otro color son enlaces, y que las negritas ayudan a resaltar un texto. Pero una computadora no distingue estos estilos. Incluso si lo hiciera, serían ruido, y haría más pesado y ocasionaría que el procesamiento sea más lento.

Un archivo XML lo único que hace es encapsular la información mediante caracteres que describen el qué.
Como ejemplo tomemos el siguiente extracto de un XML.

<total>19250.33</total>

Aquí podemos entender que 19250.33 es el total, ya que esta palabra está en ambos lados del número, misma que se encuentra entre los símbolos de mayor y menor que. Esto nos ayuda a determinar, a través de su estructura que el valor de total es 19250.33. Lo que no sabemos es qué representa este número; pueden ser kilos, dólares, segundos, personas, metros, o pesos. Para determinarlo, podemos utilizar un atributo, de la siguiente manera:

<total moneda="MXN">19250.33</total>

Como podemos interpretar este ejemplo es que tenemos un nodo cuya descripción es total, y tiene un atributo que determina que el valor dentro de este nodo será interpretado que el tipo de moneda es MXN, y que este valor es 19250.33. En palabras humanas, que son 19250.33 pesos mexicanos.

Ahora, ¿qué pasa si este es solo un concepto de una factura, y vamos a tener más de uno, en diferentes monedas? Podemos agregar más nodos, que incluso pueden encapsular a los que ya tenemos:

<concepto>
  <descripcion>Servicio de recepción de facturas</descripcion>
  <total moneda="MXN">19250.33</total>
</concepto>

De esta manera logramos estructurar que habrá un concepto, cuya descripción es Servicio de recepción de facturas, y cuya moneda es MXN, y su total es 19250.33; y además tendremos otro concepto, con una descripción Invoice management software, cuya moneda es USD, y su total es 110.25. Así sería esta estructura:

<concepto>
  <descripcion>Servicio de recepción de facturas</descripcion>
  <total moneda="MXN">19250.33</total>
</concepto>
<concepto>
  <descripcion>Invoice management software</descripcion>
  <total moneda="USD">110.25</total>
</concepto>

Esta es la base de cualquier archivo XML que existe; el CFDI es solo una serie de nodos que gradualmente fue haciéndose más y más complicado, pero que ayuda a ser interpretado por una computadora en cuestión de milésimas de segundo, pues no es necesario buscar datos, o normalizarlos (es por esto que el valor de 19250.33 no tiene comas); solo es requerido procesarlos.
Esto no significa que sea imposible leer un CFDI por un humano—es factible si entendemos la estructura, pero no es lo ideal.

Representaciones impresas

Para ser leído por una persona, este archivo CFDI es convertido en un documento PDF, extrayendo la información y dándole un formato fácil de comprender. Continuando con el ejemplo, los dos conceptos del XML se verían de esta forma en la representación impresa:

Descripción Moneda Total
Servicio de recepción de facturas MXN $19,250.33
Invoice management software USD $110.25

El software encargado de convertir los datos del XML a un PDF usualmente pone el símbolo y las comas requeridas en los datos que son importes con el objetivo de hacernos más fácil la lectura de la información. Con la estructura del tipo de moneda, puede decidir no poner el símbolo $, sino ¥ (yen japonés), € (euro), o £ (libra esterlina), según sea necesario.

La desventaja de un PDF es que es un formato que no preserva una estructura, y por diseño, es comprimido y optimizado para pesar lo menos posible.

Esta situación nos deja con dos archivos; uno que tiene toda la información del CFDI, pero que es difícil de interpretar por una persona, y otro que presenta los datos de una manera visual, pero carece de toda la información y estructura necesaria. En un mundo ideal, un CFDI sería un solo archivo, y mostraría la información de forma intuitiva, preservando la estructura del documento.

En conclusión, una representación impresa de un CFDI en formato PDF, es simplemente eso—una representación. No es el original, es solo una copia sin valor real para ser acreditado.

En este punto es posible que se pregunten: ¿hay alguna forma de obtener el CFDI a partir del PDF? La respuesta es no. Al convertir un XML a un PDF, se pierde información necesaria del CFDI. El PDF tiene un código QR, y técnicamente sería posible comprimir toda la información del CFDI en este código, pero en la práctica, el objetivo del QR es totalmente distinto, y será del que hablaremos en otra ocasión.

Conclusión

Cuando recibamos una factura, en el mejor de los casos, debemos tener el archivo XML y el PDF. En el siguiente mejor caso, el XML es más que suficiente, y aunque hay herramientas para facilitar su lectura, recomendamos utilizar nuestro servicio de conversión automático de XML a PDF; solo crea tu cuenta y envía tus XMLs.

En el caso de que solo tengamos el PDF, debemos exigir que también se nos entregue el XML, pues con la representación impresa no podemos acreditar un gasto.