Magento 2 Extension E-Invoice

Magento 2 E-Invoice extension for XRechnung, ZUGFeRD, Factur-X, EN 16931 XML, and PEPPOL BIS Billing, with validation, email attachments, credit memo support, and automated generation.

SoftwareSilo E-Invoice turns Magento invoice data into structured files that accounting and procurement systems can process. Instead of exporting orders to a separate converter, your team can create, validate, store, email, and download electronic invoices from the Magento workflow.

Five invoice formats: The extension generates ZUGFeRD 2.3.x, Factur-X 1.07.x, XRechnung 3.0.x, EN 16931 XML, and PEPPOL BIS Billing 3.0 UBL for invoices. ZUGFeRD and Factur-X combine a readable PDF/A-3 document with embedded invoice data. XRechnung, EN 16931, and PEPPOL BIS are structured XML outputs.

Choose the format for each store: The default format is configured at store scope, which is useful when one Magento installation serves different storefronts or markets. If recipients require different formats within the same store, that selection needs to be handled as part of the project because automatic per-customer switching is not included in the standard package.

Credit memos are included with a defined format scope: Credit memo generation is available for ZUGFeRD, XRechnung, and PEPPOL BIS Billing. This matters because a corrected or refunded transaction needs its own structured document and a clear reference to the original invoice. Factur-X and generic EN 16931 credit memo output are not part of the current standard package.

Automatic or controlled generation: Create an E-Invoice immediately when an invoice is created or paid, send the work to a queue, process it hourly or daily, or keep generation manual. Invoice and credit memo behavior can be configured separately, so the workflow can match how your finance team releases documents.

Validation before a document leaves the shop: Minimal, standard, and strict validation levels check the generated result. Standard checks cover important business rules, while strict validation can include the supplied XML schemas. Failed generations can be retried, reported by email, or configured to block a process when that is the safer operational choice.

Delivery that fits the existing customer journey: Electronic invoice files can be attached to Magento invoice and credit memo emails as XML, PDF, both, or automatically according to the format. Customers can download the E-Invoice from their account, and authorized administrators can download individual documents or a ZIP archive.

Company and buyer data where formats expect it: Configure VAT and tax identifiers, registration data, bank details, seller contacts, GLN, DUNS, trading name, seller Leitweg-ID, and fiscal representative details. Buyer references and electronic addresses are resolved from Magento data and configuration. The project team should still verify which identifiers each recipient requires.

Tax and payment details are not treated as an afterthought: The extension maps payment methods to electronic payment means, writes payment terms, groups VAT amounts, and handles categories such as standard, zero-rated, exempt, reverse charge, intra-community supply, export, and outside scope. It also includes handling for multipurpose vouchers and line-level accounting references.

PEPPOL BIS file generation is not Peppol delivery: SoftwareSilo can create PEPPOL BIS Billing 3.0 UBL with seller and buyer endpoint identifiers. Sending that file through the Peppol network still requires an Access Point or another delivery service. Keeping this distinction clear prevents a file-format project from being mistaken for a complete network connection.

Tools for operations and integrations: Administrators can see format, generation status, timestamps, and validation results on invoice and credit memo screens. REST endpoints support single and bulk generation, while command-line tools cover generation, pending work, validation, and amount checks.

Built for teams that want E-Invoicing close to Magento: SoftwareSilo E-Invoice is a practical fit when Magento is the source of invoice data and the merchant wants generation and day-to-day handling inside the shop. It does not replace tax advice, recipient onboarding, archival policy, or a Peppol Access Point, but it provides the Magento-side document workflow those projects need.

ZUGFeRD, Factur-X, XRechnung, and EN16931

Generate e-invoices in key EU formats from one shared configuration.

E-invoicing for invoices and credit memos

Process both invoices and credit memos within one consistent e-invoicing flow.

Immediate, queued, or scheduled generation

Select the generation mode that matches your document volume and operating model.

PDF/A-3 hybrid documents and XML attachments

Deliver machine-readable XML and human-readable PDFs in one coordinated output.

XSD validation with configurable strictness

Validate documents before delivery and reduce rejection loops.

Status and validation visibility in admin

Track e-invoice status, error details, and validation outcomes per document.

Map payment terms by payment method

Keep payment terms and payment means codes aligned with real checkout payment logic.

Line-level accounting reference (BT-133)

Resolve accounting references per line item from configurable source data.

ZIP mass download and frontend PDF download

Provide e-invoices in ZIP batches or through controlled single-document download paths.

API-ready e-invoice data delivery

Use e-invoice data through existing Magento extension attributes in controlled ERP and automation integrations.

  • Current Version1.1.6
  • Compatible with Magento 2.4.6 - 2.4.9
  • Compatible with PHP 8.1 - 8.5

