Skip to main content
Glama

Server Details

E-invoice checker for ZUGFeRD, Factur-X, XRechnung and Peppol BIS. Free web tool, API and MCP.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
invowerk-dev/invowerk
GitHub Stars
0
Server Listing
invowerk
ChatGPT
–
Claude
–

TDQS

A4.4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool maps to a distinct lifecycle action: generate from JSON, parse to JSON, convert between syntaxes, validate, render HTML, and explain validation codes. Overlap between convert_invoice and generate_invoice is minimal because their inputs and intents are clearly different.

Naming Consistency5/5

All six tools follow the same snake_case verb_noun pattern: convert_invoice, explain_errors, generate_invoice, parse_invoice, render_invoice, validate_invoice. The convention is predictable and unambiguous.

Tool Count5/5

Six tools is well-scoped for an e-invoicing server, with one tool per major operation. No tool feels redundant or out of place.

Completeness5/5

The surface covers the core e-invoice lifecycle: creation, parsing, syntax conversion, validation, human-readable rendering, and rule explanation. Cross-tool workflows are explicitly supported, such as parse_invoice output feeding generate_invoice and validate_invoice findings feeding explain_errors.

Available Tools

6 tools
convert_invoiceConvert an e-invoice between UBL and CIIA
Read-only
Inspect

Convert an e-invoice to UBL or CII. The result is checked before it is returned.

Input: invoice_base64 is the base64 of an XML invoice or a ZUGFeRD / Factur-X PDF, at most 4 MB decoded; or pass the file as a download link in file. target_syntax is "ubl" or "cii". target_flavor is optional, "en16931" or "xrechnung"; without it the flavor of the source is kept.

Returns xml, syntax, flavor and self_validation (valid, finding_count). invowerk checks the converted XML before answering and never returns an invalid document. Input that cannot be read or converted fails with an error message.

Credits: 3 per call.

Inputs: target_syntax (required), file, target_flavor, invoice_base64. Returns: object

explain_errorsExplain error codesA
Read-only
Inspect

Explain rule codes in plain language. Works without an API key.

Covers the codes of validate_invoice findings and hints: EN 16931, XRechnung, ZUGFeRD and invowerk's own hint codes (IW-*).

Input: codes is a list of one or more codes, e.g. ["BR-CO-18", "BR-DE-21"]. Duplicates are removed. lang is "de" (default) or "en".

Returns lang and explanations. Each explanation has title, meaning, causes, fixes, severity, standard, bt_refs, xpath_hints and explain_url (the German page for the code). If any code is unknown, the call fails and names the unknown codes.

Credits: free. This tool is not metered.

Inputs: codes (required), lang. Returns: object

generate_invoiceCreate an e-invoice from JSONA
Read-only
Inspect

Create a valid EN 16931 e-invoice (UBL or CII XML) from JSON.

Input: invoice is a JSON object keyed on EN 16931 Business Terms, the same schema as POST /v1/generate, at most 4 MB. Main fields: syntax ("ubl" default, or "cii"), flavor ("en16931" default, or "xrechnung", which requires buyer_reference, the Leitweg-ID BT-10, and payment_iban), invoice_number, issue_date (YYYY-MM-DD), currency, seller, buyer, lines, tax_breakdown, totals. invowerk writes your amounts as given. It does not compute or correct them. Input that breaks an EN 16931 or XRechnung rule returns an error naming each rule, e.g. BT-112 = BT-109 + BT-110 (BR-CO-15). Dates are YYYY-MM-DD, amounts go up to 999,999,999.99.

Returns xml, syntax, flavor and self_validation. invowerk checks the XML before answering and never returns an invalid document. Invalid input, or XML that fails the check, returns an error, as does a busy (engine_busy) or overrunning (engine_timeout) generate.

Credits: 5 per call.

Inputs: invoice (required). Returns: object

parse_invoiceRead an e-invoice into JSONA
Read-only
Inspect

Read an existing e-invoice into JSON keyed on EN 16931 Business Terms.

The JSON is the input format of generate_invoice, so you can edit it and create the invoice again.

Input: invoice_base64 is the base64 of an XML invoice (UBL or CII) or a ZUGFeRD / Factur-X PDF, at most 4 MB decoded; or pass the file as a download link in file. A PDF may have at most 500 pages and 16 attachments.

Returns model (the invoice as JSON), detection (syntax, flavor, customization_id) and source ("xml" or "pdf-embedded"). A file that cannot be read fails with an error that starts with an error code, e.g. a PDF without embedded XML, a UBL credit note, malformed XML, or a busy (engine_busy) or overrunning (engine_timeout) read.

Credits: 2 per call.

Inputs: file, invoice_base64. Returns: object

render_invoiceRender an e-invoice as HTMLA
Read-only
Inspect

Render an XML e-invoice (UBL or CII, e.g. XRechnung) as a readable HTML page.

invowerk uses the KoSIT XRechnung visualization. Use it to show a person what an e-invoice contains.

Input: invoice_base64 is the base64 of the XML, at most 4 MB decoded, or pass the file as a download link in file. PDFs are not accepted. lang sets the label language, "de" (default) or "en".

Returns html (a complete HTML document), lang, flavor (e.g. "xrechnung") and syntax (e.g. "ubl_invoice"). A file that is not an XML invoice, malformed XML or XML with a DOCTYPE fails with an error message, and so does a busy (engine_busy) or overrunning (engine_timeout) render.

Credits: 1 per call.

Inputs: file, lang, invoice_base64. Returns: object

validate_invoiceCheck an e-invoiceA
Read-only
Inspect

Check an e-invoice against EN 16931 and German rules.

Input: invoice_base64 is the base64 of an XML invoice (UBL or CII) or a ZUGFeRD / Factur-X PDF, at most 4 MB decoded; or pass the file as a download link in file. explain=true adds an explanation to findings whose rule has one, in lang ("de" or "en").

valid is the result. For XRechnung the KoSIT validator decides. If it is unreachable, invowerk's own check with the same rules decides, verdict_source is "local" and official_degraded is true. disagreement is true when both ran and differ. findings lists each problem with rule_id, severity and message; pass the codes to explain_errors (free). pdfa_verdict is the PDF/A check of a PDF. hints never change valid. Unreadable input returns a finding, not an error. It fails with an error when the check is busy (engine_busy), ran longer than 20 s (engine_timeout) or the XML has more than 100,000 elements (document_too_complex).

Credits: 1 per call.

Inputs: file, lang, explain, invoice_base64. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Validates electronic invoices (XRechnung, ZUGFeRD, Factur-X, Peppol BIS, etc.) against authority-pinned rules and explains failures.
      2
      23 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for DACH e-invoicing. Create XRechnung (UBL) and ZUGFeRD 2.3 (Factur-X CII) invoices, validate against EN 16931 rules, extract data from XML, and convert between UBL, CII and JSON formats.
      6
      61 npm
      2
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Model Context Protocol (MCP) server for German Electronic Invoicing (ZUGFeRD 2.x / XRechnung 3.x). Provides tools to validate, generate, parse, and convert invoices compliant with EN 16931 and KoSIT.
      50
      46 PyPI
      2
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      Reads and validates any European e-invoice a business receives — XRechnung, UBL, CII, ZUGFeRD/Factur-X PDF, Peppol BIS 3, FatturaPA, KSeF FA(3) — into canonical EN 16931 JSON with plain-language fix hints in EN/DE/PL/IT/FR, plus PDF, CSV and DATEV export. Nothing is stored; works without a key on a small daily quota.
      5
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.