Facturación electronica - España

User avatar
Alfredo Arteaga
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico
Contact:

Re: Facturación electronica - España

Post by Alfredo Arteaga »

Veo que para enfrentar la fiebre de la Facturación Electrónica tenemos un problema comun.

Para generar y encriptar la firma digital (universal) se requiere del algoritmo RSA y este no ha sido incorporado a [x]Harbour.

Los desarrolladores se han preocupado por tener librerías disponibles para Java, .Net, VB, C#... pero parece que estan olvidando a Borland C++.

Si logramos superar esa situación ya tendremos la vacuna desde FWH.

Aqui algunas ligas de referencia:

http://msdn.microsoft.com/en-us/library ... vider.aspx
http://casidiablo.net/implementacion-de ... a-parte-1/
http://www.openssl.org/
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Facturación electronica - España

Post by José Vicente Beltrán »

pcordonet wrote:A parte de firmar los xml,

Alguien sabe como se tienen que enviar los ficheros ?
Tienen que estar en un servidor de internet ?
Se envian por correo electronico ?
......
Pienso que la definición es el punto de partida:
AEAT wrote:La facturación electrónica es un equivalente funcional de la factura en papel y consiste en la transmisión de las facturas o documentos análogos entre emisor y receptor por medios electrónicos (ficheros informáticos) y telemáticos (de un ordenador a otro), firmados digitalmente con certificados reconocidos.

El Anteproyecto de Ley de Medidas de Impulso de la Sociedad de la Información define la factura electrónica como “un documento electrónico que cumple con los requisitos legal y reglamentariamente exigibles a las facturas y que, además, garantiza la autenticidad de su origen y la integridad de su contenido, lo que permite atribuir la factura a su obligado tributario emisor”.

De está definición extendida en todo el mercado, se transmite tres condicionantes para la realización de e-Factura:

* Se necesita un formato electrónico de factura de mayor o menor complejidad (EDIFACT, XML, PDF, html, doc, xls, gif, jpeg o txt, entre otros).
A mi entender el mejor formato para esto puede ser el XML
* Es necesario una transmisión telemática (tiene que partir de un ordenador, y ser recogida por otro ordenador).
En principio entiendo que puede enviarse por cualquier sistema incluyendo el correo electrónico.
* Este formato electrónico y transmisión telemática, deben garantizar su integridad y autenticidad a través de una firma electrónica reconocida.

El artículo 3.3 de la Ley 59/2003 de 19 de diciembre define la firma electrónica reconocida como:

“la firma electrónica avanzada basada en un certificado reconocido y generada mediante un dispositivo seguro de creación de firma”.

Es decir, se tienen que dar tres condicionantes para que se de la firma electrónica reconocida:

1. Que sea una firma electrónica avanzada.
2. Que esté basada en un certificado reconocido, siendo certificado reconocido aquél que “cumpla los requisitos establecidos en esta Ley en cuanto “a la comprobación de la identidad y demás circunstancias de los solicitantes”.
3. Que sea generada mediante un dispositivo seguro de creación de firma,es decir, aquel que ofrece, al menos, las siguientes garantías:
Parece que lo de arriba es nuestro mayor problema.
El resto de la definición siempre tomado de la AEAT es:
* Que los datos utilizados para la generación de firma pueden producirse sólo una vez y asegura razonablemente su secreto.
* Que existe una seguridad razonable de que los datos utilizados para la generaciónde firma no pueden ser derivados de los de verificación de firma o de la propia firma y de que la firma está protegida contra la falsificación con la tecnología existente encada momento.
* Que los datos de creación de firma pueden ser protegidos de forma fiable por el firmante contra su utilización por terceros.
* Que el dispositivo utilizado no altera los datos o el documento que deba firmarse ni impide que éste se muestre al firmante antes del proceso de firma.” (Art. 24.3).

Por último y para que tuviera la facturación electrónica la misma validez legal que una factura en papel, se necesita el consentimiento de ambas partes (emisor y receptor).
saludos :shock:
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Facturación electronica - España

Post by José Vicente Beltrán »

ejemplo de factura generada en formato XML

como veis contiene la firma electrónica como attachment. Podríamos usarla como modelo si os parece.

http://www.facturae.es/es-ES/Descargas/ ... o_32v1.xml

:shock:
User avatar
mgsoft
Posts: 398
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: Facturación electronica - España

Post by mgsoft »

Hola:

Facturaplus sí lo permite. Generan un XML y lo firman, creo que usan alguna .dll.

Investigo y os cuento.

Un saludo
Saludos,

Eduardo
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Facturación electronica - España

Post by José Vicente Beltrán »

Bueno otra vuelta de tuerca es que utilizando el componente de la AEAT es muy sencillo de resolver el tema al menos sobre una factura generada en PDF pero creo que funciona igual sobre cualquier otro formato.

1. descargar el componente http://www.aeat.es/AEAT/Contenidos_Comu ... atfact.cab

