From magazine topic to project implementation
Relevant service and technical pages for this post
Monday, 9:10 a.m. Accounting forwards an email: “The customer will only accept e-invoices from now on.” In the ticket system this arrives as a terse assignment to IT: “Please deliver XRechnung.” In reality there is usually not a single application behind this, but a landscape: ERP, a separate service system, maybe an old spare-parts module — all print invoices, but none produces structured XML.
In exactly this situation the E-Rechnungsdrucker appears to be the saving lever: from any program, generate ZUGFeRD or XRechnung via a print command, without immediately rebuilding three systems. The approach can work. But it can also become a new source of errors if it is treated like “just another printer driver.” Therefore the decisive factor is not the driver, but the decision path: which option fits your data situation, your rollout window and your operational reality?
E-Rechnungsdrucker in der Praxis
When invoices are produced today as PDFs or printouts, projects typically end up at one of the following options. They differ less in file format than in ownership, change effort and support burden.
| Option | What happens technically? | Practical advantages | Typical risks | When is it suitable? |
|---|---|---|---|---|
| E‑Rechnungsdrucker (virtual printer) | Source system “prints” to a print queue; from that ZUGFeRD/XRechnung are generated. | Quick start, minimal changes to legacy systems, central rollout possible. | Mapping from the print image can be fragile; mandatory fields must be supplemented; a new operational path is created. | When time is tight or source systems cannot be changed in the short term. |
| ERP/application update with native e-invoicing module | The system exports directly from its data model into the standard format (XML/PDF hybrid). | More stable data basis, less interpretation logic, maintainable in the long term. | Dependency on releases and customizations; often multiple versions in the field. | When a vendor path is available and the update window is realistic. |
| Central e-invoice service (middleware/API) | Source systems provide structured document data to a service; it generates/validates centrally. | Governance and validation in one place, good automation, clear versioning. | Initially higher integration effort; interfaces must be stable and owned. | When multiple systems are to be connected and an API strategy exists. |
| Manual/portal-based capture | PDF data is entered into the portal or uploaded. | Minimal IT intervention. | Scales poorly, error-prone, shadow processes, weak traceability. | Only as an emergency measure for very small volumes and short duration. |
In this comparison the E‑Rechnungsdrucker is often the fastest option that remains controllable. The price is a new central path: generation, validation, storage, error handling. Those who consciously accept this price can buy time without sacrificing quality.
Data quality beats file format: The core conflict behind “ZUGFeRD or XRechnung”
Many discussions start with the format question. In operation, however, something else decides: How reliably do you receive the standardized invoice data? An e‑invoice according to EN 16931 requires structured information about seller/buyer, tax details, payment terms, line items, sum logic and references. If your systems write parts of this information only as free text into the layout, any automated generation becomes fragile—regardless of whether the end result is XRechnung XML or a ZUGFeRD‑PDF.
For Germany, XRechnung and ZUGFeRD (from version 2.0.1, with exceptions for certain profiles) are explicitly named as suitable formats in the context of e‑invoicing[Quelle]. The limit of that statement is important: it does not tell you whether your data are complete and compliant. The practical consequence is nevertheless clear: you can align format decisions to recipient profiles—and invest your effort into the generation and validation pipeline.
E‑invoice printer: What really happens between “printing” and “valid e‑invoice”
An e‑invoice printer is typically a virtual printer (driver plus background service). Applications send a print job to a queue. From that a document artifact is produced: either ZUGFeRD/Factur‑X (PDF/A‑3 with embedded XML) or XRechnung (XML, often UBL or CII).
ZUGFeRD is described as a hybrid format that carries structured invoice data in a PDF/A‑3 file[Quelle]. From an operational perspective this is a real advantage: you retain a visually readable PDF for approvals, archiving and inquiries—while simultaneously delivering machine‑readable data.
In practice the process breaks down into two critical steps:
- Data extraction (Mapping): Invoice fields are obtained from the print stream or the generated PDF. This can be done via layout rules, templates, field recognition and supplementing sources.
- Validation: The generated invoice is checked against EN 16931 and profile rules (e.g. XRechnung/Peppol), plus arithmetic checks for totals and taxes.
A documented e‑invoice printer approach exposes this reality: invoices are sent from arbitrary applications to a virtual printer queue and then stored in the desired format; if mandatory data are missing or totals deviate, a validation dialog appears[Quelle]. The takeaway for projects: plan for exceptions—and plan to reduce them through rules and master data, not through permanent user interaction.
Where „from any program“ fails: typical boundaries and their consequences
Inconsistent layouts become a support issue
Many companies maintain different invoice layouts per client, site or business unit. People notice that immediately; rules and templates must represent it explicitly. Without layout governance an inconvenient operational consequence emerges: every layout change is potentially a breaking change for the mapping — and ends up with IT/support instead of the business unit.
Mandatory fields are often not printable — and still required
Leitweg‑ID, Buyer Reference, tax identifiers or standardized payment terms are often not part of the existing print format or appear only as free text. An e-invoice printer can only solve that if there is a supplementary source: master data, mapping tables or a central lookup. A print-time dialog is tolerable at best during a pilot phase; in high-volume production it becomes a process break.
Calculation logic: rounding and discounts are the classics
A recurring pattern: the source system prints rounded amounts, while the structured invoice is calculated from individual values. That produces cent-level discrepancies. For recipient portals this can be a real reason for rejection. Validation solutions that check not only against profile rules but also evaluate total and tax logic are therefore not „nice to have“ but operational protection: they find errors before the recipient does[Source].
Example (constructed): decision under time pressure, without blindly centralizing
Architectural consequences: the e-invoice printer is no longer a peripheral concern
Anyone who implements the approach seriously effectively builds a small platform. This platform must be operated like a service — otherwise it will become a source of disruption at month-end closing. Typical building blocks:
- Print sources: Windows-clients, terminal server/RemoteApp, if applicable central print processes. This is where the question of whether rollout and driver maintenance are feasible is decided.
- Queue/Spool: Print queue with Backpressure: congestion occurs when validation blocks or resources are missing. Tenant separation (e.g. separate queues) can simplify governance.
- Generation: Conversion to PDF/A‑3 or XML, supplementing missing fields, applying rules.
- Validation: Checking against EN 16931 and profile rules; producing a report that remains understandable for support (error/warning, rule, affected data point).
- Storage/Hand-off: Folder structure, DMS, delivery channels (E‑mail, portal, EDI/Peppol). A clear ID strategy is important so that any document can be found later.
- Monitoring/Auditing: Throughput, error rate, backlog, top error classes, version states. Without observability you only see „printing doesn’t work“.
The operational consequence is harsh but useful: this processing pipeline is directly tied to billing and liquidity. It requires responsibilities, maintenance windows and clear escalation – just like a payment provider or an EDI gateway.
E‑invoice printer or direct integration? Criteria that make the decision robust
The e‑invoice printer is often the better initial choice when …
- multiple applications generate invoices and not all can be changed in the short term,
- you need a reliable minimum solution quickly,
- central master data are available as enrichment sources (taxes, payment terms, references),
- the print layout is stable and changes are controlled.
Direct integration (or a central API service) is usually more appropriate when …
- the invoice logic is complex (discounts, partial invoices, service periods) and resides in the data model,
- you require high automation and low fault tolerance (many recipients, portals, EDI/Peppol),
- structured document data are already available as an API/event or can realistically be created,
- you want to anchor versioning and governance in the backend rather than in layout rules over the long term.
Many teams ultimately run both tracks: an e‑invoice printer in the short term for unmodifiable systems, alongside a clean target architecture for the ERP/backend. The only important thing is that the transition is planned: whoever builds a bridge should know where it leads.
Rollout in 7 steps: From „works at the workstation“ to „works in the month-end closing“
- Inventory invoice types: Standard invoice, credit note, cancellation, down payment, collective invoice. For each type record: which fields/logics are critical?
- Cluster recipient profiles: Who requires XRechnung, who accepts ZUGFeRD, are there Peppol requirements? Define target profiles per cluster.
- Define data sources: Where do VAT ID, addresses, payment terms, tax codes, routing ID (Leitweg‑ID), bank account details come from? Without a clear source, users become the data service.
- Pilot with edge cases: Not just a sample invoice. Test rounding, discounts, shipping costs, multiple tax rates, foreign scenarios and cancellations.
- Automate validation: Define which errors block processing and which warnings go to rework. Store reports per document.
- Build an operational concept: Logging, monitoring, permissions, retention, update/rollback plan. A „printer“ without an operational concept is a black box.
- Rollout in waves: First one team/location, then expand. This stabilizes rules in a controlled way instead of firefighting.
Standards and Versions: Why ‚once set up‘ is not correct
For XRechnung, version management is not an academic issue. Recipient portals validate against concrete specifications. KoSIT maintains versions and bundles centrally; there it is visible that developments up to version 3.0 exist[Quelle]. The limitation: the version list alone does not indicate which version your specific recipient requires. The conclusion is nevertheless clear: your generation pipeline needs an update path and regression tests.
For operation this specifically means:
- Version transparency per invoice: Document profile/version traceably, otherwise support becomes a guessing game.
- Change management: Updates to generation and validation logic belong in a regulated release process.
- Reference test set: A set of synthetic test invoices (without personal data) helps secure versions and rule changes.
Security and Compliance: E-invoices are sensitive business data
E-invoices regularly contain personal data (e.g. contact persons), company identifiers (VAT ID), payment information and service details. From this follow requirements that often appear too late in projects:
- Local vs. Cloud: If recognition/validation is outsourced to cloud services, data processing agreements, data flows, deletion policies and access controls must be properly documented. With local processing, responsibility remains more in your own operation: patch level, hardening, permissions.
- Roles and separation: Who is allowed to change rules? Who may modify documents afterwards? Without clear separation a support process quickly becomes a compliance risk.
- Traceability: Store artifacts (PDF/XML) and validation reports so it can later be proven what was generated and sent, including versions and results.
This does not replace legal advice. It is an operational observation: the more e-invoices are understood as ‚data + document‘, the less they belong in unclear fileshares with changing permissions.
Operations questions that decide between success and ongoing stress
What happens if the queue stalls?
If the generation or validation service is blocked, print jobs accumulate. Without metrics you only see symptoms. Plan therefore minimum telemetry: jobs/minute, error rate, throughput time, backlog. This is not ‚monitoring for the sake of monitoring‘, but the prerequisite to distinguish external causes (resources, permissions, broken rule, profile change).
How to organize rework without creating workarounds?
A validation dialog at the client is a process decision. If users can ‚click through‘ there, shadow paths develop: invoice sent as a normal PDF, e-invoice later ’sometime‘. Better is a clear error inbox (queue/tickets/status folders) with responsibilities: master data maintenance, rule maintenance, subject-matter decision on warnings.
How do pilot rules become a maintainable standard?
Many rules originate in the pilot from individual cases. The step to maintainability only succeeds when rules become versioned and testable. If your tool provides a command-line interface for that, it can significantly improve operational reality: batch generation, validation with reporting, automated conversions – without a user having to print interactively. Such CLI functions are documented in the manual as an approach for ZUGFeRD embedding, PDF/A conversion and validation[Quelle]. The practical consequence: you can build regression tests and job chains instead of relying on workstation clicks.
The justified first step: required-field map instead of a tool showdown
Before you roll out drivers or compare products against each other, a short, sober workshop with finance/sales and IT operations is worthwhile: create a required-field map per recipient profile.
Concrete guiding questions that you can convert directly into results:
- Which customers require XRechnung, which accept ZUGFeRD, which use Peppol?
- Which required fields are missing per source system — and which of those can be supplied centrally from master data?
- Which invoice types are frequent and error-prone in your environment (credit note/cancellation/partial invoice)?
- Which validation errors do you realistically expect (rounding, tax codes, address details, references)?
With this map the decision usually becomes faster and calmer: either the e-invoicing printer becomes a robust bridge because you can manage supplementary data and variants. Or it would be a layout lottery — in which case the cleaner route is direct integration or a central service.
Final point: starting quickly is fine — operating provisionally is not
An e-invoicing printer can be the right answer under time pressure, especially in heterogeneous system landscapes. Success, however, does not hinge on the print command but on operational readiness: mapping rules, validation, versioning and a clear error handling process. If you treat these points from the outset as a central service, you can actually produce stable ZUGFeRD and XRechnung outputs from “printing” — and gain transparency into grown invoicing processes in the process.
Sources and further information
The substantive core statements were editorially contextualized based on the following external sources.
- Bundesfinanzministerium – Questions and answers on the introduction of the obligatory (mandatory) e-invoice as of 1 January 2025 (www.bundesfinanzministerium.de)
In Germany, XRechnung and ZUGFeRD (from version 2.0.1 with exceptions) are considered suitable e-invoice formats in the context of the introduction of the e-invoice. - ZUGFeRD 2.2 German (www.ferd-net.de)
ZUGFeRD is described as a hybrid format that transports structured invoice data in a PDF/A‑3 file. - Versions and bundles of XRechnung | XStandards Procurement (xeinkauf.de)
KoSIT lists versions and bundles of XRechnung (including current versions) as a reference for implementations. - Creating e-invoices: ZUGFeRD, XRechnung, Peppol | Net-Base (net-base-software-gmbh.de)
An e-invoice printer approach can send invoices from arbitrary applications to a virtual printer queue and generate e-invoices from them; if required fields are missing or totals deviate, a validation dialog may be necessary. - Validate e-invoice: ZUGFeRD, Factur-X, XRechnung | Net-Base (net-base-software-gmbh.de)
Validation of e-invoices includes EN 16931 and profile rules (e.g., XRechnung/Peppol) as well as calculation checks for totals and taxes. - netPDF on the command line – netPDF Manual | Net-Base (net-base-software-gmbh.de)
A command-line interface can support batch generation, ZUGFeRD embedding/PDF/A conversion, and validation with reporting.
For this topic, ZUGFeRD creation and virtual printer e-invoicing are also important. The article puts these aspects into context and shows what matters in daily operations.
Discuss a project or modernization initiative with Net-Base.
Next step
When the topic becomes an actual project, architecture, existing systems and operations should be considered together from the outset.
We support not only with individual issues, but also when source snippets, legacy topics, or portal ideas are to be turned into a robust enterprise project.
- Current state, target state and technical risks are assessed jointly.
- REST, data access, portals and rollout are not deferred to a later stage as secondary consequences.
- You can see early on which path is economically and operationally viable.