Batch settlement & returns (SIMULATED scheme)

Simulated scheme

batch-settlement · /api/jobs/batch-settlement · every 5 minutes (*/5 * * * *)

Finds posted batch entries whose configured settlement lag has elapsed and gives each one exactly one ending: SETTLED — the suspense balance moves to the scheme-clearing position with a balanced pair — or RETURNED, where the original movement is reversed by an equal-and-opposite compensating pair in a NEW journal (the original postings are never edited) and a case is opened on the exceptions desk. The same run settles approved high-value wires through the same engine.

Why running it twice is safe: Each entry is resolved under a payment row lock, and a UNIQUE SchemeSettlement row — unique on both entry and payment — is written in the same transaction as the postings, so the row exists if and only if the money moved. A re-run finds them resolved and skips.

Not polling: nothing on screen can change status any more. Showing state as of .

Disclosure

SIMULATED clearing scheme — this module's own settlement engine, not a real scheme connection

Batch (ACH-style) payments in this module clear through an INTERNAL SIMULATION of a clearing scheme, not through a real one. There is no connection to ACH, Bacs, SEPA, FedACH or any other scheme, no file is exchanged with any counterparty, and nothing recorded here has any effect outside this database. The adapter is this module's own deterministic settlement engine: an outbound entry is validated and immediately posted as a balanced pair — debiting the customer account and crediting an internal scheme-settlement suspense account — and is then marked pending settlement until the configured settlement lag elapses, at which point the scheduled settlement job settles it or, at the configured simulated return rate, returns it with an R-code style reason. Every batch record stores the adapter identifier and a simulated flag so a stored record can never be mistaken for real scheme traffic.

adapter: internal-simulated-clearing.v1 · simulated: true · no real scheme connection exists

Run it now (for testing)

Optional: the platform triggers this job on its own schedule whether or not anybody presses this. A hand-run does exactly the same work under exactly the same idempotency guarantee and is recorded below as a manual run with the staff user against it.

A run is always recorded, even when it finds nothing to do.

Run history (29 recorded)

Newest first. Hover a count for exactly what it counts.

Runs of Batch settlement & returns (SIMULATED scheme) with their outcome, counts, duration and errors
Started (UTC)TriggerStatusDurationExaminedSettledReturnedSkippedCasesOutcome
2026-08-19 06:20:59 UTCslot 2026-08-19 06:20:00 UTC · attempt 1platform schedulesucceeded17 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 06:15:48 UTCslot 2026-08-19 06:15:00 UTC · attempt 1platform schedulesucceeded11 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 06:10:57 UTCslot 2026-08-19 06:10:00 UTC · attempt 1platform schedulesucceeded71 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 06:05:48 UTCslot 2026-08-19 06:05:00 UTC · attempt 1platform schedulesucceeded9 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 06:00:55 UTCslot 2026-08-19 06:00:00 UTC · attempt 1platform schedulesucceeded56 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:55:48 UTCslot 2026-08-19 05:55:00 UTC · attempt 1platform schedulesucceeded11 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:50:53 UTCslot 2026-08-19 05:50:00 UTC · attempt 1platform schedulesucceeded80 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:45:48 UTCslot 2026-08-19 05:45:00 UTC · attempt 1platform schedulesucceeded10 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:40:50 UTCslot 2026-08-19 05:40:00 UTC · attempt 1platform schedulesucceeded64 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:35:48 UTCslot 2026-08-19 05:35:00 UTC · attempt 1platform schedulesucceeded18 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:30:48 UTCslot 2026-08-19 05:30:00 UTC · attempt 1platform schedulesucceeded56 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:25:47 UTCslot 2026-08-19 05:25:00 UTC · attempt 1platform schedulesucceeded64 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:20:45 UTCslot 2026-08-19 05:20:00 UTC · attempt 1platform schedulesucceeded80 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:15:44 UTCslot 2026-08-19 05:15:00 UTC · attempt 1platform schedulesucceeded56 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:10:43 UTCslot 2026-08-19 05:10:00 UTC · attempt 1platform schedulesucceeded53 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:05:41 UTCslot 2026-08-19 05:05:00 UTC · attempt 1platform schedulesucceeded54 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 05:00:40 UTCslot 2026-08-19 05:00:00 UTC · attempt 1platform schedulesucceeded56 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:55:39 UTCslot 2026-08-19 04:55:00 UTC · attempt 1platform schedulesucceeded59 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:50:37 UTCslot 2026-08-19 04:50:00 UTC · attempt 1platform schedulesucceeded52 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:45:36 UTCslot 2026-08-19 04:45:00 UTC · attempt 1platform schedulesucceeded58 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:40:34 UTCslot 2026-08-19 04:40:00 UTC · attempt 1platform schedulesucceeded53 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:35:33 UTCslot 2026-08-19 04:35:00 UTC · attempt 1platform schedulesucceeded78 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:30:32 UTCslot 2026-08-19 04:30:00 UTC · attempt 1platform schedulesucceeded59 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:25:30 UTCslot 2026-08-19 04:25:00 UTC · attempt 1platform schedulesucceeded57 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

2026-08-19 04:20:29 UTCslot 2026-08-19 04:20:00 UTC · attempt 1platform schedulesucceeded56 ms00000

No batch entry was due for simulated settlement; nothing was posted. No approved high-value wire was due for simulated settlement.

USD 0.00 settled

Sample book disclosure: the customer accounts, staff users and sanctions watchlist in this environment are seeded demonstration data created by this module — there is no connection to a real core banking system, payment scheme or sanctions feed. Batch (ACH-style) clearing and high-value wire settlement both run through this module's own SIMULATED settlement engine, never a real scheme or wire network.