Completes the eRechnung output: finalized invoices are emitted as a ZUGFeRD/Factur-X EN 16931 hybrid (DATEV) or, when a Leitweg-ID is present, as XRechnung 3.0 for B2G. Both are externally validated as ACCEPTED (0 errors) and PDF/A-3B COMPLIANT against the ProcessWeb eInvoice service.
Highlights:
ERechnungMapper: FdsInvoiceData -> EN 16931 model; seller master data from Fuchs:ERechnung:Seller config; payment terms BT-20/BT-9 (BR-CO-25); seller VAT id BT-31 (BR-CO-26); service date/period BT-72 / BG-14 from ProvisionPeriod (BR-DE-TMP-32); Leitweg-ID -> XRechnung profile.
ERechnungValidator: client for POST /validatepdf (EN 16931 XML + PDF/A-3). Scenario-mismatch with zero errors is not a hard failure.
Structured German-only editor dialogs: recipient address (incl. Leitweg-ID) and service date/period.
Bumps the eRechnungLib submodule to the CII rsm-namespace / PDF-A subtype fix (already merged to submodule main).
Completes the eRechnung output: finalized invoices are emitted as a ZUGFeRD/Factur-X EN 16931 hybrid (DATEV) or, when a Leitweg-ID is present, as XRechnung 3.0 for B2G. Both are externally validated as ACCEPTED (0 errors) and PDF/A-3B COMPLIANT against the ProcessWeb eInvoice service.
Highlights:
- ERechnungMapper: FdsInvoiceData -> EN 16931 model; seller master data from Fuchs:ERechnung:Seller config; payment terms BT-20/BT-9 (BR-CO-25); seller VAT id BT-31 (BR-CO-26); service date/period BT-72 / BG-14 from ProvisionPeriod (BR-DE-TMP-32); Leitweg-ID -> XRechnung profile.
- ERechnungValidator: client for POST /validatepdf (EN 16931 XML + PDF/A-3). Scenario-mismatch with zero errors is not a hard failure.
- Structured German-only editor dialogs: recipient address (incl. Leitweg-ID) and service date/period.
- Bumps the eRechnungLib submodule to the CII rsm-namespace / PDF-A subtype fix (already merged to submodule main).
Tests: Fuchs 514/514, eRechnungLib 97/97.
?? Generated with [Claude Code](https://claude.com/claude-code)
Completes the eRechnung output path: finalized invoices are emitted as a
ZUGFeRD/Factur-X EN 16931 hybrid (DATEV) or, when a Leitweg-ID is present, as
XRechnung 3.0 for B2G. Both are externally validated as ACCEPTED (0 errors) and
PDF/A-3B COMPLIANT against the ProcessWeb eInvoice service.
- ERechnungMapper: FdsInvoiceData -> EN 16931 model. Seller master data now from
Fuchs:ERechnung:Seller config (VAT id BT-31, Steuernummer BT-32, optional
Handelsregister BT-30, IBAN/BIC, contact). Adds payment terms BT-20/BT-9
(BR-CO-25), buyer VAT id, §13b reverse charge, and the service date/period
(BT-72 / BG-14) parsed from ProvisionPeriod (BR-DE-TMP-32). B2G -> XRechnung
profile with the required electronic addresses/contact.
- ERechnungValidator: client for POST /validatepdf (EN 16931 XML + PDF/A-3 in
one call). A pure "scenario not matched" with zero errors is not treated as a
hard failure; real errors optionally withhold the hybrid (FailOnError).
- ERechnungSettings: seller + validation config; wired in Program.cs; ServiceUrl
in appsettings.
- Online editor: structured German-only dialogs for the recipient address
(incl. Leitweg-ID) and the service date/period (single date or range).
- Bumps the eRechnungLib submodule to the CII rsm-namespace / PDF-A subtype fix.
Fuchs.Tests 514/514, eRechnungLib 97/97.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Stefan
merged commit 235c9587f0 into main2026-07-21 09:06:00 +02:00
Stefan
deleted branch feature/erechnung-validation-b2g2026-07-21 09:06:08 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Completes the eRechnung output: finalized invoices are emitted as a ZUGFeRD/Factur-X EN 16931 hybrid (DATEV) or, when a Leitweg-ID is present, as XRechnung 3.0 for B2G. Both are externally validated as ACCEPTED (0 errors) and PDF/A-3B COMPLIANT against the ProcessWeb eInvoice service.
Highlights:
Tests: Fuchs 514/514, eRechnungLib 97/97.
?? Generated with Claude Code