Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Ley antifraude 2021 (VERIFACTU) - Programas informáticos (https://www.clubdelphi.com/foros/showthread.php?t=95235)

edari 09-04-2024 10:40:30

Gracias ermendalenda

CarlosR 09-04-2024 11:32:32

SII excluyente
 
Cita:

Empezado por ermendalenda (Mensaje 555274)
Tienes que cumplir con el reglamento del SII. El reglamento es diferente para uno que para otro, y como ko te han dicho como conservar trazar...en n caso de SII, pues loque diga el SII y el reglamento de facturación, o sea, el mismo cumplimiento de normativa que tuvieras antes del reglamento de verifactu.




Por el momento así es, el SII te excluye del deber de actuar conforme a las normas de veri*factu. Al menos de momento. En alguna charla de la AEAT eso dejaban caer.

"Cuando las barbas de tu vecino veas cortar..."


Aunque es solo una impresión personal creo que van a unificar los dos en veri*factu (SII + veri*factu). Tampoco tiene sentido que el NO veri*factu tenga unas reglas tan extrictas y en cambio el SII no tenga ninguna.
Y después de algunas tardes de sobremesa con algunos amigos del sector opinamos que al final todo se reducirá a una factura electrónica con sus pagos/cobros. Y FacturaE no será el último formato. El tiempo lo dirá.


Un saludo.

CarlosR 09-04-2024 11:40:08

HTTPRio
 
Cita:

Empezado por ermendalenda (Mensaje 555275)
No es oficial. Pero el anexo en excell y algun dato en el xsd del servicio de envio si lo van cambiando. Con eso voy trabajando


Como todos. tirando código y creando otro nuevo. Y perdidos en el Olimpo.

A todo esto, ¿ alquien piensa subir el xml hecho "a pelo" a través del httprio sin usar los métodos definidos por la AEAT en su wsdl ?
(sin crear código automático importando el wsdl en delphi/c++ builder)

Gracias por anticipado.

keno_71 09-04-2024 11:48:46

Cita:

Empezado por CarlosR (Mensaje 555279)
Como todos. tirando código y creando otro nuevo. Y perdidos en el Olimpo.

A todo esto, ¿ alquien piensa subir el xml hecho "a pelo" a través del httprio sin usar los métodos definidos por la AEAT en su wsdl ?
(sin crear código automático importante el wsdl en delphi/c++ builder)

Gracias por anticipado.


Yo cuando saquen la OM y ya sepamos más o menos por donde nos movemos creo que lo intentaré con los métodos de la AEAT, el SII lo tengo a pelo pero esta vez voy a hacerlo con esos métodos porque creo que será más fácil. Dentro de un mes igual te digo lo contrario :)


saludos

CarlosR 09-04-2024 11:54:13

Interesante
 
Cita:

Empezado por keno_71 (Mensaje 555280)
Yo cuando saquen la OM y ya sepamos más o menos por donde nos movemos creo que lo intentaré con los métodos de la AEAT, el SII lo tengo a pelo pero esta vez voy a hacerlo con esos métodos porque creo que será más fácil. Dentro de un mes igual te digo lo contrario :)


saludos




Usas el httprio inyectando xml creado a pelo ?
Eso es interesante. Tendrás que retomarlo con lo de la factura electrónica, a menos que se pongan las pilas y saquen un wsdl.

Hay código en algún lugar para ver como el httprio puede subir un xml "prefabricado" ?

Me da igual delphi que c++ builder.
Un saludo.

keno_71 09-04-2024 12:09:32

Cita:

Empezado por CarlosR (Mensaje 555281)
Usas el httprio inyectando xml creado a pelo ?
Eso es interesante. Tendrás que retomarlo con lo de la factura electrónica, a menos que se pongan las pilas y saquen un wsdl.

Hay código en algún lugar para ver como el httprio puede subir un xml "prefabricado" ?

Me da igual delphi que c++ builder.
Un saludo.


No sé si te refieres a esto, así lo tengo yo pero lo cogí de un ejemplo del propio club creo recordar:

en el BeforeExecute envío un archivo xml que previamente he generado (e_FicFEMI) y que se encuentra en una carpeta del servidor:

Código Delphi [-]

procedure TfrmEnvioFraEmi.HTTPRIO1BeforeExecute(const MethodName: string;
  SOAPRequest: TStream);

    var
      ss:TFileStream;
      vlfichero : string;

