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)

sglorka 23-10-2024 10:41:43

Cita:

Empezado por pablog2k (Mensaje 558622)
buenas, yo acabo de hacer unas pruebas y si que me comprueba el encadenamiento:

-subo la factura A12 (encadena con la A11), respuesta OK.
-subo la factura A13 (me invento el encadenamiento, pongo que encadena con la B1234 que ni siquiera existe, me invento los valores del nodo Encadenamiento.RegistroAnterior), respuesta Aceptada con errores, error en la huella.
-subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.
-subo la factura A14 (encadena con la A13, con la huella de la subsanación de la A13), respuesta OK.

El encadenamiento siempre tiene que ser con el registro generado anteriormente en orden cronológico para el mismo SIF. La tercera operación que has hecho, -subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.

no debería ser correcta ya que no estás encadenando con el registro anterior de factura A13 que sí fue aceptado, aunque con errores. Para subsanar una huella no puedes saltarte la cadena cronológica aunque parezca que en realidad no estás subsanando nada. Esto ya lo he consultado con el correo de Verifactu. Si te responde Ok en porque ellos internamente habrán decidido eso pero saben perfectamente que el encadenamiento está mal

pablog2k 23-10-2024 10:49:35

Cita:

Empezado por sglorka (Mensaje 558629)
El encadenamiento siempre tiene que ser con el registro generado anteriormente en orden cronológico para el mismo SIF. La tercera operación que has hecho, -subo la factura A13 como subsanación, poniendo bien los valores de Encadenamiento (Encadena con A12, relleno bien IdEmisorFactura,NumSerieFactura,FechaExpedicionFactura y Huella) , respuesta OK.

no debería ser correcta ya que no estás encadenando con el registro anterior de factura A13 que sí fue aceptado, aunque con errores. Para subsanar una huella no puedes saltarte la cadena cronológica aunque parezca que en realidad no estás subsanando nada. Esto ya lo he consultado con el correo de Verifactu. Si te responde Ok en porque ellos internamente habrán decidido eso pero saben perfectamente que el encadenamiento está mal

no acabo de entender lo que dices:
subo la A12 encadena con A11, ok
subo A13 encadena con B21324(inventada), Aceptada con errores (arregla la huella me dicen)
subo A13 corregida que encadena con A12 (huella ok ) contesta OK
subo A14 encadena A13, contesta OK
el orden cronológico lo he seguido.
precisamente lo que he arreglado es el encadenamiento de la A13 que apuntaba a una inventada y le e dicho que apunte a la A12 que cronológicamente es la anterior

sglorka 23-10-2024 10:53:20

Cita:

Empezado por pablog2k (Mensaje 558630)
no acabo de entender lo que dices:
subo la A12 encadena con A11, ok
subo A13 encadena con B21324(inventada), Aceptada con errores (arregla la huella me dicen)
subo A13 corregida que encadena con A12 (huella ok ) contesta OK
subo A14 encadena A13, contesta OK
el orden cronológico lo he seguido

Para formar la huella en la tercera operación, ¿ Qué huella anterior estás tomando, la de el registro de alta inicial de A13 o la de A12 ?
Sólo puedes coger la del alta inicial de A13

ermendalenda 23-10-2024 10:55:44

Cita:

Empezado por [email protected] (Mensaje 558628)
Estoy teniendo problemas con el calculo de la huella. He chequeado los datos que vienen en las instrucciones, con ejemplo y resultrado de datos incluido y todo correcto, pero no consigo coincidir con hacienda en el momento de calcular, me da :

El cálculo de la huella suministrada es incorrecta.

Datos de entrada cálculo huella:

IDEmisorFactura=33461360V&NumSerieFactura=107-2024-13783&FechaExpedicionFactura=21-10-2024&TipoFactura=F1&CuotaTotal=10.07&ImporteTotal=58.15&Huella=7F89287D674954888681E C947D1019EDD8C8D81248CD510AD768E668B526171C&FechaHoraHusoGenRegistro=2024-10-23T10:24:27+02:00

Huella calculada: 9800FA2F5E2B24ED9F0EE98C8174C78B8E97B1294D5F58E90E506E27B31133B4


Alguien podria calcularla con los datos entrada calculo huella que muestro mas arriba.

Gracias

Veo que muchos metéis este dato&
En vez de solo &
Una cosa es quepara generar un xml generes los caracteres en unicode pero para calcular la huella?Mmm
No sé lo mismo tb está bien, pero yo calculo con wl ampersan (&) a pelo y no me da problemas

