Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Errores (relacionados con al AEAT)
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-06-2025
francescofera francescofera is offline
Miembro
 
Registrado: 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:
Cita:
"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
Responder Con Cita
  #2  
Antiguo 18-06-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 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.
Responder Con Cita
  #3  
Antiguo 18-06-2025
francescofera francescofera is offline
Miembro
 
Registrado: 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:

Cita:
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:

Cita:
"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:

Cita:
"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?
Responder Con Cita
  #4  
Antiguo 18-06-2025
rci rci is offline
Miembro
 
Registrado: 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
Responder Con Cita
  #5  
Antiguo 18-06-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por francescofera Ver Mensaje
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í.

Última edición por ermendalenda fecha: 18-06-2025 a las 18:01:55.
Responder Con Cita
  #6  
Antiguo 18-06-2025
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 862
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.


Código:
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)
Responder Con Cita
  #7  
Antiguo 18-06-2025
Jarogo08 Jarogo08 is offline
Miembro
 
Registrado: ene 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):


Cita:
Empezado por francescofera Ver Mensaje
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
Responder Con Cita
  #8  
Antiguo 19-06-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Jarogo08 Ver Mensaje
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
Responder Con Cita
  #9  
Antiguo 19-06-2025
edari edari is offline
Miembro
 
Registrado: jun 2021
Posts: 332
Poder: 5
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.
Responder Con Cita
  #10  
Antiguo 01-07-2025
Noe277 Noe277 is offline
Miembro
 
Registrado: jul 2017
Posts: 162
Poder: 9
Noe277 Va por buen camino
Error

Si da este error como se subsana ?
Responder Con Cita
  #11  
Antiguo 01-07-2025
Avatar de gcqZW
gcqZW gcqZW is offline
Miembro
 
Registrado: ene 2025
Ubicación: Zaragoza
Posts: 274
Poder: 2
gcqZW Va por buen camino
No se subsana.
__________________
La religión es personal e intransferible.
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
Error FechaHoraHusoGenRegistro al enviar factura rci Errores (relacionados con al AEAT) 38 07-05-2025 15:07:55
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? Maska10 Temas legales 2 07-12-2024 12:34:47
Error 2004 - FechaHoraGenRegistro Exento De Subsanacion bmfranky Errores (relacionados con al AEAT) 3 05-12-2024 13:36:39
FastReport 01/01/2004 en el dia 1 de enero de año 2004 cahosoft Impresión 0 13-07-2004 01:58:11


La franja horaria es GMT +2. Ahora son las 11:23:28.


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