Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1761  
Antiguo Hace 2 Días
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 899
Poder: 3
ermendalenda Va por buen camino
Hola, he leído en Linkedin un mensaje de que ha habido una ponencia de Javier Hurtado que habla de algo de que están estudiando que los del SII yengan obligación de verifactu o que los de autofacturas sii hagan verifactu.como no se entendía muy bien el mensaje, os pregunto si alguno tenéis noticia de ese congreso/ponencia.
Gracias
Responder Con Cita
  #1762  
Antiguo Hace 1 Día
novatico novatico is offline
Miembro
 
Registrado: dic 2022
Posts: 21
Poder: 0
novatico Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola, he leído en Linkedin un mensaje de que ha habido una ponencia de Javier Hurtado que habla de algo de que están estudiando que los del SII yengan obligación de verifactu o que los de autofacturas sii hagan verifactu.como no se entendía muy bien el mensaje, os pregunto si alguno tenéis noticia de ese congreso/ponencia.
Gracias
Acabo de hacer un búsqueda de "Javier Hurtado Puerta" que era (sí digo "era") Director del Departamento de Inspección Financiera y Tributaria de la AEAT, y me aparece una publicación en el BOE de 1 de Febrero de 2024, en la que se comunica su cese en dicho cargo. Yo he presenciado varios webinars de él junto con José Borja, Director Informático de la Agencia Estatal de Administración Tributaria, en los que detallaban diferentes aspectos de la Ley Antifraude y Verifactu. No sé si este cese puede tener que ver con los retrasos en la publicación de la OM.

https://www.boe.es/diario_boe/txt.ph...OE-A-2024-2097
Responder Con Cita
  #1763  
Antiguo Hace 1 Día
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.037
Poder: 22
keys Va por buen camino
Yo creo que no https://theobjective.com/economia/20...nchez-montero/

D. E. P.
Responder Con Cita
  #1764  
Antiguo Hace 1 Día
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 899
Poder: 3
ermendalenda Va por buen camino
Madre mía.
No creo que siga dando ponencias de verifactu
Aunque todo es posible
Responder Con Cita
  #1765  
Antiguo Hace 1 Día
Franche Franche is offline
Registrado
 
Registrado: abr 2024
Posts: 7
Poder: 0
Franche Va por buen camino
Posiblemente ahora si tendrá mucho más tiempo para hacer ponencias, de hecho, las está haciendo, creo que he visto una con Wolter Kluvers y fue hace un mes, creo recordar, osea, después de su despido.
Responder Con Cita
  #1766  
Antiguo Hace 1 Día
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.073
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El tipo ese es un vendido a los "fachas".
Responder Con Cita
  #1767  
Antiguo Hace 1 Día
Delphier Delphier is offline
Miembro
 
Registrado: feb 2024
Posts: 16
Poder: 0
Delphier Va por buen camino
Firma Digital por DLL y XML schema binding de facturae

Hola

OS dejo mi planteamiento sobre la generación de XML y Firma por si le sirve a alguien para algo o le sirve de idea.
La idea es aplicar el sistema de Firma por DLL para Verifactu y para facturae.


1-Guardar el certificado digital y la contraseña encriptada en la base de datos

Código:
        FileStream := TMemoryStream.Create;
        FileStream.LoadFromFile(Filename); // Fichero del certificado

        TempStream := TMemoryStream.Create;
        TempStream := EncriptarStream(FileStream);

        TBlobField(Dataset.FieldByName('CertFirmaDigital')).LoadFromStream(TempStream);
2-Para firmar XML facturae y "Verifactu (Cuando se publique si es válida) "

Me acordé que hace unos años compré xmlblackbox para Delphi XE3 y no lo había usado nunca.
Se me ocurrió que para no andar comprando librerias constantemente , se podía hacer una DLL con Delphi XE3 para firmar y poder usarla con mis aplicaciones de Delphi 11, etc...

Código de la DLL con la funcion de firma en la carpeta DLLFirma y también las DLL compiladas por si sacan a alguien del paso, dejo el enlace para la descarga porque es demasiado grande para adjuntar con las DLL compiladas


h t t p s : // drive.google.com/file/d/1vrtpSGHje-l-3XW6peIGqYxHkH0g9aYx/view?usp=drive_link


Código:
// Para comprobar si un certificvado es Valido , pasando un IStream
function StreamCertificadoValido(CertStream : IStream ; Password : Pchar) : Boolean;  StdCall;

// Para comprobar si un certificvado es Valido , pasando un String con la ubicación del fichero
function FicheroCertificadoValido(Filename,Password : Pchar) : Boolean;  StdCall;