pablog2k 23-10-2024 11:16:28

Cita:

Empezado por sglorka (Mensaje 558632)
Para formar la huella en la tercera operación, ¿ Qué huella anterior estás tomando, la de el registro de alta inicial de A13 o la de A12 ?
Sólo puedes coger la del alta inicial de A13

yo me guardo en base de datos de cada registro enviado, el valor del campo Huella (el SHA256 calculado de 64 caracteres), entonces cuando hago el siguiente registro, relleno los datos de encadenamiento asi:

Código Delphi [-]
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior := SistemaFacturacion.EncadenamientoFacturaAnteriorType.Create;
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.IdEmisorFactura := 'B97486070';
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.NumSerieFactura := 'A12';
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.FechaExpedicionFactura := '23-10-2024';
  ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.Huella := 'EA1128619C488A282B3B544EBFEB2FE0BDDAC52C12CA7BD75019EDE49AAE6ED5';

En mi caso , cuando subo la primera vez el A13, pongo los datos de encadenamiento de A12 bien , pero el numserieFactura lo pongo mal a propósito. Genero la huella de A13 y subo el registro.
Hacienda me contesta que está mal, que lo arregle.
Vuelvo a subir A13, como subsanacion, ahora rellenando bien RegistroAnterior.NumSerieFactura , genero la huella y la guardo. Envío y Hacienda contesta OK.
Genero la A14, con la huella buena de la A13, la subo y OK
creo que los pasos que he seguido son los normales a la hora de arreglar un error de encadenamiento (subes una factura, te dice aceptada pero arregla el encadenamiento, lo arreglas, guardas huella bien hecha, subes a hacienda, responde OK)

sglorka 23-10-2024 11:21:59

Cita:

Empezado por pablog2k (Mensaje 558634)
yo me guardo en base de datos de cada registro enviado, el valor del campo Huella (el SHA256 calculado de 64 caracteres), entonces cuando hago el siguiente registro, relleno los datos de encadenamiento asi:

ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior := SistemaFacturacion.EncadenamientoFacturaAnteriorType.Create;
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.IdEmisorFactura := 'B97486070';
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.NumSerieFactura := 'A13';
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.FechaExpedicionFactura := '23-10-2024';
ARegistroFactura[0].RegistroAlta.Encadenamiento.RegistroAnterior.Huella := 'EA1128619C488A282B3B544EBFEB2FE0BDDAC52C12CA7BD75019EDE49AAE6ED5';

En mi caso , cuando subo la primera vez el A13, pongo los datos de encadenamiento de A12 bien , pero el numserieFactura lo pongo mal a propósito. Genero la huella de A13 y subo el registro.
Hacienda me contesta que está mal, que lo arregle.
Vuelvo a subir A13, como subsanacion, ahora rellenando bien RegistroAnterior.NumSerieFactura , genero la huella y la guardo. Envío y Hacienda contesta OK.
Genero la A14, con la huella buena de la A13, la subo y OK
creo que los pasos que he seguido son los normales a la hora de arreglar un error de encadenamiento (subes una factura, te dice aceptada pero arregla el encadenamiento, lo arreglas, guardas huella bien hecha, subes a hacienda, responde OK)

¿ De qué registro estás cogiendo la huella anterior para generar la huella de A13 cuándo la subes como subsanación ?

ermendalenda 23-10-2024 11:24:10

Cita:

Empezado por [email protected] (Mensaje 558628)
Estoy teniendo problemas con el calculo de la huella. He chequeado los datos que vienen en las instrucciones, con ejemplo y resultrado de datos incluido y todo correcto, pero no consigo coincidir con hacienda en el momento de calcular, me da :

El cálculo de la huella suministrada es incorrecta.

Datos de entrada cálculo huella:

IDEmisorFactura=33461360V&NumSerieFactura=107-2024-13783&FechaExpedicionFactura=21-10-2024&TipoFactura=F1&CuotaTotal=10.07&ImporteTotal=58.15&Huella=7F89287D674954888681E
C947D1019EDD8C8D81248CD510AD768E668B526171C&FechaHoraHusoGenRegistro=2024-10-23T10:24:27+02:00

Huella calculada: 9800FA2F5E2B24ED9F0EE98C8174C78B8E97B1294D5F58E90E506E27B31133B4


Alguien podria calcularla con los datos entrada calculo huella que muestro mas arriba.

Gracias

Creo que ya he visto donde tienes el error.
sigues metiendo retorno de carro enmedio de la huella
entre 81E
y C94

