Module: SEPA::Profiles::AT
- Defined in:
- lib/sepa_rator/profiles/at.rb
Overview
PSA (Payment Services Austria) / Stuzza profiles.
PSA publishes Austrian “Technical Validation Subsets” that tighten the ISO baseline with a minimum amount of 0.01 and (for v09+) structured postal addresses. The vendored XSDs live in ‘lib/schema/at/` (downloaded from zv.psa.at).
The original PSA XSDs use a STUZZA-specific targetNamespace (‘ISO:pain.:APC:STUZZA:payments:`); the vendored copies keep the ISO namespace because Austrian banks require the ISO namespace for transmission. XSD 1.1 `xs:assert` elements (cross-field checks already handled in Ruby) have been stripped from v09/v08 schemas so Nokogiri/libxml2 (XSD 1.0 only) can load them.
Constant Summary collapse
- VALIDATORS =
[Validators::MinAmount].freeze
- FEATURES =
{ min_amount: BigDecimal('0.01'), requires_structured_address: true }.freeze
- LEGACY_FEATURES =
PSA v03/v02 PostalAddress6 only supports Ctry + AdrLine, not the full structured fields — so we must not require structured addresses.
{ min_amount: BigDecimal('0.01') }.freeze
- SCT_03 =
─── SEPA Credit Transfer ────────────────────────────────────────────
ProfileRegistry.register( EPC::SCT_03.with(id: 'at.sct.03', xsd_path: 'at/pain.001.001.03.at.004.xsd', features: LEGACY_FEATURES, validators: VALIDATORS) )
- SCT_09 =
ProfileRegistry.register( EPC::SCT_09.with(id: 'at.sct.09', xsd_path: 'at/pain.001.001.09.at.005.xsd', features: FEATURES, validators: VALIDATORS) )
- SCT_13 =
ProfileRegistry.register( EPC::SCT_13.with(id: 'at.sct.13', features: FEATURES, validators: VALIDATORS) )
- SDD_02 =
─── SEPA Direct Debit ───────────────────────────────────────────────
ProfileRegistry.register( EPC::SDD_02.with(id: 'at.sdd.02', xsd_path: 'at/pain.008.001.02.at.004.xsd', features: LEGACY_FEATURES, validators: VALIDATORS) )
- SDD_08 =
ProfileRegistry.register( EPC::SDD_08.with(id: 'at.sdd.08', xsd_path: 'at/pain.008.001.08.at.004.xsd', features: FEATURES, validators: VALIDATORS) )
- SDD_12 =
ProfileRegistry.register( EPC::SDD_12.with(id: 'at.sdd.12', features: FEATURES, validators: VALIDATORS) )