Channels

Configure once. Inherit everywhere.

A channel captures scheme, direction, output mode and thresholds once. Every later call just names it — think of it as a CSS cascade for your payment settings.

How every request resolvesTop to bottom, most specific wins.

  1. channelProfile — the baseline for every setting; registered once, referenced by name.
  2. processingOptions — overrides chosen settings, for this one call only.
  3. context — fills any remaining gaps, and writes every field to the audit trail.

A registered channel — a channelProfile in the API — is your stylesheet; processingOptions is an inline override for one call; context is the fallback that also logs everything to audit.

The request shrinks to its essentialsName the channel; send only the payload.

Without a profile — every call repeats the config:

{
  "messageType": "pacs.008",
  "scheme": "SCT_INST",
  "schemeVersion": "SR2026",
  "direction": "OUTBOUND",
  "targetFormat": "FULLY_STRUCTURED",
  "processingOptions": {
    "outputMode": "EPC",
    "quality": "standard",
    "repairConfidenceThreshold": 0.80
  },
  "messageXml": "<Document>...</Document>"
}

With the sepa-inst-out profile — same call:

{
  "channelName": "sepa-inst-out",
  "messageXml": "<Document>...</Document>"
}

Starter channelsCopy one, tweak it, register it with EP-25.

These presets are what the old "editions" really were. Each maps to an audience starting point.

sepa-sct-out — SEPA SCT, outbound. Clean, structured pain.001 outbound under SEPA SCT. The corporate-treasury starting point.

{
  "channelName": "sepa-sct-out",
  "channelSelection": {
    "channel": "sepa", "scheme": "SCT", "schemeVersion": "SR2026",
    "direction": "OUTBOUND", "pspCountry": "DE", "timezone": "Europe/Berlin"
  },
  "corridor": { "sendingCountry": "DE", "receivingCountry": "FR", "currency": "EUR" },
  "preferences": {
    "outputMode": "EPC", "targetFormat": "FULLY_STRUCTURED",
    "quality": "standard", "repairConfidenceThreshold": 0.8
  }
}

swift-cbpr-in — SWIFT CBPR+, inbound. Repair inbound pacs.008 for screening and legacy systems. The correspondent-bank starting point.

{
  "channelName": "swift-cbpr-in",
  "channelSelection": {
    "channel": "swift", "schemeVersion": "SR2026", "direction": "INBOUND",
    "pspCountry": "GB", "timezone": "Europe/London"
  },
  "corridor": { "sendingCountry": "US", "receivingCountry": "GB", "currency": "USD" },
  "preferences": {
    "outputMode": "CBPR_PLUS", "autoRepairMode": "STANDARD", "targetFormat": "auto",
    "quality": "premium", "repairConfidenceThreshold": 0.85
  }
}

corp-host-to-host — host-to-host file, outbound. Bulk file validation a platform runs for the corporates it serves.

{
  "channelName": "corp-host-to-host",
  "channelSelection": {
    "channel": "file", "scheme": "SCT", "schemeVersion": "SR2026",
    "direction": "OUTBOUND", "pspCountry": "NL", "timezone": "Europe/Amsterdam"
  },
  "corridor": { "sendingCountry": "NL", "receivingCountry": "DE", "currency": "EUR" },
  "preferences": {
    "outputMode": "EPC", "targetFormat": "HYBRID", "autoRepairMode": "CONSERVATIVE",
    "quality": "standard", "repairConfidenceThreshold": 0.8
  }
}

cop-verify — CoP / VOP address check. Address-level structural checks only — no message scope, pre-check by nature.

{
  "channelName": "cop-verify",
  "channelSelection": {
    "channel": "api", "direction": "INBOUND", "pspCountry": "GB", "timezone": "Europe/London"
  },
  "preferences": { "quality": "standard", "targetFormat": "auto" }
}

Manage channels — register with EP-25 (POST /channel-profile), update with EP-26 (PATCH /channel-profile/{name}), read with EP-27 (GET /channel-profile/{name}).