Skip to main content
A policy is a JSON-serializable rule-set attached to an agent. Exactly one policy per agent, mutable. The policy engine evaluates a policy on every intent, grant, issue, redeem, and checkout — pure-function, deterministic, fully testable. Agents can read their policy but never modify it. Modification is dashboard or API-key only — agent tokens always get 403.

Enforcement levels

Field reference

Limits

Merchant + geo

Time + cooldown

Lifecycle

Required behavior

Create a policy

Update a policy

Updates propagate live — including to the card-issuer-native control surface.

Pre-built presets

policy-presets.ts ships templates for common patterns:
Allowed MCCs: 4111, 4112, 4131, 4511, 7011, 7012. Country allowlist matches your travel countries. Hard daily cap.
Merchant allowlist of known SaaS providers. lockToFirstMerchant true. Monthly cap.
MCC 5734/5735/7372 (software). Per-transaction ceiling. Auto-approve sub-€20.

Risk thresholds (per-policy)

You can override the default 70/85/95 risk thresholds per policy:
Constraint: thresholdReview < thresholdDeny < thresholdFreeze. See Control for risk engine details.

Surfaces

Next

Control

The two engines that read policy and risk together.

Intents

What policy decisions are made against.

Cards

How policy syncs to card-issuer-native controls.