// Para firmar el XML , devuelve el XML Firmado
function FirmaFacturae(CertStream,XMLFacturae : IStream ; Password : Pchar): Pchar; StdCall;

// Para obtener cierta información del certificado (La idea final es devolver un XML con todo, pero...)
function DatoCertificado(CertStream : IStream ; Password,Dato : Pchar) : Pchar;  StdCall;
Código:
   // Ejemplos LLamada a las funciones de la DLL desde la Aplicacion   

   //Definir las funciones
   function FirmaFacturae(CertStream,XMLFacturae : IStream ; Password : Pchar): Pchar;  StdCall; external 'DLLFirmaCrt.x32.dll'; 
   function FicheroCertificadoValido(Filename,Password : Pchar) : Boolean;  StdCall; external 'DLLFirmaCrt.x32.dll' name 'FicheroCertificadoValido'; 
   function StreamCertificadoValido(CertStream : IStream ; Password : Pchar) : Boolean;  StdCall; external 'DLLFirmaCrt.x32.dll' name 'StreamCertificadoValido'; 
   function DatoCertificado(CertStream : IStream ; Password,Dato : Pchar) : Pchar; StdCall; external 'DLLFirmaCrt.x32.dll' name 'DatoCertificado';


// Firmar XML facturae con la DLL
procedure TFr_user.ButtonClick(Sender: TObject);
var Fichero,XMLString,ResultadoXML : String;
var XSendCertificadoFirma,SendXMLStream : IStream;
var XMLFileStream : TStringStream;
var TempStream : TMemoryStream;
begin


     { Fichero := 'nombre del fichero xml o directamente usar XMLString' }

     XMLString := TFile.ReadAllText(Fichero,TEncoding.Unicode);

      // Test de firma

      // El certificado
      TBlobField(Dataset.FieldByName('CertFirmaDigital')).SaveToStream(TempStream);

      // Lo desencriptamos
      XCertificadoFirma := DesencriptarStream(TempStream);

      XCertificadoFirma.Seek(0,soFromBeginning);
      XSendCertificadoFirma := TStreamAdapter.Create(XCertificadoFirma, soReference); //soOwned

     //El XMl A firmar
     XMLFileStream := TStringStream.Create(XMLString,TEncoding.Unicode);
     SendXMLStream := TStreamAdapter.Create(XMLFileStream, soReference); // Adap`tamos a IStream

     if XSendCertificadoFirma <> nil then
     Begin

      ResultadoXML := FirmaFacturae(XSendCertificadoFirma,SendXMLStream,Pchar(XCertificadoPass));

      // SI ho hay error , guardamos el fichero
      if Copy(ResultadoXML,1,7) <> '<Error>' then
      Begin
       TFile.WriteAllText(FicheroFirmado,ResultadoXML,TEncoding.Unicode);
      End
      else
      Begin
        // Error
        f_control(nil,'M',f_frase('NO SE HA PODIDO FIRMAR DIGITALMENTE LA FACTURA.',0),ResultadoXML,'');
      End;

     End
     else
     Begin
       //Showmessage('No hay certificado');
     End;


      XMLFileStream.Free;
      SendXMLStream := nil;


end;



3- Mi planteamiento de como generar el XML verifactu ya corre por este hilo.


4- Para generar el XML facturae.

Usar el esquema que proporciona la AEAT y con XML Schema Binding generar el Pas "SistemaFacturaev3_2_2.pas" , lo adjunto en la carpetas Facturae.
UFacturaE.pas es un ejemplo no terminado 100% de como se genera facilmente el XML Facturae, funciona , pero añadir cosas, solo es un ejemplo de como usar SistemaFacturaev3_2_2.pas

Saludos

---------------------------------------------------------------------------------------------------------------

NOTA DEL MODERADOR: Añado los ficheros al FTP del club (junto a la documentación), con un pequeño fichero de texto en la misma ubicación con una explicación. Y actualizo el mensaje #2 del hilo, que es el que recopila códigos.

Última edición por Neftali [Germán.Estévez] fecha: Hace 11 Horas a las 11:09:40. Razón: Añado nota para os ficheros
Responder Con Cita
  #1768  
Antiguo Hace 13 Horas
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.475
Poder: 21
newtron Va camino a la fama
Gracias por tu aporte compañero.
__________________
Be water my friend.
Responder Con Cita
  #1769  
Antiguo Hace 13 Horas
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.037
Poder: 22
keys Va por buen camino
Ayer sacaron información nueva.

