Saftlint
Systemleverandører

SAF-T-testing for systemleverandører

Test SAF-T-eksporten før release, lokalt eller i CI. Saftlint kontrollerer struktur mot riktig offisiell XSD og kjører dokumenterte innholdskontroller for SAF-T Financial 1.40.

Hva bør SAF-T-testing dekke?

  1. Profil og struktur. Identifiser versjonen filen oppgir, og valider namespace, elementrekkefølge og datatyper mot riktig XSD.
  2. Referanser og kodekoblinger. Kontroller at kontoer, kunder, leverandører, avgiftskoder og andre referanser finnes i de relevante masterdataene.
  3. Summer og balanse. Avstem deklarerte antall og totaler mot linjene, og kontroller at hver transaksjon balanserer.
  4. Perioder. Sammenlign datoer, Period og PeriodYear med filens SelectionCriteria.
  5. Regresjoner. Kjør representative eksportfiler og bevisste feiltilfeller på nytt ved hver endring og release.

Se forskjellen mellom XSD og innholdskontroll, hvordan MVA-kodemapping testes og hele den dokumenterte regelkatalogen.

Når XSD består, men innholdet er feil

En SAF-T-fil kan følge XML-skjemaet selv om en referanse er brutt eller en transaksjon ikke balanserer. Det er slike interne sammenhenger et semantisk testlag skal gjøre synlige.

Offisiell XSD  ✓ Bestått
Saftlint        ✕ ledger.transaction.balance

Se regelen og hvordan funnet undersøkes.

Regresjonstesting lokalt og i CI

Legg representative, syntetiske SAF-T-fixtures i produktets testsuite. Lås Saftlint-versjonen og forventet resultat, slik at en endring i eksportlogikken blir synlig før produksjonssetting.

saftlint validate testdata/gyldig-1.40.xml
saftlint validate --json testdata/ubalansert-1.40.xml

Les mer om SAF-T-validering i byggeløpet og den native Saftlint CLI-en.

Test 1.30 og 1.40 som ulike profiler

Saftlint identifiserer og XSD-validerer både 1.30 og 1.40. Full innholdskontroll er implementert for 1.40; 1.30 er avgrenset til profildeteksjon og XSD. Et bestått 1.30-resultat skal derfor ikke tolkes som semantisk likeverdig med et bestått 1.40-resultat.

Er SAF-T 1.40-eksporten produksjonsklar før 2027?

For regnskapsåret 2027 blir 1.40 eneste gyldige format. Skatteetatens dokumentasjon legger fristen til grunn. Kjør en lokal, versjonslåst kontroll mot en representativ testeksport før dere slipper implementasjonen.

Fra releasekontroll til vedlikeholdt avhengighet

En feil i én eksportimplementasjon kan påvirke SAF-T-filene til mange kundebedrifter. Saftlint samler testkunnskapen i en vedlikeholdt, versjonert avhengighet i stedet for noe hvert produktteam bygger alene.

Hvis programvaren deres også mottar SAF-T

Før en mottatt fil behandles videre, kan Saftlint vise om den kan leses, hvilket format den oppgir, og hvilke avvik som er funnet. Saftlint endrer ikke filen og avgjør ikke om den kan importeres trygt.

Lokal testing med Saftlint

Nettvalidator eller lokalt?

NettvalidatorLokal evaluering
BrukManuell kontroll av én filSelvtest før release; lisensiert CLI for utvikling og CI
DataFilen behandles av saftlint.noFilen forlater ikke eget miljø
ReproduserbarhetGjeldende nettregelsettVersjonslåst regelsett