Create ZUGFeRD PDF API Tool

Create ZUGFeRD PDF

Pro

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.
Pro
What are Pro Tools?
Pro Tools are a suite of advanced and specialized API tools designed to tackle more complex document processing challenges. These powerful features, offering enhanced capabilities, are included with Pro and Enterprise plans. Premium plan users can also access Pro Tools on a per-call basis, allowing flexible access to premium functionalities when needed.
Build Your Solution

You have document processing problems, we have Solutions. Explore the many ways pdfRest can align your documents with your business objectives.

Browse all solutions
Prevent Factur-X Rejections in French E-Invoicing Workflows
Prevent Factur-X Rejections in French E-Invoicing Workflows
Build Reliable ZUGFeRD Invoice Workflows for German B2B Billing
Build Reliable ZUGFeRD Invoice Workflows for German B2B Billing
The pdfRest logo is added to the Microsoft Power Automate logo with a representation of a PNG to PDF conversion workflow
Integrate pdfRest with Microsoft Power Automate
Ensure GDPR Compliance for PDF Processing with EU-Based Cloud API
Ensure GDPR Compliance for PDF Processing with EU-Based Cloud API
The Salesforce logo with APEX programming language is connected with the pdfRest logo around a PDF toolkit icon
Integrate PDF API Tools with Salesforce Apex Code
Why is pdfRest the best API for creating and validating ZUGFeRD and Factur-X invoices?
pdfRest offers the best ZUGFeRD and Factur-X solution because it provides one API workflow to create compliant hybrid invoices, preserve or regenerate PDF visuals from canonical CII XML, and validate the completed PDF/A-3 package end to end.

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:

  • MINIMUM
  • BASIC WL
  • BASIC
  • EN 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_pdf to true to 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.

Customize Your Solution

Learn about the parameters for this tool to create your custom solution.

Render Options

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, or bottom-right
  • font: optional regular-text font from the maintained pdfRest Font List, or another installed text-capable font
  • bold_font: optional heading and emphasized-text font; it is independent of font
  • text_color_rgb or text_color_cmyk: primary text color
  • muted_text_color_rgb or muted_text_color_cmyk: secondary text color
  • accent_color_rgb or accent_color_cmyk: emphasized invoice elements
  • border_color_rgb or border_color_cmyk: table and rule borders
  • table_header_color_rgb or table_header_color_cmyk: table-header fill
  • table_alternate_color_rgb or table_alternate_color_cmyk: alternating table-row fill
  • footer_message: optional text up to 500 characters; omit it or use null for no footer
  • locale: de-DE, fr-FR, nl-NL, or en-GB
  • label_language: English (en), German (de), or French (fr), including accepted regional subtags
  • currency_display: code, symbol, or name
  • date_format: optional .NET date format string; omit it or use null for the default
  • decimal_precision: 0, 1, 2, 3, or 4

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.

Frequently Asked Questions
Need more help? Contact Us or visit our documentation.

Create ZUGFeRD PDF is a REST API Tool for creating and validating ZUGFeRD and Factur-X hybrid invoices. It creates a human-readable PDF/A-3 invoice with machine-readable CII XML embedded inside, so the same document works for invoice recipients and automated business systems.

ZUGFeRD is used primarily in Germany, while Factur-X is used primarily in France. The supported releases—ZUGFeRD 2.5.2 and Factur-X 1.09.2—use the same hybrid PDF/A-3 and CII XML model. One pdfRest integration can therefore create and validate invoices for either workflow.

The initial release supports the following for ZUGFeRD 2.5.2 and Factur-X 1.09.2:

  • MINIMUM
  • BASIC WL
  • BASIC
  • EN 16931

This covers streamlined invoice data, booking workflows, and full EN 16931-aligned invoices. EXTENDED and XRECHNUNG are planned for future expansion. A document using an unsupported profile receives a clear PROFILE_UNSUPPORTED finding.

Yes. Submit the CII XML invoice as file or provide its existing pdfRest resource id. pdfRest uses that canonical invoice data to generate the visual invoice, package it as PDF/A-3, embed the XML, apply the required metadata, and verify the completed hybrid invoice.