2. descomprimir e instalar el componente utilizando regsvr32 aeatfact.dll

3. Es necesario un poco de codigo para firmar el documento

Code: Select all

function GeneraFacFirmada()
local hLIB := LoadLib32( "c:\window\system32\aeatfact.dll" )
local xRutaOrigen:= "E:\FACTURA.PDF"
local xRutaDestino:= "E:\FACTURA.FIR"
local xnif := "1111111R"
local oFirma := CreateObject( "AEATFACT.AeatFactCtl" )
local ret := oFirma:FIRMA( xRutaOrigen, xnif, xRutaDestino )
// descargo la librería //
FreeLibrary(hLIB)
return
 
4. Y 'voila' ya tenemos el documento firmado
5. Enviamos el documento al receptor
6. el cual debe verificarlo (otro poco de codigo)

Code: Select all

function VerificaFacFirmada()
local hLIB := LoadLib32( "c:\window\system32\aeatfact.dll" )
local xRutaOrigen:= "E:\FACTURA.FIR"
local xRutaDestino:= "E:\FACTURA.PDF"
local oVerifica := CreateObject( "AEATFACT.AeatFactCtl" )
local ret := oVerifica:VERIFICA( xRutaOrigen, xRutaDestino )
// descargo la librería //
FreeLibrary(hLIB)
return
 
Naturalmente el receptor debe tener instalado el componente aeatfact.dll y estar conectado a Internet en el momento de verificar la firma.

Eso es todo si usamos el componente de la AEAT otro cantar es generarlo con xHarbour
:shock:
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Facturación electronica - España

Post by thefull »

No hace falta cargar la dll, con el createobjet() es suficiente.
Sigo atento a todo el hilo, me parece un tema super interesante.
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Facturación electronica - España

Post by José Vicente Beltrán »

thefull wrote:No hace falta cargar la dll, con el createobjet() es suficiente.
Sigo atento a todo el hilo, me parece un tema super interesante.
Es cierto, gracias por la observación. :shock:
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Facturación electronica - España

Post by Manuel Valdenebro »

Jose Vicente,

Funciona EXCELENTE. Muchas gracias y felicidades. Creo que es la mejor opción, porque los clientes en España, a los que se les envie la factura electrónica, van a tener la dll de Hacienda. He comprobado el módulo "verificarfactura" y funciona perfectamente con facturas electrónica que he recibido de mis proveedores.

Por tanto, el módulo de comprobación de firma, puede valer, tanto para verificar la correcta emisión de una factura, como para comprobar la firma de las facturas recibidas.

Las facturas electrónicas que recibo, normalmente, vienen en formato pdf y html. Yo prefiero una factura en PDF, porque es mas dificil su manipulación.

Pero las facturas electrónicas no sólo hay que enviarlas (pdf + firma) sino archivarlas. Y para eso (creo) que cada factura y su firma correspondiente, deberían tener nombre de fichero diferentes y no uno genérico de '<<factura.pdf>>.

Por ejemplo: F1234_2009.pdf y F1234_2009.fir

El problema de las pdf es generarla de esta forma personalizada. Yo vengo utilizando PDF-Creator, pero es un proceso manual y laborioso que conlleva una posibilidad de error grande por parte de los usuarios. Creo que si pudieramos usar la clase TPDF, podriamos crear cada factura con un número diferente, que quedara guardada en un directorio en concreto, junto con su firma, que igualmente, debería ser diferente (el nombre del fichero) para cada factura.
Un saludo

Manuel
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Facturación electronica - España

Post by José Vicente Beltrán »

Gracias Manuel,
Manuel Valdenebro wrote:Pero las facturas electrónicas no sólo hay que enviarlas (pdf + firma) sino archivarlas. Y para eso (creo) que cada factura y su firma correspondiente, deberían tener nombre de fichero diferentes y no uno genérico de '<<factura.pdf>>.
Naturalmente <factura.pdf> no es mas que un nombre-ejemplo, yo suelo nombrar los archivos con el número de cliente+fecha.dbf, esto hace que cada archivo sea unico y por tanto pueda archivarse sin problemas.
El problema de las pdf es generarla de esta forma personalizada. Yo vengo utilizando PDF-Creator, pero es un proceso manual y laborioso que conlleva una posibilidad de error grande por parte de los usuarios. Creo que si pudieramos usar la clase TPDF, podriamos crear cada factura con un número diferente, que quedara guardada en un directorio en concreto, junto con su firma, que igualmente, debería ser diferente (el nombre del fichero) para cada factura.
Yo hace tiempo usaba tambien PDF-Creator, pero descubrí que en determinados entornos de red no funciona siempre bién, así que despues de mucho buscar me decidí por image2pdf que aunque es de pago merece la pena con creces porque hace todo lo que comentas a partir del preview de FWH sin ningúna clase de problemas y además con una curva de aprendizaje prácticamente nula.
También es muy util para unir varios PDF en uno solo PDFTK.exe este es gratutito y de libre distribución.:shock:
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Facturación electronica - España

