Facturación electronica - España

Re: Facturación electronica - España

Postby Alfredo Arteaga » Fri Feb 12, 2010 3:22 pm

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
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

Re: Facturación electronica - España

Postby José Vicente Beltrán » Fri Feb 12, 2010 3:39 pm

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: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Facturación electronica - España

Postby José Vicente Beltrán » Fri Feb 12, 2010 3:52 pm

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/Utilidades/factura_ejemplo_32v1.xml

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

Re: Facturación electronica - España

Postby mgsoft » Fri Feb 12, 2010 6:11 pm

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
mgsoft
 
Posts: 422
Joined: Mon Aug 17, 2009 12:18 pm
Location: España

Re: Facturación electronica - España

Postby José Vicente Beltrán » Fri Feb 12, 2010 6:34 pm

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_Comunes/La_Agencia_Tributaria/Informacion_Tributaria/Comercio_electronico/Informacion_Basica/Facturacion_Telematica/aeatfact.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  Expand view  RUN
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  Expand view  RUN
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
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Facturación electronica - España

Postby thefull » Fri Feb 12, 2010 9:22 pm

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
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Facturación electronica - España

Postby José Vicente Beltrán » Fri Feb 12, 2010 11:26 pm

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
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Facturación electronica - España

Postby Manuel Valdenebro » Sun Feb 14, 2010 11:50 am

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
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Facturación electronica - España

Postby José Vicente Beltrán » Sun Feb 14, 2010 2:39 pm

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
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Facturación electronica - España

Postby thefull » Mon Feb 15, 2010 12:23 pm

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
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Facturación electronica - España

Postby José Vicente Beltrán » Mon Feb 15, 2010 5:42 pm

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
José Vicente Beltrán
 
Posts: 282
Joined: Mon Oct 10, 2005 8:55 am
Location: Algeciras, España

Re: Facturación electronica - España

Postby Manuel Valdenebro » Mon Feb 15, 2010 7:18 pm

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 los campos 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
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Facturación electronica - España

Postby thefull » Wed Feb 17, 2010 8:41 am

"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
thefull
 
Posts: 731
Joined: Fri Oct 07, 2005 7:42 am
Location: Barcelona

Re: Facturación electronica - España

Postby Manuel Valdenebro » Thu Feb 18, 2010 6:04 am

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

Postby hmpaquito » Thu Feb 18, 2010 9:43 am

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
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 48 guests