MCPサーバー

ZUGFeRD Validator

de.zugferd-validator/validator
金融・投資 法務・コンプライアンス 公開・接続可能 MCP 2025-11-25

このMCPでできること

Creates, extracts, validates, and reports on ZUGFeRD, Factur-X, and XRechnung electronic invoices against EN 16931.

check_consistency
Prüft ob die sichtbaren PDF-Daten mit den eingebetteten XML-Daten übereinstimmen.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pdf_content'], 'properties': {'pdf_content': {'type': 'string', 'description': 'Base64-kodierter Inhalt der ZUGFeRD-PDF-Datei'}}, 'additionalProperties': False}
create_invoice
Erstellt aus strukturierten Daten eine valide E-Rechnung — entweder als ZUGFeRD-PDF (PDF/A-3 mit eingebettetem XML) oder als reines XRechnung-XML (mit Leitweg-ID für B2G). Unterstützt mehrere Positionen, alle USt-Kategorien, Rabatte/Zuschläge und Zahlungsangaben. Stateless — es wird nichts gespeichert.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['format', 'number', 'date', 'buyer', 'lines'], 'properties': {'date': {'type': 'string', 'description': 'Belegdatum (YYYY-MM-DD)'}, 'note': {'type': 'string', 'description': 'Freitext-Hinweis'}, 'buyer': {'type': 'object', 'required': ['name'], 'properties': {'zip': {'$ref': '#/properties/seller/properties/zip'}, 'city': {'$ref': '#/properties/seller/properties/city'}, 'name': {'$ref': '#/properties/seller/properties/name'}, 'email': {'$ref': '#/properties/seller/properties/email'}, 'phone': {'$ref': '#/properties/seller/properties/phone'}, 'street': {'$ref': '#/properties/seller/properties/street'}, 'vat_id': {'$ref': '#/properties/seller/properties/vat_id'}, 'country': {'$ref': '#/properties/seller/properties/country'}, 'contact_name': {'$ref': '#/properties/seller/properties/contact_name'}}, 'description': 'Käufer / Rechnungsempfänger', 'additionalProperties': False}, 'lines': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'quantity', 'unit_net_price_cents', 'vat_rate'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Bezeichnung der Position'}, 'unit': {'type': 'string', 'description': 'Einheit (UN/ECE Rec 20, Standard C62 = Stück)'}, 'quantity': {'type': 'number', 'description': 'Menge'}, 'vat_rate': {'type': 'number', 'description': 'USt-Satz in Prozent (0 bei Z/E/AE)'}, 'description': {'type': 'string', 'description': 'Optionale Detailbeschreibung'}, 'vat_category': {'enum': ['S', 'Z', 'E', 'AE', 'K', 'G', 'O'], 'type': 'string', 'description': 'USt-Kategorie (Standard S). Z=0%, E=befreit, AE=Reverse-Charge'}, 'unit_net_price_cents': {'type': 'integer', 'description': 'Netto-Einzelpreis in Cent'}}, 'additionalProperties': False}, 'minItems': 1, 'description': 'Rechnungspositionen (mindestens eine)'}, 'format': {'enum': ['zugferd', 'xrechnung'], 'type': 'string', 'description': "'zugferd' = PDF/A-3 mit eingebettetem XML, 'xrechnung' = reines XML"}, 'number': {'type': 'string', 'minLength': 1, 'description': 'Belegnummer'}, 'seller': {'type': 'object', 'required': ['name'], 'properties': {'zip': {'type': 'string', 'description': 'Postleitzahl'}, 'city': {'type': 'string', 'description': 'Ort'}, 'name': {'type': 'string', 'minLength': 1, 'description': 'Firmenname / Name'}, 'email': {'type': 'string', 'description': 'E-Mail / elektronische Adresse (für XRechnung Pflicht)'}, 'phone': {'type': 'string', 'description': 'Telefon (Kontakt)'}, 'street': {'type': 'string', 'description': 'StraÃ\x9fe und Hausnummer'}, 'vat_id': {'type': 'string', 'description': 'USt-IdNr. (z.B. DE123456789)'}, 'country': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': 'ISO-3166 Alpha-2 Ländercode, Standard DE'}, 'contact_name': {'type': 'string', 'description': 'Ansprechpartner'}}, 'description': 'Verkäufer / Rechnungssteller. Weglassen, wenn im Konto feste Absenderdaten hinterlegt sind â\x80\x94 sie werden dann eingesetzt.', 'additionalProperties': False}, 'currency': {'type': 'string', 'description': 'Währung (Standard EUR)'}, 'due_date': {'type': 'string', 'description': 'Fälligkeitsdatum (YYYY-MM-DD)'}, 'type_code': {'type': 'string', 'description': 'Roher UNTDID-1001-Code (überschreibt document_type; für seltene Typen wie 875-877 Bauleistung)'}, 'self_check': {'type': 'boolean', 'description': 'Wenn true, wird die erzeugte Rechnung sofort gegen EN 16931 geprüft (langsamer). Standard: false.'}, 'seller_logo': {'type': 'string', 'description': 'Logo als Base64 (PNG/JPG) â\x80\x94 nur im Pro/Ultra-Tarif'}, 'delivery_date': {'type': 'string', 'description': 'Leistungs-/Lieferdatum (BT-72, YYYY-MM-DD). In Deutschland Pflichtangabe; ohne Angabe gilt das Belegdatum.'}, 'document_type': {'enum': ['invoice', 'credit_note', 'corrected', 'self_billed', 'prepayment', 'partial', 'debit_note'], 'type': 'string', 'description': 'Dokumenttyp (Standard invoice). credit_note=Gutschrift/Storno, corrected=Korrektur, self_billed=Gutschriftverfahren, prepayment=Anzahlung, partial=Teilrechnung, debit_note=Belastungsanzeige. Mappt auf BT-3.'}, 'payment_means': {'type': 'object', 'properties': {'bic': {'type': 'string', 'description': 'BIC'}, 'iban': {'type': 'string', 'description': 'IBAN des Zahlungsempfängers'}, 'type_code': {'type': 'string', 'description': 'BT-81 UNTDID-4461-Code (z.B. 58 = SEPA-Ã\x9cberweisung)'}, 'account_name': {'type': 'string', 'description': 'Kontoinhaber'}}, 'description': 'Zahlungsangaben (IBAN etc.)', 'additionalProperties': False}, 'payment_terms': {'type': 'string', 'description': 'Zahlungsbedingungen (Freitext)'}, 'billing_period': {'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string'}, 'start': {'type': 'string'}}, 'description': 'Leistungszeitraum (BG-14, BT-73/74) bei laufenden Leistungen, jeweils YYYY-MM-DD. Ersetzt delivery_date.', 'additionalProperties': False}, 'buyer_reference': {'type': 'string', 'description': 'Leitweg-ID / Käuferreferenz (BT-10, bei XRechnung Pflicht)'}, 'preceding_invoice': {'type': 'object', 'required': ['number'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'number': {'type': 'string'}}, 'description': 'Bezug auf die Ursprungsrechnung (BT-25/26) â\x80\x94 bei Storno, Korrektur oder Gutschrift angeben', 'additionalProperties': False}, 'allowances_charges': {'type': 'array', 'items': {'type': 'object', 'required': ['charge', 'amount_cents', 'vat_rate'], 'properties': {'charge': {'type': 'boolean', 'description': 'true = Zuschlag, false = Rabatt (auf Dokumentebene)'}, 'reason': {'type': 'string', 'description': 'Begründung'}, 'vat_rate': {'type': 'number', 'description': 'Zugehöriger USt-Satz in Prozent'}, 'amount_cents': {'type': 'integer', 'description': 'Betrag in Cent (positiv)'}, 'vat_category': {'$ref': '#/properties/lines/items/properties/vat_category', 'description': 'Zugehörige USt-Kategorie (Standard S)'}}, 'additionalProperties': False}, 'description': 'Rabatte/Zuschläge auf Dokumentebene'}}, 'additionalProperties': False}
extract_xml
Extrahiert die eingebettete XML-Datei aus einem ZUGFeRD/Factur-X PDF.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['pdf_content'], 'properties': {'pdf_content': {'type': 'string', 'description': 'Base64-kodierter Inhalt der ZUGFeRD-PDF-Datei'}}, 'additionalProperties': False}
validate_invoice
Validiert eine E-Rechnung (ZUGFeRD/Factur-X PDF oder XRechnung XML) gegen EN 16931 und gibt strukturierte Ergebnisse mit Korrekturvorschlägen zurück.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['file_content', 'file_type'], 'properties': {'profile': {'enum': ['minimum', 'basic_wl', 'basic', 'en16931', 'extended', 'xrechnung'], 'type': 'string', 'description': 'Erwartetes Profil (optional, wird automatisch erkannt)'}, 'file_type': {'enum': ['pdf', 'xml'], 'type': 'string', 'description': "'pdf' für ZUGFeRD/Factur-X, 'xml' für XRechnung"}, 'file_content': {'type': 'string', 'description': 'Base64-kodierter Inhalt der PDF- oder XML-Datei'}}, 'additionalProperties': False}
validation_report
Erzeugt aus einer E-Rechnung einen Validierungsbericht als PDF (PDF/A-3b) zum Ablegen und Weitergeben. Der Bericht nennt Ergebnis, alle Meldungen mit Regel-ID und Feld, den Prüfzeitpunkt, Format und Profil, die SHA-256-Prüfsumme der geprüften Datei sowie die Versionen der Prüfwerkzeuge. Auf Wunsch wird die geprüfte Rechnung sichtbar angehängt. Gibt das PDF base64-kodiert zurück. Ab dem Tarif Automatisieren.
入力スキーマ
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['file_content', 'file_type'], 'properties': {'lang': {'enum': ['de', 'en', 'fr'], 'type': 'string', 'description': "Sprache des Berichts. Standard 'de'."}, 'file_name': {'type': 'string', 'description': 'Dateiname, der im Bericht steht.'}, 'file_type': {'enum': ['pdf', 'xml'], 'type': 'string', 'description': "Dateityp: 'pdf' für ZUGFeRD/Factur-X, 'xml' für XRechnung/CII"}, 'file_content': {'type': 'string', 'description': 'Base64-kodierter Inhalt der PDF- oder XML-Datei'}, 'attach_source': {'type': 'boolean', 'description': 'Geprüfte Rechnung sichtbar anhängen (PDF-Seiten bzw. abgedruckter XML-Inhalt). Standard false.'}}, 'additionalProperties': False}
追加
validation_report
2026年9月17日12:39
追加
create_invoice
2026年9月17日12:39
追加
check_consistency
2026年9月17日12:39
追加
extract_xml
2026年9月17日12:39
追加
validate_invoice
2026年9月17日12:39