Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Errores (relacionados con al AEAT)
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 18/06/2025
francescofera francescofera is offline
Miembro
 
Join Date: Jun 2025
Posts: 10
Poder: 0
francescofera Va por buen camino
Error 2004 en VeriFactu: FechaHoraHusoGenRegistro fuera de sincronización

Hola a todos,

Estoy teniendo dificultades con el siguiente error de validación por parte de la AEAT:

2004 - El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 240 segundos.

Contexto de la implementación:
- Es un sistema C# .NET
- Utilizamos un sistema encolado que envía los registros cada 60 segundos, y en el caso concreto que generó este error, el envío al WebService ocurrió solo unos segundos después.
- El valor de `FechaHoraHusoGenRegistro` se genera justo en el momento de la creación del registro
- El valor enviado tenía este formato (ISO 8601 con zona horaria): 2025-06-18T12:51:58+02:00

Según la documentación official:
Quote:
"Se validará que la FechaHoraHusoGenRegistro sea menor o igual que la fecha del sistema de la AEAT, admitiéndose un margen de error. En caso de superar el umbral, se devolverá un aviso de error."
Dudas:
1. ¿Debemos enviar siempre la hora exacta del momento del envío a AEAT y no la del momento de creación del registro?
2. ¿Es más seguro convertir la hora a UTC (`+00:00`) para evitar malinterpretaciones con el huso horario?
3. ¿Alguien ha solucionado este error sincronizando el servidor NTP o ajustando manualmente el margen?

Agradezco cualquier sugerencia o experiencia relacionada con este problema

Gracias por adelantado
Reply With Quote
  #2  
Old 18/06/2025
Jarogo08 Jarogo08 is offline
Miembro
 
Join Date: Jan 2025
Posts: 344
Poder: 2
Jarogo08 Va por buen camino
Casualmente, ese es el único error que se excepciona de ser subsanado.


De todas maneras, estaría bien saber porque te da. En el ejemplo que pones, el registro se crea a las 12:51:58. ¿realmente no era esa hora? ¿la hora del pc estaba atrasada o adelantada? Porque sino no debería darte.
Reply With Quote
  #3  
Old 18/06/2025
francescofera francescofera is offline
Miembro
 
Join Date: Jun 2025
Posts: 10
Poder: 0
francescofera Va por buen camino
Gracias por tu respuesta, justo por eso me desconcierta más este error.

La hora del sistema es totalmente correcta. El valor de FechaHoraHusoGenRegistro era:
2025-06-18T12:51:58+02:00
y fue generado literalmente segundos antes de ser enviado a la AEAT (mi sistema tiene una cola que lo transmite automáticamente en menos de 10 segundos).

Lo que más me confunde es la diferencia entre:

Quote:
El mensaje del error 2004, que dice que el campo debe ser la fecha actual del sistema de la AEAT, lo cual suena como si esperaran una coincidencia casi exacta.
vs.

Lo que dice la documentación técnica, es decir:

Quote:
"Se validará que la FechaHoraHusoGenRegistro sea menor o igual que la fecha del sistema de la AEAT, admitiéndose un margen de error."
y también:

Quote:
"El huso horario es el que está usando el sistema informático de facturación en el momento de generación del registro de facturación."
Así que no me queda claro si:

el WebService realmente respeta el huso horario informado (como +02:00)

o si internamente espera que se le envíe el valor en UTC (con sufijo Z) o huso horario +1:00.

Estoy considerando hacer una prueba forzando UtcNow con zona Z para descartar eso, pero no me parece consistente con lo que la documentación dice.

¿A ti te ha pasado algo parecido? ¿Tienes idea de cómo lo interpreta realmente la AEAT?
Reply With Quote
  #4  
Old 18/06/2025
rci rci is offline
Miembro
 
Join Date: Nov 2020
Posts: 565
Poder: 6
rci Va por buen camino
Revisa si en este hilo encuentras alguna información que pueda ayudarte.

https://www.clubdelphi.com/foros/showthread.php?t=97445
Reply With Quote
  #5  
Old 18/06/2025
ermendalenda ermendalenda is offline
Miembro
 
Join Date: Aug 2021
Posts: 2,765
Poder: 8
ermendalenda Va por buen camino
Quote:
Originally Posted by francescofera View Post
Gracias por tu respuesta, justo por eso me desconcierta más este error.

La hora del sistema es totalmente correcta. El valor de FechaHoraHusoGenRegistro era:
2025-06-18T12:51:58+02:00
y fue generado literalmente segundos antes de ser enviado a la AEAT (mi sistema tiene una cola que lo transmite automáticamente en menos de 10 segundos).

Lo que más me confunde es la diferencia entre:


vs.

Lo que dice la documentación técnica, es decir:


y también:


Así que no me queda claro si:

