Submission authority
Every submission to the RTGS is the bank's own act, through its existing systems. Advice is never later than the payment's own time.
How it works
Each bank sends Sampo a payment intent for each of its upcoming large-value payments. Sampo computes a payment schedule and gives each bank advice for its own payments. The bank submits each payment to the RTGS through its own systems, and the RTGS settles it as it does today.
Diagram of Sampo's design, with banks, three compute parties and monitoring. Each bank sends payment intents to the compute parties. They compute the payment schedule together and send each bank its advice.
01
The bank's payment system or intraday liquidity system sends payment intents for its upcoming large-value payments to Sampo's Bank node at the bank, through an API. Each record is a payment intent, with the earliest time the bank can submit the payment and the payment's own time. It is not a payment instruction, and Sampo cannot submit it to the RTGS.
The bank sends Sampo only payments above its value threshold. It submits everything else under its existing process.
POST /intents
[
{
"sampo_payment_id": 8,
"sender_bank_id": 1,
"receiver_bank_id": 4,
"amount": 87250000000,
"instruction_version": 1,
"currency": 0,
"rail": 0,
"value_date": 20641,
"submission_ts": 1783425130000,
"queue_enter_ts": 1783425130000,
"earliest_ms": 1783425600000,
"latest_ms": 1783448281000,
"priority_class": 2,
"intent_status": 0
}
]
Response 202
{ "outcomes": [[8, "applied"]], "changes": 1 }
earliest_ms), and its own time (latest_ms) is 14:18:01. Currency 0 is USD, rail 0 is Fedwire, priority 2 is normal. If the bank sends the same payment intent again, Sampo returns "noop" and changes nothing.02
Sampo computes a payment schedule for the payments of all banks in the cohort. It uses Sampo's rule, parts of which are patent pending. Today Sampo runs on payment data in the clear. In Sampo's design, independent compute parties compute the payment schedule together, and each sees only shares of the amounts.
In that design, which uses multi-party computation, Sampo's Bank node splits each amount into shares before it leaves the bank. Each compute party receives only its own shares, which are not enough to recover the amount. The compute parties receive sender, receiver, timing and priority in the clear.
What one compute party receives, in the production design
{
"sampo_payment_id": 8,
"sender_bank_id": 1,
"receiver_bank_id": 4,
"amount": {
"party_id": 0,
"share_a": 1529384710293847561,
"share_b": 9182736450912837465,
"reconstruction": "additive-mod-2^64"
},
"earliest_ms": 1783425600000,
"latest_ms": 1783448281000,
"priority_class": 2,
"intent_status": 0
}
03
Sampo sends each bank advice for its own payments only, matched to its own references. No bank receives another bank's advice or payment data.
Each advice tells the bank to submit a payment now, before its own time, and gives the bank's funding checkpoint (see step 04). Advice is valid for one minute. The bank submits a payment that Sampo does not advise early at its own time.
GET /advice/1
[
{
"sampo_payment_id": 8,
"action": "submit_now",
"step_ms": 1783447500000,
"recommended_submission_ms": 1783447500000,
"not_after_ms": 1783448281000,
"valid_until": 1783447560000,
"expected_lnncp_checkpoint": 174000000000
}
]
submit_now), 13 minutes before its own time of 14:18:01 (not_after_ms). The advice is valid until 14:06 (valid_until). The funding checkpoint is expected_lnncp_checkpoint: USD 1.74bn. Sampo gives no advice for Payment 27, so the bank submits it at its own time, 13:37. This example shortens the other fields.04
The bank submits each payment to the RTGS when Sampo advises it, or at its own time, using its existing systems. If the bank does not follow the advice, the advice lapses at the end of its minute, and Sampo's next update of the payment schedule takes that into account (see step 05). The RTGS settles each payment gross, in full and unchanged. Sampo never submits or holds a payment.
Each advice carries a funding checkpoint: the largest net debit that Sampo's payment schedule expects for the bank over the advice minute and the next 60 minutes. Sampo fixes it when it publishes the advice, and it is zero if the bank is not expected to go into net debit. Before it submits a payment, the bank can check its headroom after the payment: the funding checkpoint less its net debit and the payment's amount. If there is a shortfall, the bank may hold the payment until expected receipts settle, or fund the payment itself.
No Sampo message
The bank submits the payment to the RTGS through its usual channel, as today. Sampo has no connection to the RTGS and no part in settlement.
05
Sampo updates the payment schedule every minute from the payment intents sent so far and advises which payments to submit now. Advice is valid for one minute. The bank submits a payment that Sampo does not advise early at its own time.
New payment intents, amendments and cancellations enter the next update of the payment schedule. So does advice the bank did not follow, which lapses at the end of its minute.
POST /intents (amendment)
[
{
"sampo_payment_id": 8,
"sender_bank_id": 1,
"receiver_bank_id": 4,
"amount": 87250000000,
"instruction_version": 2,
"earliest_ms": 1783425600000,
"latest_ms": 1783448400000,
"priority_class": 2,
"intent_status": 1
}
]
Response 202
{ "outcomes": [[8, "applied"]], "changes": 1 }
06
Sampo compares the actual submission times with its advice and reports the liquidity saved: the bank's peak without Sampo less its peak with Sampo. The bank reports when it submitted each payment. The report uses submission and receipt times, not amounts.
The bank's own RTGS settlement record remains the authoritative record for any dispute.
POST /feedback
{
"batch_id": "13:07-EVT",
"payment_id": "8",
"actual_release_ms": 1783447572000,
"status": "settled"
}
Response 204
actual_release_ms), after its advice minute (followed later), and the RTGS settled it.Every submission to the RTGS is the bank's own act, through its existing systems. Advice is never later than the payment's own time.
Sampo receives each payment's amount, counterparty bank, priority and time window. Customer data and personal information stay with the bank.
Finality stays in central bank money on the existing rail. Sampo holds no funds.
A bank need not follow any advice, and can stop sending payment intents at any time. If Sampo is unavailable, banks submit payments as they do today.
The service operator runs Sampo for a cohort. Today FNA is the service operator; an FMI or a bank consortium could be. Each bank decides when it submits its payments, and the existing RTGS settles them.
| Party | Receives | Does not receive |
|---|---|---|
| Each bank | Advice and funding checkpoints for its own payments | Any other bank's payments, advice or net debit |
| Service operator (today, with payment data in the clear) | All payment intents, including amounts | Customer data and personal information |
| Compute parties (production design, with multi-party computation) | Sender, receiver, timing and priority of each payment; one share of each amount | Payment amounts and the liquidity positions derived from them |
| Monitoring | Health, counts and timings; submission and receipt times for measurement | Payment amounts |
| The RTGS | Each payment, submitted by the bank as today | Anything from Sampo |