E-invoices from your DMS — where your invoices already live

The invoice sits in your DMS with its index data. That becomes the e-invoice, and it goes back there.

Many invoices are created in the ERP or a template and then land in the DMS as a PDF — indexed with invoice number, date, customer and often a line-item table. Those index data are exactly what an e-invoice needs. Instead of rebuilding the ERP, the connection starts at the DMS: it reads the index data, has the API create the XML or embed it into the existing PDF, and stores the result back in the DMS. For DocuWare this connection exists today as a beta.

What comes in

The invoice PDF in the DMS, as it is sent today

Index fields: invoice number, date, customer, net and gross total

Line items as a table field with text, quantity, unit price and tax rate

Seller master data once in the configuration, the Leitweg-ID as an index field for public bodies

What this solves

01

No ERP rebuild

The ERP keeps writing its PDFs, accounting keeps working in the DMS. The e-invoice is built from the data that is indexed there anyway.

02

The layout stays

The embed endpoint takes the existing PDF as the carrier and embeds the XML (ZUGFeRD hybrid). Customers see the same invoice as before; their systems read the attachment.

03

Totals are compared beforehand

Tax per rate is computed from the line items and held against the total fields in the DMS. If something does not match, no e-invoice is created that differs from the PDF.

04

Errors sit on the document

Instead of a silent failure the document in the DMS gets a status with the violated rule, such as a missing Leitweg-ID. It is corrected where the data lives.

One real example

An excerpt from the recipe “Generate and send a ZUGFeRD PDF” — the connection fills these fields from the DMS index data.

json
{
"invoice": {
"invoiceNumber": "RE-2025-002",
"issueDate": "2025-01-15",
"seller": {
"name": "Muster GmbH"
},
"buyer": {
"name": "Beispiel AG"
},
"items": [
{
"position": 1,
"description": "Beratungsleistung",
"quantity": 10,
"unit": "HUR",
"unitPrice": 150,
"taxRate": 19,
"netAmount": 1500,
"taxAmount": 285,
"grossAmount": 1785
}
],
"subtotal": 1500,
"total": 1785
}
}

POST /api/v1/invoice/DE/zugferd/generate

Response: a Base64-encoded PDF/A-3 with embedded EN 16931 XML. The line item computes 10 × 150.00 € = 1,500.00 € net, 19 % adds 285.00 € tax, total 1,785.00 € — the same values that appear in the input above.

The full recipe

The endpoints involved

  • Invoice Creator

    POST /api/v1/invoice/{countryCode}/{format}/generate

    Live
  • PDF Embedder

    POST /api/v1/invoice/{countryCode}/{format}/embed

    Live
  • Validator

    POST /api/v1/invoice/{countryCode}/validate

    Live

Compared to the alternative

The alternative is having the ERP or invoicing software extended with an e-invoicing module. That works — but often takes longer than the mandate allows, while the data in the DMS is ready today.

Read the comparison

How it runs

  1. 1

    A workflow step or webhook in the DMS reports the approved invoice; the connection reads index fields and line items (for DocuWare via the Platform API).

  2. 2

    POST /api/v1/invoice/DE/zugferd/embed with the PDF from the DMS and the fields — or /generate for a pure XRechnung — each with validation.

  3. 3

    Result back into the DMS: as a new document, as an attachment or by mail to an import mailbox; status and error text on the original.

Price

On request. Talk to us and we will quote for your case.

Get in touch

Limits

  • A ready connection exists today for DocuWare (beta, set up by us). Other DMS on request.
  • Line items have to be stored as a table field in the DMS — no data is read from the PDF image.
  • Peppol dispatch is not available yet (planned 2027). Generating and checking Peppol BIS 3.0 works today.

Frequently asked questions

My DMS is not DocuWare — does this still work?

The API itself does not depend on the DMS: it takes fields and optionally a PDF. A ready connection exists today for DocuWare; for another DMS talk to us and we check how the index data can be read there.

Does the ERP have to change?

No, as long as the invoice arrives in the DMS with its index data and line items. If a field is missing there — such as the Leitweg-ID for public bodies — it is added in the DMS, not in the ERP.

From your DMS to an e-invoice — without touching the ERP.