#983: SEPAXmlBuilder.kt

projectforge-business/src/main/kotlin/org/projectforge/business/fibu/SEPAXmlBuilder.kt SEPA XML Builder, projectforge-business/src/main/kotlin/org/projectforge/business/fibu/SEPAXmlBuilder.kt 242 lines · 159 code · 51 comments · 32 blank
Constructs ISO 20022 pain.001.001.03 XML documents for SEPA Credit Transfer initiation. Handles group header, payment information, and transaction-level XML block generation with proper namespace management.

Architecture

XML Structure

The builder produces a three-level hierarchical XML structure per the pain.001.001.03 schema:

  1. Group Header (<GrpHdr>): Message ID, creation datetime, initiator party identification, number of transactions, control sum.
  2. Payment Information (<PmtInf>): Payment method (TRF), batch booking flag, requested execution date, debitor account (IBAN/BIC), debitor agent (bank).
  3. Transaction Information (<CdtTrfTxInf>): Per-invoice: end-to-end ID, amount, creditor details (name, IBAN, BIC), remittance information (invoice number).

Design Decisions

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
51797f22f SEPA-Transfer: fix formatting amount.
5288f771e SEPA generator now creates valid XML without namespace problems and without duplicate xmlns definitions.
dcfccf494 SEPA generator now creates valid XML without duplicate xmlns definitions.
3b4908eb7 SEPA Export for invoices: Using now data from RechnungDO in cooperation with SEPATransferGeneratorUtils.
e4a9008d4 SEPA Export for invoices added.