Install
openclaw skills install zugferd-invoiceMerge ZUGFeRD 2.1 compliant invoice PDF and time report into a single visible multi-page PDF/A-3b file with embedded XML for German B2B/Gov use.
openclaw skills install zugferd-invoiceCreate ZUGFeRD 2.1 / Factur-X compliant e-invoices with visible merged pages. German B2B / Gov-ready.
🇩🇪 Germany/EU only - This skill implements the German ZUGFeRD standard for electronic invoicing.
| Dependency | Install | Notes |
|---|---|---|
| Java 11+ | brew install openjdk@21 | Required by MustangProject |
| GhostScript | brew install ghostscript | PDF/A-3 conversion |
| mustang.jar | Manual download | ZUGFeRD processor |
mkdir -p ~/.openclaw/tools/mustang
curl -L https://github.com/ZUGFeRD/mustangproject/releases/download/core-2.22.0/mustang.jar \
-o ~/.openclaw/tools/mustang/mustang.jar
export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"
cd ~/.openclaw/workspace/skills/zugferd-invoice
python3 scripts/zugferd_pages_workflow.py \
--invoice Rechnung.pdf \
--attachment Zeitnachweis.pdf \
--output Rechnung_komplett.pdf
Output:
python3 scripts/zugferd_workflow.py \
--invoice Rechnung.pdf \
--attachment Zeitnachweis.pdf \
--output Rechnung_komplett.pdf
Output:
| Flag | Description | Required |
|---|---|---|
--invoice | Original ZUGFeRD e-invoice PDF | ✅ Yes |
--attachment | Time report / additional document | ✅ Yes |
--output | Output path for merged PDF | ✅ Yes |
--keep-temp | Keep temporary files (debug) | ❌ No |
| Feature | GhostScript (Recommended) | Attachment-Only (Fallback) |
|---|---|---|
| Visible pages | ✅ Both documents | ⚠️ Only invoice |
| Time report visibility | ✅ Page 2+ | ❌ File attachment only |
| PDF/A-3 compliance | ✅ Full | ✅ Full |
| Requires GhostScript | ✅ Yes | ❌ No |
| Complexity | Medium | Low |
Standard PDF merging breaks PDF/A-3 compliance. The trick:
This preserves visible pages while achieving full compliance.
If your time report cannot be converted to PDF/A (e.g., Lexware exports with broken ICC profiles), use --attachments flag which embeds files without visible merging.
brew install ghostscript
brew install openjdk@21
export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"
Download from MustangProject releases
gs --version (should be 10+)# Check PDF/A compliance
java -jar ~/.openclaw/tools/mustang/mustang.jar --action validate \
--source Rechnung_komplett.pdf
# Should output: <summary status="valid"/>