-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Llevo un tiempo implementando verifactu con esta librería en mi programa y me acabo de dar cuenta de una cosa que me está volviendo loco...
Tengo una tabla de facturas y una tabla de registros verifactu.
Cuando emito una factura. genero el hash del registro en base al hash del registro anterior de mi tabla de registros y creo el registro verifactu en mi base de datos con su hash calculado.
Cuando voy a enviarlo a la AEAT, cargo el registro de la db y lo envío...
¿Qué pasa si es rechazado? porque ese registro no queda en la AEAT... por tanto en este escenario:
Emito factura 0001 y se genera el hash XXXXXX1 (sin hash previo)
Emito factura 0002 y se genera el hash YYYYYY2 hash previo XXXXXX1
Emito factura 0003 y se genera el hash ZZZZZZ3 hash previo YYYYYY2
En este punto mi cadena es correcta.
Envío el registro 1 y es aceptado
Envío el 2 y no es aceptado (no está en la AEAT)
Envío el 3 y es aceptado.
¿Como se gestiona esto ya que el 3 depende del 2 que hacienda no tiene en su lista y por haber sido rechazado?
A menos que el registro se genere en el momento del envío y no en el momento de la emisión, en cuyo caso, acabaría enviando el registro de la 00002 después del de la 00003 una vez corregido, quedando en la cadena de la aeat (y en mi base de datos de registros) cronologicamente después del registro de alta de la factura 0003
Me estoy volviendo loco... ¿Alguien que me de algo de luz?