Factur-X & ZUGFeRD E-Invoice Generator + Validator avatar

Factur-X & ZUGFeRD E-Invoice Generator + Validator

Pricing

from $50.00 / 1,000 invoice generateds

Go to Apify Store
Factur-X & ZUGFeRD E-Invoice Generator + Validator

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ář

Josef Bednář

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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

ModeInOut
generateInvoice as JSON (or JSON + your branded PDF)Factur-X/ZUGFeRD PDF (PDF/A-3), standalone CII XML, optional UBL 2.1, validation report
validateAny e-invoice PDF or XML (URL / base64 / pasted XML)Valid/invalid + detected profile + every rule violation with rule IDs (BR-…, BR-CO-…, BR-DE-…)
extractFactur-X/ZUGFeRD PDFThe 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)
  • basePdf accepts 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, seller contactName/contactEmail/contactPhone, buyer electronicAddress, 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

EventMeaning
invoice-generatedOne e-invoice generated (includes embedded validation)
invoice-validatedOne file validated
xml-extractedOne XML extracted from a PDF