Docs/Integrations/PrestaShop
PrestaShop

PrestaShop Integration

Live for PrestaShop 8+

Generate compliant e-invoices straight from PrestaShop — XRechnung, ZUGFeRD, and PDF live today, seven more formats coming Q3 2026. Free MIT-licensed module, paid e-invoice service.

Live today

  • PDF (all 11 country profiles)
  • XRechnung 3.0 for Germany — BIS 3.0 / EN 16931
  • ZUGFeRD 2.3/2.4 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

Free module, paid service

MIT-licensed, free on GitHub and addons.prestashop.com. Revenue lives in the invoice-api.xhub.io service subscription — the same model you already trust for Stripe, PayPal, and Mollie.

Three formats live, seven more in 2026

PDF, XRechnung 3.0, and ZUGFeRD 2.3/2.4 ship today. The remaining country-specific formats appear automatically in the dropdown once the backend supports them — no module update needed.

§14 UStG-compliant invoice numbering

Gap-free, race-safe sequential numbers via a dedicated DB table. Token format 2026-{seq:0000} for legally compliant production use — even under high-volume multi-shop load.

PrestaShop hook system

actionOrderStatusUpdate and actionEmailSendBefore are the primary triggers. Language-agnostic OrderState flag mapping means the module works across any PrestaShop locale without reconfiguration.

Custom invoice templates

Design your layout in the console, copy the Template-UUID, paste into module settings. Per-order override is supported for special key-account designs — resolved at generation time.

GDPR-friendly storage

Invoice files live locally in the module storage path. On uninstall with data-deletion enabled, both module tables (sequence + meta) are dropped cleanly — no orphaned customer data.

PrestaShop hook events

Trigger e-invoice generation directly from PrestaShop order lifecycle hooks. The module registers two primary hooks and reacts to standard OrderState flags — no custom JavaScript, no separate service.

actionOrderStatusUpdate

Fires on every order-state transition. The module checks your configured trigger states and generates the invoice when matched.

actionEmailSendBefore

Fires before any transactional email is sent. Used to attach the generated e-invoice PDF to the customer order-confirmation email.

OrderState flag mapping

Map any OrderState ID to invoice generation — language-agnostic, works across all installed languages and multi-shop contexts without extra configuration.

No code required

All hook registrations happen automatically on module install. Configure trigger states via the module settings form — no PHP editing needed.

Screenshots

Module Manager — “Invoice-api.xhub for PrestaShop” listing
Configure page — Generate-card + History table
Green success card with template UUID + API hash diagnostic
History table with Template + API hash columns
Settings form with all fields populated
Attach e-invoice to customer emails toggle in Settings

How it works

Install the module via the PrestaShop Module Manager (upload ZIP or find on addons.prestashop.com), sign up for an invoice-api.xhub.io account, paste the API key into the Settings form, pick country, format, and trigger OrderState. When an order reaches the configured state, actionOrderStatusUpdate fires, the module POSTs the order to the API, and the returned invoice file lands in the module storage directory — indexed in a per-order meta table. The auto-install Docker stack (docker-compose.yml included) lets you spin up a full PrestaShop 8 dev environment in under two minutes.

Production-ready

PrestaShop 8-native: PSR-4 autoload via composer.json, PHP 8.1+, hook registration on install. Atomic invoice numbering via INSERT…ON DUPLICATE KEY UPDATE keeps numbers gap-free even under multi-shop burst traffic. Diagnostic visibility (Template UUID + API hash columns) is built into the admin history table — no log digging required. Multi-shop aware: each shop context resolves its own API key and template configuration.

Who it's for

DACH B2B PrestaShop shops facing the 2025 XRechnung receive mandate and the 2027/28 send mandate — you need ZUGFeRD or XRechnung, not “some PDF”. Cross-border EU shops on PrestaShop that need PDF today and country-specific formats as they roll out in 2026. Multi-shop operators who need centralised invoice generation across storefronts — the module resolves per-shop config at runtime.

Use cases

DACH B2B compliance

XRechnung and ZUGFeRD for German and Austrian B2B customers with VAT-ID and net-30 payment terms.

  1. 1B2B customer with VAT-ID detected on order
  2. 2actionOrderStatusUpdate fires on configured trigger state
  3. 3XRechnung XML or ZUGFeRD hybrid PDF generated
  4. 4Invoice attached to order-confirmation email via actionEmailSendBefore

Cross-border EU trade

PDF invoices for all EU markets today, automatic format upgrade to country-specific standards as they launch in 2026.

  1. 1EU customer places order in any shop language
  2. 2Module resolves country profile from billing address
  3. 3PDF generated today; format upgrades automatically in 2026
  4. 4OSS-compliant archiving in module storage

Bookkeeping bridge

Standards-compliant XML/PDF from PrestaShop, further processing in DATEV, sevDesk, or Lexoffice.

  1. 1Module generates compliant XML or hybrid PDF
  2. 2GoBD-compliant local archiving in module storage path
  3. 3Export to DATEV/sevDesk via existing PrestaShop accounting module
  4. 4Automatic account assignment via your accounting software — no duplicate workflow

Diagnostic visibility

See exactly which template UUID reached the API for every generated invoice — no silent fallbacks, no surprises. Template and API hash columns in the history give you the tools to track layout changes immediately and compare production renderings run-to-run.

Template column in history

Every row in the history table shows the truncated template UUID that was sent to the API for that invoice.

API hash column

The content hash returned by the API enables run-to-run comparison — same inputs, same hash.

Diagnostic success card

After clicking Generate now, the green success card shows filename, byte size, the template UUID sent, and the API hash at a glance.

Template-aware cache invalidation

The idempotency cache also compares templateId. Changing the template UUID forces a fresh render instead of serving the previously cached file.

Configured a custom template but the PDF still looks identical?

The module correctly sent your template UUID to the API. If the rendered PDF still looks like the default layout, the template content itself has not been customised yet. Open console.invoice-api.xhub.io/pdf/templates and edit the layout, logo, and colors to make the difference visible.

Plugin comparison: which PrestaShop e-invoicing solution fits?

Overview of e-invoicing options for PrestaShop and the wider XRechnung-API landscape — features, pricing, compliance.

Get started today

Grab the module from GitHub, sign up for a service account, and send your first compliant e-invoice from PrestaShop in ten minutes.