el WebService realmente respeta el huso horario informado (como +02:00)

o si internamente espera que se le envíe el valor en UTC (con sufijo Z) o huso horario +1:00.

Estoy considerando hacer una prueba forzando UtcNow con zona Z para descartar eso, pero no me parece consistente con lo que la documentación dice.

¿A ti te ha pasado algo parecido? ¿Tienes idea de cómo lo interpreta realmente la AEAT?
Es raro ese error nunca me ha dado sin haber xometido un error en la programación del control de flujos.
Revisa que la hora de tu sistema esté correctamente sincronizada con un servicio fiable. Algunos servicios de sincronizacion juegan malas pasadas y te ponen horas +-2 horas de diferencia en tu sistema. Supongo que además la hora que has puesto no le habrás quitado las 2 horas, que es una función que te la tal que así.

Last edited by ermendalenda : 18/06/2025 at 18:01.
Reply With Quote
  #6  
Old 18/06/2025
bmfranky's Avatar
bmfranky bmfranky is offline
Miembro
 
Join Date: May 2024
Location: Gandia, Valencia
Posts: 863
Poder: 3
bmfranky Va por buen camino
Hola, ese error en c# se origina al enviarle el DateTime, incluye los milisegundos, hemos posteado bastante al respecto, revisa lo.


Code:
public System.DateTime dateTimeSinMilisegundos(System.DateTime currentDateTime)
        {
           return new DateTime(currentDateTime.Year,  currentDateTime.Month, currentDateTime.Day, currentDateTime.Hour,  currentDateTime.Minute, currentDateTime.Second, DateTimeKind.Local);
         }
Esto quita los milisegundos.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Reply With Quote
  #7  
Old 18/06/2025
Jarogo08 Jarogo08 is offline
Miembro
 
Join Date: Jan 2025
Posts: 344
Poder: 2
Jarogo08 Va por buen camino
Si es cierto lo que puso en el primer post y el XML realmente llevaba el valor que dice, lo tiene bien (y siempre que realmente fuese esa hora, claro... que también confirmó que si):


Quote:
Originally Posted by francescofera View Post
El valor enviado tenía este formato (ISO 8601 con zona horaria): 2025-06-18T12:51:58+02:00

Por ejemplo, este es el último registro que envié hoy, llevaba este valor y entró sin problemas:

2025-06-18T18:08:09+02:00
Reply With Quote
  #8  
Old 19/06/2025
ermendalenda ermendalenda is offline
Miembro
 
Join Date: Aug 2021
Posts: 2,765
Poder: 8
ermendalenda Va por buen camino
Quote:
Originally Posted by Jarogo08 View Post
Si es cierto lo que puso en el primer post y el XML realmente llevaba el valor que dice, lo tiene bien (y siempre que realmente fuese esa hora, claro... que también confirmó que si):




Por ejemplo, este es el último registro que envié hoy, llevaba este valor y entró sin problemas:

2025-06-18T18:08:09+02:00

Si tienes el registro de la respuesta se puede analizar y si eso es así se lo puedes mandar a verifactu que miren donde tienen el problema
Reply With Quote
  #9  
Old 19/06/2025
edari edari is offline
Miembro
 
Join Date: Jun 2021
Posts: 334
Poder: 6
edari Va por buen camino
A mí este error me sale cuando tengo un número grande de facturas para subir (p.e. 300) y el tiempo entre la primera y la última es mayor de los famosos 240 segundos, así que he tenido que hacer "paquetes" de hasta 180 segundos, dedicar el minuto restante a generar el xml con las facturas, subirlo y recoger la respuesta.


Y a partir de ahí esperar hasta el siguiente ciclo.
Reply With Quote
  #10  
Old 01/07/2025
Noe277 Noe277 is offline
Miembro
 
Join Date: Jul 2017
Posts: 163
Poder: 10
Noe277 Va por buen camino
Error

Si da este error como se subsana ?
Reply With Quote
  #11  
Old 01/07/2025
gcqZW's Avatar
gcqZW gcqZW is offline
Miembro
 
Join Date: Jan 2025
Location: Zaragoza
Posts: 274
Poder: 2
gcqZW Va por buen camino
No se subsana.
__________________
La religión es personal e intransferible.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Error FechaHoraHusoGenRegistro al enviar factura rci Errores (relacionados con al AEAT) 38 07/05/2025 15:07
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? Maska10 Temas legales 2 07/12/2024 12:34
Error 2004 - FechaHoraGenRegistro Exento De Subsanacion bmfranky Errores (relacionados con al AEAT) 3 05/12/2024 13:36
FastReport 01/01/2004 en el dia 1 de enero de año 2004 cahosoft Impresión 0 13/07/2004 01:58


All times are GMT +2. The time now is 23:07.


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
Copyright 1996-2007 Club Delphi