Introducción a la facturación electrónica con WebSphere DataPower SOA Appliances en México

En la actualidad millones de facturas enviadas y recibidas, se encuentran impresas en papel. Esto genera gastos en recursos naturales, mano de obra es propenso a errores y tiene un alto costo económico.

Leonardo Rodríguez León, Certified IT Specialist, IBM México

Leonardo es especialista certificado en tecnología, comenzó su experiencia en IBM de Venezuela donde se desempeñó como especialista en sistemas operativos brindando soporte a diferentes clientes del país, luego pasó a formar parte del equipo de Software en la brand de WebSphere como pre-venta técnico, con el tiempo pasó a liderar técnicamente el producto WebSphere DataPower SOA Appliances para la región de Latinoamérica y actualmente pertenece al Laboratorio de Soluciones de Software en IBM de México para Latinoamérica con responsabilidad en productos de Integración de Aplicaciones de WebSphere. Ha sido autor de artículos en developerWorks y ha participado en la publicación de libros rojos (redbooks) de IBM.



Gerardo Vega Amabilis, Certified IT Specialist, IBM México

Gerardo es especialista en tecnológica certificado y trabaja en el Laboratorio de Soluciones de Software en IBM de México. Sus tarea principales es apoyar a los clientes a definir sus soluciones y arquitecturas utilizando el software de IBM para soporta las aplicaciones, procesos, su integración y las soluciones en la nube. Cuenta con mas de 20 años de experiencia trabajando con sistemas distribuidos, conectividad y middleware. Ha realizado publicaciones de libros rojos (redbooks ) en diversas tecnologías de IBM.



Fermín Luna Balcazar, Websphere IT Specialist, IBM México

Fermín es especialista Técnico para Software IBM México, es egresado del Instituto Politécnico Nacional, tiene más de 12 años en la industria de TI en áreas de desarrollo de Sistemas y liderazgo de grupos de desarrollo, trabajando en sectores como Banca, Retail, Telecomunicaciones. Actualmente es parte del equipo de Integración de Aplicaciones de WebSphere México, en productos como WebSphere MQ, IBM Integration Bus (formerly WebSphere Message Broker), WebSphere Datapower".



30-09-2013

Factura electrónica

Una factura es un documento comercial emitido por un vendedor al comprador, indicando las compras, cantidades y precios acordados para los productos o servicios que el vendedor ha proporcionado al comprador. La factura indica que el comprador debe pagar el vendedor, de acuerdo con las condiciones de pago.

En la actualidad millones de facturas enviadas y recibidas, se encuentran impresas en papel. Esto genera gastos en recursos naturales, mano de obra, es propenso a errores y tiene un alto costo económico. Generalmente las operaciones manuales dificultan la reconciliación de facturas, lo que conlleva a las malas relaciones entre proveedores y consumidores. La factura electrónica permite a las empresas automatizar la integración con diferentes sistemas para la reconciliación con lo que se eliminan así los procesos manuales, acelera los ciclos de facturación y reduce costos.

En México, la facturación electrónica es un mecanismo de comprobación fiscal que se basa en el aprovechamiento de medios electrónicos para la generación, procesamiento, transmisión y resguardo de los documentos fiscales de manera digital. Con la reforma al artículo 29 del Código Fiscal de la Federación, se dispone que, a partir del 1 de enero de 2011, inicie de manera paulatina su uso generalizado, con ello, los contribuyentes deberán expedir documentos digitales como comprobantes por las actividades que realicen. Desde 2005, la facturación electrónica existe como un esquema opcional para la emisión de comprobantes fiscales, por lo que los contribuyentes pueden comenzar a utilizar la facturación electrónica desde ahora y aprovechar sus ventajas:

  • Reducción del costo por facturación.
  • Seguridad y rapidez en la emisión de comprobantes.
  • Simplificación de los procedimientos administrativos.
  • Disminución del uso de papel, lo que contribuye a la preservación del medio ambiente.
  • Mejora el servicio al cliente.
  • Reduce costos y errores en el proceso de generación, captura, entrega y almacenamiento.
  • Mayor control documental.

Con la facturación electrónica se genera una mayor seguridad jurídica, lo que ayuda a disminuir la generación de comprobantes apócrifos que afectan a la economía formal, por lo que su uso disminuye los riesgos de fraude y de evasión fiscal.

http://www.sat.gob.mx/sitio_internet/asistencia_contribuyente/principiantes/comprobantes_fiscales/66_19217.html


Requisitos para la facturación electrónica

En México, a partir del 2011 se requiere la facturación electrónica CFDI (Comprobante Fiscal Digital).

Los requisitos que deben cumplir las Facturas Electrónicas (CFDI) en medios virtuales, están documentados en la páginas del Servicio de Administración Tributaria:

http://www.sat.gob.mx/sitio_internet/asistencia_contribuyente/principiantes/comprobantes_fiscales/66_19090.html

Este debe contener información como, clave del Registro Federal de Contribuyentes de quien los expida, régimen fiscal en que tributen conforme a la Ley del ISR, el domicilio del local o establecimiento en el que se expidan las Facturas Electrónicas, el número de folio asignado por el SAT, entre otros. Además debe contener los siguientes datos:

  1. Folio asignado por el SAT.
  2. Fecha y hora de certificación.
  3. Número de serie del certificado digital del SAT con el que se realizó el sellado.
  4. Sello digital del SAT.

El comprobante fiscal es un documento XML que debe cumplir las especificaciones técnicas establecidas en la Resolución Miscelánea Fiscal y su Anexo 20 (el cual se puede consultar en el portal del SAT, a saber:

http://www.sat.gob.mx/sitio_internet/e_sat/comprobantes_fiscales/15_17416.html

  • Utilizar el estándar del comprobante fiscal digital a través de Internet extensible [XML] (esquema-comprobante.xsd).
  • Contemplar las reglas para la generación del sello digital de las Facturas Electrónicas (CFDI).

Algunos sistemas de cifrado usan la firma digital para verificar el origen del mensaje y la identidad de quien lo envía. Una firma digital es diferente para cada transacción. Los sistemas de cifrado con llave pública como el RSA pueden producir firmas digitales muy fácilmente. Si un mensaje es firmado con una llave privada puede validarse su autenticidad con la llave pública. Si hubo una alteración de la firma o del mensaje original, la firma no podrá verificarse.

En el CFDI la parte central que nos permite garantizar la autenticidad del comprobante digital es el sello.

El anexo 20 establece el siguiente procedimiento para generar el sello digital.

Para toda cadena original a ser sellada digitalmente, la secuencia de algoritmos a aplicar es la siguiente:

I.- Aplicar el método de digestión SHA-1 cadena original a sellar incluyendo los nodos Complementarios. Este procedimiento genera una salida de 160 bits (20 bytes) para todo mensaje. La posibilidad de encontrar dos mensajes distintos que produzcan una misma salida es de 1 en 2160, y por lo tanto en esta posibilidad se basa la inalterabilidad del sello, así como su no reutilización. Es de hecho una medida de la integridad del mensaje sellado, pues toda alteración del mismo provocará una digestión totalmente diferente, por lo que no se podrá autentificar el mensaje.

II.- Con la clave privada correspondiente al certificado digital del emisor del mensaje y del sello digital, encriptar la digestión del mensaje obtenida en el paso I utilizando para ello el algoritmo de encripción RSA.

III.- El resultado será una cadena binaria que no necesariamente consta de caracteres imprimibles, por lo que deberá traducirse a una cadena que conste solamente de tales caracteres. Para ello se utilizará el modo de expresión de secuencias de bytes denominado "Base 64", que consiste en la asociación de cada 6 bits de la secuencia a un elemento de un "alfabeto" que consta de 64 caracteres imprimibles. Puesto que con 6 bits se pueden expresar los números del 0 al 63, si a cada uno de estos valores se le asocia un elemento del alfabeto se garantiza que todo byte de la secuencia original puede ser mapeado a un elemento del alfabeto Base 64, y los dos bits restantes formarán parte del siguiente elemento a mapear. Este mecanismo de expresión de cadenas binarias produce un incremento de 25% en el tamaño de las cadenas imprimibles respecto de la original.

La Cadena Original, será elemento a sellar, en este caso de un comprobante fiscal digital. Se entiende como cadena original, a la secuencia de datos formada con la información contenida dentro del comprobante fiscal digital. Esta se forma siguiendo para ello las reglas y la secuencia aquí especificadas en mismo Anexo.

En criptografía, SHA-1 es una función de hash criptográfica diseñada por la Agencia de Seguridad Nacional de Estados Unidos y publicado por el NIST de los Estados Unidos como Norma Federal para el procesamiento de la información. SHA es sinónimo de "algoritmo de hash seguro". Los tres algoritmos SHA se estructuran de manera diferente y se distinguen como SHA-0, SHA-1 y SHA-2. SHA-1 es muy similar a SHA-0, pero corrige un error en la especificación de hash SHA original, que dio lugar a importantes deficiencias.

El algoritmo RSA es uno de llave pública muy poderoso, el cual ha resistido los esfuerzos por romperlo. Típicamente los algoritmos de llave privada como el DES no pueden proteger contra un fraude de alguien que tenga la llave (el receptor o el que envía el mensaje). El algoritmo RSA, por otro lado, proporciona autentificación así como encripción. El algoritmo toma el nombre de sus inventores Rives, Shamir y Adleman, quienes lo inventaron en 1978 en el MIT. Este algoritmo usa dos llaves: una pública y otra privada. Las llaves del algoritmo RSA son generadas matemáticamente, en parte por la combinación de números primos muy grandes. La seguridad del algoritmo recae en el uso de números muy grandes ( 1024 bits).

Base64 es un grupo de esquemas de codificación que representa los datos binarios en un formato de cadena de caracteres ASCII traduciéndolo a una representación radix-64. El esquema de codificación Base64 se utiliza cuando hay una necesidad de codificar datos binarios que requieran ser almacenados y transferidos a través de los medios de comunicación que están diseñados para trabajar con datos textuales. Esto es para asegurar que los datos se mantienen intactos sin modificación durante el transporte.


Retos de implementación

Muchas empresas que se están incorporando a la facturación electrónica, actualmente presentan diferentes retos al momento de implementar las especificaciones establecidas por el SAT para poder garantizar la autenticidad y la integridad del comprobante electrónico. Entre los retos mas comunes podemos encontrar los siguientes:

Infraestructura: es frecuente optar en este tipo de soluciones por una infraestructura compuesta de diferentes componentes tales como software y hardware que permitan implementar las diversas políticas que conduzcan a establecer la lógica de implementación para la facturación electrónica. Es importante contar con una infraestructura robusta y que soporte capacidades de alta disponibilidad y poder de cómputo para el procesamiento de las transacciones. A su vez, el mantenimiento de las infraestructuras compuestas por hardware y software pasa a ser complejo y costoso en la mayoría de las veces, donde se deben cuidar diferentes niveles de fixes o parches tanto a nivel de sistema operativo como a nivel del software que se esté implementando.

Seguridad: los componentes de esta solución deben cumplir con los estándares de seguridad más recientes para cifrado y firma digital XML establecidos por la W3C (World Wide Web Consortium), la cual es una comunidad donde diferentes organizaciones, personal y público trabajan en conjunto para el desarrollo, la convergencia y la adopción de los estándares de comercio electrónico y servicios web. A su vez, deben ser ágiles en adaptarse a nuevos cambios o modificaciones en dichos estándares, ya que, si cambian las reglas de facturación electrónica, la adaptación se pueda hacer de una forma más rápida y fácil. Igualmente, está comprobado que procesar requerimientos de seguridad como firmas y cifrado digital en el XML requiere de un alto consumo en recursos como memoria y procesamiento en soluciones basadas en software y hardware.

Facilidad: incorporarse a la facturación digital no siempre es algo sencillo de implementar, en la mayoría de las veces se suele optar por realizar algún tipo de aplicación hecha con código a la medida que esté basada en lenguajes de programación comúnmente conocidos. Esto demanda un tiempo de implementación alto y a su vez los costos de desarrollo y mantenimiento son elevados, estas aplicaciones no son flexibles a adaptarse rápidamente a cambios y dependen de soluciones de infraestructuras robustas para poder satisfacer la carga de trabajo.

Puesta en marcha: otra problemática que se presenta en este tipo de soluciones es la velocidad con la cual se deben implementar los servicios que interactúan con la facturación electrónica. De ocurrir alguna modificación en las reglas de implementación para generar los comprobantes electrónicos, la puesta en marcha de los nuevos servicios o de los modificados debe ser lo suficientemente rápida desde su etapa de desarrollo hasta la puesta en producción. Se puede decir que el mayor tiempo en este ciclo está en la fase de desarrollo donde el desarrollador debe modificar la aplicación, depurarla y desplegarla para poder realizar pruebas.


Solución de implementación

Es muy importante para una organización poder contar con herramientas que permitan responder rápidamente y de manera fácil a los cambios del día a día del negocio. A su vez, dichas herramientas deben ser bajas en costos de mantenimiento y de rápido retorno de inversión.

La facturación electrónica está basada en una arquitectura orientada a servicios (SOA, por sus siglas en inglés), de está forma implementa estándares abiertos como XML, WS Security, entre otros. En la actualidad, las empresas buscan proporcionar dichos requisitos fundamentales de SOA sin tener que desembolsar cantidades considerables ni gestionar infraestructuras complejas y difíciles de gestionar.

IBM WebSphere DataPower SOA Appliance es una plataforma de hardware completa elaborada para un propósito específico, que permite hacer a las soluciones de SOA altamente gestionables, más seguras y escalables. Como hardware SOA especializado que es, WebSphere DataPower SOA Appliance proporciona, en un único dispositivo, muchas funciones principales de despliegues de SOA, como gestión a nivel de servicio, direccionamiento, transformaciones de datos y políticas, conexión con base de datos, obligatoriedad de políticas y control de acceso. Como ventaja adicional de la aplicación por hardware en la capa de red, está la capacidad de realizar comprobaciones estructurales más seguras, sin afectar al rendimiento.

WebSphere DataPower SOA Appliance también ofrece los niveles más altos de certificación de seguridad necesarios para empresas financieras y organismos oficiales, incluyendo la Infraestructura de clave pública (PKI), el Módulo de Seguridad de Hardware (HSM) del Estándar de Proceso de Información Federada (FIPS) Nivel 3. El conjunto del alto rendimiento de aceleración de hardware con un despliegue simplificado y la gestión continua consigue una mayor velocidad y un rendimiento más seguro, con una menor necesidad de conocimientos de programación en SOA, para poner el producto SOA en el mercado con mayor rapidez y mejorar los beneficios. WebSphere DataPower SOA Appliance es un dispositivo de red diseñado para los bastidores estándar.

WebSphere DataPower SOA Appliance es un dispositivo que soporta configuraciones en alta disponibilidad para poder garantizar la continuidad del negocio, a su vez, cuenta con características de autobalanceamiento sin necesidad de utilizar un balanceador por separado en frente de los dispositivos, igualmente realiza balanceo inteligente hacia el backend, ambas funcionalidades incorporadas en su característica de Application Optimization (AO).

Algunas otras funcionalidades que se pueden encontrar en WebSphere DataPower SOA Appliance:

  • Simplicidad en la instalación.
  • Simplicidad en el mantenimiento.
  • Altamente seguro para protección de la infraestructura (DMZ).
  • Inspección y validación de la información de forma rápida.
  • Protección y detección de amenazas del XML (plantillas pre-cargadas).
  • Control de acceso hacia las aplicaciones (AAA).
  • Compatible con los estándares de seguridad del mercado (W3C, Oasis, WS-I).
  • Seguridad e interoperabilidad de Web Services de forma sencilla, asegurando cumplir con temas como: WS-I, WS-Security, SAML, XACML.
  • Conexión con antivirus para proteger el tráfico que viaja por la DMZ.
  • Garantiza el nivel de servicio (SLM).
  • Cumple con FIPS 140-2 level 2 y 140-2 level 3.
  • Aceleración de SSL.
  • Cifrado y descifrado digital.
  • Firmas digitales y validación de firmas.
  • Hardware optimizado con simple actualización de un firmware.
  • Enrutamiento de la información basado en el contenido.
  • Intercambio de llaves PKI.
  • Garantiza el DoS (Denial of Service).
  • Cumplimiento de las normativas PCI.
  • Transformación de diversos formatos de mensajes como por ejemplo: COBOL, EBCDIC, ASCII, XML, SOAP, Flat Files, entre otros.
  • Interconexión mediante varios protocolos de comunicación como: MQ, FTP, HTTP, SSL, ODBC, entre otros.
  • Implementación de OAuth.
  • Integra y protege aplicaciones móviles utilizando el estándar JSON.

Arquitectura Propuesta

La arquitectura propuesta para cumplir con la implementación de la facturación electrónica está basada en dispositivos WebSphere DataPower SOA Appliance, los cuales pueden ser configurados en esquemas de alta disponibilidad para garantizar la continuidad de los servicios expuestos por la solución. Estos equipos pueden estar ubicados en la DMZ dentro de la arquitectura efectuando capacidades de seguridad, optimizando los firewall tradicionales, ya que los mismos están inspeccionando los paquetes de entrada y aplicando las acciones necesarias para cumplir con el procesamiento del algoritmo para la generación del sello digital.

Figura 1.
Alternative text for image

En la siguiente entrega llamada Implementación de la Factura Electrónica en México con WebSphere DataPower SOA Appliance. se demostrará como hacer una configuración dentro de los equipos WebSphere DataPower SOA Appliance para realizar la Facturación Electrónica y por temas de simplicidad en la arquitectura solamente se representará un solo equipo, sin especificar el ambiente de alta disponibilidad.


Referencias

Beneficios de la Factura Electrónica Beneficios de implementar la facturación electrónica en sus empresas.

Requisitos de la Facturación Electrónica Requisitos que deben cumplir las Facturas Electrónicas (CFDI).

Facturación Electrónica por el SAT Información general de la facturación electrónica por el SAT.

Servicio de Administración Tributaria Página oficial del Servicio de Administración Tributaria (SAT).

WebSphere DataPower SOA Appliances Página oficial de WebSphere DataPower SOA Appliances.

WebSphere DataPower SOA Appliances Library Información detallada del producto WebSphere DataPower SOA Appliances.

Cifrado Digital por la W3C Qué es el cifrado digital en XML especificado por la W3C.

Firma Digital por la W3C Qué es la firma digital en XML especificado por la W3C.

WebSphere DataPower Application Optimization Qué es y cómo utilizar la opción de Application Optimization.

XML Appliance Qué es y en qué se basa un appliance de XML.

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=WebSphere,
ArticleID=954133
ArticleTitle=Introducción a la facturación electrónica con WebSphere DataPower SOA Appliances en México
publish-date=09302013