If your environment differs from the listed requirements, we can check compatibility in advance. Please contact us via our contact form.

e-invoice

Version 1.1.6 - 2026-08-10

Added
  • Added Factur-X and standalone EN16931 credit memo generation, including Factur-X PDF/A-3 output with embedded XML
  • Added asynchronous queue processing and failed-generation retries for credit memo E-Invoices
Changed
  • Updated ZUGFeRD output to version 2.5 and Factur-X output to version 1.09 with the current profile-specific XSD schemas
  • Updated the ZUGFeRD generation library requirement to version 1.0.124 or newer
Fixed
  • Fixed CII credit notes with document type 381 to use positive quantities and amounts while corrected invoices with type 384 retain negative values
  • Fixed Factur-X invoice and credit memo services to persist the generated hybrid PDF instead of XML-only output
  • Fixed credit memo E-Invoice attachments for Magento's Symfony-based mail transport
  • Fixed hybrid credit memo PDF replacement to respect credit memo E-Invoice enablement per store
  • Fixed bulk CLI generation to reject malformed and non-positive invoice or credit memo ID lists

Version 1.1.5 - 2026-08-04

Changed
  • Replaced the module information block with the shared Extension Manager extension

Version 1.1.4 - 2026-07-01

Changed
  • Aligned Factur-X with the shared ZUGFeRD / Factur-X CII profile configuration and normalized stored profile values during setup upgrade
  • Removed unused profile and generation source models and their obsolete DI configuration
Fixed
  • Fixed invoice and credit memo cron jobs to respect the global E-Invoice enablement flag before processing store-scoped cron generation modes
  • Fixed admin XML downloads to regenerate missing documents through the E-Invoice service lifecycle instead of bypassing storage updates
  • Fixed invoice email attachments to respect the global E-Invoice enablement flag
  • Fixed XML validation to return parse errors cleanly when invalid XML cannot be loaded
  • Fixed storefront E-Invoice PDF downloads for Magento guest order invoice pages
  • Fixed invoice E-Invoice file deletion to use the same storage contract as credit memo file deletion

Version 1.1.3 - 2026-05-08

Added
  • Added credit memo cron jobs (hourly `GenerateCreditmemoEInvoicesHourly` and daily `GenerateCreditmemoEInvoicesDaily`) to process `creditmemo_settings.generation_mode` = `cron_hourly` / `cron_daily` stores
Fixed
  • Fixed cron scope resolution: all three cron classes (`GenerateEInvoicesDaily`, `GenerateEInvoicesHourly`, `RetryFailedGenerations`) now use `StoreManagerInterface` + `ScopeConfigInterface` to resolve config at any scope level, instead of querying `core_config_data` with `scope = 'stores'` only
  • Fixed `GenerateEInvoicesDaily` now double-checks the generation mode before processing, matching the hourly cron's guard against race conditions
  • Fixed `MassOperationService` now calls `EInvoiceServiceInterface::detectCustomerType()` instead of hardcoding B2B
  • Fixed `street_line2` from store configuration is now emitted in seller address for all six ZUGFeRD-based formatters
  • Fixed discount amount incorrectly placed in `chargeTotal` — moved to `allowanceTotal` and corrected `taxBasisTotal` calculations across all six formatters
  • Fixed `payment_means_code_no_iban` fallback now used in `ZugferdFormatter`, `FacturXFormatter`, `En16931Formatter`, `ZugferdCreditmemoFormatter`, and `XrechnungCreditmemoFormatter` when bank IBAN is not configured

Version 1.1.2 - 2026-05-01

Fixed
  • Fixed translations

Version 1.1.1 - 2026-04-26

Changed
  • Raised the supported Magento floor to 2.4.6+ because `horstoeko/zugferd` requires Symfony 5.4 or newer and Magento 2.4.4/2.4.5 remain on Symfony 4.4
  • Aligned the Gitea CI compatibility matrix with the new 2.4.6+ floor
Fixed
  • Updated the ZUGFeRD integration test fixture to instantiate `ZugferdFormatter` with all current dependencies

Version 1.1.0 - 2026-04-18

Added
  • Added PEPPOL BIS Billing 3.0 (UBL) output format for invoices and credit notes
  • Added seller PEPPOL endpoint configuration with 70+ EAS codes
  • Added automatic buyer endpoint detection from VAT ID and country
  • Added EN16931 BT-151 VAT category resolver (S/Z/E/AE/K/G/O)
  • Added configurable BT-120 exemption reasons with German §-law defaults
  • Added multi-purpose voucher detection for Adobe Commerce giftcards and custom product attribute
  • Added seller GLN, DUNS, trading name and Leitweg-ID fields
  • Added fiscal representative (BG-11 / BT-63) admin section
  • Added `bin/magento einvoice:verify-amounts` CLI command (BR-CO-13/15/16 + Magento cross-check)
  • Added Kleinunternehmer (§19 UStG) master flag
