Skip to main content
POST
Required scope: write

Request body

DecisionRequest
string
Optional explicit action being authorized (e.g. ‘issue_refund’). When present, the decision reflects whether this action is permitted.
object
number (double)
string
Optional client correlation key (their order id, case id, claim number). Stored on the decision so the real-world outcome can later be recorded against it via POST /v1/decisions/outcome-by-ref — a chargeback or override webhook knows this id, not our decision_id.
RecursiveChatFactInput[]
Request-scoped facts injected into the working set.
boolean
When false, skip org knowledge-base hydration (default true).
boolean
When true, include the full proof trace and raw engine payload.
object
integer
Recursion depth / iteration / confidence overrides.
integer
string
Reasoning thoroughness: fast | accurate | safe. Decisions default to safe (highest verification) since they are accountable outputs.
string
required
The decision question, e.g. ‘Can order #A1 be refunded for customer C?’.
RecursiveChatRuleInput[]
Request-scoped rules injected into the working set.
string
Optional caller session id (carried into the solver).

Response

DecisionResponse
object
number (double)
required
string
required
approved | denied | refused.
string
required
string[]
Org rules the engine fired during hydration that were dropped from proof.cited_rules as unrelated to this decision. Persistently non-empty values mean a standing rule with permanently satisfied premises fires on every hydrated decision — scope or prune it.
string
Exact predicate evaluated as the permit target. Absent for legacy requests that relied on action/query inference.
DecisionGrounding
required
GssMachineGroundingSnapshot
required
string
required
Deterministic, proof-derived, business-readable ‘why’ — distinct from rationale (engine narration): ‘Approved to issue a refund for order 9412: the return for order 9412 was received and order 9412 passed inspection.’ Always present.
DecisionProof
required
string
required
object
RecursiveChatTraceStep[]
Full proof trace, when include_trace was set.
DecisionUsage
required
object
A self-contained, INDEPENDENTLY-VERIFIABLE proof bundle for an approved decision: the exact facts and rules plus a RuleEngine::backward_chain derivation of the authorization goal, in the knowledge::ProofBundle wire format. POST it verbatim to /v1/proofs/verify (or check it offline with the dependency-light proof_check) to confirm the verdict without trusting this server. Present only when the caller declared an authorization_goal AND the rule engine reproduces the proof; absent otherwise (the verdict still stands on its own derivation).
string[]
Non-fatal advisories about how the verdict was derived (e.g. the outcome rested on predicate-name inference rather than declared rule effects). Omitted when empty.
object

Status codes