Skip to main content

Request

Response

A refusal is 200, not 4xx. The decision succeeded; the answer was no. Treating it as an HTTP error would make a working control look like an outage in every dashboard you own.

The gates, in order

Evaluated in sequence, short-circuiting at the first refusal. Gates after that point are recorded as not reached rather than left blank. authority · status · window · scope · clean_context · bounds · policy · budget · review Budget is debited last, after every structural check has passed, so an action refused earlier does not consume an allowance it never used. See The nine gates.

Settling later

Where the final amount is not known at authorisation time, authorise against an estimate and settle the real figure afterwards:
The difference returns to the ceiling. Without this, an agent that reserves generously starves itself.