Module: SEPA::Profiles::EPC

Defined in:
lib/sepa_rator/profiles/epc.rb

Overview

EPC (European Payments Council) SEPA profiles. These reuse the ISO XSDs but tighten them with the EPC rulebook (EUR only, explicit SvcLvl=SEPA, charge bearer SLEV, CORE/B2B local instrument for SDD).

The acceptance lambdas themselves live in ‘ISO::CT_EPC_RULES` and `ISO::DD_EPC_RULES` (defined first in load order) — we simply reuse them here so a bugfix in one place flows to both the ISO AOS variants (`pain.001.002.03`, `pain.001.003.03`, …) and the EPC-flavoured wrappers around pain.001.001.09/.13 and pain.008.001.08/.12.

EPC sits between ISO and the national layers (CFONB, DK/DFÜ). Country profiles that carry SEPA semantics compose from EPC, not from ISO.

The SEPA character set is enforced at assignment time by the ‘Converter` DSL (text sanitisation), so no dedicated validator is needed here.

Constant Summary collapse

SCT_03 =

─── SEPA Credit Transfer ────────────────────────────────────────────

ProfileRegistry.register(
  ISO::SCT_03.with(id: 'epc.sct.03', accept_transaction: ISO::CT_EPC_RULES)
)
SCT_09 =
ProfileRegistry.register(
  ISO::SCT_09.with(id: 'epc.sct.09', accept_transaction: ISO::CT_EPC_RULES)
)
SCT_13 =
ProfileRegistry.register(
  ISO::SCT_13.with(id: 'epc.sct.13', accept_transaction: ISO::CT_EPC_RULES)
)
SDD_02 =

─── SEPA Direct Debit ───────────────────────────────────────────────

ProfileRegistry.register(
  ISO::SDD_02.with(id: 'epc.sdd.02', accept_transaction: ISO::DD_EPC_RULES)
)
SDD_08 =
ProfileRegistry.register(
  ISO::SDD_08.with(id: 'epc.sdd.08', accept_transaction: ISO::DD_EPC_RULES)
)
SDD_12 =
ProfileRegistry.register(
  ISO::SDD_12.with(id: 'epc.sdd.12', accept_transaction: ISO::DD_EPC_RULES)
)