Shopify

Shopify Integration

Under App Store review

Embedded Shopify app that turns every order into a compliant e-invoice — XRechnung 3.0, ZUGFeRD 2.3, and PDF live today, seven more formats arriving Q3 2026. Free app install · separate invoice-api.xhub.io service (free tier + paid). v1.0.0 submitted to Shopify App Store review.

Compliant e-invoice for every Shopify order

PDF · XRechnung 3.0 · ZUGFeRD 2.3 — straight from every order, EN 16931 compliant

Submitted to Shopify App Store review

The Shopify app is free to install and uses no Shopify Billing API. Only the invoice-api.xhub.io service is billed separately at console.invoice-api.xhub.io (free tier available). v1.0.0 is in review — grab an API key now and try the app in demo mode.

Live demo

Silent demo · 1600×900
Silent screen tour of the app: setup, format selection, order view, automatic invoice generation, and download. No audio.

Live today

  • PDF (all 14 supported countries)
  • XRechnung 3.0 for Germany — BIS 3.0 / EN 16931
  • ZUGFeRD 2.3 for DE/AT — hybrid PDF/A-3 with embedded XML

Coming Q3 2026

  • Factur-X (FR)
  • FatturaPA (IT)
  • Facturae (ES)
  • ebInterface (AT)
  • UBL (BE/NL/BG/RO)
  • ISDOC (CZ)
  • NAV (HU)

Features

Automatic e-invoice

PDF, XRechnung, or ZUGFeRD generated automatically on order paid or fulfilled — via Shopify webhook

Per-shop format choice

Switch between PDF, XRechnung 3.0, and ZUGFeRD 2.3 in the Settings tab — no code, applies to the next order

Admin order-detail block

Native order-detail block with Generate / Re-generate (force) and a download link for every generated file

Theme app block for download

Theme app block for the order-status page — buyers download their invoice directly from the Shopify storefront

Screenshots

Four steps run in the background: order arrives, invoice is generated, format is rendered, delivery happens automatically.
One API call, three compliant formats. PDF for the buyer, XRechnung for public authorities, ZUGFeRD for hybrid B2B delivery.
The invoice link appears automatically in the Shopify order confirmation — no theme edit, no Liquid snippet, no manual email.
B2B receiving mandate since 2025, sending mandate from 2027 for large companies, full coverage for everyone from 2028. The app covers all three phases.
Embedded in Shopify Admin. Service status, API key, format selector and seller master data — everything in one surface, no context switching.

Webhooks the app subscribes to

What the embedded app subscribes to

On install the app subscribes to exactly the seven webhooks listed below — two business triggers for auto-generation, three mandatory GDPR compliance webhooks, and two lifecycle webhooks. If you prefer an app-less integration, you can consume the same events directly in n8n / Make (see section below).

orders/paid

Auto-generation trigger (default)

orders/fulfilled

Alternative trigger — generation only after fulfillment

customers/data_request · customers/redact · shop/redact

Mandatory GDPR webhooks (data request, customer redact, shop redact)

app/uninstalled · app/scopes_update

Lifecycle cleanup on uninstall and scope changes

json
1// Shopify Webhook → Invoice-api.xhub
2// Configure in Shopify Admin → Settings → Notifications → Webhooks
3 
4// Webhook Payload from Shopify (orders/paid)
5{
6 "id": 820982911946154508,
7 "email": "kunde@beispiel.de",
8 "billing_address": {
9 "company": "Musterfirma GmbH",
10 "address1": "Musterstraße 123",
11 "city": "Berlin",
12 "zip": "10115",
13 "country_code": "DE"
14 },
15 "line_items": [
16 {
17 "title": "Premium Widget",
18 "quantity": 2,
19 "price": "99.00"
20 }
21 ],
22 "tax_lines": [
23 { "rate": 0.19, "price": "37.62" }
24 ]
25}

Integration with n8n/Make

