header.dates
Fechas de la cabecera — StartDate, EndDate, FiscalYear, DateCreated
Invariantes temporales que la AT impone sobre el bloque Header del SAF-T.
Qué comprueba la AT
El bloque Header del fichero SAF-T describe el periodo que cubre el fichero y cuándo se generó. La AT impone unas cuantas invariantes sobre estas fechas:
| Campo | Restricción |
|---|---|
StartDate | La primera fecha que cubre el fichero. |
EndDate | Debe ser estrictamente posterior a StartDate. |
FiscalYear | Debe ser igual al año natural de StartDate. |
DateCreated | Debe ser igual o posterior a EndDate — no se puede generar un fichero antes de que termine el periodo que cubre. |
Subreglas que aplica SAFTCheck
header.dates.range— se dispara cuandoStartDate ≥ EndDate.header.dates.fiscal_year_mismatch— se dispara cuandoFiscalYearno coincide con el año deStartDate(aviso).header.dates.created_before_end— se dispara cuandoDateCreated < EndDate(aviso; la AT todavía puede aceptarlo).header.dates.future_end— se dispara cuandoEndDateestá en el futuro (aviso).
Errores comunes
- Cambio de año. Un fichero de enero con
FiscalYear=2025peroStartDate=2026-01-01. El ERP cambió el año en un campo pero no en el otro. - Unidad de periodo incorrecta. Enviar un trimestre cuando la AT espera un mes — o al revés. Las fechas declaran la unidad; la incoherencia con la ventana de envío es otra comprobación del lado de la AT.
- DateCreated establecida en pruebas. Los ficheros exportados durante la configuración del ERP a veces traen una
DateCreateden el pasado o en el futuro respecto al momento real de generación.
Cómo corregir
- Revisa la selección del periodo de exportación en el ERP: la mayoría de los problemas vienen de elegir el mes de inicio/fin equivocado.
- Si las fechas están bien y solo FiscalYear está mal, edita el ajuste de año fiscal de la empresa en el ERP y vuelve a exportar. Para envíos puntuales, el editor en línea puede corregir
FiscalYeardirectamente en la página del resultado. - Si
DateCreatedestá en el futuro o antes deEndDate, ajusta el reloj del sistema del ERP y vuelve a exportar — o usa el editor en línea para el fichero inmediato.
El aviso combinado header.dates.range (StartDate frente a EndDate) no se puede editar como un único campo — corrige StartDate o EndDate por separado con el editor en línea, o vuelve a exportar.
Relacionado
- Editor en línea — corrige FiscalYear / EndDate / DateCreated en sitio.
- Guía: plazos de envío del SAF-T y flujo de rechazo de la AT