E-Invoice Validator: XRechnung, ZUGFeRD, Factur-X (KoSIT) avatar

E-Invoice Validator: XRechnung, ZUGFeRD, Factur-X (KoSIT)

Pricing

from $4.00 / 1,000 invoice validateds

Go to Apify Store
E-Invoice Validator: XRechnung, ZUGFeRD, Factur-X (KoSIT)

E-Invoice Validator: XRechnung, ZUGFeRD, Factur-X (KoSIT)

Validate XRechnung, ZUGFeRD and Factur-X e-invoices with the latest official KoSIT rules, for mandatory e-invoicing in Germany from 2027. German fix hints.

Pricing

from $4.00 / 1,000 invoice validateds

Rating

0.0

(0)

Developer

Evgen Grebenyuk

Evgen Grebenyuk

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does E-Invoice Validator do?

E-Invoice Validator checks German and European e-invoices against the current official KoSIT rules and tells you, in plain words, what to fix. It uses the latest rule version (KoSIT validator 1.6.3 with XRechnung configuration 2026-08-31, as of October 2026) and is built for the German e-invoicing obligation from 2027/2028. It accepts XRechnung 3.0.x, EN 16931 invoices in UBL and UN/CEFACT CII syntax, and ZUGFeRD / Factur-X PDFs with an embedded invoice XML. Every finding comes with the original rule message and a short German correction hint (hint_de), so accounting teams can act on it without reading Schematron.

Try it in 3 clicks: open the Actor, keep the prefilled example (two public files from the official KoSIT test suite) and press Start.

Why you need it

  • E-invoicing is mandatory in Germany. Since 2025 every business must be able to receive e-invoices. From 2027 companies with more than €800,000 turnover must send them for B2B, from 2028 all companies. A PDF alone is no longer enough.
  • The rules change several times a year. KoSIT publishes new validator configurations 2–3 times per year. This Actor pins the latest release (currently KoSIT validator 1.6.3 with XRechnung configuration 2026-08-31) and every result tells you which rule versions were used.
  • German hints instead of cryptic rule IDs. BR-DE-15 becomes “Käuferreferenz (BT-10) angeben, bei öffentlichen Auftraggebern die Leitweg-ID.”

Main features

  • XRechnung 3.0.x (UBL and CII), including Extension and CVD
  • EN 16931 UBL and CII
  • ZUGFeRD 1.0 / 2.x and Factur-X PDFs: the embedded XML is extracted and checked; profiles without a KoSIT scenario (EXTENDED, BASIC, BASIC WL, MINIMUM, ZUGFeRD 1.0) are checked with Mustang
  • Optional official KoSIT HTML test report per invoice
  • Bulk mode: read thousands of invoices from a key-value store
  • Runs on the Apify platform: API, schedules, webhooks, integrations (Make, Zapier, n8n) and MCP for AI agents

How to use it

  1. Click Try for free / Start.
  2. Add your invoices under Documents: a url, the XML text in xml, or a PDF/XML file as base64.
  3. Optionally choose resultDetail (SUMMARY or FINDINGS) and enable htmlReport.
  4. Click Start. A run with a few invoices takes about 20–30 seconds (most of it is starting the validators).
  5. Download the results from the Output tab or fetch them via the API.

For integrations, call the Actor via the API with your invoice as base64 and read the dataset item. For large batches, upload the files to a key-value store and pass kvStoreId and keys.

Input

FieldTypeRequiredDescriptionExample
documentsarrayyes, unless kvStoreId is usedInvoices; each entry has exactly one of url, xml, base64 (max. 20 MB), optional documentId, fileNamesee below
kvStoreIdstringnoKey-value store to read invoices from (bulk mode); pick it in the Console or pass its ID via the APIaBcD1234eFgH5678i
keysarraynoRecord keys in that store["inv-001.xml"]
resultDetailstringnoSUMMARY (conformance and counts) or FINDINGS (default)FINDINGS
maxFindingsPerDocumentintegernoMaximum listed findings per invoice, errors first (default 50)50
languagestringnoLanguage of log messages (de, en)en
htmlReportbooleannoStore the KoSIT HTML report per invoice (default false)true

Output

Each checked invoice is one dataset item. At the end of the run a RUN_SUMMARY item is added (and stored as RUN_SUMMARY in the key-value store). Example:

{
"recordType": "DOCUMENT",
"documentId": "example-ubl",
"fileName": "01.01a-INVOICE_ubl.xml",
"sha256": "74fb09c6…",
"sourceFormat": "UBL",
"profile": "XRechnung 3.0",
"conformance": "VALID",
"counts": { "error": 0, "warning": 0, "info": 1 },
"findings": [
{
"ruleId": "BR-DE-TMP-32",
"severity": "info",
"message": "[BR-DE-TMP-32] Eine Rechnung sollte zur Angabe des Liefer-/Leistungsdatums …",
"hint_de": "[BR-DE-TMP-32] Eine Rechnung sollte zur Angabe des Liefer-/Leistungsdatums …",
"location": "/Invoice[1]"
}
],
"validator": "kosit",
"versions": { "kosit": "1.6.3", "xrechnungConfig": "2026-08-31", "en16931": "1.3.16", "mustang": "2.26.0" },
"checkedAt": "2026-10-18T18:47:18.538Z",
"htmlReportKey": "report-0001-74fb09c609d5"
}
FieldDescription
conformanceVALID, INVALID or NOT_EVALUATED (file could not be read, e.g. not an invoice or a PDF without invoice XML)
sourceFormat, profileDetected syntax (UBL, CII, ZUGFeRD-PDF, Factur-X) and profile (e.g. XRechnung 3.0, EN16931, EXTENDED)
counts, findingsNumber of errors, warnings and infos; the findings with ruleId, severity, message, hint_de and XPath location
validatorkosit or mustang
versionsRule and validator versions used for this check
notEvaluatedReasonWhy a file was not evaluated (only for NOT_EVALUATED)