Prefer a no-app integration? Connect Shopify with Invoice-api.xhub via an automation platform of your choice.

  1. 1

    Create Shopify Webhook

    Admin → Settings → Notifications → Webhooks

  2. 2

    Create n8n/Make Workflow

    Trigger: Webhook, Action: HTTP Request

  3. 3

    Transform Data

    Shopify format → Invoice-api.xhub format

  4. 4

    Create E-Invoice

    POST /api/v1/invoice/de/xrechnung/generate to Invoice-api.xhub API

typescript
1// n8n/Make Workflow: Shopify → Invoice-api.xhub
2 
3// 1. Trigger: Shopify Webhook (orders/paid)
4// 2. Transform: Shopify → Invoice-api.xhub Format
5// 3. Action: POST https://service.invoice-api.xhub.io/api/v1/invoice/de/xrechnung/generate
6 
7// Compute items with all required fields
8const items = shopifyOrder.line_items.map((item, index) => {
9 const unitPrice = parseFloat(item.price);
10 const taxRate = 19;
11 const netAmount = unitPrice * item.quantity;
12 const taxAmount = Math.round(netAmount * taxRate) / 100;
13 const grossAmount = netAmount + taxAmount;
14 return {
15 position: index + 1,
16 description: item.title,
17 quantity: item.quantity,
18 unit: "piece",
19 unitPrice,
20 taxRate,
21 netAmount,
22 taxAmount,
23 grossAmount,
24 };
25});
26 
27const subtotal = items.reduce((sum, i) => sum + i.netAmount, 0);
28const totalTax = items.reduce((sum, i) => sum + i.taxAmount, 0);
29 
30const payload = {
31 invoice: {
32 invoiceNumber: `SHOP-${shopifyOrder.id}`,
33 type: "invoice",
34 issueDate: new Date().toISOString().slice(0, 10),
35 dueDate: new Date(Date.now() + 30 * 86400000).toISOString().slice(0, 10),
36 currency: "EUR",
37 seller: {
38 name: "Your Shop Name",
39 vatId: "DE123456789",
40 street: "Shopstraße 1",
41 city: "Hamburg",
42 postalCode: "20095",
43 countryCode: "DE",
44 },
45 buyer: {
46 name: shopifyOrder.billing_address.company,
47 vatId: shopifyOrder.customer.tax_id,
48 street: shopifyOrder.billing_address.address1,
49 city: shopifyOrder.billing_address.city,
50 postalCode: shopifyOrder.billing_address.zip,
51 countryCode: shopifyOrder.billing_address.country_code,
52 },
53 countrySpecific: {
54 buyerReference: "SHOP-LEITWEG-ID",
55 },
56 items,
57 subtotal,
58 total: subtotal + totalTax,
59 taxSummary: [{ taxRate: 19, netAmount: subtotal, taxAmount: totalTax }],
60 paymentTerms: "Payable within 30 days",
61 },
62};
63 
64const response = await fetch(
65 "https://service.invoice-api.xhub.io/api/v1/invoice/de/xrechnung/generate",
66 {
67 method: "POST",
68 headers: {
69 "Content-Type": "application/json",
70 "X-API-Key": "your-api-key",
71 },
72 body: JSON.stringify(payload),
73 }
74);

Use Cases

B2B Orders

Automatic XRechnung for all B2B customers with VAT ID

  1. 1Customer provides VAT ID at checkout
  2. 2Shopify webhook on payment receipt
  3. 3Invoice-api.xhub creates XRechnung
  4. 4E-invoice sent via email

Government Orders

XRechnung with routing ID for public sector clients

  1. 1Capture routing ID as custom field
  2. 2Order is placed
  3. 3Create XRechnung with routing ID
  4. 4Download link in order-detail block · upload to procurement portal

Hybrid Invoices

ZUGFeRD PDF as default for all orders

  1. 1Every order triggers workflow
  2. 2Create ZUGFeRD 2.3 COMFORT
  3. 3Attach PDF to confirmation email
  4. 4Archiving in Invoice-api.xhub

Start now — the app ships after review approval

Grab an API key on invoice-api.xhub.io today. As soon as Shopify completes App Store review, install the embedded app and you'll be live right away.