WASM node package for German and EU electronic invoice workflows. The package registers a full E-Rechnung catalog for reading, writing, validating, transforming, reviewing, transporting, and archiving invoices.
src/lib.rs: small WASM entrypoint.src/models.rs: shared typed invoice schemas.src/nodes/mod.rs: shared catalog helpers, pin specs, and runtime helpers.src/nodes/*.rs: one registered node per file.Progress.md: implementation progress and verification notes.
Files, PDFs, folders, generated exports, extracted XML files, archives, and
manifest files are represented as FlowPath handles. The package does not
expose invoice files as raw byte pins.
The current catalog registers 71 nodes across these groups:
- Read: file read, format detection, UBL/CII/ZUGFeRD parsing, folder reads, attachment extraction, summaries, and smart auto-extraction.
- Write: normalized invoice builder, XRechnung UBL/CII writers, ZUGFeRD writer hook, credit notes, corrections, JSON export.
- Validate: XML sanity, EN16931, XRechnung, Peppol, ZUGFeRD, totals, German B2B, B2G, rendered validation reports.
- Utilities: totals, VAT breakdown, tax category normalization, identifier validation, code lookup, payment means mapping, invoice numbers, hashes.
- Transform and mapping: UBL/CII conversion hooks, CSV/DATEV export, ERP payload mapping, master data mapping, PO/delivery-note matching.
- Review: preview rendering, payment summaries, booking proposals, approval fields, anomaly flags.
- Transport: email, Peppol, and portal/API integration hooks.
- Archive: original/structured archive, audit bundle, duplicate keys, retention metadata, redaction, hash manifests.
The smart auto-extraction node reads XML files, normalized invoice JSON files, and ZUGFeRD/Factur-X PDF containers with embedded compressed XML streams. Some deep integrations are intentionally registered as catalog nodes but return a clear host/provider-required error until an official validator, Peppol access point, email provider, or portal connector is wired in.
For a workflow-oriented overview of what the package does and how to use the main nodes, see USER_GUIDE.md.
mise run setup
mise run buildThe release WASM component is:
target/wasm32-wasip2/release/flow_like_e_rechnung_nodes.wasm
cargo fmt
cargo test --target $(rustc -vV | grep host | awk '{print $2}')
cargo checkLicensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.