begin

    // configurar parámetros para seleccionar el archivo a enviar

    try
        SOAPRequest.Size:=0;
        ss:=TFileStream.Create(e_FicFEMI, fmOpenRead);
        SOAPRequest.Position := 0;
        SOAPRequest.CopyFrom( ss, ss.Size);
    finally
        ss.Free;
        SOAPRequest.Position := 0;
    end;





end;

en el AfterExecute capturo la respuesta y la guardo en otra carpeta del disco duro

saludos

ermendalenda 09-04-2024 13:10:30

Cita:

Empezado por CarlosR (Mensaje 555279)
Como todos. tirando código y creando otro nuevo. Y perdidos en el Olimpo.

A todo esto, ¿ alquien piensa subir el xml hecho "a pelo" a través del httprio sin usar los métodos definidos por la AEAT en su wsdl ?
(sin crear código automático importando el wsdl en delphi/c++ builder)

Gracias por anticipado.

Sí próximamente. Voy a poner xmls de verifactu y de face, todos hechos a pelo, para los que queráis avanzar

keno_71 09-04-2024 13:13:46

Cita:

Empezado por ermendalenda (Mensaje 555284)
Sí próximamente. Voy a poner xmls de verifactu y de face, todos hechos a pelo, para los que queráis avanzar

Gracias!!!

ermendalenda 09-04-2024 13:18:02

Cita:

Empezado por CarlosR (Mensaje 555278)
Por el momento así es, el SII te excluye del deber de actuar conforme a las normas de veri*factu. Al menos de momento. En alguna charla de la AEAT eso dejaban caer.

"Cuando las barbas de tu vecino veas cortar..."

Aunque es solo una impresión personal creo que van a unificar los dos en veri*factu (SII + veri*factu). Tampoco tiene sentido que el NO veri*factu tenga unas reglas tan extrictas y en cambio el SII no tenga ninguna.
Y después de algunas tardes de sobremesa con algunos amigos del sector opinamos que al final todo se reducirá a una factura electrónica con sus pagos/cobros. Y FacturaE no será el último formato. El tiempo lo dirá.


Un saludo.

Pues tarde p temprano igual que en Italia, un formato para todo. Es un tema que ya se ll han reprochado.
Bajo mi opinion, Facturae será pero ampliaran/cambiaran ciertas cosas, de momento tiene un nodo llamado extensiones que puede que tiren por ahí. Me da la impresión de que son muy conservadores y les gusta aprovechar los recursos y estructuras que ya tienen, por ejemplo redsara

CarlosR 09-04-2024 14:26:27

Cita:

Empezado por keno_71 (Mensaje 555282)
No sé si te refieres a esto, así lo tengo yo pero lo cogí de un ejemplo del propio club creo recordar:

en el BeforeExecute envío un archivo xml que previamente he generado (e_FicFEMI) y que se encuentra en una carpeta del servidor:

Código Delphi [-] procedure TfrmEnvioFraEmi.HTTPRIO1BeforeExecute(const MethodName: string; SOAPRequest: TStream); var ss:TFileStream; vlfichero : string; begin // configurar parámetros para seleccionar el archivo a enviar try SOAPRequest.Size:=0; ss:=TFileStream.Create(e_FicFEMI, fmOpenRead); SOAPRequest.Position := 0; SOAPRequest.CopyFrom( ss, ss.Size); finally ss.Free; SOAPRequest.Position := 0; end; end;


en el AfterExecute capturo la respuesta y la guardo en otra carpeta del disco duro

saludos




Veo que lo haces con un stream, muy interesante.
Lo traduciré a c++ builder y a hacer pruebas.
Un buen aporte.


Gracias.

CarlosR 09-04-2024 14:37:22

Para que se puede necesitar
 
Cita:

Empezado por keno_71 (Mensaje 555282)
No sé si te refieres a esto, así lo tengo yo pero lo cogí de un ejemplo del propio club creo recordar:

en el BeforeExecute envío un archivo xml que previamente he generado (e_FicFEMI) y que se encuentra en una carpeta del servidor:

Código Delphi [-] procedure TfrmEnvioFraEmi.HTTPRIO1BeforeExecute(const MethodName: string; SOAPRequest: TStream); var ss:TFileStream; vlfichero : string; begin // configurar parámetros para seleccionar el archivo a enviar try SOAPRequest.Size:=0; ss:=TFileStream.Create(e_FicFEMI, fmOpenRead); SOAPRequest.Position := 0; SOAPRequest.CopyFrom( ss, ss.Size); finally ss.Free; SOAPRequest.Position := 0; end; end;


