E-Invoice Engine
Sovereign EU e-invoicing API · Powered by

PDF in.
Compliant e-invoice out.

Extract structured data from any invoice, verify the VAT math against EN 16931, and emit ZUGFeRD, XRechnung or ebInterface. Processed in memory, nothing retained, built for Austria and Germany.

Output formats4ebInterface 6.1, XRechnung UBL + CII, ZUGFeRD PDF/A-3
Rules checked60+EN 16931, BR-DE, VAT check digits, IBAN
Bytes retained0RAM only, X-Ephemeral-Processing echoed
Hybrid fast path
<10 msembedded XML read without OCR

Playground

Runs against this instance. Files are processed in memory and never stored.

Leave empty to use the shared demo tier. Paste your key to use your plan.
Sends X-Ephemeral-Processing: true. The response echoes it for your audit trail.
Drop a PDF, XML or image here
ZUGFeRD / Factur-X / XRechnung PDFs and raw CII, UBL or ebInterface XML are read directly. Text PDFs go through the layout heuristics.
No file selected
Overall confidence0weighted over key fields
Amount due0
Issues0
Latency0milliseconds end to end
    
          
    Load a sample:

      Uses the JSON from the Validate tab.

        ↗
        A

        Fast path

        Hybrid PDFs carry their data as embedded XML. The engine reads the attachment tree, parses CII, UBL or ebInterface and skips OCR entirely. Typical latency is under ten milliseconds.

        ↗
        B

        Extraction

        Plain PDFs are rebuilt from their text layer with column aware line reconstruction and DACH label heuristics. Scans go to an optional vision model on your own GPU, never to a third party by default.

        ↗
        C

        Validation

        Line math, VAT breakdown and totals are recomputed. UID and USt-IdNr check digits, IBAN mod 97 and the EN 16931 business rules run on every document, with XRechnung and ebInterface profiles on top.

        Formats

        One canonical model in the middle, readers and writers around it.

        InZUGFeRD 2.x / Factur-XPDF/A-3 with factur-x.xml, all profiles, plus plain CII D16B.
        InXRechnung 3.0UBL 2.1 Invoice and CreditNote, CII syntax, Leitweg-ID preserved.
        InebInterface 5 / 6Austrian federal format from e-Rechnung.gv.at and ERP exports.
        OutebInterface 6.1Schema valid XML for e-Rechnung.gv.at, BMD and Austrian ERPs.
        OutXRechnung 3.0UBL or CII with the KoSIT customization id and Peppol process.
        OutZUGFeRD PDF/A-3Rendered or your own PDF, embedded XML, XMP extension schema, sRGB output intent, embedded fonts.

        Three calls

        Authenticate with your key, send the file, get JSON. Convert the JSON into the format your accounting portal wants.

        curl -X POST https://pdf2erechnung.com/api/v1/invoices/extract \
          -H "X-API-Key: $KEY" -H "X-Ephemeral-Processing: true" \
          -F file=@rechnung.pdf
        
        curl -X POST https://pdf2erechnung.com/api/v1/invoices/validate \
          -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
          -d '{"invoice": {...}, "profile": "XRECHNUNG"}'
        
        curl -X POST https://pdf2erechnung.com/api/v1/invoices/convert \
          -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
          -d '{"invoice": {...}, "target": "zugferd"}' -o rechnung.pdf

        Zero retention, by design

        • Uploads are buffered in memory and released after the response. No temp files, no object storage, no database.
        • Logs never contain bodies, API keys or extracted values.
        • Scans are read by SafeCloud AI: open-weight Qwen models on our own GPU server in Germany. No OpenAI, no US cloud. Or point the engine at your own endpoint.
        • Runs on EU infrastructure you control: a VPS, a Docker host, or on-prem.
        • Every response echoes X-Ephemeral-Processing so you can prove the mode in your audit trail.

        Powered by

        The same sovereign stack that runs safecloud.at, the EU-hosted drive, chat and mail suite.

        safecloud.at →
        SafeCloud AI for scansScanned and photographed invoices are read by Qwen vision models on a dedicated GPU server in Germany (Hetzner). Images are sent, processed and dropped. Nothing is trained on your data.
        EU infrastructure end to endAPI, OCR and your optional dedicated instance all run in the EU under one operator. One data processing agreement covers the whole chain.
        Open weights, no lock-inThe models are open-weight and the engine is a Docker image. Sovereign customers can run the exact same setup on-prem.