Changed
  • Tax totals now group by (category, rate) so mixed baskets render with correct subtotals
  • EU membership now reads Magento's native EU countries setting
  • Centralised tax-bucket aggregation across all formatters
Fixed
  • Credit memo formatters now store the credit memo ID via the new `setCreditmemoId()` instead of the invoice ID slot

Version 1.0.7 - 2026-03-07

Fixed
  • Fixed the admin credit memo "View XML Content" action to load XML content correctly in the modal

Version 1.0.6 - 2026-02-11

Added
  • Added invoice grid mass action to download E-Invoices as ZIP (respects attachment strategy and enablement)

Version 1.0.5 - 2026-02-06

Added
  • Added feature to define accounting reference per line item (according to BT-133) - choose from order item attribute, product attribute or customer attribute

Version 1.0.4 - 2026-02-05

Added
  • Added payment method mapping for payment terms and payment means codes
  • Added frontend E-Invoice PDF download link with access checks
  • Added admin invoice grid column for E-Invoice status (conditional on module enable)
  • Added validation results modal on invoice view
  • Added XSD validation support for XRechnung 2.2/2.3 schemas
Changed
  • Added XSD validation flow for XRechnung and EN16931 formats (respecting validation level)
Fixed
  • Fixed validation level config path usage to reflect system configuration

Version 1.0.3 - 2026-01-27

Fixed
  • Fixed on-demand storage retrieval by generating documents when files are missing
  • Fixed block-on-error invoice setting during automatic generation
  • Prevented duplicate email sends when attachment preparation fails
  • Replaced direct gmdate/time usage with Magento DateTime helper

Version 1.0.2 - 2026-01-26

Added
  • Added System Configuration module information block

Version 1.0.1 - 2025-12-19

Fixed
  • Fixed an issue on Credit Memo validation

Version 1.0.0 - 2025-12-18

Added
  • Initial version
Module-Specific Questions
What is a Magento 2 E-Invoice extension?

It turns Magento invoice data into a structured electronic invoice that accounting or procurement software can process. SoftwareSilo keeps generation, validation, storage, email attachment, and download functions inside the Magento workflow.

Which invoice formats does SoftwareSilo E-Invoice support?

For invoices, the current extension supports ZUGFeRD 2.3.x, Factur-X 1.07.x, XRechnung 3.0.x, EN 16931 XML, and PEPPOL BIS Billing 3.0 UBL. The format is selected as a store-level default.

Is a normal PDF an electronic invoice?

A simple PDF is readable but does not contain the structured data required by the German definition of an E-Invoice since 2025. ZUGFeRD and Factur-X solve this by embedding structured data in PDF/A-3; XRechnung and PEPPOL BIS use XML.

What is the difference between XRechnung and ZUGFeRD?

XRechnung is a structured XML specification widely used for German public-sector invoicing. ZUGFeRD combines structured invoice data with a readable PDF/A-3. The recipient, transaction type, and agreed delivery channel determine which is appropriate.

Does the extension generate Factur-X invoices?

Yes. Invoice output supports Factur-X 1.07.x as a hybrid PDF/A-3 document with embedded structured data. Credit memo generation in Factur-X is not included in the current standard package.

Does it support PEPPOL BIS Billing?

Yes. The extension generates PEPPOL BIS Billing 3.0 UBL invoice files and can include seller and buyer electronic endpoint identifiers. It does not transmit those files through the Peppol network.

Do I still need a Peppol Access Point?

Yes, if the recipient expects delivery through the Peppol network. SoftwareSilo generates the BIS Billing file in Magento; an Access Point or delivery provider handles network discovery, transport, and delivery.

Can the extension create electronic credit memos?

Yes. The current package generates structured credit memos for ZUGFeRD, XRechnung, and PEPPOL BIS Billing. It links the correction to the original invoice where the available Magento data allows it.

Are Factur-X and EN 16931 credit memos supported?

Not in the current standard package. Factur-X and generic EN 16931 are available for invoice output, while credit memo output is registered for ZUGFeRD, XRechnung, and PEPPOL BIS Billing.

When can Magento generate an E-Invoice automatically?

Generation can run when an invoice is created or paid. It can happen immediately, through the Magento queue, hourly, or daily. Manual generation is also available, and credit memo behavior is configured separately.

Can each customer receive a different format automatically?

The standard package uses a default format configured per store scope. Automatic per-customer selection within the same store is not included and should be planned as a project-specific extension if recipients have different requirements.

How are E-Invoices validated?

The extension offers minimal, standard, and strict levels. These cover document structure and business checks, with strict validation able to use supplied XML schemas. Validation helps find errors but does not replace tax or legal review.

