Free, MIT-licensed PrestaShop module that turns orders into compliant e-invoices via the invoice-api.xhub.io service. Live formats: PDF, XRechnung 3.0 (German B2G/B2B, EN 16931 / Peppol BIS Billing 3.0) and ZUGFeRD 2.3/2.4 (hybrid PDF/A-3 with embedded XML, Germany/Austria).
🇩🇪 Deutsche Anleitung im
README.de.md. 🇫🇷 Documentation française dansREADME.fr.md.
When an order's status changes the module sends the order to
invoice-api.xhub.io and stores the returned invoice file under
modules/prestashop_invoice_api_xhub/files/<orderID>/. Trigger states
(off / on_pending / on_processing / on_completed) and target
format are configurable per shop. Invoices can also be generated
manually for any order from the module's Configure page.
- PrestaShop 8.0.0+
- PHP 8.1+
- An invoice-api.xhub.io account (sign up free at console.invoice-api.xhub.io)
- Download
prestashop_invoice_api_xhub-1.0.0.zip(public release pending — contact support@invoice-api.xhub.io for early access). - PrestaShop Back-Office → Modules → Module Manager → Upload a module → upload the ZIP.
- The module auto-installs. Modules → Module Manager → find "Invoice-api.xhub for PrestaShop" → click Configure.
- Fill in:
- API key (from console.invoice-api.xhub.io/api-keys)
- Country (default
DE) and Format (PDF/XRechnung/ZUGFeRD) - Trigger (default: on payment received)
- Seller block — your company name, VAT-ID, address, email, phone
- Bank — IBAN + BIC (required for SEPA payment instructions in XRechnung/ZUGFeRD)
- Country-specific (DE) — Default Leitweg-ID for B2G XRechnung (optional)
- Template — UUID of a custom PDF template from console.invoice-api.xhub.io/pdf/templates (optional)
- Save settings.
After install:
- Modules → Module Manager → Invoice-api.xhub for PrestaShop → Configure.
- Pick an order from the dropdown → click "Generate now".
- The module posts to invoice-api.xhub.io, stores the result on disk, and shows a green confirmation with template + API hash diagnostic.
- The "Generated invoices" history table on the same page lists every invoice with format, byte size, timestamp, template UUID and API hash.
For automatic generation: change an order's status in the Back-Office.
The actionOrderStatusUpdate hook fires on every status change and the
module generates the invoice when the new status matches the configured trigger.
Configure the Template UUID in Configure. The module sends it to the API on every generation. The Configure page shows for each generated invoice exactly which template UUID was sent (column "Template" in the History table) and the API's content hash.
A custom template inherits the system default until you actually edit its layout, logo and colors at console.invoice-api.xhub.io/pdf/templates. If your generated PDF still looks identical to the default, the UUID is reaching the API correctly (visible in the History table) — the template content itself has not yet been customised.
| Country | Code | XRechnung | ZUGFeRD | |
|---|---|---|---|---|
| Germany | DE | ✅ | ✅ | ✅ |
| Austria | AT | — | ✅ | ✅ |
| France | FR | — | — | ✅ |
| Italy | IT | — | — | ✅ |
| Spain | ES | — | — | ✅ |
| Belgium | BE | — | — | ✅ |
| Netherlands | NL | — | — | ✅ |
| Bulgaria | BG | — | — | ✅ |
| Romania | RO | — | — | ✅ |
| Czech Republic | CZ | — | — | ✅ |
| Hungary | HU | — | — | ✅ |
API roadmap (Q3 2026 onwards): Factur-X (FR), FatturaPA (IT), Facturae (ES), ebInterface (AT), UBL, ISDOC (CZ), NAV (HU). The module will surface these in the Format dropdown automatically as soon as the API supports them.
- §14 UStG (Germany) — gap-free atomic invoice numbering when
using the
{seq:0000}token format. The counter lives in a dedicated DB table and is race-safe under concurrent generations. - EN 16931 + XRechnung 3.0 + Peppol BIS Billing 3.0 for German B2G XML invoices.
- GDPR — all invoice files live on your own server; nothing is stored externally except the API call to invoice-api.xhub.io for the document generation itself. Uninstalling with "delete data" cleanly removes both DB tables and all generated files.
- Generated invoices:
modules/prestashop_invoice_api_xhub/files/<orderID>/<filename> - Sequence counter:
ps_xhubio_invoice_api_xhub_seqtable - Per-order metadata (filename, format, template UUID, API hash, error history):
ps_xhubio_invoice_api_xhub_metatable
The Configure page shows the resolved storage path, total invoice count, and the most-recent generation timestamp.
- API console: console.invoice-api.xhub.io
- Email: support@invoice-api.xhub.io
- Module source / issues: public release pending
MIT — see LICENSE.md for the full text.