https://www.agenciatributaria.es/AEA...ERI_FACTU.html

Se ha incorporado nueva documentación técnica asociada a los sistemas VERI*FACTU y no VERI*FACTU , concretamente un nuevo documento donde se detalla las especificaciones técnicas para la generación de la huella o hash de los registros de facturación y de eventos, en su versión 0.1.0 y con carácter de borrador, hasta la publicación de la Orden Ministerial definitiva.

También se ha actualizado la Documentación de descripción de servicios web en su versión 0.3.1.

NOTA DEL MODERADOR: Gracias. Actualizo el mensaje número #1 con la recopilación de información y añado el fichero al FTP del club.

Última edición por Neftali [Germán.Estévez] fecha: Hace 12 Horas a las 10:28:59.
Responder Con Cita
  #1770  
Antiguo Hace 9 Horas
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 899
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Ayer sacaron información nueva.

https://www.agenciatributaria.es/AEA...ERI_FACTU.html

Se ha incorporado nueva documentación técnica asociada a los sistemas VERI*FACTU y no VERI*FACTU , concretamente un nuevo documento donde se detalla las especificaciones técnicas para la generación de la huella o hash de los registros de facturación y de eventos, en su versión 0.1.0 y con carácter de borrador, hasta la publicación de la Orden Ministerial definitiva.

También se ha actualizado la Documentación de descripción de servicios web en su versión 0.3.1.

NOTA DEL MODERADOR: Gracias. Actualizo el mensaje número #1 con la recopilación de información y añado el fichero al FTP del club.

Perfecto. Gracias
Un pasito más.
Responder Con Cita
  #1771  
Antiguo Hace 9 Horas
xevi xevi is offline
Registrado
 
Registrado: feb 2024
Posts: 9
Poder: 0
xevi Va por buen camino
Acabo de leer ese artículo y me he puesto a provar de generar el hash como dicen en el ejemplo, mi lenguaje de programación es Harbour y disponemos de la función HB_SHA256 para ese menester.
Así que lo he probado de esa manera como el Pdf para comprovar hash de ejemplos...

LogDebug( Upper(HB_SHA256( "IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00" )) )

LogDebug( Upper(HB_SHA256( "IDEmisorFactura=89890001K&NumSerieFactura=12345679/G34&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=3C464DAF61ACB827C65FDA19F352A4E3BDC2 C640E9E9FC4CC058073F38F12F60&FechaHoraHusoGenRegistro=2024-01-01T19:20:35+01:00" )) )

Resultados:
3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60
F7B94CFD8924EDFF273501B01EE5153E4CE8F259766F88CF6ACB8935802A2B97

Correcto!!!

Así pues, a pensar en como voy a implementarlo en mi aplicación...
Responder Con Cita
  #1772  
Antiguo Hace 7 Horas
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 899
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por xevi Ver Mensaje
Acabo de leer ese artículo y me he puesto a provar de generar el hash como dicen en el ejemplo, mi lenguaje de programación es Harbour y disponemos de la función HB_SHA256 para ese menester.
Así que lo he probado de esa manera como el Pdf para comprovar hash de ejemplos...

LogDebug( Upper(HB_SHA256( "IDEmisorFactura=89890001K&NumSerieFactura=12345678/G33&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=&FechaHoraHusoGenRegistro=2024-01-01T19:20:30+01:00" )) )

LogDebug( Upper(HB_SHA256( "IDEmisorFactura=89890001K&NumSerieFactura=12345679/G34&FechaExpedicionFactura=01-01-2024&TipoFactura=F1&CuotaTotal=12.35&ImporteTotal=123.45&Huella=3C464DAF61ACB827C65FDA19F352A4E3BDC2 C640E9E9FC4CC058073F38F12F60&FechaHoraHusoGenRegistro=2024-01-01T19:20:35+01:00" )) )

Resultados:
3C464DAF61ACB827C65FDA19F352A4E3BDC2C640E9E9FC4CC058073F38F12F60
F7B94CFD8924EDFF273501B01EE5153E4CE8F259766F88CF6ACB8935802A2B97

Correcto!!!

Así pues, a pensar en como voy a implementarlo en mi aplicación...

aqui tienes tb una de las webs para comprobar los textos a sha256 para comprobar lo que generes.
https://www.convertstring.com/es/Hash/SHA256
Responder Con Cita
  #1773  
