---
title: "Accepts a PDF and a CII XML, returns a ZUGFeRD 2.x compliant PDF/A-3 with the XML embedded as `factur-x.xml` (per the modern ZUGFeRD/Factur-X convergence on the attachment filename), or as `xrechnung.xml` when the document declares the XRechnung reference profile (the ZUGFeRD 2.2+ convention). The XML is validated with the full rule set of `/v1/validate/zugferd` (schema + business rules) before embedding; pass `skipValidation=true` for packaging-only mode, which checks structure (profile XSD) but not business rules."
method: POST
path: "/v1/embed/zugferd"
tags: ["Embed"]
---

# Accepts a PDF and a CII XML, returns a ZUGFeRD 2.x compliant PDF/A-3 with the XML embedded as \`factur-x.xml\` (per the modern ZUGFeRD/Factur-X convergence on the attachment filename), or as \`xrechnung.xml\` when the document declares the XRechnung reference profile (the ZUGFeRD 2.2+ convention). The XML is validated with the full rule set of \`/v1/validate/zugferd\` (schema + business rules) before embedding; pass \`skipValidation=true\` for packaging-only mode, which checks structure (profile XSD) but not business rules.

`POST /v1/embed/zugferd`

## Request

- Base URL: `https://api.invoicexml.com`
- URL: `https://api.invoicexml.com/v1/embed/zugferd`
- Auth: none declared

## Response `200`

OK

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `413`: Payload Too Large
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/invoicexml/apis/invoicexml-api.md) · [All operations](https://skmtc.dev/invoicexml/apis/invoicexml-api/llms.txt) · [OpenAPI document](https://skmtc.dev/invoicexml/apis/invoicexml-api/revisions/3181e160f14e?raw)