La huella que has puesto es la correcta si quitas el retorno de carro y los caracteres especiales para unicode
9800FA2F5E2B24ED9F0EE98C8174C78B8E97B1294D5F58E90E506E27B31133B4

pablog2k 23-10-2024 11:28:49

Cita:

Empezado por sglorka (Mensaje 558635)
¿ De qué registro estás cogiendo la huella anterior para generar la huella de A13 cuándo la subes como subsanación ?

de A12, que es la que subí cronológicamente antes de la A13.
Relleno el encadenamiento de la A13 con los datos de la A12 (numserie,fecha,huella) , que fueron los datos que puse mal y me dijeron que los arreglara, y sobre ese registro, genero la huella y la guardo en el registro de A13, para cuando haga la A14

sglorka 23-10-2024 11:34:34

Cita:

Empezado por pablog2k (Mensaje 558637)
de A12, que es la que subí cronológicamente antes de la A13.
Relleno el encadenamiento de la A13 con los datos de la A12 (numserie,fecha,huella) , que fueron los datos que puse mal y me dijeron que los arreglara, y sobre ese registro, genero la huella y la guardo en el registro de A13, para cuando haga la A14

La Huella anterior que debes coger para formar el registro de subsanación de A13 es la huella del registro de A13 que te aceptaron con errores

pablog2k 23-10-2024 11:40:11

Cita:

Empezado por sglorka (Mensaje 558638)
La Huella anterior que debes coger para formar el registro de subsanación de A13 es la huella del registro de A13 que te aceptaron con errores

creo que no es correcto lo que me comentas, ya que la huella anterior según su documentación es lo siguiente:
Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático.
en mi opinión, si yo subo la factura A12, luego la A13, y me la aceptan con errores, si voy a subsanar A13, el registro de facturación anterior es A12, no A13 que subí previamente pero me dio errores (me parecería mucho más lioso). De hecho hasta que no subes como subsanación el HASH o huella de A12, no te da como correcta la A13.

rci 23-10-2024 11:44:04

Cita:

Empezado por sglorka (Mensaje 558638)
La Huella anterior que debes coger para formar el registro de subsanación de A13 es la huella del registro de A13 que te aceptaron con errores

Cita:

Empezado por pablog2k (Mensaje 558640)
creo que no es correcto lo que me comentas, ya que la huella anterior según su documentación es lo siguiente:
Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático.
en mi opinión, si yo subo la factura A12, luego la A13, y me la aceptan con errores, si voy a subsanar A13, el registro de facturación anterior es A12, no A13 que subí previamente pero me dio errores (me parecería mucho más lioso). De hecho hasta que no subes como subsanación el HASH o huella de A12, no te da como correcta la A13.

Yo diría que tiene razón sglorka pero a ver si alguien mas puede opinar.

sglorka 23-10-2024 12:07:22

Cita:

Empezado por pablog2k (Mensaje 558640)
creo que no es correcto lo que me comentas, ya que la huella anterior según su documentación es lo siguiente:
Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático.
en mi opinión, si yo subo la factura A12, luego la A13, y me la aceptan con errores, si voy a subsanar A13, el registro de facturación anterior es A12, no A13 que subí previamente pero me dio errores (me parecería mucho más lioso). De hecho hasta que no subes como subsanación el HASH o huella de A12, no te da como correcta la A13.

Te estás respondiendo tú mismo

Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático

pablog2k 23-10-2024 12:13:37

Cita:

Empezado por sglorka (Mensaje 558642)
Te estás respondiendo tú mismo

Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático

bueno, creo que tenemos conceptos distintos de lo que es 'factura anterior'.
Para mi la factura anterior a A13 es A12, aunque estés subsanando la A13, de hecho todo el encadenamiento (en mi opinión) está hecho para que las facturas 'físicamente' vayan 'encadenadas' unas con otras, no para que la A13 encadene con la A12, la A13 subsanada encadene con la A13 sin subsanar, la A13 subsanada dos veces encadene con la A13 subsanada una vez....
Al final conforme vayan refinando las respuestas de OK y no OK saldremos de dudas , porque según parece ahora 'traga' con casi todo

sglorka 23-10-2024 12:19:30

Cita:

Empezado por pablog2k (Mensaje 558643)
bueno, creo que tenemos conceptos distintos de lo que es 'factura anterior'.
Para mi la factura anterior a A13 es A12, aunque estés subsanando la A13, de hecho todo el encadenamiento (en mi opinión) está hecho para que las facturas 'físicamente' vayan 'encadenadas' unas con otras, no para que la A13 encadene con la A12, la A13 subsanada encadene con la A13 sin subsanar, la A13 subsanada dos veces encadene con la A13 subsanada una vez....
Al final conforme vayan refinando las respuestas de OK y no OK saldremos de dudas , porque según parece ahora 'traga' con casi todo

