Danish SAF-T Validator er et officielt Python-baseret værktøj fra Skattestyrelsen (UFST), der bruges til at validere danske SAF-T XML-filer.
Denne version gør det nemt at køre valideringen via Docker – uden behov for lokal Python-installation.
Validatoren kontrollerer blandt andet:
- XML-struktur og format (mod XSD)
- Datatyper og obligatoriske felter
- Digitale signaturer og certifikater
- At værdier følger de tekniske retningslinjer
- At alle transaktioner kan læses og valideres korrekt
Efter hver validering genereres en Excel-rapport (XLSX) med resultaterne.
# Download image
docker pull ghcr.io/lenius/danish-saft-validator:latest
# Interaktiv kørsel (du bliver spurgt om sprog og XML-fil)
docker run --rm -it \
-v "$(pwd)/work:/work" \
-v "$(pwd)/config:/app/config" \
danish-saft-validator:latest
# Eksempel på input:
# dk
# /work/in/test.xml# Download image
docker pull ghcr.io/lenius/danish-saft-validator:latest
# Interaktiv kørsel (du bliver spurgt om sprog og XML-fil)
docker run --rm -it \
-v "$(pwd)/work:/work" \
-v "$(pwd)/config:/app/config" \
danish-saft-validator:latest
# Eksempel på input:
# dk
# /work/in/test.xml- Forudsætninger
- Installation og kloning
- Mappestruktur
- Bygning af Docker-billede
- Kørsel af validator
- Output og rapport
- Ændring af sprog
- Opdatering med Git
Du skal have:
- Docker installeret
- Docker Desktop til Windows/macOS
sudo apt install dockerpå Linux
- Git installeret for at kunne hente og opdatere projektet.
Ingen Python-installation er nødvendig.
Projektet bruger følgende struktur:
.
├─ Dockerfile
├─ docker-compose.yml
├─ requirements.txt
├─ main.py ← SAF-T validator fra UFST
├─ config/ ← gemmer sprogvalg (config.ini)
└─ work/
├─ in/ ← læg dine SAF-T XML-filer her
└─ Tjekket/ ← rapporter (.xlsx) genereres her
Sørg for at mapperne
configogwork/infindes, før du kører containeren.
Klon projektet første gang:
git clone https://github.com/lenius/danish-saft-validator.git
cd danish-saft-validatorOpdater senere med:
git pullFra projektmappen:
docker build -t danish-saft-validator:latest .Dette skaber et lokalt Docker-image du kan køre igen og igen.
Her bliver du spurgt om sprog (dk/en) og derefter XML-sti.
docker run --rm -it \
-v "$(pwd)/work:/work" \
-v "$(pwd)/config:/app/config" \
danish-saft-validator:latest
# Eksempel på input:
# dk
# /work/in/test.xml- Første gang bruges
CONFIG_LANGtil at vælge sprog. - Derefter gemmes sprogvalget i
config/config.ini.
Slet config/config.ini
Efter kørsel findes rapporten i:
./work/Tjekket/{prefix}test.xlsx
Rapporten åbnes i Excel og viser bl.a.:
- Fejl og advarsler
- Manglende elementer
- Ugyldige datatyper
- Certifikatstatus og signaturer
version: "3.9"
services:
validator:
image: danish-saft-validator:latest
build: .
tty: true
environment:
TZ: Europe/Copenhagen
# CONFIG_LANG: dk
# XML_PATH: /work/in/test.xml
volumes:
- ./work:/work
- ./config:/app/configKør derefter:
docker compose build
docker compose run --rm danish-saft-validator