Antiguo Hace 6 Horas
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 899
Poder: 3
ermendalenda Va por buen camino
Tiene pinta de que la cadena sobre la que se calcula el hash va a ser parte del QR(por la configuracio tipo parámetros dirección web), similar a ticketbai.
Con lo cual, tenedlo en cuenta para no usar caracteres extraños en la separación de número serie/numero se factura que os puedan dar conflictos con ma codificación URI para llamadas a webs. O tendréis que pasar a Uri(hexa) los caracteres que puedan dar conflictos para generar el QR
Ejemplo caracteres conflictivos:
/+:;,*<>[]\
En el caso de que lo queráis usar, simplemente es pasarlo a hexa por ejemplo el espacio es %20.., aunque el espacio no lo permiten
Pero la reprentaciob escrita(para la factura electrónica, no hay que convertirlo)
Es una pequeña traba más.

Última edición por ermendalenda fecha: Hace 6 Horas a las 16:41:32.
Responder Con Cita
  #1774  
Antiguo Hace 6 Horas
xevi xevi is offline
Registrado
 
Registrado: feb 2024
Posts: 9
Poder: 0
xevi Va por buen camino
aún así, NO entiendo lo de generar la huella si mi SIF SOLAMENTE funciona en modo VERI*FACTU.
¿No es la propia hacienda la que va a hacer la custodia, trazabilidad, inalterabilidad... de los registros que enviemos a su servidor???

De ser así, no entiendo el porque debemos de hacer nuestra "trazabilidad" cuando la trazabilidad corresponde a quien custodie y tenga TODA la información de los registros enviados. No se, no veo la utilidad de nuestro SIF.

Yo tengo entendido que debemos generar el registro, transmitir a hacienda e imprimir documento (factura). El SIF VERI*FACTU le corresponde esa tarea, que para lo demás, por eso remitimos los registros generados a hacienda, para quitarnos esa tarea y responsabilidad de guarda-custodia, trazabilidad...

¿Soy yo que lo tengo mal entendido???
Responder Con Cita
  #1775  
Antiguo Hace 5 Horas
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 899
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por xevi Ver Mensaje
aún así, NO entiendo lo de generar la huella si mi SIF SOLAMENTE funciona en modo VERI*FACTU.
¿No es la propia hacienda la que va a hacer la custodia, trazabilidad, inalterabilidad... de los registros que enviemos a su servidor???

De ser así, no entiendo el porque debemos de hacer nuestra "trazabilidad" cuando la trazabilidad corresponde a quien custodie y tenga TODA la información de los registros enviados. No se, no veo la utilidad de nuestro SIF.

Yo tengo entendido que debemos generar el registro, transmitir a hacienda e imprimir documento (factura). El SIF VERI*FACTU le corresponde esa tarea, que para lo demás, por eso remitimos los registros generados a hacienda, para quitarnos esa tarea y responsabilidad de guarda-custodia, trazabilidad...

¿Soy yo que lo tengo mal entendido???
Efectivamente, este blockchain no tiene mucho sentido. Por eso lo han puesto como error leve si está mal calculado. Pero es parte de la politica de los encadenamientos de bloques por varias razones y también garantiza que los datos no se han corrompido entre la generación y la recepcion.
Imagina que usas una dll o una api de un tercero, para el envio, que destroza el xml y por ejemplo quita los puntos decimales.
Todos los datos serios suelen tener un check de comprobación.
Ejemplos: EAN, QR, que además sirve para el que lea el dato se asegure qur lo ha leído correctamente.
El encadenamiento además garantiza una trazabilidad cronológica en un solo sentido.

Última edición por ermendalenda fecha: Hace 5 Horas a las 17:25:33.
Responder Con Cita
  #1776  
Antiguo Hace 1 Hora
Delphier Delphier is offline
Miembro
 
Registrado: feb 2024
Posts: 16
Poder: 0
Delphier Va por buen camino
Actualizo los fichero con la generación facturae ya entera y validado con el portal FACE

h t t p s://drive.google.com/file/d/1vrtpSGHje-l-3XW6peIGqYxHkH0g9aYx/view?usp=drive_link

Ficheros actulizados:
SistemaFacturaev3_2_2.pas
UFacturaE.pas
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hijo de Informáticos gluglu Humor 3 13-03-2007 11:05:35
Adictos informaticos ... Trigger Humor 2 11-10-2004 12:18:32
Nosotros los Informáticos Trigger Humor 1 10-10-2004 14:58:09
Patrón de los Informáticos. obiwuan Varios 20 10-09-2003 14:44:54
Chistes Informaticos jhonny Humor 2 11-08-2003 21:59:09


La franja horaria es GMT +2. Ahora son las 22:55:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi