Factur-X & ZUGFeRD E-Invoice Generator + Validator
Pricing
from $50.00 / 1,000 invoice generateds
Factur-X & ZUGFeRD E-Invoice Generator + Validator
Generate compliant Factur-X / ZUGFeRD e-invoices (PDF/A-3 with embedded EN 16931 XML) from simple JSON, and validate or extract existing e-invoice PDFs & XML including XRechnung. Schematron-checked, UBL export. Ready for the France & Germany B2B e-invoicing mandates.
Pricing
from $50.00 / 1,000 invoice generateds
Rating
0.0
(0)
Developer
Josef Bednář
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Generate legally compliant hybrid e-invoices — a normal, human-readable PDF with the machine-readable EN 16931 XML embedded inside (PDF/A-3) — from a simple JSON object. Or point the actor at an existing e-invoice (PDF or XML) and get a full compliance validation report. Also extracts embedded XML and converts to UBL 2.1 and XRechnung.
Why now: France mandates B2B e-invoicing (Factur-X) starting September 2026, with all companies required to receive e-invoices from day one. Germany's ZUGFeRD/XRechnung mandate is already phasing in since January 2025. Every ERP, SaaS, and agency that bills French or German companies needs to produce and check these formats — this actor does it in one API call, with no Java stack, no schematron setup, no PDF/A tooling to maintain.
What it does
| Mode | In | Out |
|---|---|---|
| generate | Invoice as JSON (or JSON + your branded PDF) | Factur-X/ZUGFeRD PDF (PDF/A-3), standalone CII XML, optional UBL 2.1, validation report |
| validate | Any e-invoice PDF or XML (URL / base64 / pasted XML) | Valid/invalid + detected profile + every rule violation with rule IDs (BR-…, BR-CO-…, BR-DE-…) |
| extract | Factur-X/ZUGFeRD PDF | The embedded XML + quick summary (number, total, currency, guideline) |
- Profiles: EN 16931 (Comfort — the one both mandates accept), Basic, Extended, and XRechnung 3.0 (German federal, XML-only)
- Keep your branding: pass your own invoice PDF (
basePdf) — it is converted to PDF/A-3 and the XML is embedded into it. Without it, a clean standardized invoice PDF is rendered from your data (English, German, or French labels) - Totals done right: line totals, VAT breakdown per rate/category, and grand totals are computed by the actor, so the EN 16931 arithmetic rules (BR-CO-*) always hold
- Pre-validated: every generated invoice is run through full XSD + Schematron validation by default and ships with its report
- VAT scenarios: standard (S), zero-rated (Z), exempt (E), reverse charge (AE), intra-Community supply (K), export (G) — with sensible default exemption reasons
- Validation engine: Mustangproject — the open-source reference implementation used across the industry
Generate — minimal example
{"mode": "generate","invoice": {"number": "INV-2026-0042","issueDate": "2026-08-08","dueDate": "2026-09-07","currency": "EUR","seller": {"name": "Atelier Lumière SARL","street": "12 Rue de la Paix", "city": "Paris", "zip": "75002","countryCode": "FR", "vatId": "FR40303265045"},"buyer": {"name": "Bau & Technik GmbH","street": "Torstrasse 1", "city": "Berlin", "zip": "10115","countryCode": "DE", "vatId": "DE123456789"},"payment": { "iban": "FR7630006000011234567890189", "terms": "Payable within 30 days." },"lines": [{ "name": "UX design sprint", "quantity": 3, "unitCode": "DAY", "unitPrice": 850, "vatRate": 20 },{ "name": "Design system licence", "quantity": 1, "unitPrice": 490, "vatRate": 20 }]}}
Result (dataset record):
{"status": "SUCCESS","mode": "generate","profile": "en16931","invoiceNumber": "INV-2026-0042","totals": { "net": 3040, "tax": 608, "gross": 3648, "due": 3648 },"pdfUrl": "https://api.apify.com/v2/key-value-stores/…/records/invoice.pdf","xmlUrl": "https://api.apify.com/v2/key-value-stores/…/records/factur-x.xml","validation": { "valid": true, "errorCount": 0, "reportUrl": "…" }}
Line fields: name (required), quantity (required), unitPrice (net, required),
vatRate (%), unitCode (UN/ECE rec 20 — C62 unit, H87 piece, HUR hour, DAY,
KGM…), vatCategory (S default, Z, E, AE, K, G), description.
Invoice extras: buyerReference (required for XRechnung), orderReference,
deliveryDate, note, paidAmount, typeCode (380 invoice, 381 credit note),
seller/buyer registrationId (SIRET/HRB/IČO), taxId, electronicAddress,
contactName / contactEmail / contactPhone.
Validate — example
{ "mode": "validate", "file": "https://example.com/incoming-invoice.pdf" }
{"status": "SUCCESS", "valid": false, "fileType": "pdf","profile": "urn:cen.eu:en16931:2017","errorCount": 1, "warningCount": 0,"messages": [{ "severity": "error", "ruleId": "BR-CO-25","message": "[BR-CO-25]-In case the Amount due for payment (BT-115) is positive, either the Payment due date (BT-9) or the Payment terms (BT-20) shall be present." }],"reportUrl": "…/validation-report.xml"}
Accepts Factur-X / ZUGFeRD PDFs (any version), CII XML, UBL XML, and XRechnung — the format and profile are auto-detected. The full validator report (XML) is stored alongside.
Use it from your stack
- API:
POST https://api.apify.com/v2/acts/josefbednar~factur-x-zugferd-e-invoice/run-sync-get-dataset-items?token=…with the JSON input — one HTTP call, response contains the URLs - AI agents / MCP: works as an MCP tool out of the box on Apify — let your agent produce compliant invoices or triage incoming ones
- Zapier / Make / n8n: use the Apify integration, map your order data into
invoice
Notes & limits
- Amounts are treated as net; document-level allowances/charges are not yet supported (per-line pricing covers the common cases — tell us in Issues if you need BG-20/BG-21)
basePdfaccepts any regular PDF; encrypted or malformed PDFs fail with a clear error- XRechnung output is XML-only by design (that is the standard); the PDF produced in that
mode is a human-readable preview. XRechnung additionally requires
buyerReference, sellercontactName/contactEmail/contactPhone, buyerelectronicAddress, and payment details — the validation report will tell you exactly what is missing - Generation typically takes 10–30 s (JVM + FOP rendering); validation 5–15 s
Pricing events
| Event | Meaning |
|---|---|
invoice-generated | One e-invoice generated (includes embedded validation) |
invoice-validated | One file validated |
xml-extracted | One XML extracted from a PDF |