Factura Electrónica
Centro de Excelencia
Contenido Formatos facturae y UBL. Servicios Web. Requerimientos. Normativa aplicable. Firma Electrónica. Demostración.
31/03/08
Factura Electrónica
Página: 2
Facturae y UBL Invoice 2.0 Desde el 16 de octubre de 2007, el formato “AEAT-CCI” ha sido adoptado por la Administración General del Estado, pasando a llamarse “Facturae”. A partir del esquema AEAT-CCI versión 2.0 se ha obtenido el esquema Facturae versión 3.0. La información actualizada sobre los esquemas, y otras, del formato Facturae se encuentra disponible en:
http://www.facturae.es Actualmente, la última versión de “Facturae” es la 3.1.
31/03/08
Factura Electrónica
Página: 3
Facturae y UBL Invoice 2.0
UBL (Universal Business Language) es el producto de un esfuerzo internacional para definir una librería de documentos de negocio XML estándar, como pedidos y facturas. http://www.oasis-open.org/specs/index.php#ublv2.0 Ha sido desarrollado por un comité técnico de OASIS (Organization for the Advancement of Structured Information Standards)
31/03/08
Factura Electrónica
Página: 4
Formato Facturae Elementos de primer nivel:
31/03/08
FileHeader Parties Invoices Extensions Referencia a Signature
Factura Electrónica
Página: 5
Formato Facturae Elementos de primer nivel: FileHeader: Versión Modalidad (Individual o Lote), Parte que firma la factura (emisor, receptor, tercera parte) Si es preciso, datos de la tercera parte. Lote: Identificador del lote, número de facturas que lo componen, totales monetarios de las facturas y moneda en la que se emite la factura. Datos cesión factoring (cesionario, detalles de pago, cláusulas)
31/03/08
Factura Electrónica
Página: 6
Formato Facturae
31/03/08
Factura Electrónica
Página: 7
Formato Facturae
Parties: Vendedor y Comprador, diferenciando en ambos entre persona física y empresa. En ambos se especifica: Identificación Fiscal: Persona física o jurídica, Extranjero, Residente o Comunitario, Código de identificación fiscal. Identificación de la Parte: número de referencia de la entidad del programa de facturación que utilice. Centros Administrativos. Datos de la persona física o la empresa, diferenciando entre dirección nacional y extranjera.
31/03/08
Factura Electrónica
Página: 8
Formato Facturae
31/03/08
Factura Electrónica
Página: 9
Formato Facturae Invoices: Secuencia de UNA ó MÁS facturas. Cabecera: Número de factura, Número de serie, Tipo de factura (completa, abreviada, autofactura), Clase de factura (Original / Copia / Rectificativa). Datos adicionales caso de ser rectificativa. Datos de emisión de factura: Fecha, Lugar de expedición, Periodo de facturación ... Impuestos, tipo de impuesto, porcentaje, base imponible, total impuestos.
31/03/08
Factura Electrónica
Página: 10
Formato Facturae
Invoices: Secuencia de UNA ó MÁS facturas. Totales de la factura, suma de importes brutos totales, antes de impuestos, impuestos repercutidos, retenidos, total de la factura, total a pagar, total a ejecutar ... Por línea de la factura (escandallo): Descripción, cantidad, precio unitario, total parcial, cargos y descuentos, total a pagar, impuestos de la línea, ...
31/03/08
Factura Electrónica
Página: 11
Formato Facturae
31/03/08
Factura Electrónica
Página: 12
Formato Facturae Extensions: Para definiciones a incorporar en un futuro.
Referencia a Signature: La firma.
31/03/08
Factura Electrónica
Página: 13
Formato Facturae
31/03/08
Factura Electrónica
Página: 14
Documento Invoice (UBL 2.0)
31/03/08
Factura Electrónica
Página: 15
Documento Invoice (UBL 2.0)
31/03/08
Factura Electrónica
Página: 16
Documento Invoice (UBL 2.0) Elementos Obligatorios:
31/03/08
ID: Identificador de la factura IssueDate: Fecha de la factura AccountingSupplierParty: Datos del emisor de la factura. AccountingCustomerParty: Datos del receptor de la factura. LegalMonetaryTotal: Cantidad total a pagar. Cantidad en las líneas de la factura, Cantidad total excluida de impuestos, Cantidad total incluidos impuestos,Cantidad total de cargos, Cantidad pre-pagada, ...
Factura Electrónica
Página: 17
Documento Invoice (UBL 2.0)
Elementos Obligatorios: InvoiceLine (1..n): Idetificador de la línea. Total de la línea (incluyendo descuentos) sin impuestos. Artículo.
Optativos en InvoiceLine: Precio. Cantidad Facturada.
31/03/08
Factura Electrónica
Página: 18
Servicios Web
Un Servicio Web es una aplicación software identificada por un URI [IETF RFC 2396], cuyas interfases y vínculos pueden ser definidos, descritos y descubiertos por artefactos XML, y soporta interacciones directas con otras aplicaciones software usando mensajes XML, vía protocolos basados en Internet. Para la descripción de servicios web se utiliza WSDL, lenguaje basado en XML.
31/03/08
Factura Electrónica
Página: 19
Nomenclatura XSLT. Lenguaje para transformar documentos XML en otros documentos XML (W3C). Aunque esta es la definición dada por W3C, permite transformar documentos XML en otros documentos, incluyendo formatos que no son XML. Servicio XSLT. Este es el módulo que realizará las transformaciones indicadas. Además, en este módulo está asociado a la descripción del servicio web. ● Aplicación compuesta: Este módulo se usa para crear un ensamblaje de servicios que puedan ser desplegados a un servidor JBI (Java Business Integration). ● Glassfish: Servidor de aplicaciones proyectado por Sun Microsystems que implementa las tecnologías definidas en la plataforma Java EE y permite ejecutar aplicaciones que siguan esta especificación. ● OpenESB: Implementación de la JSR-208 (JBI). Extiende dicha especificación creando un “Enterprise Service Bus” (ESB) para múltiples instacias JBI.
31/03/08
Factura Electrónica
Página: 20
Nomenclatura JBI (Java Business Integration) define una parte de un ESB (Enterprise Service Bus), el contenedor de servicios. El contenedor de servicios es el punto donde realmente ocurre la integración, los distintos recursos de tecnología de la información (protocolos, aplicaciones, ficheros de datos etc.) se convierte en proveedores de servicios, consumidores de servicios, o ambos. Los contenedores de servicios tienen que tratar con una gran variedad de tecnologías, y “mapear” a y desde modelos de servicios estándares. ● JBI es una forma perfecta de construir dichos contenedores de servicios. Proporciona una arquitectura estandarizada para llevar la tecnología apropiada a realizar tareas particulares de integración. El modelo de servicio WSDL, integrado en JBI, se alinea perfectamente con los servicios de modelo estándar necesitados para el ESB. ● SOAP (Simple Object Access Protocol): Protocolo ligero pensado para intercambio de información en ambientes descentralizados y distribuídos. Usa tecnologías XML para definir un marco de mensajería extensible. El marco de trabajo se ha diseñado para ser independiente de cualquier modelo de programación y de otras semánticas específicas de la Página: 21 Factura Electrónica 31/03/08 implementación. ●
Funcionamiento
31/03/08
Factura Electrónica
Página: 22
Funcionamiento El sistema realizado recibe un mensaje SOAP, realiza una transformación sobre el xml integrado en su “body” y devuelve otro mensaje SOAP con el resultado de dicha transformación El protocolo de comunicación de los servicios web es SOAP, y el transporte es “http”. Todas las operaciones son de tipo “requestresponse”, y tienen un estilo tipo “document”
31/03/08
Factura Electrónica
Página: 23
Requerimientos Además de los paquetes de conversión, para la instalación se requiere: Servidor de aplicaciones Glassfish https://glassfish.dev.java.net/public/downloadsind ex.html Componente sun-xslt-engine http://download.java.net/jbi/binaries/open-jbicomponents/main/patches/Build070914_2/xslt patch/xslt.zip
31/03/08
Factura Electrónica
Página: 24
Normativa
Requerimientos legales para el emisor: Tener el consentimiento previo del receptor Garantizar la autenticidad de origen y la integridad de las facturas (firma electrónica avanzada) Almacenar copia de las facturas. Este requisito no es necesario si se puede reconstruir una factura a partir de la información guardada en la base de datos de la empresa (matriz) Las facturas almacenadas deben contener determinados elementos que faciliten su búsqueda, visualización e impresión en caso de inspección (acceso completo a los datos)
31/03/08
Factura Electrónica
Página: 25
Normativa Requerimientos legales para el receptor: Disponer del software necesario para la validación de la firma electrónica Almacenar las facturas recibidas digitalmente (factura y firma) en su formato original Las facturas almacenadas deben contener determinados elementos que faciliten su visualización, búsqueda selectiva, copia o descarga en línea e impresión en caso de inspección (acceso completo a los datos).
31/03/08
Factura Electrónica
Página: 26
Normativa
Orden PRE/2971/2007 REAL DECRETO 1496/2003 LEY 56/2007 y LEY 59/2003 Directiva Europea 1999/93/CE EHA/962/2007 RESOLUCIÓN 2/2003 HAC/3134/2002 ORDEN HAC/1181/2003
31/03/08
Factura Electrónica
Página: 27
Firma Digital
Elemento “Signature” en facturae (Orden PRE/2971/2007): Aunque se establece como opcional para facilitar la verificación y el tránsito del fichero, debe cumplimentarse este elemento para que se considere una factura electrónica válida legalmente frente a terceros.
31/03/08
Factura Electrónica
Página: 28
Firma Digital ¿Qué es la firma digital? Un valor calculado con un algoritmo criptográfico y anexado a un objeto de datos de tal forma que cualquier recipiente de los datos pueda usar la firma para verificar el origen y la integridad de los datos (RFC 2828).
31/03/08
Factura Electrónica
Página: 29
Firma Digital XML Signature: Recomendación del W3C que define una sintasis XML para firmas digitales. También se conoce como XMLDsig, XML-DSig, XML-Sig. Puede utilizarse para firma datos de cualquier tipo, típicamente documentos XML, pero todo aquello accesible a través de una URI puede ser firmado digitalmente.
31/03/08
Factura Electrónica
Página: 30
Firma Digital Tipos de firmas: “Detached”: La firma y los datos firmados están en distintos documentos. “Enveloping”: La firma es sobre datos que están dentro del elemento “Signature”. “Enveloped”: La firma es sobre datos, que contienen el elemento “Signature”.
31/03/08
Factura Electrónica
Página: 31
Firma Digital
Una firma XML consiste en un elemento Signature en el espacio de nombres http://www.w3.org/2000/09/xmldsig# Su estructura básica es: SignedInfo: Especifica qué fue firmado, y con qué algoritmo. SignatureMethod: Este elemento, que se puede usar junto con CanonicalizationMethod, los usa el elemento SignatureValue para protección contra falsificaciones.
31/03/08
Factura Electrónica
Página: 32
Firma Digital Reference: Lista de elementos que especifica qué recursos se han firmado, utilizando referencias URI. SignatureValue: Valor de la firma, codificado en Base64. KeyInfo: Elemento opcional que permite a los recipientes obtener la clave necesaria para validar la firma (típicamente, certificado X.509). Contiene información sobre la clave usada para firmar y la clave que se debe usar para verificar la firma. Object: Elemento opcional, utilizado para almacenar los datos firmados.
31/03/08
Factura Electrónica
Página: 33
Formato Facturae
31/03/08
Factura Electrónica
Página: 34
Firma Digital Orden PRE/2971/2007: La autenticidad del origen e integridad del contenido de las facturas electrónicas que tengan por destinatario las Administraciones Públicas a las que se aplica la presente orden, en el ámbito de la contratación administrativa, así como la de aquellas que, expedidas entre particulares, se presenten telemáticamente ante tales Administraciones Públicas en el curso de cualquier procedimiento administrativo, se garantizará mediante la exigencia de firma electrónica avanzada, en los términos previstos en el artículo 3.2 de la Ley 59/2003, de 19 de diciembre, de firma electrónica. 31/03/08
Factura Electrónica
Página: 35
Firma Digital XAdES: XML Advanced Electronic Signature. Se trata de un conjunto de extensiones a la recomendación XML-DSig, que permiten la firma digital avanzada. Cumple la Directiva Europea 1999/93/EC del Parlamento Europeo.
31/03/08
Factura Electrónica
Página: 36
Firma Digital Facturae define dos formatos de firma electrónica: XAdES-EPES (ETSI TS 101 903 v1.2.2). Contiene los elementos mínimos y necesarios para que la firma se considere firma electrónica avanzada acorde con la ley 59/2003. XAdES-X-L Proporciona evidencias suficientes que garanticen la validez de la firma de la factura ante terceros.
31/03/08
Factura Electrónica
Página: 37
XAdES-EPES SigningTime SigningCertificate SignaturePolicyIdentifier CounterSignature DataObjectFormat CommitmentTypeIdentifica tion
31/03/08
SignatureProductionPlace SignerRole AllDataObjectTimeStamp IndividualDataObjectTime Stamp
Factura Electrónica
Página: 38
XAdES-EPES El elemento “ds:Signature”. Al menos uno de los siguientes elementos: SigningCertificate ds:KeyInfo
El elemento “SignaturePolicyIdentifier”: Conjunto de reglas para la creación y validación de firmas electrónicas, bajo las cuales puede determinarse que la firma es válida.
31/03/08
Factura Electrónica
Página: 39
XAdES-EPES SignedInfo debe contener las referencias especificadas en el documento firmadoFacturaev30.pdf El elemento “KeyInfo” debe contener el certificado firmante en base64. El elemento xades:SignaturePolicyIdentifier debe incluir: Referencia explícita al documento de firma facturae 30 Huella digital de dicho documento, y algoritmo usado en SigPolicyHash. SignerRole queda definido caso de usarse.
31/03/08
Factura Electrónica
Página: 40
Firma Digital La firma se considera un campo más, y se debe aplicar a:
Todos los elementos de la factura Los elementos de firma ubicados en el contenedor “SignedProperties” El certificado digital con el que se ha firmado incluido en el elemento “KeyInfo”
31/03/08
Factura Electrónica
Página: 41
Opciones de Firma
31/03/08
Factura Electrónica
Página: 42
Opciones de Firma
31/03/08
Factura Electrónica
Página: 43
Opciones de Firma
31/03/08
Factura Electrónica
Página: 44
Demostraciones
31/03/08
Factura Electrónica
Página: 45
Demostraciones
31/03/08
Factura Electrónica
Página: 46
Demostraciones
31/03/08
Factura Electrónica
Página: 47
Demostraciones
31/03/08
Factura Electrónica
Página: 48
Demostraciones
31/03/08
Factura Electrónica
Página: 49
Demostraciones
31/03/08
Factura Electrónica
Página: 50
Demostraciones
31/03/08
Factura Electrónica
Página: 51
Demostraciones
31/03/08
Factura Electrónica
Página: 52
Demostraciones • javax.jbi.messaging.MessagingException: Failed to normalize input. Could not normalize message did not find any node matching the element name, {http://www.facturae.es/Facturae/2007/v3.0/Facturae}Fac turae in the soap message Reported Cause: did not find any node matching the element name, {http://www.facturae.es/Facturae/2007/v3.0/Facturae}Fac turae in the soap message
31/03/08
Factura Electrónica
Página: 53
Demostraciones
31/03/08
Factura Electrónica
Página: 54
Demostraciones
31/03/08
Factura Electrónica
Página: 55
Demostraciones
31/03/08
Factura Electrónica
Página: 56
WsDirectorioEmpresa
31/03/08
Factura Electrónica
Página: 57
DUDAS y COMENTARIOS
31/03/08
Factura Electrónica
Página: 58
Próximos Pasos
Facturae v. 3.1 Integración con EDI: Mensaje INVOIC Generación de Facturas
31/03/08
Factura Electrónica
Página: 59
Contacto
Eduardo A. González Blanco
[email protected]
31/03/08
Factura Electrónica
Página: 60