The hard part of MVA-melding isn't the XML — it's the full auth and submission chain: ID-porten PKCE with private_key_jwt, then Altinn 3's multi-step instance lifecycle (create → upload → sign → complete → poll feedback), plus Skatteetaten's non-obvious sign rules for reverse-charge codes (81/83/86/88/91 generate double entries).
The library handles the complete 15-step flow and uses a ports-and-adapters design — you implement one interface to connect your own ledger data.
Also open-sourced a companion Spring Boot starter for EHF 3.0 / PEPPOL BIS Billing 3.0 invoice transmission.
https://github.com/guangcode/mva-melding-java https://github.com/guangcode/oxalis-spring-boot-starter