Standing order execution

standing-orders · /api/jobs/standing-orders · every 5 minutes (*/5 * * * *)

Selects active standing orders whose next due date has arrived, puts each through the same validation, sanctions-screening, funds and limit checks as a one-off payment, posts a balanced debit/credit pair for the ones that pass, writes exactly one execution record per due date and advances the schedule. An unfunded due date is recorded as a failure with a customer notification and retried next cycle; after the configured number of consecutive failures the order is paused and a case is opened on the exceptions desk.

Why running it twice is safe: One due date can be attempted exactly once: StandingOrderExecution is UNIQUE on (order, due date) and is written in the same transaction as the money, with the payment's deterministic UNIQUE reference as a second guard. A re-run reports skipped rather than paying again.

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

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 Standing order execution with their outcome, counts, duration and errors
Started (UTC)TriggerStatusDurationExaminedExecutedFailedHeldSkippedNotifiedPausedCasesOutcome
2026-08-19 06:20:59 UTCslot 2026-08-19 06:20:00 UTC · attempt 1platform schedulesucceeded11 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 06:15:48 UTCslot 2026-08-19 06:15:00 UTC · attempt 1platform schedulesucceeded8 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 06:10:57 UTCslot 2026-08-19 06:10:00 UTC · attempt 1platform schedulesucceeded11 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 06:05:48 UTCslot 2026-08-19 06:05:00 UTC · attempt 1platform schedulesucceeded8 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 06:00:55 UTCslot 2026-08-19 06:00:00 UTC · attempt 1platform schedulesucceeded13 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:55:48 UTCslot 2026-08-19 05:55:00 UTC · attempt 1platform schedulesucceeded7 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:50:53 UTCslot 2026-08-19 05:50:00 UTC · attempt 1platform schedulesucceeded9 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:45:48 UTCslot 2026-08-19 05:45:00 UTC · attempt 1platform schedulesucceeded7 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:40:50 UTCslot 2026-08-19 05:40:00 UTC · attempt 1platform schedulesucceeded15 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:35:48 UTCslot 2026-08-19 05:35:00 UTC · attempt 1platform schedulesucceeded8 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:30:48 UTCslot 2026-08-19 05:30:00 UTC · attempt 1platform schedulesucceeded16 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:25:47 UTCslot 2026-08-19 05:25:00 UTC · attempt 1platform schedulesucceeded11 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:20:45 UTCslot 2026-08-19 05:20:00 UTC · attempt 1platform schedulesucceeded14 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:15:44 UTCslot 2026-08-19 05:15:00 UTC · attempt 1platform schedulesucceeded9 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:10:43 UTCslot 2026-08-19 05:10:00 UTC · attempt 1platform schedulesucceeded11 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:05:41 UTCslot 2026-08-19 05:05:00 UTC · attempt 1platform schedulesucceeded11 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 05:00:40 UTCslot 2026-08-19 05:00:00 UTC · attempt 1platform schedulesucceeded13 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:55:39 UTCslot 2026-08-19 04:55:00 UTC · attempt 1platform schedulesucceeded9 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:50:37 UTCslot 2026-08-19 04:50:00 UTC · attempt 1platform schedulesucceeded9 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:45:36 UTCslot 2026-08-19 04:45:00 UTC · attempt 1platform schedulesucceeded9 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:40:34 UTCslot 2026-08-19 04:40:00 UTC · attempt 1platform schedulesucceeded9 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:35:33 UTCslot 2026-08-19 04:35:00 UTC · attempt 1platform schedulesucceeded12 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:30:32 UTCslot 2026-08-19 04:30:00 UTC · attempt 1platform schedulesucceeded11 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:25:30 UTCslot 2026-08-19 04:25:00 UTC · attempt 1platform schedulesucceeded12 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

2026-08-19 04:20:29 UTCslot 2026-08-19 04:20:00 UTC · attempt 1platform schedulesucceeded10 ms00000000

No standing order was due for execution; nothing was posted.

USD 0.00 paid

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.