SAFTCheck
Docs / header-dates
header.dates

Header dates — StartDate, EndDate, FiscalYear, DateCreated

Time-window invariants AT enforces on the SAF-T Header block.

What AT checks

The Header block of the SAF-T file describes the period the file covers and when it was generated. AT enforces a few invariants on these dates:

FieldConstraint
StartDateThe first date covered by the file.
EndDateMust be strictly after StartDate.
FiscalYearMust equal the calendar year of StartDate.
DateCreatedShould be on or after EndDate — you can't generate a file before the period it covers ends.

Sub-rules SAFTCheck applies

  • header.dates.range — fires when StartDate ≥ EndDate.
  • header.dates.fiscal_year_mismatch — fires when FiscalYear doesn't match the year of StartDate (warning).
  • header.dates.created_before_end — fires when DateCreated < EndDate (warning; AT may still accept).
  • header.dates.future_end — fires when EndDate is in the future (warning).

Common mistakes

  • Year-end rollover. A January file with FiscalYear=2025 but StartDate=2026-01-01. The ERP rolled the year on one field but not the other.
  • Wrong period unit. Submitting a quarter when AT expects a month — or vice versa. The dates declare the unit; mismatching it against the submission window is a separate AT-side check.
  • DateCreated set during testing. Files exported during ERP setup sometimes carry a DateCreated in the past or future from when they were actually built.

How to fix

  1. Check the export period selection in the ERP: most issues come from selecting the wrong start/end month.
  2. If the dates are right and only the FiscalYear is off, edit the company's fiscal year setting in the ERP and re-export. For one-off submissions, the inline editor can patch FiscalYear directly on the validation result page.
  3. If DateCreated is in the future or before EndDate, fix the ERP system clock and re-export — or use the inline editor for the immediate file.

The combined header.dates.range finding (StartDate vs EndDate) is not editable as a single field — fix StartDate or EndDate individually with the inline editor, or re-export.

Related

Other rules

We use a session cookie for sign-in and a locale cookie for language preference. No third-party trackers. See our Privacy Policy.