End-of-Day Payment Settlement
System ↔ SystemBatch transaction aggregation through clearing, ledger update, and reconciliation.
6 nodes · 6 edgesfinance
systemdbapi
Visual
End-of-Day Batchevent
Scheduled trigger at market close to begin settlement cycle.
↓sequential→ Transaction Aggregation
Transaction Aggregationdb
Group transactions by counterparty, currency, and settlement date.
↓sequential→ Clearing House Submission
Clearing House Submissionapi
Submit netted positions to ACH/SWIFT/FedWire clearing network.
↓sequential→ Response Processing
Response Processingsystem
Parse clearing house response, flag rejections and exceptions.
↓conditional→ Ledger Update
↓fallback→ Clearing House Submission
Ledger Updatedb
Post settled amounts to general ledger with double-entry bookkeeping.
↓sequential→ Reconciliation
Reconciliationsystem
Match internal records against clearing confirmations, flag breaks.
uc-payment-settlement.osop.yaml
osop_version: "1.0"
id: "payment-settlement"
name: "End-of-Day Payment Settlement"
description: "Batch transaction aggregation through clearing, ledger update, and reconciliation."
nodes:
- id: "eod_batch"
type: "event"
name: "End-of-Day Batch"
description: "Scheduled trigger at market close to begin settlement cycle."
- id: "txn_aggregate"
type: "db"
name: "Transaction Aggregation"
description: "Group transactions by counterparty, currency, and settlement date."
timeout_sec: 120
- id: "clearing_submit"
type: "api"
subtype: "rest"
name: "Clearing House Submission"
description: "Submit netted positions to ACH/SWIFT/FedWire clearing network."
security:
risk_level: "critical"
retry_policy:
max_attempts: 3
backoff: "exponential"
- id: "response_process"
type: "system"
name: "Response Processing"
description: "Parse clearing house response, flag rejections and exceptions."
- id: "ledger_update"
type: "db"
name: "Ledger Update"
description: "Post settled amounts to general ledger with double-entry bookkeeping."
security:
risk_level: "high"
- id: "reconciliation"
type: "system"
name: "Reconciliation"
description: "Match internal records against clearing confirmations, flag breaks."
edges:
- from: "eod_batch"
to: "txn_aggregate"
mode: "sequential"
- from: "txn_aggregate"
to: "clearing_submit"
mode: "sequential"
- from: "clearing_submit"
to: "response_process"
mode: "sequential"
- from: "response_process"
to: "ledger_update"
mode: "conditional"
when: "response.status == 'accepted'"
- from: "ledger_update"
to: "reconciliation"
mode: "sequential"
- from: "response_process"
to: "clearing_submit"
mode: "fallback"
label: "Resubmit rejected transactions"