en el AfterExecute capturo la respuesta y la guardo en otra carpeta del disco duro

saludos


Verás, si creas el xml y lo archivas en una tabla para poder cotejarlo posteriormente con los datos originales y el hash podría pasar algo curioso si usas los métodos creados automáticamente a partir del wsdl de la AEAT.
Podría pasar que cualquier espacio o signo que varíes en el envío con dicho código a la AEAT no se corresponda con el xml archivado con su hash y posiblemente certificado. O simplemente el código creado automáticamente a paritr de la wsdl te los cree. O que una etiqueta del xml tú la dejes en blanco por no uso y el código no te cree la propia etiqueta. Todo esto haría que el hash se fuera por la borda.

Estoy valorando cambiar lo que ya tengo creado por c++ builder a partir del wsdl y pasarlo a código hecho a mano de tal forma que el xml archivado sea el mismo que copio y envio a la AEAT. Simplemente estoy valorándolo pero hay varias papeletas a favor de optar por esa opción.



Gracias de nuevo.


P.D. en mi caso el código SII lo creé de forma automática hace ya años, cuando comenzó, y cada cambio que hace la AEAT me obliga a cambiar programación en diversos sitios. De forma manual me habría resultado mas sencillo el mantenimiento del soft.

;)

keno_71 09-04-2024 16:39:24

Cita:

Empezado por CarlosR (Mensaje 555291)
Verás, si creas el xml y lo archivas en una tabla para poder cotejarlo posteriormente con los datos originales y el hash podría pasar algo curioso si usas los métodos creados automáticamente a partir del wsdl de la AEAT.
Podría pasar que cualquier espacio o signo que varíes en el envío con dicho código a la AEAT no se corresponda con el xml archivado con su hash y posiblemente certificado. O simplemente el código creado automáticamente a paritr de la wsdl te los cree. O que una etiqueta del xml tú la dejes en blanco por no uso y el código no te cree la propia etiqueta. Todo esto haría que el hash se fuera por la borda.

Estoy valorando cambiar lo que ya tengo creado por c++ builder a partir del wsdl y pasarlo a código hecho a mano de tal forma que el xml archivado sea el mismo que copio y envio a la AEAT. Simplemente estoy valorándolo pero hay varias papeletas a favor de optar por esa opción.



Gracias de nuevo.


P.D. en mi caso el código SII lo creé de forma automática hace ya años, cuando comenzó, y cada cambio que hace la AEAT me obliga a cambiar programación en diversos sitios. De forma manual me habría resultado mas sencillo el mantenimiento del soft.

;)


Eso es cierto, yo el código de SII lo he variado muy poco, si que capturo la respuesta con los métodos de la AEAT y esa parte por ejemplo si la he tenido que cambiar más en alguna actualización. Una razón más para hacerlo a mano, bueno habrá que valorar. Ya te digo, igual dentro de un mes pienso lo contrario :)

saludos

keno_71 09-04-2024 16:41:06

Perdón, creo recordar que utilizo los métodos cuando consulto las facturas que he subido al SII, hay a veces si que hay más cambios, no en la respuesta del envío.

ermendalenda 09-04-2024 19:17:30

Cita:

Empezado por CarlosR (Mensaje 555291)
Verás, si creas el xml y lo archivas en una tabla para poder cotejarlo posteriormente con los datos originales y el hash podría pasar algo curioso si usas los métodos creados automáticamente a partir del wsdl de la AEAT.
Podría pasar que cualquier espacio o signo que varíes en el envío con dicho código a la AEAT no se corresponda con el xml archivado con su hash y posiblemente certificado. O simplemente el código creado automáticamente a paritr de la wsdl te los cree. O que una etiqueta del xml tú la dejes en blanco por no uso y el código no te cree la propia etiqueta. Todo esto haría que el hash se fuera por la borda.

Estoy valorando cambiar lo que ya tengo creado por c++ builder a partir del wsdl y pasarlo a código hecho a mano de tal forma que el xml archivado sea el mismo que copio y envio a la AEAT. Simplemente estoy valorándolo pero hay varias papeletas a favor de optar por esa opción.



Gracias de nuevo.


P.D. en mi caso el código SII lo creé de forma automática hace ya años, cuando comenzó, y cada cambio que hace la AEAT me obliga a cambiar programación en diversos sitios. De forma manual me habría resultado mas sencillo el mantenimiento del soft.

