Breve Introduccion a la Factura Electronica

BREVE INTRODUCCION A LA FACTURA ELECTRONICA.

Una factura electrónica, o mejor dicho: Comprobante Fiscal Digital (CFD) es un archivo cuyo contenido esta en formato XML (esto es, etiquetas del tipo dato), y que contiene algunos elementos de validación que hacen que el emisor no pueda negar que fue emitido por el.

Las etiquetas que se emplean están especificadas dentro de un documento emitido por el SAT que se llama “Anexo 20”.

Un archivo con formato XML no es más que un archivo de texto como cualquier otro, solo texto en formato ASCII, este tipo de archivos puede ser generado y editado con cualquier editor de textos (como notepad).

EJEMPLO:
<?xml version="1.0" encoding="utf-8" ?>
-
-

-

-

-
-

Entre los elementos que aseguran la autenticidad de un Comprobante Fiscal Digital (CFD) se tiene la llamada “cadena original” que son los datos del emisor concatenados con los del receptor, concatenados con los códigos de productos concatenados con los totales, así:
cadenaOriginal: emisor│receptor│producto1│producto2│producto3│total│iva

A esta cadena se le aplica una criptografía conocida como “llave publica y llave privada”, de esa manera, con la llave privada se genera a través del algoritmo un “sello” o combinación única de caracteres, de manera que si alteras algún dato de la cadena original, el “sello” que trates de calcular de nuevo no será igual al sello original.

El sello se incorpora dentro del XML como otra etiqueta mas “AQUÍ VA EL VALOR RESULTANTE”y es lo que le da certeza al documento.

De esta manera se asegura que quien emitió la factura electrónica con su “llave privada” (tramitada ante el SAT) no pueda denegarla como emisor.

Lenguajes de programación para desarrollar la emisión de Comprobantes Fiscales Digitales:
Prácticamente cualquier lenguaje que sea capaz de generar archivos de texto plano podrá usarse para generar el archivo .XML.
Aunque aquellos lenguajes que posean objetos especializados para la manipulación de archivos .XML (lectura de atributos, lectura de nodo x nodo) son mas utiles por su versatilidad de funciones, pero al ser archivos de texto finalmente, cualquier programa podra leer e interpretar los valores contenidos en el.

Para la generación de la cadena original se cuenta con 2 alternativas:
Concatenar valor x valor, o bien usar una hoja de transformación (XSLT) que viene a ser como un mini script que lee las etiquetas del XML y generan automáticamente la cadena original, este último es mas recomendable ya que no requiere mayor esfuerzo, siempre que el lenguaje seleccionado tenga la posibilidad de trabajar con objetos XML.

Para la generación del Sello digital, se debe contar con las bibliotecas criptográficas necesarias, lenguajes como C++, Java, .NET incorporan lo necesario.

Un equipo como el iSeries tambien será capaz de generar sellos digitales siempre que se hiciera a través de C++, o bien emulando un ambiente operativo Linux para ejecutar OpenSSL (una herramienta gratuita muy usada en algunos ambientes para la generación de encriptamientos).

COMO SE HACE ENTREGA DEL CFD AL CLIENTE:

Para aquellos que emiten CFD’s o CFDI’s, el SAT les obliga a hacer entrega por algún medio electrónico del archivo .XML (que es en realidad el CFD), se acostumbra enviar también por email el PDF (que es la representación gráfica del XML, mas fácil de leer).

Los emisores de CFD tambien están obligados a entregar, si el cliente lo requiere, una REPRESENTACION IMPRESA DEL CFD, esto, es la factura en papel, que regularmente se hace imprimiendo un archivo con formato PDF o generando el reporte por cualquier otro medio hacia la impresora.

La información contenida en dicho reporte debe coincidir vs la contenida en el .XML, incluyéndose además en un lugar visible de dicho reporte: La cadena original, y el sello digital.

Desea saber mas?,
dedíquele unos minutos a la lectura de algunos documentos en Internet, hay mucho material a donde recurrir, a continuación algunos que pueden serle útiles:

Que es la llave pública y llave privada:
http://www.kzgunea.net/docs/cursos/Izenpe/castellano/capitulo2-2.htm

Que es XML http://es.wikipedia.org/wiki/Extensible_Markup_Language
http://clic.xtec.cat/es/jclic/xml.htm
http://www.vico.org/pages/Talleres/Taller_XML.html

Diferencia entre CFD y CFDI http://facturaelectronicapegaso.com/teoria-cfdi/diferencia-de-cfd-y-cfdi

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Gracias

Tio muchas gracias por compartir esta información.