Mi recomendación es que hagas la consulta a Verifactu.

bmfranky 23-10-2024 12:20:17

Subsanacion encadenado.
 
Cita:

Empezado por sglorka (Mensaje 558642)
Te estás respondiendo tú mismo

Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático

Hola, creo que estais mezclando saraos,en el caso de subsanacion del encadenamiento, solo tenemos que tener en cuenta los datos de encadenamiento de esa factura/registro no los posteriores, tened en cuenta que tenemos que reenviar todo el registro igual, menos la cadena has y poner que es subsanacion/correccion, nada mas.
tened en cuenta que para los encadenamientos sucesivos, ellos tienen en cuenta, no la huella que nosotros enviamos, sino la que ellos calculan.

pablog2k 23-10-2024 12:20:38

Cita:

Empezado por sglorka (Mensaje 558644)
Mi recomendación es que hagas la consulta a Verifactu.

pues mira llevas razón , voy a plantear la duda y con lo que contesten lo informo aquí

rci 23-10-2024 12:22:35

Cita:

Empezado por sglorka (Mensaje 558642)
Te estás respondiendo tú mismo

Primeros 64 caracteres de la huella o «hash» del registro de facturación anterior (sea de alta o de anulación) generado en este sistema informático


Cita:

Empezado por pablog2k (Mensaje 558643)
bueno, creo que tenemos conceptos distintos de lo que es 'factura anterior'.
Para mi la factura anterior a A13 es A12, aunque estés subsanando la A13, de hecho todo el encadenamiento (en mi opinión) está hecho para que las facturas 'físicamente' vayan 'encadenadas' unas con otras, no para que la A13 encadene con la A12, la A13 subsanada encadene con la A13 sin subsanar, la A13 subsanada dos veces encadene con la A13 subsanada una vez....
Al final conforme vayan refinando las respuestas de OK y no OK saldremos de dudas , porque según parece ahora 'traga' con casi todo

A continuación mi opinión basada en una consulta a hacienda:

No es lo mismo un "registro de facturación" que una "factura".
Un registro de facturación se refiere al XML que se genera. Esto es lo que es inalterable y lo que se tiene que encadenar.
Puede haber mas de un registro de facturación para cada factura.
Al crear la factura generas un registro de facturación y lo envías, puede contestar aceptada con errores, lo corriges y generas un nuevo registro de facturación (sobre la misma factura) y lo envías, encadenado con el anterior "registro de facturación", no con la anterior factura.

Espero que alguien más de su opinión y lo aclaramos.

ermendalenda 23-10-2024 12:43:51

Esto admite 2 lógicas en este caso así que hay que ver que dicen para que sigamos la misma lógica:
Lógica 1(para mi es la más coherente): estoy enviando un registro de subsanacion de la factura A13, la cual la estoy recomponiebdo en mi sistemay recalculando las huellas, si la lógica nuestra es borrar el registro y hacerlo de nuevo perdemos la huella que generamos en su momento si no la henos guardado aparte. Yo por ejemplo no guardo aparte la huella ultimma si no junto al registro generado, y si el último registro enviado coincide con el que tengo que volver a enviar, en esta lógica non puedes encadenarlo a si mismo, hay que encadenarlo al A12.
La lógica 2 es que se guarde 2 veces el registro último y se encadena al a13 que estaba mal.

bmfranky 23-10-2024 12:48:30

Hola, la cuestion es que estamos subsanado la huella, y segun esto.
Código:

Para llevar a cabo la subsanación, será necesaria la remisión de un nuevo registro de
facturación (con el mismo identificador de factura del registro de facturación que se quiere
subsanar) por cada uno de los registros con datos a subsanar, con la combinación de
valores de campos que proceda según el caso (ver en el anexo los cuadros de operativas de
alta y anulación admisibles).

Creo que tenemos que componer la huella enviada, teniendo en cuenta los datos del registro a subsanar, osea la huella anterior al registro subsanado, teniendo en cuenta que nos indican que no debemos continuar generando registros hasta subsanar los anteriores...

bmfranky 23-10-2024 12:50:57

Una cosa , alguien ha probado a enviar varios registros , fallando la cadena al principio, si las da todas como erroneas o solo la primera?


La franja horaria es GMT +2. Ahora son las 22:08:06.

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