Zurück zum Changelog

Alle 28 Länder unterstützt

17. Mai 2026

Country-Coverage verdoppelt sich von 14 auf 28. Neue Format-Slots qr-bill (CH) und peppol-ubl (PL/PT/RO), Peppol-BIS UBL auf AT/CZ/ES/FR, und mehrere Request-Felder relaxed.

14 → 28 Länder

CY, DK, EE, FI, GB, GR, IE, LT, LU, LV, MT, NO, SE, SI ergänzt — jedes Land mit eigenem Adapter.

qr-bill (CH)

32-Zeilen-SPC-Payload als Plain-Text — du renderst den Swiss QR-Code selbst.

peppol-ubl

Reines Peppol BIS 3.0 UBL für PL/PT/RO, neben dem nationalen CIUS.

Schema-Relaxation

Felder, die der Generator zur Laufzeit defaultet, sind im Request-Schema jetzt explizit optional.

Neue Country-Coverage

Bisher: AT, BE, BG, CH, CZ, DE, ES, FR, HU, IT, NL, PL, PT, RO (14). Die 14 neuen Länder unterstützen alle pdf und ubl (Peppol BIS 3.0 UBL für Cross-Border B2B):

LandEASBesonderheit
SE0007Org-Nr (Luhn), F-skatt-Notice, SEK
NO0192Mod-11 Org-Nr, NOK
DK0184CVR, FIK/Giro Payment-Slips
FI0213Y-tunnus, EUR
IE9925VAT IE1234567X, EUR
GB0096UK-VAT, GBP
LU9938Matricule, EUR
MT0235C-Number, EUR
CY0096HE-Number, EUR
SI9952EUR, SI-UBL-2.0-CIUS unter ubl
EE0208Reg-Code, EUR
LV0233Reg-Number, EUR
LT0200Imones-Kodas, EUR
GR0196AFM, EUR, mydata als nationaler Slot

Per-Country /api/v1/invoice/formats liefert jetzt 28 Einträge.

Beispiel: Schweden UBL-Generierung

bash
1POST /api/v1/invoice/SE/ubl/generate
2 
3{
4 "invoice": {
5 "invoiceNumber": "SE-2026-0001",
6 "type": "invoice",
7 "issueDate": "2026-05-17",
8 "currency": "SEK",
9 "seller": {
10 "name": "Helvetia AB",
11 "street": "Storgatan 1",
12 "city": "Stockholm",
13 "postalCode": "11122",
14 "countryCode": "SE",
15 "vatId": "SE556677889901",
16 "countrySpecific": { "orgnr": "5566778899" }
17 },
18 "buyer": { "name": "Kunde GmbH", "countryCode": "DE", "vatId": "DE123456789" },
19 "items": [ { "description": "Beratung Mai 2026", "quantity": 8, "unitPrice": 1200, "taxRate": 25 } ],
20 "subtotal": 9600.00,
21 "total": 12000.00
22 }
23}

Neue Format-Slots

POST

/api/v1/invoice/CH/qr-bill/generate

Emittiert den strukturierten 32-Zeilen-SPC-Payload (UTF-8 text/plain) — den Inhalt, der in den Swiss QR-Code der Empfangsschein-Sektion encoded wird. Kein XML, kein PDF. Extern rendern.

POST

/api/v1/invoice/{PL|PT|RO}/peppol-ubl/generate

Reines Peppol BIS 3.0 UBL für Cross-Border B2B aus den drei Ländern, deren ubl-Slot das nationale CIUS belegt (KSeF, CIUS-PT, eFactura). Vorher unzugänglich.

POST

/api/v1/invoice/{AT|CZ|ES|FR}/ubl/generate

Peppol-BIS UBL auf vier weiteren Ländern — vorher emittierten diese Endpoints „Unsupported format“, obwohl die Generatoren bereits existierten. Jetzt verdrahtet.

Beispiel: Swiss QR-Bill-Payload

bash
1POST /api/v1/invoice/CH/qr-bill/generate
2 
3# Returns UTF-8 text/plain the 32-line SPC payload that
4# encodes into the Swiss QR code. Use this to render the
5# QR code yourself (custom PDF layout, mobile preview, etc.).
6 
7Content-Type: text/plain; charset=utf-8
8 
9SPC
100200
111
12CH4431999123000889012
13S
14Helvetia Solutions AG
15...
16SCOR
17RF18539007547034
18Rechnung CH-2026-1010
19EPD

Format-Profile

POST /api/v1/invoice/DE/zugferd/generate akzeptiert formatOptions.profile; analog für FR/facturx mit EN16931 | BASIC.

ProfileURNUse Case
EN16931urn:cen.eu:en16931:2017Comfort-Profil, voller EN 16931
BASICurn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basicMinimal-Set für einfache Rechnungen
EXTENDEDurn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extendedSub-Lines, Bauabschnittsrechnungen, Drittzahler

Schema-Relaxation im Request-Body

Felder, die der Generator zur Laufzeit ohnehin defaultet, sind im Zod-Schema jetzt explizit optional. Rein additiv — alte Clients schicken sie weiterhin, neue brauchen sie nicht mehr.

Jetzt optional

  • party.street/city/postalCode
  • items[].position
  • items[].grossAmount
  • paymentTerms (kompletter Block, Fallback dueDays: 30)

paymentMethods[].type Aliases

  • credit_transfer — Alias für bank_transfer (UNTDID 4461 Code 30)
  • danish_fik — UNTDID 93
  • giro — UNTDID 50