English

ubl-tools

Læs e-fakturaer i UBL (Peppol BIS 3.0 og OIOUBL) i terminalen eller som en side du kan printe, og træk den vedhæftede PDF ud. Alt foregår på din egen maskine.

Sprog
Rust
Licens
MIT OR Apache-2.0
Kører på
Linux, macOS, Windows

En e-faktura er en XML-fil. Vil man læse en, skal man enten scrolle gennem et par hundrede linjer cbc: og cac:, eller uploade den til en online viewer. Viewerne virker fint, men de vil have hele fakturaen, og den indeholder navne, CVR-numre, bankoplysninger og hvad kunden har købt. Det har jeg det lidt stramt med at sende til en fremmed server bare for at kunne læse den.

Så jeg skrev ubl. Den læser filen lokalt og viser den som en almindelig faktura: sælger og køber med deres identifikatorer navngivet ordentligt (CVR, GLN, SE-nr. og Peppol-endpoints i stedet for skemakoder som 0184), linjerne med antal, enhed, pris og moms, momsopgørelsen pr. kategori og totalerne. Betalingsoplysningerne kommer med, også danske FI-kort i den velkendte +71<…+…<-notation. Er fakturaen pakket ind i en Peppol-kuvert (SBDH), pakker den den selv ud.

Den forstår Peppol BIS Billing 3.0, OIOUBL 2.1 og andre EN 16931-fakturaer og kreditnotaer. OIOUBL har en lille finte, hvor TaxExclusiveAmount faktisk er momsbeløbet og ikke beløbet før moms.. det har den lært at tage højde for, så tallene passer.

Installation

På Arch Linux ligger den på AUR, både som kildepakke og som færdigbygget binær:

yay -S ubl-tools        # bygges fra kildekoden
yay -S ubl-tools-bin    # færdigbygget binær

På macOS via min Homebrew-tap:

brew tap asger-weirsoee/tap
brew install ubl-tools

På Windows 10/11 med Scoop:

scoop install https://asger.weirsoe.dk/tarballz/ubl-tools.json

Du kan også hente zip-filen fra tarballz og pakke den ud. Binæren er ikke kodesigneret, så Windows spørger måske første gang den køres.

Brug

ubl view faktura.xml               # i terminalen
ubl view faktura.xml --open        # som side i browseren
ubl view faktura.xml --lang da     # danske labels
ubl extract faktura.xml anden.xml  # gem PDF'en ved hver fil
ubl extract *.xml -o ./bilag       # eller alle i én mappe
ubl open faktura.xml               # gem bilag og åbn i browser

ubl extract overskriver aldrig noget. Ligger der allerede en identisk fil, genbruges den, og er den anderledes, får den nye et andet navn. På Windows kan du trække en eller flere XML-filer direkte over på ubl.exe i Stifinder, så gemmes PDF’erne og fakturaerne åbnes, og vinduet bliver stående til du har læst resultatet.

HTML-siden er én selvstændig fil uden eksterne forespørgsler, sat op til A4, så den printer pænt.

Skal du bare have afkodet en CustomizationID eller se hvilken profil en faktura følger, kan UBL-tjekket her på siden gøre det direkte i browseren.