Use render_options to control the appearance of the generated PDF. You can configure:

  • A PNG or JPEG logo and its corner placement
  • Regular and bold font faces
  • Invoice label language and regional date, decimal, and currency formatting
  • RGB or CMYK colors for text, accents, borders, table headers, and alternating rows
  • Currency display, date format, decimal precision, and footer text

The XML remains the source of invoice data. render_options controls only how pdfRest presents that data in the generated visual PDF.

Yes. Supply the XML using file or id and the PDF using pdf_file or pdf_id. pdfRest compares invoice information it can reliably identify and rejects concrete discrepancies by default.

By default, pdfRest returns an error when it finds a concrete mismatch. Set regenerate_pdf to true to allow pdfRest to replace the supplied PDF with a new invoice generated from the canonical XML. The replacement visual invoice and embedded invoice data then come from the same source. Use render_options to control the appearance of the regenerated PDF.

Yes. For a generated or regenerated PDF, you can add a PNG or JPEG logo and control its placement, regular and bold font faces, label language, regional formatting, RGB or CMYK colors, currency presentation, date formatting, decimal precision, and footer text.

Yes. label_language controls invoice headings and labels, while locale controls regional formatting of values. This allows combinations such as English invoice labels with German date, decimal, and currency formatting.

Yes. XML validation is part of the creation workflow. If the XML is malformed, uses an unsupported profile, fails supported schema or business rules, or omits required information, the API rejects the request and returns validation findings when available.

Yes. Submit the completed hybrid PDF as file to POST /validated-zugferd, or supply a previously returned resource id. The validator checks PDF/A-3 conformance, embedded XML, applicable business rules, attachment and XMP metadata, package structure, and detectable PDF/XML consistency without modifying the file.

No. POST /validated-zugferd accepts a completed hybrid PDF. Submit standalone CII XML to POST /zugferd-pdf; the creation workflow validates the XML before generating and packaging the invoice and returns errors when required information or supported conformance rules are not satisfied.

The response contains:

  • status: overall VALID or INVALID result
  • pdfa: independent PDF/A-3 conformance result
  • contentMatchStatus: whether PDF/XML content matching was confirmed, unverified, failed, or encountered an error
  • findings: prioritized validation warnings and blocking issues
  • inputId and inputUrl: references to the submitted resource

UNVERIFIED means pdfRest found no concrete discrepancy, but could not conclusively associate every relevant XML value with visible PDF content. This is non-blocking when incomplete reverse validation is the only unresolved condition. If your own policy requires a confirmed visual match, you can route these invoices for review.

The validator accepts conforming PDF/A-3a, PDF/A-3b, and PDF/A-3u documents. It verifies conformance to the level claimed by the submitted PDF.

Yes. Pass the resource ID returned by POST /zugferd-pdf as id to POST /validated-zugferd. This performs an independent validation call against the exact packaged output without requiring another file transfer.

Starter creation output includes the standard pdfRest demo watermark. The watermark is applied before PDF/A conversion and final invoice packaging, so the returned document must still pass the same ZUGFeRD or Factur-X and PDF/A checks as paid output. Starter validation responses retain the overall result and PDF/A result while redacting detailed content-match and actionable finding information. Full production output and validation details are available through paid access to this Pro Tool.

Yes. pdfRest encrypts files in transit and at rest, then permanently deletes them after the applicable retention period—30 minutes for most plans. The platform includes enterprise security and compliance controls, including SOC 2 Type 2, GDPR, and HIPAA support.

For complete details, please refer to our Data Processing Agreement (DPA) and visit our Trust Center.

Yes, pdfRest offers two self-hosted options. The pdfRest API Toolkit on AWS allows you to deploy and manage your own backend processing infrastructure within your AWS environment with pay-as-you-go pricing through the AWS Marketplace. The pdfRest API Toolkit Container provides ultimate environmental control as a Docker Container, giving you the flexibility to run the API in on-premises data centers or public/private cloud environments with a flexible licensing model.

Generate a self-service API Key now!
Create your FREE API Key to start processing PDFs in seconds, only possible with pdfRest.