What happens when generation fails?

Failures are recorded with status and messages. The store can retry failed work, notify a configured email address after a threshold, and decide whether an error should block the related process.

Can E-Invoices be attached to Magento emails?

Yes. Invoice and credit memo emails can receive XML, PDF, both, or an automatic attachment appropriate to the selected format. The exact attachment behavior is configurable.

Can customers download their E-Invoice?

Yes. Logged-in customers can download the generated E-Invoice from their invoice area. The extension also includes handling for authorized guest invoice downloads where the Magento guest access conditions are met.

Can administrators download several documents at once?

Yes. Authorized administrators can generate and download individual documents and use mass operations to collect multiple E-Invoices in a ZIP archive.

Which seller identifiers can be included?

Configuration covers VAT ID, tax number, registration number, SIRET, GLN, DUNS, trading name, seller Leitweg-ID, contact details, IBAN, BIC, and fiscal representative information. Only relevant fields need to be used.

Does the extension support buyer references and Leitweg-ID?

Yes. Buyer references and electronic address values can be resolved from Magento and configuration. A Leitweg-ID is normally a B2G requirement rather than a general domestic B2B requirement, so the recipient's specification should decide its use.

How does it handle VAT categories?

The module groups tax amounts and resolves standard, zero-rated, exempt, reverse-charge, intra-community supply, export, and outside-scope categories. Exemption reasons and a small-business setting are available where applicable.

Are payment terms and bank details included?

Yes. Seller bank details, payment terms, due dates, and mappings from Magento payment methods to electronic payment means can be included according to the selected format and configuration.

Is there a REST API for E-Invoice generation?

Yes. REST endpoints support single and bulk generation for invoices and credit memos. Generated XML and PDF paths are also exposed through Magento extension attributes for authorized API consumers.

Does the extension provide GraphQL endpoints?

No dedicated GraphQL interface is included in the current package. Magento REST services, admin actions, scheduled processing, queues, and command-line tools are available.

Does the extension guarantee legal compliance?

No software can replace a review of the merchant's transaction, data, recipient rules, delivery channel, and current law. The extension creates supported technical formats and validation results, but the merchant remains responsible for configuration and compliance.

What should be tested before going live?

Test real invoices, tax rates, discounts, shipping, refunds, payment terms, buyer references, endpoint identifiers, email attachments, downloads, validation, and the recipient's import. Include at least one rejected document to verify support procedures.

General Questions
How many Magento installations is the license valid for?

The license is valid for one Magento installation, including multi-website operation. In addition, the module may be installed on any number of development or staging servers. You can find further details in our license terms.

Is installation included in the price?

Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.

What payment methods are available?

You can pay by credit card (Stripe) or bank transfer (prepayment). For credit card payments, the order is processed immediately and the access credentials are provided directly in a separate follow-up email.

What does the order process look like?

After credit card payment, you immediately receive access credentials to obtain the module via Composer. For bank transfer, access is granted once the invoice is paid.

I need a custom modification of the module. Is that possible?

Custom requests are no problem. We tailor our Magento 2 modules to your project and maintain a dedicated internal version so we always know exactly what runs on your system for support.

Can I install a demo version locally?

On each module detail page, you can request your own demo instance and test the module intensively for 7 days. However, we do not provide a local demo version.

Is the source code encrypted?

No, the source code of our modules is not encrypted. If you need a customization, feel free to send us a request. We will get back to you promptly with a non-binding quote.

What is the update policy and support?

You can add a support package to your order. It includes assistance as well as updates and upgrades related to the module. No continuous subscription is required.

I already have a license. How can I perform an update?

You can complete the license update here. If you have an active support package, you receive updates automatically via Composer. If your support package has expired, you can renew your license here or in your account.

I have another question — how can I contact you?

You can reach us anytime via eMail.

E-Invoice

×

Ideal for these industries & use cases

Compliant B2G invoice processes

Meet public-sector requirements with XRechnung-compliant output and traceable validation.

Scalable B2B e-invoicing

Deliver structured e-invoices to business partners in stable formats for automated downstream handling.

Planable handling of high volumes

Process peak volumes with queue or scheduled runs without slowing store operations.

Auditable document history per record

Keep status, file paths, and validation outcomes available to reduce audit clarification cycles.

Unified process across countries

Apply store-view-specific formats while managing country requirements in one central workflow.

Structured handover to ERP and finance

Transfer e-invoice data in standardized form to downstream systems and reduce manual reconciliation.

Try it without risk

Request a personal demo instance and evaluate the module directly in backend and frontend under real conditions — without local installation.

For developers

Practical Magento 2 guides, technical developer documentation, and API references (REST, SOAP, GraphQL) for installation, configuration, and troubleshooting.

Go to Knowledge Base