286 lines
10 KiB
Markdown
286 lines
10 KiB
Markdown
|
|
# DBIS RTGS FX Transaction Catalog
|
||
|
|
|
||
|
|
**Last updated:** 2026-03-29
|
||
|
|
**Purpose:** Canonical transaction catalog for FX, cross-border banking, and RTGS-adjacent settlement flows across OMNL, HYBX sidecars, Chain 138, and Indonesia-facing beneficiary banks such as Bank Kanaya and BNI-connected correspondent paths.
|
||
|
|
|
||
|
|
## Scope
|
||
|
|
|
||
|
|
This document describes the full transaction families required for a production-grade FX and cross-border RTGS stack:
|
||
|
|
|
||
|
|
- OMNL / Fineract journal-entry flows
|
||
|
|
- HYBX sidecar business flows
|
||
|
|
- ISO 20022 and SWIFT Fin message flows
|
||
|
|
- FX valuation and revaluation flows
|
||
|
|
- correspondent-banking and nostro / vostro flows
|
||
|
|
- Chain 138 settlement augmentation where on-ledger finality is in scope
|
||
|
|
|
||
|
|
This document is not a statement that every flow is already deployed. It is the execution catalog for what must exist to call the stack fully end to end.
|
||
|
|
|
||
|
|
## Status legend
|
||
|
|
|
||
|
|
- `Implemented now`
|
||
|
|
- `Partially implemented`
|
||
|
|
- `Required next`
|
||
|
|
|
||
|
|
## 1. Core transaction families
|
||
|
|
|
||
|
|
| Family | Description | Current status | Primary systems |
|
||
|
|
|--------|-------------|----------------|-----------------|
|
||
|
|
| Opening balance / reserve migration | Initial OMNL funding and reserve booking | Implemented now | OMNL / Fineract |
|
||
|
|
| M0 to M1 conversion | Central-bank style monetary conversion and allocation | Implemented now | OMNL / Fineract |
|
||
|
|
| Interoffice settlement | HO to branch / institution due-to / due-from settlement | Implemented now | OMNL / Fineract |
|
||
|
|
| PvP multilateral net settlement | Beneficiary office receives net cleared position | Partially implemented | OMNL / Fineract |
|
||
|
|
| Sidecar-initiated RTGS posting | Business-side RTGS transfer posted into OMNL via sidecar | Partially implemented | `mifos-fineract-sidecar`, OMNL |
|
||
|
|
| Treasury / funding orchestration | Treasury approval, prefunding, limits, release | Required next | `server-funds-sidecar`, OMNL |
|
||
|
|
| Off-ledger to on-ledger conversion | External event to Chain 138 settlement leg | Required next | `off-ledger-2-on-ledger-sidecar`, Chain 138 |
|
||
|
|
| FX valuation / revaluation | Spot, triangulated, and end-of-day revaluation | Required next | OMNL, rate feeds |
|
||
|
|
| Correspondent-bank settlement | Nostro / vostro reconciliation with domestic / global banks | Required next | OMNL, bank APIs, ISO/SWIFT rails |
|
||
|
|
| Regulatory evidence package | Indonesia / institution-ready package and submission | Partially implemented | OMNL scripts, evidence tooling |
|
||
|
|
|
||
|
|
## 2. Full FX transaction classes
|
||
|
|
|
||
|
|
### 2.1 Internal treasury FX conversion
|
||
|
|
|
||
|
|
**Purpose**
|
||
|
|
- Convert between currencies inside OMNL treasury books.
|
||
|
|
- Support central treasury reserve management and internal balance-sheet positioning.
|
||
|
|
|
||
|
|
**Required legs**
|
||
|
|
1. Debit source currency reserve / treasury account.
|
||
|
|
2. Credit target currency reserve / treasury account.
|
||
|
|
3. Post realized or unrealized FX P&L where applicable.
|
||
|
|
4. Update revaluation basis and audit trail.
|
||
|
|
|
||
|
|
**Key GL patterns**
|
||
|
|
- `12010` / `12020` / `12090` — FX reserve detail
|
||
|
|
- `13010` — FX settlement nostro
|
||
|
|
- `42000` / `51000` — realized FX gain / loss
|
||
|
|
- `42100` / `52100` — unrealized FX gain / loss
|
||
|
|
|
||
|
|
**Required messages / records**
|
||
|
|
- Internal treasury instruction
|
||
|
|
- Rate source reference
|
||
|
|
- value date / trade date
|
||
|
|
- dealing reference
|
||
|
|
- settlement reference
|
||
|
|
|
||
|
|
**Status**
|
||
|
|
- GL and valuation framework are documented.
|
||
|
|
- End-to-end booked treasury FX conversion flow is not yet proven in production.
|
||
|
|
|
||
|
|
### 2.2 Domestic beneficiary settlement in Indonesia
|
||
|
|
|
||
|
|
**Purpose**
|
||
|
|
- Credit Indonesian beneficiary institutions such as Bank Kanaya on OMNL books.
|
||
|
|
- Support domestic regulatory reporting and beneficiary balance confirmation.
|
||
|
|
|
||
|
|
**Required legs**
|
||
|
|
1. Clear multilateral or bilateral obligation.
|
||
|
|
2. Post OMNL journal entries to beneficiary office.
|
||
|
|
3. Attach settlement reference and supporting evidence.
|
||
|
|
4. Reconcile beneficiary office balances and produce regulator-facing package.
|
||
|
|
|
||
|
|
**Current repo-backed example**
|
||
|
|
- `HYBX-BATCH-001`
|
||
|
|
- beneficiary office `22` Bank Kanaya
|
||
|
|
- `USD 1,000,000,000.00`
|
||
|
|
- PvP multilateral net narrative in [PvP_MULTILATERAL_NET_SETTLEMENT_BANK_KANAYA.md](../04-configuration/mifos-omnl-central-bank/PvP_MULTILATERAL_NET_SETTLEMENT_BANK_KANAYA.md)
|
||
|
|
|
||
|
|
**Status**
|
||
|
|
- Repo-backed posting and package path exists.
|
||
|
|
- Live authenticated sidecar-to-OMNL posting now exists.
|
||
|
|
- Full production beneficiary-bank operating model is still not frozen.
|
||
|
|
|
||
|
|
### 2.3 Cross-border commercial-bank FX payment
|
||
|
|
|
||
|
|
**Purpose**
|
||
|
|
- Move value from OMNL / central-bank context through a domestic or correspondent bank path to an external bank.
|
||
|
|
|
||
|
|
**Required legs**
|
||
|
|
1. Payment initiation or settlement instruction received.
|
||
|
|
2. FX quote / rate locked.
|
||
|
|
3. Compliance and sanctions checks.
|
||
|
|
4. Nostro / vostro and prefunding checks.
|
||
|
|
5. Debit source balance / reserve.
|
||
|
|
6. Credit beneficiary bank or correspondent account.
|
||
|
|
7. Reconcile statement and confirmation messages.
|
||
|
|
8. Produce audit and regulatory evidence.
|
||
|
|
|
||
|
|
**Required message families**
|
||
|
|
- ISO 20022:
|
||
|
|
- `pain.001`
|
||
|
|
- `pacs.008`
|
||
|
|
- `pacs.009`
|
||
|
|
- `pacs.002`
|
||
|
|
- `camt.052`
|
||
|
|
- `camt.053`
|
||
|
|
- `camt.054`
|
||
|
|
- SWIFT Fin where needed:
|
||
|
|
- `MT103`
|
||
|
|
- `MT202` / `MT202 COV`
|
||
|
|
- optionally statement or advice equivalents off-platform
|
||
|
|
|
||
|
|
**Status**
|
||
|
|
- Message methodology is documented.
|
||
|
|
- A production cross-border message rail is not yet fully deployed in this workspace.
|
||
|
|
|
||
|
|
### 2.4 Chain-anchored RTGS settlement
|
||
|
|
|
||
|
|
**Purpose**
|
||
|
|
- Add on-ledger finality or settlement confirmation on Chain 138 after OMNL-side accounting.
|
||
|
|
|
||
|
|
**Required legs**
|
||
|
|
1. Off-ledger business event finalized in OMNL.
|
||
|
|
2. Canonical settlement event created with stable identifiers.
|
||
|
|
3. Chain 138 contract path selected.
|
||
|
|
4. Settlement token / registry / escrow action executed.
|
||
|
|
5. On-chain transaction hash captured in evidence package.
|
||
|
|
6. Reconciliation ties OMNL transaction, sidecar correlation ID, and chain tx hash together.
|
||
|
|
|
||
|
|
**Likely on-chain components**
|
||
|
|
- `MerchantSettlementRegistry`
|
||
|
|
- `WithdrawalEscrow`
|
||
|
|
- compliant settlement token set
|
||
|
|
- reserve / oracle controls where minting or conversion is involved
|
||
|
|
|
||
|
|
**Status**
|
||
|
|
- Contract inventory exists.
|
||
|
|
- Canonical RTGS chain leg is not yet frozen end to end.
|
||
|
|
|
||
|
|
## 3. Message-by-message transaction detail
|
||
|
|
|
||
|
|
### 3.1 `pain.001` customer initiation
|
||
|
|
|
||
|
|
**Used for**
|
||
|
|
- bank or enterprise payment initiation into the RTGS workflow
|
||
|
|
|
||
|
|
**Minimum mapped fields**
|
||
|
|
- debtor / creditor
|
||
|
|
- debtor account / creditor account
|
||
|
|
- amount
|
||
|
|
- currency
|
||
|
|
- end-to-end id
|
||
|
|
- purpose
|
||
|
|
|
||
|
|
**Downstream**
|
||
|
|
- mapped into canonical payload
|
||
|
|
- feeds compliance and posting workflow
|
||
|
|
|
||
|
|
### 3.2 `pacs.008` FI-to-FI customer credit transfer
|
||
|
|
|
||
|
|
**Used for**
|
||
|
|
- primary credit-settlement instruction between institutions
|
||
|
|
|
||
|
|
**Required downstream records**
|
||
|
|
- instructionId
|
||
|
|
- MsgId
|
||
|
|
- UETR if available
|
||
|
|
- amount / currency
|
||
|
|
- settlement method
|
||
|
|
- account references
|
||
|
|
|
||
|
|
**Expected system impacts**
|
||
|
|
- OMNL posting
|
||
|
|
- sidecar audit event
|
||
|
|
- optional chain settlement event
|
||
|
|
|
||
|
|
### 3.3 `pacs.009` interbank settlement
|
||
|
|
|
||
|
|
**Used for**
|
||
|
|
- bank-to-bank settlement leg
|
||
|
|
- high-value RTGS interbank flow
|
||
|
|
|
||
|
|
**Indonesia / correspondent context**
|
||
|
|
- preferred for institution-facing settlement instruction where OMNL to beneficiary bank mapping exists
|
||
|
|
|
||
|
|
### 3.4 `pacs.002` status reporting
|
||
|
|
|
||
|
|
**Used for**
|
||
|
|
- accept / reject / pending / completed status
|
||
|
|
|
||
|
|
**Required use**
|
||
|
|
- update business workflow state
|
||
|
|
- feed operator dashboards and evidence package
|
||
|
|
|
||
|
|
### 3.5 `camt.053` / `camt.054`
|
||
|
|
|
||
|
|
**Used for**
|
||
|
|
- statement and debit/credit advice reconciliation
|
||
|
|
|
||
|
|
**Required use**
|
||
|
|
- external-bank and nostro/vostro reconciliation
|
||
|
|
- proof of receipt / settlement confirmation
|
||
|
|
|
||
|
|
### 3.6 `MT103` / `MT202`
|
||
|
|
|
||
|
|
**Used for**
|
||
|
|
- legacy correspondent banking or hybrid gateway participation
|
||
|
|
|
||
|
|
**Required use**
|
||
|
|
- normalize into the same canonical struct as MX messages
|
||
|
|
- preserve raw message hash and field mapping in the evidence chain
|
||
|
|
|
||
|
|
## 4. Required reconciliation outputs
|
||
|
|
|
||
|
|
Every production FX / RTGS transaction family must produce:
|
||
|
|
|
||
|
|
1. business request payload
|
||
|
|
2. authenticated API request / response evidence
|
||
|
|
3. OMNL journal-entry ids and journal-entry payload
|
||
|
|
4. sidecar correlation id / message id / idempotency key
|
||
|
|
5. rate source and value date
|
||
|
|
6. beneficiary / counterparty office and account mapping
|
||
|
|
7. statement / confirmation artifact where external banks are involved
|
||
|
|
8. on-chain tx hash where Chain 138 is involved
|
||
|
|
9. package-ready manifest entry
|
||
|
|
|
||
|
|
## 5. Required identifiers
|
||
|
|
|
||
|
|
The following identifiers must be stable across systems:
|
||
|
|
|
||
|
|
- `instructionId`
|
||
|
|
- `messageId`
|
||
|
|
- `correlationId`
|
||
|
|
- `idempotencyKey`
|
||
|
|
- `settlementRef`
|
||
|
|
- `transactionId` (OMNL / Fineract)
|
||
|
|
- `UETR` where applicable
|
||
|
|
- chain transaction hash where applicable
|
||
|
|
|
||
|
|
## 6. Minimum production-complete FX criteria
|
||
|
|
|
||
|
|
The FX stack is not production-complete until all of the following are true:
|
||
|
|
|
||
|
|
1. rate source and valuation policy are frozen
|
||
|
|
2. participant / office / treasury / GL model is frozen
|
||
|
|
3. domestic beneficiary-bank flow is repeatable
|
||
|
|
4. correspondent-bank flow is documented and tested
|
||
|
|
5. reconciliation captures all identifiers and statement evidence
|
||
|
|
6. regulatory package includes FX-specific reporting and prudential mapping
|
||
|
|
7. chain settlement leg is either fully implemented or explicitly out of scope
|
||
|
|
|
||
|
|
## 7. Current truth
|
||
|
|
|
||
|
|
### Proven now
|
||
|
|
|
||
|
|
- OMNL tenant/auth is live and usable
|
||
|
|
- `mifos-fineract-sidecar` has completed an authenticated live OMNL posting
|
||
|
|
- the accounting side of a canonical business transfer can be initiated from a deployed sidecar on Proxmox VE
|
||
|
|
|
||
|
|
### Still open
|
||
|
|
|
||
|
|
- full treasury / funds orchestration
|
||
|
|
- off-ledger to Chain 138 settlement leg
|
||
|
|
- correspondent-bank and BNI-specific external settlement path
|
||
|
|
- full evidence package covering banking message + accounting + on-chain finality in one run
|
||
|
|
|
||
|
|
## Related artifacts
|
||
|
|
|
||
|
|
- [DBIS_RTGS_E2E_REQUIREMENTS_MATRIX.md](DBIS_RTGS_E2E_REQUIREMENTS_MATRIX.md)
|
||
|
|
- [DBIS_RTGS_FIRST_SLICE_DEPLOYMENT_CHECKLIST.md](DBIS_RTGS_FIRST_SLICE_DEPLOYMENT_CHECKLIST.md)
|
||
|
|
- [HYBX_BATCH_001_OPERATOR_CHECKLIST.md](../04-configuration/mifos-omnl-central-bank/HYBX_BATCH_001_OPERATOR_CHECKLIST.md)
|
||
|
|
- [OMNL_TRANSACTION_SEQUENCE_FULL.md](../04-configuration/mifos-omnl-central-bank/OMNL_TRANSACTION_SEQUENCE_FULL.md)
|
||
|
|
- [PvP_MULTILATERAL_NET_SETTLEMENT_BANK_KANAYA.md](../04-configuration/mifos-omnl-central-bank/PvP_MULTILATERAL_NET_SETTLEMENT_BANK_KANAYA.md)
|
||
|
|
- [FX_AND_VALUATION.md](../04-configuration/mifos-omnl-central-bank/FX_AND_VALUATION.md)
|
||
|
|
- [SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY.md](../04-configuration/SMART_CONTRACTS_ISO20022_FIN_METHODOLOGY.md)
|