← Back to all articles
This article is not yet available in your language. Showing the English version.

Automatic EU-compliant invoices for every Shopify order

SealDoc Team · · 3 min read

Selling to European businesses comes with an invoice requirement that most Shopify stores quietly ignore: structured, machine-readable invoices. A regular PDF does not qualify for B2B transactions in Germany, France, Belgium, or the Netherlands once the national e-invoicing mandates kick in. Starting 2025, B2B e-invoicing is mandatory or actively phased in across most of the EU.

The SealDoc EU Invoicing app for Shopify closes that gap automatically.

What the app does

Every time an order is paid (or fulfilled, your choice), the app:

  1. Detects whether the buyer is a business, by checking for a VAT number in the order note attributes
  2. Builds a structured Factur-X or ZUGFeRD invoice from the Shopify order data
  3. Sends that invoice request to the SealDoc compliance engine
  4. Writes a download link directly to the Shopify order note

The merchant does not need to touch anything. The buyer gets a compliant invoice without asking for one.

Why Factur-X

Factur-X (known as ZUGFeRD in Germany) is a hybrid format: a PDF you can read on screen, with a machine-readable XML invoice embedded inside. It is the format of choice for cross-border EU compliance because:

  • French tax authority (DGFIP) mandates Factur-X for B2B from 2026
  • Germany accepts both ZUGFeRD and XRechnung; ZUGFeRD is the default for non-public-sector buyers
  • Belgium, Netherlands, and Austria all accept Factur-X under the EN16931 standard
  • The European standard EN16931 is the underlying specification, so a valid Factur-X invoice is legally valid across the EU

The SealDoc app defaults to Factur-X BASIC, which has the broadest compatibility. Merchants who need the stricter EN16931 profile can switch it in the settings.

B2B and B2C in the same store

Not every Shopify order is a business order. The app handles this cleanly. If an order contains a VAT number in the note attributes (field name is configurable), it is treated as B2B and gets a full structured invoice. Orders without a VAT number are treated as consumer orders. You can choose to skip those entirely, or generate a Factur-X BASIC invoice for them anyway.

No checkout changes are required. If you already collect VAT numbers via a checkout app or a note attribute on your order form, the field is picked up automatically.

Getting started

  1. Install the SealDoc EU Invoicing app from the Shopify App Store
  2. Create an API key in your SealDoc dashboard under Settings > API Keys
  3. Paste the key into the app setup page and click Validate
  4. Pick your compliance profile, trigger, and B2C handling
  5. Save. Your first compliant invoice is generated on the next qualifying order

A SealDoc Starter plan or higher is required. The Starter plan includes Factur-X generation and is sufficient for most Shopify stores.

What it does not do (yet)

The current version generates one invoice per order at the moment of payment or fulfillment. Credit notes, refund invoices, and multi-rate VAT line items are on the roadmap for a future release. XRechnung for the German public sector (Leitweg-ID routing) is supported at the data level already and will be available as a dedicated compliance profile soon.


← Back to all articles