XRechnung & ZUGFeRD Invoice Validator API avatar

XRechnung & ZUGFeRD Invoice Validator API

Pricing

from $4.00 / 1,000 invoice validateds

Go to Apify Store
XRechnung & ZUGFeRD Invoice Validator API

XRechnung & ZUGFeRD Invoice Validator API

Validate XRechnung 3.0.x XML and ZUGFeRD 2.5 or Factur-X 1.09 XML/PDF with pinned rules and structured findings. Batch e-invoice validation and E-Rechnung Prüfung for accounts payable automation, Steuerberater workflows, ERP and einvoice pipelines via API, n8n, Make, or MCP agents.

Pricing

from $4.00 / 1,000 invoice validateds

Rating

0.0

(0)

Developer

Kamer Ozkan

Kamer Ozkan

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 hours ago

Last modified

Share

KoSIT Validator XRechnung ZUGFeRD Factur-X veraPDF

Validate XRechnung XML and ZUGFeRD or Factur-X XML/PDF invoices through one API. Every evaluated invoice receives a deterministic technical assessment, structured findings, SHA-256 evidence, and the exact pinned rule versions.

Technical validation only. ACCEPTED means every required validation layer accepted the submitted invoice. It does not establish legal or tax validity, authenticity, successful delivery, visible PDF versus XML equality, or recipient acceptance.

What is validated

InputRequired checks
XRechnung XMLKoSIT Validator 1.6.0 with XRechnung configuration v2026-01-31
ZUGFeRD or Factur-X CII XMLExact profile allowlist, ZUGFeRD 2.5 XSD, and profile Schematron
ZUGFeRD or Factur-X PDFPDF/A-3 with veraPDF, safe embedded XML extraction, XMP and attachment consistency, then the complete CII XML checks

The hybrid PDF result is accepted only when all required layers pass. PDF/A compliance alone is never treated as a valid invoice.

Supported ZUGFeRD and Factur-X profiles:

  • MINIMUM
  • BASIC_WL
  • BASIC
  • EN16931
  • EXTENDED

Legacy ZUGFeRD 2.0 guideline identifiers are recognized as their matching profiles and validated against the same pinned rule set; this recognition is an explicit allowlist entry, not a fuzzy match.

XRechnung CII remains on the pinned KoSIT path. Unsupported or lookalike guideline identifiers are not silently mapped to a profile.

Quick start

The default input validates an official XRechnung sample:

{
"documents": [
{
"documentId": "xrechnung-sample",
"fileName": "01.01a-INVOICE_ubl.xml",
"url": "https://raw.githubusercontent.com/itplr-kosit/xrechnung-testsuite/v2026-01-31/src/test/business-cases/standard/01.01a-INVOICE_ubl.xml"
}
],
"resultDetail": "FINDINGS",
"maxFindingsPerDocument": 100,
"storeXmlReport": false,
"storeHtmlReport": false,
"storePdfaReport": false,
"storeExtractedInvoiceXml": false
}

Send a hybrid invoice as an HTTPS URL or base64:

{
"documents": [
{
"documentId": "supplier-invoice-1042",
"fileName": "supplier-invoice-1042.pdf",
"url": "https://example.com/signed/invoice-1042.pdf"
}
],
"resultDetail": "FINDINGS"
}

Each documents item must contain exactly one source field: url, xml, or base64. Console file upload and customer key-value store records are also supported.

The input and output schemas are agent-readable and work with the Apify API, MCP clients, Make, n8n, webhooks, and standard SDKs.

Output

One dataset item is returned for every submitted entry. A technically rejected invoice is a successful validation, not a processing failure.

The two records below are verbatim field subsets from live Apify run R9gep9fAWMbrVA96h on build 0.0.9, executed on 2026-07-29. Omitted fields were not reconstructed.

This Actor is also exposed to AI agents through Apify's MCP server (mcp.apify.com): an agent can discover it by search and run it with the same pay-per-event billing, with no separate integration.

Pricing

  • invoice-validated: $0.004 for each invoice that produces an ACCEPTED or REJECTED result
  • apify-actor-start: $0.00005 per GB of Actor memory, charged automatically when a run starts, with a minimum of one event

NOT_EVALUATED processing failures do not trigger the invoice validation event. The Actor start charge still applies.

Result semantics

