PHPackages                             xhubio/jtl-shop-invoice-api-xhub - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. xhubio/jtl-shop-invoice-api-xhub

ActiveJtl-shop-plugin[PDF &amp; Document Generation](/categories/documents)

xhubio/jtl-shop-invoice-api-xhub
================================

Generate compliant e-invoices from JTL-Shop orders via invoice-api.xhub.io. Live now: PDF, XRechnung, ZUGFeRD. Coming Q3 2026: Factur-X, FatturaPA, Facturae, ebInterface, UBL, ISDOC, NAV.

1.0.0(2mo ago)00[1 PRs](https://github.com/xhubio/jtl-shop-invoice-api-xhub/pulls)MITPHPPHP ^8.1

Since May 10Pushed 1mo agoCompare

[ Source](https://github.com/xhubio/jtl-shop-invoice-api-xhub)[ Packagist](https://packagist.org/packages/xhubio/jtl-shop-invoice-api-xhub)[ RSS](/packages/xhubio-jtl-shop-invoice-api-xhub/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (3)Used By (0)

Invoice-api.xhub for JTL-Shop
=============================

[](#invoice-apixhub-for-jtl-shop)

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)

Free, MIT-licensed plugin that turns JTL-Shop orders into compliant e-invoices via the [invoice-api.xhub.io](https://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`**.

How it works
------------

[](#how-it-works)

When an order's status changes the plugin sends the order to invoice-api.xhub.io and stores the returned invoice file under `plugins/xhubio_invoice_api_xhub/files//`. Trigger states (`off` / `on_pending` / `on_on_hold` / `on_processing` / `on_completed`) and target format are configurable per shop. Invoices can also be generated manually for any order from the plugin's admin Settings tab.

Requirements
------------

[](#requirements)

- JTL-Shop **5.2.0+** (the installer auto-checks this against `info.xml`)
- PHP **8.1+**
- An invoice-api.xhub.io account ([sign up free at console.invoice-api.xhub.io](https://console.invoice-api.xhub.io))

Install
-------

[](#install)

1. Download `jtl-shop-invoice-api-xhub-1.0.0.zip` (public release pending — contact  for early access).
2. JTL-Shop admin → **Plugins → Plugin-Manager → "Verfügbar"** tab → **Plugin-ZIP hochladen** → upload the ZIP.
3. Switch to the **"Aktiviert"** tab → toggle the plugin on.
4. **Plugins → Installierte Plugins → Invoice-api xhub for JTL-Shop**.
5. Tab **"Configuration"** → fill in:
    - **API key** (from [console.invoice-api.xhub.io/api-keys](https://console.invoice-api.xhub.io/api-keys))
    - **Country** (default `DE`) and **Format** (`PDF` / `XRechnung` / `ZUGFeRD`)
    - **Trigger** (default: when order goes to "in Bearbeitung")
    - **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](https://console.invoice-api.xhub.io/pdf/templates) (optional)
6. **Save**.

Generate your first invoice
---------------------------

[](#generate-your-first-invoice)

After install:

1. **Plugins → Installierte Plugins → Invoice-api xhub for JTL-Shop**→ tab **"Settings"** → **"Generate invoice (manual trigger)"** card.
2. Pick an order from the dropdown → click **"Generate now"**.
3. The plugin posts to invoice-api.xhub.io, stores the result on disk, and shows a green confirmation card with a clickable filename.
4. The **"Generated invoices"** history table on the same tab lists every invoice with format, byte size, timestamp and a download link.

For **automatic** generation: change an order's status in your JTL-Wawi-driven workflow (or directly in the JTL-Shop admin if your setup permits). The plugin's listener fires on order-status-change and generates the invoice when the new status matches the configured trigger.

Custom PDF templates — when the output looks the same
-----------------------------------------------------

[](#custom-pdf-templates--when-the-output-looks-the-same)

Configure the **Template** UUID in the Configuration tab. The plugin sends it to the API on every generation. The Settings tab 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](https://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 support (11 country profiles)
-------------------------------------

[](#country-support-11-country-profiles)

CountryCodeXRechnungZUGFeRDPDFGermanyDE✅✅✅AustriaAT—✅✅FranceFR——✅ItalyIT——✅SpainES——✅BelgiumBE——✅NetherlandsNL——✅BulgariaBG——✅RomaniaRO——✅Czech RepublicCZ——✅HungaryHU——✅API roadmap (Q3 2026 onwards): Factur-X (FR), FatturaPA (IT), Facturae (ES), ebInterface (AT), UBL, ISDOC (CZ), NAV (HU). The plugin will surface these in the Format dropdown automatically as soon as the API supports them.

Compliance
----------

[](#compliance)

- **§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. `Bootstrap::uninstalled($deleteData=true)`cleanly removes both DB tables and all generated files.

Where files and data go
-----------------------

[](#where-files-and-data-go)

- Generated invoices: `plugins/xhubio_invoice_api_xhub/files//`
- Sequence counter (for atomic numbering): `xplugin_xhubio_invoice_api_xhub_seq` table
- Per-order metadata (filename, format, error history): `xplugin_xhubio_invoice_api_xhub_meta` table

The Settings tab in the plugin admin shows the resolved storage path, total invoice count, and the most-recent generation timestamp.

Support
-------

[](#support)

- **API console:** [console.invoice-api.xhub.io](https://console.invoice-api.xhub.io)
- **Email:**
- **Plugin source / issues:** public release pending

License
-------

[](#license)

MIT — see the **"Lizenzvereinbarungen"** tab for the full text.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

76d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20843387?v=4)[PatrickJ](/maintainers/pa201608)[@pa201608](https://github.com/pa201608)

---

Top Contributors

[![pa201608](https://avatars.githubusercontent.com/u/20843387?v=4)](https://github.com/pa201608 "pa201608 (3 commits)")

---

Tags

invoiceinvoice-pdfjtlpdfx-rechnungzugferd

### Embed Badge

![Health badge](/badges/xhubio-jtl-shop-invoice-api-xhub/health.svg)

```
[![Health](https://phpackages.com/badges/xhubio-jtl-shop-invoice-api-xhub/health.svg)](https://phpackages.com/packages/xhubio-jtl-shop-invoice-api-xhub)
```

###  Alternatives

[tarfin-labs/easy-pdf

Makes pdf processing easy.

1719.9k](/packages/tarfin-labs-easy-pdf)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
