Skip to content

Commit 7568e7c

Browse files
committed
docs: update README with 646 tests, 22 prompts, 19 resources
- Updated test count badge and text to 646 - Added BR-DE-20 to compliance rules table - Added 4 new prompts (Schlussrechnung, Proforma, Drittland, Gutschrift) - Added 2 new resources (Leitweg-ID format, tax category decision tree) - Fixed guides_advanced.py line count (241→511) and resource count (17→19)
1 parent 95a7845 commit 7568e7c

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

README.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[![CI](https://github.com/Mavengence/einvoice-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Mavengence/einvoice-mcp/actions/workflows/ci.yml)
44
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)
55
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
6-
[![Tests](https://img.shields.io/badge/tests-617%20passed-brightgreen.svg)](#compliance-proof)
6+
[![Tests](https://img.shields.io/badge/tests-646%20passed-brightgreen.svg)](#compliance-proof)
77
[![Coverage](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)](#module-coverage)
88

99
**MCP-Server for German e-invoice compliance — XRechnung 3.0 & ZUGFeRD 2.x**
@@ -20,7 +20,7 @@ Germany mandated e-invoice reception for B2B as of January 2025 (BMF 2024-11-15)
2020

2121
## Compliance Proof
2222

23-
**617 tests | 100% coverage (2106 stmts) | 0 failures | lint clean (ruff + mypy strict)**
23+
**646 tests | 100% coverage (2106 stmts) | 0 failures | lint clean (ruff + mypy strict)**
2424

2525
*Run `make test` to verify.*
2626

@@ -126,6 +126,7 @@ Every mandatory Business Term is tested in generated XML output:
126126
| BR-E-10 | Exemption reason required for TaxCategory E | `test_compliance_missing_exemption_reason` | PASS |
127127
| BR-DE-24 | SEPA DD: mandate (BT-89) + buyer IBAN (BT-91) | `test_dd_missing_mandate_and_iban` | PASS |
128128
| BR-DE-15 | Payment terms (BT-20) required for XRechnung | `test_payment_terms_missing` | PASS |
129+
| BR-DE-20 | Max one payment instruction type (no mix CT+DD) | `test_mixed_ct_and_dd_flagged` | PASS |
129130
| CC-BT-87 | Credit card PAN required when code=48 | `test_credit_card_missing_pan` | PASS |
130131
| REP-BT-63 | Tax rep VAT ID required when BG-11 present | `test_tax_rep_without_tax_id` | PASS |
131132
| IBAN | IBAN format validation (ISO 13616) | `test_invalid_iban_*` | PASS |
@@ -260,16 +261,16 @@ Every mandatory Business Term is tested in generated XML output:
260261
| `errors.py` | 36 | Custom exceptions |
261262
| `models/` | 600+ | Pydantic models (invoice, party, line items, results, enums) |
262263
| `prompts/guides.py` | 633 | 14 German tax scenario prompts |
263-
| `prompts/guides_advanced.py` | 241 | 4 advanced prompts (EU trade, recurring invoices) |
264-
| `resources/` | 600+ | 17 resources (schemas, reference codes, compliance) |
264+
| `prompts/guides_advanced.py` | 511 | 8 advanced prompts (EU trade, recurring, Schlussrechnung, Proforma, Drittland, Gutschrift) |
265+
| `resources/` | 830+ | 19 resources (schemas, reference codes, compliance, Leitweg-ID, tax decision tree) |
265266
| `services/invoice_builder.py` | 576 | CII XML generation via drafthorse |
266267
| `services/invoice_data_builder.py` | 320 | Flat parameter builder |
267268
| `services/cii_extractors.py` | 457 | Party, item, attribute extraction |
268269
| `services/kosit.py` | 80 | KoSIT HTTP client |
269270
| `services/pdf_generator.py` | 182 | Visual PDF + factur-x embed |
270271
| `services/xml_parser.py` | 720 | CII/ZUGFeRD XML parser |
271272
| `tools/compliance.py` | 217 | Compliance orchestration |
272-
| `tools/compliance_checks.py` | 767 | BR-DE/BR-CO field checks |
273+
| `tools/compliance_checks.py` | 795 | BR-DE/BR-CO field checks |
273274
| `tools/arithmetic_checks.py` | 113 | BR-CO-10/14/15/16 math checks |
274275
| `tools/generate.py` | 50 | Generate tools |
275276
| `tools/parse.py` | 39 | Parse tool |
@@ -309,6 +310,8 @@ Every mandatory Business Term is tested in generated XML output:
309310
| `einvoice://reference/br-de-rules` | Deutsche Geschäftsregeln (BR-DE-1..24) mit Lösungshinweisen |
310311
| `einvoice://reference/skr04-mapping` | SKR04-Kontenzuordnung für häufige Rechnungsarten (DATEV) |
311312
| `einvoice://reference/credit-note-reasons` | Gutschrift-Gründe und Korrektur-Codes mit Empfehlungen |
313+
| `einvoice://reference/leitweg-id-format` | Leitweg-ID Aufbau (Grobadresse-Feinadresse-Prüfziffer), Regex, Beispiele |
314+
| `einvoice://reference/tax-category-decision-tree` | Steuerkategorie-Entscheidungsbaum (S/Z/E/AE/K/G/O/L/M) mit Szenarien |
312315

313316
### MCP Prompts
314317

@@ -332,6 +335,10 @@ Every mandatory Business Term is tested in generated XML output:
332335
| `innergemeinschaftliche_lieferung_guide` | Innergemeinschaftliche Lieferung (§4 Nr. 1b / §6a UStG) |
333336
| `dauerrechnung_guide` | Dauerrechnung / Monatsrechnung für wiederkehrende Leistungen |
334337
| `steuernummer_vs_ustidnr_guide` | Steuernummer vs. USt-IdNr. — Entscheidungshilfe (BR-DE-26) |
338+
| `schlussrechnung_nach_abschlag` | Schlussrechnung nach Abschlagszahlungen (prepaid_amount, BT-113) |
339+
| `proforma_rechnung_guide` | Proforma-Rechnung — rechtliche Einordnung, E-Rechnungs-Behandlung |
340+
| `drittlandlieferung_guide` | Export außerhalb EU (§4 Nr. 1a UStG, Steuerkategorie G, Incoterms) |
341+
| `gutschriftverfahren_389_guide` | Gutschriftverfahren / Self-Billing (TypeCode 389, §14 Abs. 2) |
335342

336343
---
337344

@@ -681,6 +688,7 @@ pytest -m integration
681688
- **§4 Nr. 1b UStG** — Intra-community supply: buyer VAT ID required, 0% tax rate
682689
- **§19 UStG** — Kleinunternehmerregelung: exemption note advisory for TaxCategory E
683690
- **BG-19** — SEPA direct debit (PaymentMeansCode = 59, buyer IBAN, mandate reference)
691+
- **BR-DE-20** — Max one payment instruction type (no mixing credit transfer + direct debit)
684692
- **BR-DE-24** — SEPA direct debit: mandate reference + buyer IBAN required
685693
- **BR-E-10** — VAT exemption reason (BT-120) required for TaxCategory E
686694
- **§4 Nr. 1a UStG** — Export outside EU (TaxCategory G): 0% tax rate required

0 commit comments

Comments
 (0)