ProcessingConformanceMeaningCharged validation event
SUCCEEDEDACCEPTEDEvery required pinned technical layer passedYes
SUCCEEDEDREJECTEDThe invoice was evaluated and one or more required rules failedYes
FAILEDNOT_EVALUATEDSource, format, engine, timeout, report, or budget failure prevented a decisionNo

When pay-per-event pricing is active, only evaluated rows use the invoice-validated event. Processing failures are not charged.

Optional reports

All optional records are off by default:

  • storeXmlReport: KoSIT report or normalized ZUGFeRD XSD and Schematron report
  • storeHtmlReport: human-readable validation report
  • storePdfaReport: sanitized veraPDF XML report for hybrid PDFs
  • storeExtractedInvoiceXml: complete XML extracted from a hybrid PDF

Returned report keys appear in the row's reports object. Raw reports and extracted XML can contain invoice data and follow the retention settings of the customer's Apify account.

Security and limits

  • Validation runs locally inside the Actor container.
  • No invoice is sent to a third-party validation API.
  • Raw invoice content is not copied to the output dataset or logs.
  • HTTPS downloads block private, local, reserved, and cloud metadata targets.
  • DTDs, entities, and external XML resources are blocked.
  • PDF parsing runs in an isolated process with CPU, memory, file, and descriptor limits.
  • XML Schema validation runs in a separate isolated process.
  • Java validation stages have timeouts and bounded reports.
  • Each XML is limited to 5 MiB.
  • Each PDF is limited to 20 MiB and 100 pages.
  • Each PDF can expose at most 16 unique embedded file specifications.
  • A run can evaluate up to 100 XML invoices, up to 20 PDF invoices, and 100 MiB total input.
  • Finding fields and the total returned findings payload are bounded.

Validation findings can quote an offending invoice value. Treat results and optional reports as sensitive invoice data.

Pinned stack

ComponentVersion
KoSIT Validator1.6.0
XRechnung configurationv2026-01-31
XRechnung3.0.2
CEN Schematron1.3.15
ZUGFeRD rules2.5
Factur-X rules1.09
Mustangproject rule bundle and Saxon runtime2.24.0
veraPDF1.30.2

Docker builds verify downloaded engines against fixed SHA-256 checksums. ZUGFeRD decisions come from the release-pinned profile XSD and Schematron assets directly, avoiding unrelated wrapper heuristics.

Release gates

The release suite covers:

  • Official XRechnung accepted and rejected UBL/CII fixtures
  • All 51 current FeRD ZUGFeRD 2.5 example PDF/XML pairs
  • BASIC, EN16931, and EXTENDED official examples
  • MINIMUM and BASIC_WL compatibility fixtures
  • PDF/A failure, XML Schema failure, Schematron failure, malformed XMP, ambiguous attachments, and digest consistency negatives

Official FeRD fixtures are downloaded only for release testing and are not redistributed in the production image.

Current scope

This Actor does not verify:

  • Whether visible PDF text equals the embedded XML
  • Digital signatures or issuer authenticity
  • Peppol delivery or recipient portal acceptance
  • Tax treatment, legal validity, fraud, duplicates, or payment approval
  • ZUGFeRD 1.x, generic CIUS, or EXTENDED-CTC-FR

Common processing error codes

  • DOCUMENT_LIMIT_EXCEEDED
  • PDF_RUN_LIMIT_REACHED
  • SOURCE_FETCH_FAILED
  • SOURCE_HTTP_ERROR
  • SOURCE_TOO_LARGE
  • UNSUPPORTED_MEDIA_TYPE
  • PDF_MAGIC_INVALID
  • PDF_ENCRYPTED
  • XML_MALFORMED
  • DOCTYPE_FORBIDDEN
  • NO_SCENARIO_MATCH
  • VALIDATION_TIMEOUT
  • REPORT_PARSE_FAILED
  • REPORT_TOO_LARGE
  • VALIDATOR_EXECUTION_FAILED
  • BUDGET_LIMIT_REACHED
  • RUN_TIME_BUDGET_REACHED

Rule failures remain in findings and produce REJECTED; they are not converted into processing errors.

Official references

E-invoice validator family

Same engine, same output contract, one validator per market: Peppol BIS Billing | Poland KSeF FA(3) | France E-Invoice | Italy FatturaPA