Post by thefull »

Y dentro de mi ignorancia, ¿ no es posible usar sistemas como OpenPGP ?
Es que no entiendo bien el concepto de 'firma electrónica'.
Bajo mi punto de vista, creo que un sistema de clave publica/privada como OpenPGP, debería servir , ¿ no ?
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
José Vicente Beltrán
Posts: 279
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España
Contact:

Re: Facturación electronica - España

Post by José Vicente Beltrán »

Rafa,
no me hagas mucho caso, pero creo que, en España, para que la firma digital sea reconocida legalmente, debe hacer uso de las claves contenidas en un certificado como el de la FNMT o similar y no se si OpenPGP lo hace así, en cualquier caso creo que a nivel institucional siempre es mejor utilizar un componente facilitado por la AEAT que cualquier otro.

saludos :shock:
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Facturación electronica - España

Post by Manuel Valdenebro »

José Vicente Beltrán wrote:Rafa,
no me hagas mucho caso, pero creo que, en España, para que la firma digital sea reconocida legalmente, debe hacer uso de las claves contenidas en un certificado como el de la FNMT o similar y no se si OpenPGP lo hace así, en cualquier caso creo que a nivel institucional siempre es mejor utilizar un componente facilitado por la AEAT que cualquier otro.
Las facturas emitidas en España, tienen que tener una serie de requisitos para no tener problemas con Hacienda. Estos requisitos estan contemplados en el artículo 6 del RD 1496/2003.

En cuanto a las facturas electrónicas, la misma AEAT dice: "Para cumplir con la norma y que una factura electrónica tenga la misma validez legal que una emitida en papel, el documento electrónico que la representa debe contener _ obligatorios exigibles a toda factura, estar firmado mediante una firma electrónica avanzada basado en certificado reconocido y ser transmitido de un ordenador a otro recogiendo el consentimiento de ambas partes. "

Recalco lo de CERTIFICADO RECONOCIDO.

Hacienda reconoce una serie de emisoras de certificados (ademas de la FNMT), pero si el destinatario de la factura es residente en otro pais de la CEE, el emisor de la certificación tiene que estar reconocido en un organismo oficial de la CEE y si se envia a otro pais fuera de la CEE, el emisor del certificado tiene que estar reconocido por un organismo internacional especifico (creo que se llama UNECE). Por tanto, lo mas seguro en España, es utilizar el certificado de la FNMT (Fábrica Nacional de Monedas y Timbres) que tiene validez mundial.

Valiente lio.
Un saludo

Manuel
User avatar
thefull
Posts: 720
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona
Contact:

Re: Facturación electronica - España

Post by thefull »

"Recalco lo de CERTIFICADO RECONOCIDO."
Esperemos que este no sea el camino a 'cobrar' por usar ese CERTIFICADO RECONOCIDO, que en ese país,
con lo borregos que tenemos como representantes, no les dé por poner una tasa a cada factura electrónica...
( Vaya por dios, ya les he dado ideas de como estrangularnos más ;-) )

Gracias por la info, se me había pasado por completo.
Saludos
Rafa Carmona ( rafa.thefullARROBAgmail.com___quitalineas__)
User avatar
Manuel Valdenebro
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Facturación electronica - España

Post by Manuel Valdenebro »

thefull wrote:"Recalco lo de CERTIFICADO RECONOCIDO."
Esperemos que este no sea el camino a 'cobrar' por usar ese CERTIFICADO RECONOCIDO, que en ese país,
con lo borregos que tenemos como representantes, no les dé por poner una tasa a cada factura electrónica...
( Vaya por dios, ya les he dado ideas de como estrangularnos más ;-) )
Creo que las aportaciones de Jose Vicente ofrecen una forma fácil, barata y segura de facturas electrónicas, emitidas en España.

Rafa, he visto en las contribuciones de xHarbour que la antigua pdflib.lib ha sido reformada recientemente por Enrico Maria. No sé si podría ser una ayuda para sustituir el viejo preview de FWH. Tambien está Harupdf, en la que creo ha participado Pritpal Bedi, que hace años hizo la libreria Vouch para Clipper, que emulaba a PageScript. Harupdf tiene todos los comandos en C.
Un saludo

Manuel
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Facturación electronica - España

Post by hmpaquito »

Manuel Valdenebro,

Comentas que recibes tus facturas en varios formatos de documento...

Pero tengo una duda, ¿ Puede la firma ir embebida (dentro) del propio documento y no como un archivo aparte .fir ? ¿ o la firma electronica siempre va en un fichero aparte al documento factura ?

Lo digo porque hay que tener en cuenta, a la hora de verificar cualquier formato de firma que nos puedan enviar los proveedores en sus efacturas.

Saludos
Post Reply