How it works · Orchestration · Integration
One workflow. Every settlement system.
The operator orchestrates payments across different external systems, ensuring that transactions involving two or more parties are completed consistently. Those systems vary in what they can do and in how their transactions live and die - so the operator drives every transaction through a state machine, and lets one adapter per system absorb the differences.
create, approve, submit - with the approval digitally signed by the node on behalf of the payer bank.Orchestration
A state machine drives the transaction; adapters do the talking
To manage the complexity of many external systems, the operator employs a state-machine-driven workflow. It guides the operator through a series of states, triggering API calls to the relevant external systems at each step, and awaits their responses before progressing to the next state.
State-machine workflow
Every transaction is a state machine. Upon receipt of a success or failure response, the workflow moves to the next state and the next action is processed. A failure is a state too - one with its own exit, never an ambiguity.
Integration layer
An integration layer within the operator handles the unique characteristics of each external system - its messaging requirements, its workflow, its security model. It implements a different adapter for every system the operator connects to.
Adapters
Each adapter constructs the message payload, handles the API security - including digitally signing requests where the system requires it - and parses the responses based on the capabilities provided by that system. The workflow above only ever sees states and outcomes.
One settlement, two kinds of system
Reserve where you can, trigger where you must, and record everything on the ledger
On the left, the BHD RTGS exposes APIs for funds reservation and settlement. On the right, the USD side is reached through a trigger service: REST APIs to create, approve and submit a payment instruction and to query its status. The operator nodes sit between them and the shared ledger. Press play to follow one BHD/USD settlement.
-
Leg 1 arrives at the BHD adapter from the RTGS side; leg 2 arrives at the USD adapter from the trigger side. Each node hashes its leg and writes the hash to the ledger's matching contract. When the two hashes correspond, the ledger emits match confirmed to both nodes and the transaction moves to MATCHED. No payment details have left either node.
-
Here the two systems differ. The BHD RTGS supports reservations: the BHD adapter sends a
camt.103, receives acamt.047confirming the earmark, and records fund reservation complete for leg 1 on the ledger, which answers FRC completed.The USD trigger service does not reserve. Instead the USD adapter calls
createto prepare the payment instruction and receives prepared. The instruction now exists in the trigger service, but nothing has moved. -
Because only one side holds a reservation, the side without one pays first. The USD adapter calls
approve- the trigger's approve function translates the payer bank's approval of the payment into its literal meaning; the node calls it on behalf of the payer bank and digitally signs the request. It then callssubmit, and periodically queries the trigger until it returns completed. The node records settlement complete for leg 2 on the ledger.Only now does the BHD adapter release its earmark with a
pacs.009. The BHD RTGS answers with apacs.002final status, and the node records settlement complete for leg 1. -
With both legs recorded as settled, the ledger emits settlement completed to both nodes and each updates its own status. Had the trigger side failed at approve or submit, the BHD earmark would have been cancelled with a
camt.049- no BHD would have moved.
Why the trigger side goes first
A reservation is a promise the operator can rely on; a prepared instruction is not. So the leg that cannot be reserved is executed first, and the reserved leg is released only once the other has completed. Both are paid, or neither is.
Polling is part of the life cycle
The trigger adapter creates the payment instruction, follows its life cycle and periodically calls the trigger to query the result. The workflow does not advance until the status it is waiting for arrives.
Hashes on the ledger, data at home
Only the hash of each leg and the status transitions - matched, reserved, settled, completed - are written to the shared ledger. The instruction itself stays in the node that owns it.
Two adapters
Same workflow, different conversations
The RTGS adapter and the trigger adapter answer the same questions from the state machine - can you reserve, can you settle, did it work - with entirely different messages.
camt.103 create reservation → camt.047 confirmation. Fund reservation complete is recorded on the ledger.Not supported. The adapter calls create to prepare the instruction instead; the leg is settled conditionally, first.pacs.009 releases the earmark → pacs.002 final status.approve - signed by the node on behalf of the payer bank - then submit; the adapter polls for status until completed.camt.049; the transaction moves to its failure state.Approve or submit fails → no payment made; the other side's reservation is cancelled.The trigger life cycle
Create, approve, submit: three calls and one signature
Create
The node creates a payment instruction in the trigger service. From here it follows the instruction's life cycle, state by state, rather than firing and forgetting.
Approve
The trigger's approve function translates the payer bank's approval of the payment into its literal meaning. The operator calls it on behalf of the payer bank and digitally signs the request - the signature, not the operator's word, is what authorises the payment.
Submit and query
The node submits the instruction for settlement, then periodically calls the trigger to query the result. Upon success the trigger returns a complete status back to the node, and the workflow moves on.
See it on your corridor
Minutes, BHD/USD, one live synchronised settlement.
We will run a settlement end to end in the sandbox - both RTGS legs, your approval limits, your failure cases - then leave you to decide.