# PDF/A-3 Technical Guide: Embedding ZUGFeRD & Factur-X XML for Compliance

- Date: 2026-07-03
- Reading time: 9 min read

Technical deep-dive into PDF/A-3 (ISO 19005-3) attachment structures: XMP metadata schema, /AF array relationships, font subsetting, and veraPDF validation.

## Article overview

        This article explains PDF/A-3 Technical Guide: Embedding ZUGFeRD & Factur-X XML for Compliance as a practical reference for European e-invoicing. It defines the topic in plain language, places it in the compliance context, and connects the explanation to invoice formats such as XRechnung, ZUGFeRD/Factur-X, UBL, and CII.

Hybrid e-invoices such as ZUGFeRD and Factur-X rely on the PDF/A-3 standard (ISO 19005-3) to embed a machine-readable XML file inside a visual PDF document.

For software engineers, PDF library developers, and validation teams, generating compliant PDF/A-3 invoices requires precise adherence to PDF specification rules, XMP extension schemas, and font embedding standards.

        ## How to use this guide

        Use the article as a starting point before changing a finance or ERP workflow: identify the applicable country rule or standard, decide which structured format is expected, validate the generated XML, and keep a documented exception process for invoices that require manual review.

## Core Architecture: How PDF/A-3 Differs from PDF/A-2

For Core Architecture: How PDF/A-3 Differs from PDF/A-2, review these points before moving on.

- File Attachment Permission: PDF/A-2 prohibits arbitrary embedded files, whereas PDF/A-3 explicitly permits embedding files of any format (XML, CSV, CAD) provided they meet strict metadata guidelines.
- Associated Files (/AF): The root Catalog dictionary and Page dictionaries contain an `/AF` array linking to embedded file stream objects (`/Type /Filespec`).
- AFRelationship Key: Each embedded file dictionary must specify an `/AFRelationship` key (e.g. `/Alternative` or `/Data`) to declare the semantic relationship between the PDF visual layer and the attached XML.
- Canonical Attachment Name: For ZUGFeRD 2.x and Factur-X, the embedded XML attachment MUST be named `factur-x.xml` (or `xrechnung.xml` for hybrid XRechnung profiles).
## XMP Metadata Extension Schema Requirements

PDF/A-3 validators like veraPDF verify XMP metadata embedded in the PDF document catalog (`/Metadata` stream). The XMP packet must contain the `pdfaExtension` schema declaring the Factur-X / ZUGFeRD namespace (`urn:factur-x:pdfa:CrossIndustryDocument:invoice:1p0#`).

Required XMP properties include DocumentFileName (`factur-x.xml`), DocumentType (`INVOICE`), Version (`1.0`), and ConformanceLevel (`BASIC`, `COMFORT`, or `EXTENDED`).

## Font Subsetting & Color Space Rules

For Font Subsetting & Color Space Rules, this sequence gives the practical order of work.

- Font Embedding: All fonts referenced in visual invoice text must be 100% embedded or properly subsetted with valid CMap dictionaries.
- Color Profile (OutputIntent): PDF/A-3 documents must define an OutputIntent dictionary containing a standardized ICC color profile (e.g. sRGB IEC61966-2.1) to guarantee visual reproduction consistency.
- Validation Tools: Always validate output files using veraPDF CLI or Mustang project validator to catch syntax errors before production deployment.
## Official Technical References

For Official Technical References, review these points before moving on.

- [ISO 19005-3:2012 Specification (PDF/A-3)](https://www.iso.org/standard/55816.html)
- [FeRD / FNFE-MPE - Factur-X / ZUGFeRD Technical Documentation](https://www.ferd-net.de)
- [veraPDF Open Source PDF/A Validator](https://verapdf.org)
## Ready to convert your invoices?

Start converting PDF invoices to XRechnung, ZUGFeRD, and other formats today.

[View Pricing](/en/convert)