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?
- Profil og struktur. Identifiser versjonen filen oppgir, og valider namespace, elementrekkefølge og datatyper mot riktig XSD.
- Referanser og kodekoblinger. Kontroller at kontoer, kunder, leverandører, avgiftskoder og andre referanser finnes i de relevante masterdataene.
- Summer og balanse. Avstem deklarerte antall og totaler mot linjene, og kontroller at hver transaksjon balanserer.
- Perioder. Sammenlign datoer, Period og PeriodYear med filens SelectionCriteria.
- 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.balanceSe 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.xmlLes 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
- Kjør lokalt. Regnskapsdata forlater ikke eget miljø.
- Kjør i CI. Finn regresjoner før utgivelse.
- Lås regelsettet. Samme regler gir samme resultat i gjenskapbare bygg.
- Motta vedlikeholdte utgaver. Kontroller, testfiler, kodelister og SAF-T-versjoner oppdateres samlet.
- Bestrid et funn. Vi undersøker kilden, dokumenterer tolkningen og gjør avklarte tilfeller til regresjonstester.
Nettvalidator eller lokalt?
| Nettvalidator | Lokal evaluering | |
|---|---|---|
| Bruk | Manuell kontroll av én fil | Selvtest før release; lisensiert CLI for utvikling og CI |
| Data | Filen behandles av saftlint.no | Filen forlater ikke eget miljø |
| Reproduserbarhet | Gjeldende nettregelsett | Versjonslåst regelsett |