/api/partner/ routes, and reaches only
accounts your firm issued.
1
Read the current state
Get an account’s risk controls
returns the five controls as stored, plus whether trading is blocked and by what.
account is required — a missing one is a 400. The settings object carries each control’s
enabled flag and value, plus updatedAt.2
Write all five in one call
Set an account’s risk controls
replaces the whole set. Enforcement is live from the write: the risk monitor re-arms
immediately.An enabled control needs a positive, in-range value or the write is a
400. A disabled
control’s value is ignored and stored as null — there is no half-set control. The response
returns the state as stored, so your system can mirror it rather than assume it.3
Halt an account, and lift your own halt
Halt trading blocks all new orders
until your firm resumes.
Resume is the mirror image.Both are idempotent: halting an already-halted account answers
halted: true again, and
resuming one that is already trading answers halted: false.4
Reset when you want the account flat and clean
A halt stops new risk; it does not close anything. Reset an issued
account is the call that clears open
positions and working orders and returns the balance to its starting figure.
The five controls
The end-of-day window is the one control that is not about money. Its value is a count of whole
minutes before the 16:00 CT close, and the contract accepts 1 through 240 — anything outside that
range is a
400, not a clamp. Four hours is the ceiling because the control is a
close-out-before-the-bell instrument, not a session policy.
What firing does
The same thing, whichever control fired: flatten, then lock. The risk monitor closes the account’s positions and blocks new orders, exactly as if the trader had set the control themselves. Nothing about a firm-written control is enforced differently from a trader-written one — it is the same monitor reading the same settings row. After a control fires,halted is true and lockReason names what fired.
Halt, resume, reset — which one
Two refusals hold this together, and both are
409:
- Halt refuses when someone else already holds the lock. If the account is locked by a risk
control that fired or by an evaluation breach, the halt answers
409and replaces nothing — because clearing your halt later must never release a lock you never owned. - Resume refuses when the lock is not yours. It clears a
firm_haltand nothing else. A risk lock or aneval_breachstands, andlockReasonin the error names what is actually holding it.
How this differs from a trader’s own controls
They are the same five numbers in the same settings row — one set, two viewers, last write wins. What differs is the key, the naming, and the reach.
One field belongs to the trader alone: the “prevent changes while locked” preference is not on the
partner surface at all, and your write leaves it untouched.
Where to go deeper
- Issue evaluation accounts — creating the accounts these controls govern.
- Set risk controls — the trader-side view of the same five numbers, and the
423they produce. - Receive events —
risk.lockedandrisk.unlockedas they happen. - Close a position — what the monitor’s own flatten does.
- Errors — every status this surface can answer.