
Create ZUGFeRD PDF
Build complete ZUGFeRD and Factur-X e-invoicing workflows with one API Tool. Generate a professional invoice PDF from structured XML, preserve an existing branded PDF when its contents match the invoice data, regenerate it when they do not, and independently validate the finished hybrid invoice.
Key Benefits of Create ZUGFeRD PDF API
- Generate complete ZUGFeRD or Factur-X hybrid invoices from CII XML, including a visual PDF, embedded XML attachment, required metadata, and PDF/A-3 packaging.
- Combine an existing invoice PDF with XML data and identify concrete discrepancies before completing the hybrid invoice for delivery, archival, or automated processing.
- Regenerate the visual invoice from canonical XML whenever supplied PDF content conflicts with the XML or cannot be confidently confirmed by validation.
- Validate existing ZUGFeRD and Factur-X PDFs without modifying them, checking XML business rules, PDF/A-3 status, attachment relationships, metadata, and package structure.
- Support MINIMUM, BASIC WL, BASIC, and EN 16931 profiles for ZUGFeRD 2.5.2 and Factur-X 1.09.2, helping meet current German and French e-invoicing needs.
- Customize XML-generated invoices with logos, regular and bold fonts, language, regional formats, currency display, colors, decimal precision, and footer messaging.
- Upload invoice files directly or reuse pdfRest resource IDs from prior operations to build efficient, fully automated e-invoicing workflows at any scale.
Start right from your browser - upload files, choose parameters, generate code, and send API Calls directly from API Lab!
You have document processing problems, we have Solutions. Explore the many ways pdfRest can align your documents with your business objectives.
Turn ZUGFeRD and Factur-X Requirements into One Automated Workflow
ZUGFeRD and Factur-X give people and systems the same invoice: a human-readable PDF/A-3 document containing machine-readable UN/CEFACT Cross Industry Invoice XML. The German and French standards are technically aligned, so one pdfRest integration supports both workflows without asking your application to assemble the PDF, XML, attachment, and metadata layers itself.
That shared approach gives accounting platforms, ERP systems, billing applications, and document-management systems one reliable workflow across both markets. Invoice recipients retain a familiar visual document, while downstream systems receive structured data ready for automation.
The launch release supports four profiles:
MINIMUMBASIC WLBASICEN 16931
When a workflow encounters a profile outside that coverage, pdfRest returns a specific PROFILE_UNSUPPORTED finding for clear routing rather than an ambiguous result. This gives you useful German and French e-invoicing coverage today, with a straightforward path to future profile expansion.
Generate a PDF from XML or Preserve an Existing Invoice
Create a visual invoice from CII XML alone, or submit your existing PDF and XML to retain the design your business already uses. pdfRest checks the information it can reliably compare before packaging the files and rejects concrete mismatches by default.
Choose the workflow that fits the assets you have:
- XML only: Generate the visual invoice and complete the PDF/A-3 package from a valid CII XML invoice.
- PDF plus XML: Preserve a matching branded PDF while pdfRest adds the XML, PDF/A-3 conversion, attachment relationship, and required metadata.
- Regenerate when necessary: Set
regenerate_pdftotrueto replace a mismatched or unconfirmed PDF with one generated from the canonical XML.
For generated or regenerated PDFs, render_options lets you apply a PNG or JPEG logo, label language, regional value formatting, fonts, RGB or CMYK colors, currency presentation, date format, decimal precision, and footer text. Label language and regional formatting are independent, so an invoice can use English labels with German dates, decimals, and currency presentation.
Whether it preserves or regenerates the visual layer, pdfRest validates the XML, completes the required PDF/A-3 packaging, and verifies the finished hybrid invoice before it is returned.
Validate the Complete ZUGFeRD or Factur-X Package
Conforming XML is only one part of a valid hybrid invoice. The POST /validated-zugferd endpoint validates an existing ZUGFeRD or Factur-X PDF without modifying it, whether pdfRest created the file or it came from another system.
It checks the coordinated layers required for a conforming package:
- PDF/A-3 conformance, embedded CII XML, and supported invoice profile
- Applicable XML business rules and attachment filename, MIME type, and association metadata
- Required XMP properties and PDF/A extension schema
- Detectable agreement between the human-readable invoice and structured invoice data
The response separates the overall decision from content-match confidence. status is VALID only when the package, XML, business rules, and independent PDF/A validation pass; pdfa reports the claimed PDF/A-3 level; and findings supplies prioritized machine-readable codes and messages. contentMatchStatus: UNVERIFIED means no concrete mismatch was found but complete reverse confirmation was not possible, and is accompanied by a non-blocking PARTIAL_REVERSE_VALIDATION warning.
Every processing call also returns reusable resource IDs. Use them to chain creation and validation without downloading intermediate files, accept conforming invoices automatically, route invalid packages or concrete mismatches for correction, and send UNVERIFIED documents for review when your business policy requires it.
Need more help?
Start with a Tutorial for step-by-step guidance
Learn about the parameters for this tool to create your custom solution.
The optional render_options parameter controls the appearance and regional formatting of a PDF generated or regenerated from XML. For multipart requests, submit this parameter as a JSON string. For JSON requests using resource IDs, submit it as a JSON object.
Supported options include:
logo_corner:top-left,top-right,bottom-left, orbottom-rightfont: optional regular-text font from the maintained pdfRest Font List, or another installed text-capable fontbold_font: optional heading and emphasized-text font; it is independent offonttext_color_rgbortext_color_cmyk: primary text colormuted_text_color_rgbormuted_text_color_cmyk: secondary text coloraccent_color_rgboraccent_color_cmyk: emphasized invoice elementsborder_color_rgborborder_color_cmyk: table and rule borderstable_header_color_rgbortable_header_color_cmyk: table-header filltable_alternate_color_rgbortable_alternate_color_cmyk: alternating table-row fillfooter_message: optional text up to 500 characters; omit it or usenullfor no footerlocale:de-DE,fr-FR,nl-NL, oren-GBlabel_language: English (en), German (de), or French (fr), including accepted regional subtagscurrency_display:code,symbol, ornamedate_format: optional .NET date format string; omit it or usenullfor the defaultdecimal_precision:0,1,2,3, or4
For each configurable color, supply either its RGB option or its CMYK option, not both. RGB values are three integers from 0 to 255; CMYK values are four integer percentages from 0 to 100.
Example:
{
"logo_corner": "top-right",
"font": "Arial",
"bold_font": "Arial Bold",
"locale": "fr-FR",
"label_language": "en",
"currency_display": "symbol",
"date_format": "dd/MM/yyyy",
"decimal_precision": 2,
"text_color_rgb": [26, 31, 41],
"muted_text_color_rgb": [89, 99, 115],
"accent_color_rgb": [20, 64, 115],
"border_color_rgb": [179, 189, 204],
"table_header_color_rgb": [20, 64, 115],
"table_alternate_color_rgb": [240, 245, 250],
"footer_message": "Thank you for your business."
}
Use logo_file or logo_id separately to supply the logo shown at logo_corner. This example deliberately uses English labels with French value formatting to show that label_language and locale are independent. To use CMYK instead, replace any *_rgb field with its matching *_cmyk field—for example, "accent_color_cmyk": [83, 44, 0, 55]. In a multipart request, pass the same object as a JSON-formatted string; in a JSON request, pass it as an object.
Safe & Secure
Confidently process your sensitive data with pdfRest. Our platform is built for robust, Enterprise-grade security and compliance. We meet rigorous standards for GDPR and HIPAA, and our controls are independently audited to ensure strict SOC 2 Type 2 compliance. Your data's protection is our commitment.