;)


En el caso de vereifcatu va a ser dificl que pase, ya que el cálculo del hash se hará sobre nodos sueltos, numericos y el del CIF.
Algo así
Código:

<sum1:NIF>00000006Y</sum1:NIF>
<sum1:NumSerieFactura>1.1.1.8</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>09-04-2024</sum1:FechaExpedicionFactura>
<sum1:TipoFactura>F2</sum1:TipoFactura>
<sum1:ImporteTotal>2.00</sum1:ImporteTotal>
<sum1:CuotaTotal>0.00</sum1:CuotaTotal>
<sum1:Huella>E6FE58EE455F233BFA429FA7A9D90EDC006CBB2421876EB2590D37E682414CB3</sum1:Huella>
<sum1:FechaHoraHusoGenRegistro>2024-04-09T19:12:03+01</sum1:FechaHoraHusoGenRegistro>

Con lo cual no creo que admita caracteres extraños
Lo único que hay tener claro es que concatenes los campos, para el calculo del hash, con retornos de carro, ni caracteres nulos.

ermendalenda 09-04-2024 19:40:58

Cita:

Empezado por ermendalenda (Mensaje 555301)
En el caso de vereifcatu va a ser dificl que pase, ya que el cálculo del hash se hará sobre nodos sueltos, numericos y el del CIF.
Algo así
Código:

<sum1:NIF>00000006Y</sum1:NIF>
<sum1:NumSerieFactura>1.1.1.8</sum1:NumSerieFactura>
<sum1:FechaExpedicionFactura>09-04-2024</sum1:FechaExpedicionFactura>
<sum1:TipoFactura>F2</sum1:TipoFactura>
<sum1:ImporteTotal>2.00</sum1:ImporteTotal>
<sum1:CuotaTotal>0.00</sum1:CuotaTotal>
<sum1:Huella>E6FE58EE455F233BFA429FA7A9D90EDC006CBB2421876EB2590D37E682414CB3</sum1:Huella>
<sum1:FechaHoraHusoGenRegistro>2024-04-09T19:12:03+01</sum1:FechaHoraHusoGenRegistro>

Con lo cual no creo que admita caracteres extraños
Lo único que hay tener claro es que concatenes los campos, para el calculo del hash, con retornos de carro, ni caracteres nulos.

Corrijo
No concatenar con retornos de carro ni caracteres extraños

CarlosR 09-04-2024 19:45:51

Etiquetas xml
 
Corrígeme si me equivoco (es posible en este caso) pero ¿ no hay que hacer el hash de toda la estructura XML ?
Incluyendo datos del fabricante y del producto.
Si no es así, ¿ puedes indicarme al menos si están descritos en algún pdf o comunicado de la AEAT ?


Gracias.

ermendalenda 09-04-2024 22:21:55

Cita:

Empezado por CarlosR (Mensaje 555303)
Corrígeme si me equivoco (es posible en este caso) pero ¿ no hay que hacer el hash de toda la estructura XML ?
Incluyendo datos del fabricante y del producto.
Si no es así, ¿ puedes indicarme al menos si están descritos en algún pdf o comunicado de la AEAT ?


Gracias.

En la primera Versión era así, pero debido a posibles problematicas que han reportado en el periodo de consulta corrigieron y dijeron que iban a ser solo unos campos(nodos), en la excell de los esquemas(extensiones) también hacen referencia que ya diran sibre que nodos se calcula, pero que serán algunos. En el esquema del webinar del día 14 hay una pequeña referencia en el que encabezan como "IMPORTANTE" y se ven unos "posibles nodos" sobre los que se calculará, vi en ese cuadro que aparecía un nuevo nodo, el de cuotatotal, y he visto que ahora también aparece en el nuevo esquema. Así que hay muchas posibilidades de que en un alto porcentaje sean esos nodos y quizás alguno más.

ermendalenda 09-04-2024 22:28:55

Aquí el pantallazo de lo.que te comento

ermendalenda 09-04-2024 22:37:20

1 Archivos Adjunto(s)
Cita:

Empezado por ermendalenda (Mensaje 555309)
Aquí el pantallazo de lo.que te comento

He tenido que reducir la imagen muchisimo, no permiten tamaños de mas de 33kb

ermendalenda 09-04-2024 22:40:09

1 Archivos Adjunto(s)
aqui el detalle de los nodos


La franja horaria es GMT +2. Ahora son las 13:07:03.

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