SAP invoices in. Factur-X XML out.

Upload one of the SAP invoice PDFs. Every invoice inside it is read, its arithmetic re-checked, and written out as EN 16931 XML — validated against the Factur-X schema before you ever see it.

Standard
ZUGFeRD 2.5
Profile
EN 16931
Factur-X
1.0.9
Guideline
urn:cen.eu:en16931:2017
Checked against
Factur-X XSD

What happens to the file

  1. 1.0

    Discover

    Every page is scanned for a labelled invoice number, and the continuation pages that follow it are read as part of the same invoice. A page carrying two different numbers stops the run rather than guessing which one owns the page.

  2. 2.0

    Parse

    The SAP form is read line by line: buyer address, line items, freight and discounts, payment terms, VAT rate.

  3. 3.0

    Validate

    Every total is recomputed from the lines and compared with the printed one. The seller VAT ID and IBAN are checked. A line that does not add up fails the invoice.

  4. 4.0

    Emit

    A CII document is written for each invoice and checked against the EN 16931 schema. Only then does it reach your download.

Known limits

  • An invoice that runs over several pages is read whole, but only when its pages are consecutive. The same number on non-consecutive pages is refused rather than stitched together.
  • The parser is written for one SAP form. A different layout fails rather than producing a plausible wrong invoice.
  • Uploads are capped at 50 MB. Conversion runs at roughly a fifth of a second per invoice, so a few hundred in one file is a couple of minutes, not an afternoon.
  • No PDF is produced here. This app emits the XML and the audit JSON; the hybrid PDF/A-3 is a separate run of the converter.