Curso Facturae

60
Factura Electrónica Centro de Excelencia

description

Factura electronica en España

Transcript of Curso Facturae

Page 1: Curso Facturae

Factura Electrónica

Centro deExcelencia

Page 2: Curso Facturae

Página: 2 31/03/08 Factura Electrónica

Contenido

Formatos facturae y UBL.Servicios Web.Requerimientos.Normativa aplicable.Firma Electrónica.Demostración.

Page 3: Curso Facturae

Página: 3 31/03/08 Factura Electrónica

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.

Page 4: Curso Facturae

Página: 4 31/03/08 Factura Electrónica

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)

Page 5: Curso Facturae

Página: 5 31/03/08 Factura Electrónica

Formato Facturae

Elementos de primer nivel:

FileHeader Parties Invoices Extensions Referencia a Signature

Page 6: Curso Facturae

Página: 6 31/03/08 Factura Electrónica

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)

Page 7: Curso Facturae

Página: 7 31/03/08 Factura Electrónica

Formato Facturae

Page 8: Curso Facturae

Página: 8 31/03/08 Factura Electrónica

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.

Page 9: Curso Facturae

Página: 9 31/03/08 Factura Electrónica

Formato Facturae

Page 10: Curso Facturae

Página: 10 31/03/08 Factura Electrónica

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.

Page 11: Curso Facturae

Página: 11 31/03/08 Factura Electrónica

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, ...

Page 12: Curso Facturae

Página: 12 31/03/08 Factura Electrónica

Formato Facturae

Page 13: Curso Facturae

Página: 13 31/03/08 Factura Electrónica

Formato Facturae

Extensions: Para definiciones a incorporar en un futuro.

Referencia a Signature: La firma.

Page 14: Curso Facturae

Página: 14 31/03/08 Factura Electrónica

Formato Facturae

Page 15: Curso Facturae

Página: 15 31/03/08 Factura Electrónica

Documento Invoice (UBL 2.0)

Page 16: Curso Facturae

Página: 16 31/03/08 Factura Electrónica

Documento Invoice (UBL 2.0)

Page 17: Curso Facturae

Página: 17 31/03/08 Factura Electrónica

Documento Invoice (UBL 2.0)

Elementos Obligatorios: 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, ...

Page 18: Curso Facturae

Página: 18 31/03/08 Factura Electrónica

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.

Page 19: Curso Facturae

Página: 19 31/03/08 Factura Electrónica

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.

Page 20: Curso Facturae

Página: 20 31/03/08 Factura Electrónica

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.

Page 21: Curso Facturae

Página: 21 31/03/08 Factura Electrónica

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 implementación.

Page 22: Curso Facturae

Página: 22 31/03/08 Factura Electrónica

Funcionamiento

Page 23: Curso Facturae

Página: 23 31/03/08 Factura Electrónica

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 “request-response”, y tienen un estilo tipo “document”

Page 24: Curso Facturae

Página: 24 31/03/08 Factura Electrónica

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/downloadsindex.html

Componente sun-xslt-enginehttp://download.java.net/jbi/binaries/open-jbi-

components/main/patches/Build070914_2/xsltpatch/xslt.zip

Page 25: Curso Facturae

Página: 25 31/03/08 Factura Electrónica

Normativa

Requerimientos legales para el emisor:Tener el consentimiento previo del receptorGarantizar 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)

Page 26: Curso Facturae

Página: 26 31/03/08 Factura Electrónica

Normativa

Requerimientos legales para el receptor:Disponer del software necesario para la

validación de la firma electrónicaAlmacenar las facturas recibidas digitalmente

(factura y firma) en su formato originalLas 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).

Page 27: Curso Facturae

Página: 27 31/03/08 Factura Electrónica

Normativa

Orden PRE/2971/2007 REAL DECRETO 1496/2003LEY 56/2007 y LEY 59/2003Directiva Europea 1999/93/CEEHA/962/2007 RESOLUCIÓN 2/2003HAC/3134/2002ORDEN HAC/1181/2003

Page 28: Curso Facturae

Página: 28 31/03/08 Factura Electrónica

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.