Pricing

How much does it cost?

This Actor uses pay per event pricing. You only pay for invoices that were actually checked:

EventPrice
Actor start$0.00005 per run start, charged once per GB of memory (default 2 GB = $0.0001 per run)
Invoice validated (VALID or INVALID)$0.004 per invoice
HTML report stored$0.002 per report

Files that cannot be evaluated (NOT_EVALUATED) are free. Example with the default 2 GB of memory and without HTML reports: 1,000 invoices in one run cost about $4.00 ($4.0001), a single invoice in its own run about $0.0041. Platform usage is included in these prices.

Limits

  • This Actor checks technical and formal conformance with XRechnung / EN 16931 / ZUGFeRD / Factur-X. It is no tax or legal advice and does not check whether the content of an invoice is correct (e.g. VAT treatment).
  • URLs must be public http(s) addresses; private, internal and cloud-metadata addresses are refused, at most 3 redirects are followed, and a download stops at 20 MB or after 30 s. Refused URLs are reported as NOT_EVALUATED and not charged.
  • At most 1,000 documents per run (documents and keys together). Larger runs are refused with a clear message before anything is checked or charged; please split them into several runs. Invoices are loaded one at a time while they are checked (at most 4 in parallel), so every run fits into the default 2 GB memory. For large batches prefer url or a key-value store over inline xml/base64, because inline documents are part of the run input.
  • Maximum file size is 20 MB per invoice. PDFs must contain the invoice XML as an embedded file (factur-x.xml, zugferd-invoice.xml, xrechnung.xml).
  • PDF/A conformance of the visual PDF is not checked.

Disclaimer

  • This Actor is a validation aid. It is no legal or tax advice and does not replace a review by your tax advisor.
  • Results are provided without any warranty of completeness or correctness. Validation is done with the official KoSIT validator and validator configuration in the versions listed in versions; the official KoSIT rules and the applicable legal requirements are authoritative. If our result differs from the official KoSIT validator, the official result prevails – please report it via the Issues tab.
  • The German hints (hint_de) are simplified explanations of the original rule messages; the original message is authoritative.
  • A VALID result only means the file meets the technical and formal rules checked. It does not confirm that the invoice content (amounts, VAT treatment, recipient) is correct or that the invoice will be accepted by the recipient.
  • Use of this Actor is governed by the Apify Standard Actor Contract between you and the Actor creator.

FAQ

Which rule version is used?

KoSIT validator 1.6.3 with the XRechnung validator configuration 2026-08-31 (XRechnung 3.0.2, EN 16931 rules 1.3.16) and Mustang 2.26.0 for ZUGFeRD / Factur-X profiles without a KoSIT scenario. Every result lists the versions used in the field versions.

Is this valid for the 2027 obligation?

The Actor checks invoices against the technical formats accepted for the German e-invoicing obligation (XRechnung and EN 16931 compliant ZUGFeRD / Factur-X). It shows whether a file meets these technical and formal rules; it does not decide whether your business or a single invoice falls under the obligation.

How often are rules updated?

KoSIT publishes new validator configurations several times a year. We check for new releases every week and update the Actor after testing; new rule releases are listed in the Changelog tab.

Is this tax advice?

No. This Actor is a validation aid and no legal or tax advice; see the Disclaimer above.

Data protection

  • Invoices are processed in memory and in a temporary folder that is deleted at the end of the run.
  • Invoices passed inline as xml or base64 are part of the run input. Apify stores the run input (record INPUT) in your account like any run input, according to your retention settings. If you do not want invoice content to be kept with the run, pass a url or a key-value store record and delete it after the run.
  • You remain the controller of the personal data in your invoices; Apify processes it as your processor under its Data Processing Addendum. The Actor runs with limited permissions and only reads the key-value store you select; the Actor creator has no access to your runs or storages.
  • The log contains only counts and versions, never invoice content.
  • Nothing is stored except the check results in the dataset, RUN_SUMMARY and, if you enable it, the HTML report per invoice in your key-value store. The results contain rule messages, XPath locations and a SHA-256 hash of the file, not the invoice itself (rule messages may quote single field values, e.g. an invalid code).
  • All storages belong to your Apify account and follow your retention settings.

Data sources and licenses

Provided by app-to-go – Legal notice (Impressum): https://app-to-go.recordingbeats.com/impressum.html · Privacy policy: https://app-to-go.recordingbeats.com/datenschutz.html

Support

  • Found a bug or a file that is checked wrongly? Open an issue in the Issues tab, ideally with the documentId, ruleId and versions from the output (no real invoices, please).
  • Need a custom integration (e.g. for your accounting software)? Contact us via the Issues tab.
  • New rule releases are listed in the Changelog tab.

Other Actors by app-to-go

ActorWhat it does
E-Invoice Reader (coming soon)Extracts the data of XRechnung, ZUGFeRD and Factur-X invoices as structured JSON