Page 29: Curso Facturae

Página: 29 31/03/08 Factura Electrónica

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).

Page 30: Curso Facturae

Página: 30 31/03/08 Factura Electrónica

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.

Page 31: Curso Facturae

Página: 31 31/03/08 Factura Electrónica

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”.

Page 32: Curso Facturae

Página: 32 31/03/08 Factura Electrónica

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.

Page 33: Curso Facturae

Página: 33 31/03/08 Factura Electrónica

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.

Page 34: Curso Facturae

Página: 34 31/03/08 Factura Electrónica

Formato Facturae

Page 35: Curso Facturae

Página: 35 31/03/08 Factura Electrónica

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.

Page 36: Curso Facturae

Página: 36 31/03/08 Factura Electrónica

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.

Page 37: Curso Facturae

Página: 37 31/03/08 Factura Electrónica

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.

Page 38: Curso Facturae

Página: 38 31/03/08 Factura Electrónica

XAdES-EPES

SigningTimeSigningCertificateSignaturePolicyIdentifierCounterSignatureDataObjectFormatCommitmentTypeIdentifica

tion

SignatureProductionPlaceSignerRoleAllDataObjectTimeStamp IndividualDataObjectTime

Stamp

Page 39: Curso Facturae

Página: 39 31/03/08 Factura Electrónica

XAdES-EPES

El elemento “ds:Signature”.Al menos uno de los siguientes elementos:

SigningCertificateds: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.

Page 40: Curso Facturae

Página: 40 31/03/08 Factura Electrónica

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 30Huella digital de dicho documento, y

algoritmo usado en SigPolicyHash.SignerRole queda definido caso de usarse.

Page 41: Curso Facturae

Página: 41 31/03/08 Factura Electrónica

Firma DigitalLa 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”

Page 42: Curso Facturae

Página: 42 31/03/08 Factura Electrónica

Opciones de Firma

Page 43: Curso Facturae

Página: 43 31/03/08 Factura Electrónica

Opciones de Firma

Page 44: Curso Facturae

Página: 44 31/03/08 Factura Electrónica

Opciones de Firma

Page 45: Curso Facturae

Página: 45 31/03/08 Factura Electrónica

Demostraciones

Page 46: Curso Facturae

Página: 46 31/03/08 Factura Electrónica

Demostraciones

Page 47: Curso Facturae

Página: 47 31/03/08 Factura Electrónica

Demostraciones

Page 48: Curso Facturae

Página: 48 31/03/08 Factura Electrónica

Demostraciones

Page 49: Curso Facturae

Página: 49 31/03/08 Factura Electrónica

Demostraciones

Page 50: Curso Facturae

Página: 50 31/03/08 Factura Electrónica

Demostraciones

Page 51: Curso Facturae

Página: 51 31/03/08 Factura Electrónica

Demostraciones

Page 52: Curso Facturae

Página: 52 31/03/08 Factura Electrónica

Demostraciones

Page 53: Curso Facturae

Página: 53 31/03/08 Factura Electrónica

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}Facturae in the soap message Reported Cause: did not find any node matching the element name, {http://www.facturae.es/Facturae/2007/v3.0/Facturae}Facturae in the soap message

Page 54: Curso Facturae

Página: 54 31/03/08 Factura Electrónica

Demostraciones

Page 55: Curso Facturae

Página: 55 31/03/08 Factura Electrónica

Demostraciones

Page 56: Curso Facturae

Página: 56 31/03/08 Factura Electrónica

Demostraciones

Page 57: Curso Facturae

Página: 57 31/03/08 Factura Electrónica

WsDirectorioEmpresa

Page 58: Curso Facturae

Página: 58 31/03/08 Factura Electrónica

DUDAS y COMENTARIOS

Page 59: Curso Facturae

Página: 59 31/03/08 Factura Electrónica

Próximos Pasos

Facturae v. 3.1

Integración con EDI: Mensaje INVOIC

Generación de Facturas

Page 60: Curso Facturae

Página: 60 31/03/08 Factura Electrónica

Contacto

Eduardo A. González Blanco

[email protected]