Advanced Policies
Agent identity enforcement
Agent identity policies can constrain payment authorization by environment, risk tier, owner role, required identity tag, and attestation mode. Missing identity context fails closed for allow rules.DEV and STAGING agents also
cannot select mainnet or unclassified wallets, even when one was accidentally
assigned.
Supported rule types are AGENT_ENVIRONMENT, AGENT_RISK_TIER,
AGENT_OWNER_ROLE, AGENT_TAG, and ATTESTATION_LEVEL.
Use advanced rules when simple spend limits, time windows, and counterparty controls are not enough.
Most teams should start with Policy Overview, then add only the controls their
agent actually needs.
Effective policy stack
Conto evaluates the complete policy stack for each payment: every active organization policy plus every active assigned policy linked to the payment’s agent and wallet or card. Organization policies are mandatory baselines and cannot be attached to individual resources. Assigned policies do nothing until they are linked to an agent, wallet, or card. All applicable policies are composed once before their rules are evaluated. A direct assignment cannot replace or weaken an organization baseline, and a denial from any applicable rule wins. The SDK policy response identifies each policy’sscope and whether it applies through the
organization, agent, wallet, or card.
Rule shape
Operators
Supported Rule Types
Rule Patterns
Registered Commerce Fact Rules
COMMERCE_EXTENSION_FACT evaluates a scalar property from a schema-validated commerce proposal
extension. The rule value is JSON encoded and contains the exact schema binding plus the expected
value:
EQUALS, NOT_EQUALS, IN, NOT_IN, IN_LIST, NOT_IN_LIST, and the
numeric operators GREATER_THAN, LESS_THAN, GTE, and LTE. Paths contain one to five property
segments and must resolve to a scalar in the registered schema. Policy writes reject disabled,
stale, or mismatched schema bindings. Evaluation also fails closed if the proposal omits the fact or
carries a different revision or fingerprint.
Require review above a threshold
A policy decision that requires approval always creates a request in Alerts & Approvals. If no
custom workflow matches, one review from an organization Owner, Admin, or Manager is required, and
the initiator cannot approve their own held payment. A final approval automatically submits the
payment for Conto-managed wallets and links the chain receipt from the approval review. External
and smart-contract wallets retain their manual execution requirements. A final decision emits an
approval.approved or approval.denied webhook to your organization webhook for your own audit
trail (see Webhooks).Request a scoped policy change
An agent with an admin SDK key can request a specific policy change without editing the policy directly. UsePOST /api/sdk/policies/exceptions with the policies:exceptions scope, then use
GET /api/sdk/policies/exceptions to track it.
exceptionId, uppercase type, and uppercase status fields
for existing integrations. It also includes id, normalizedType, normalizedStatus, and
statusLabel for applications that want stable customer-facing values:
normalizedStatus is one of pending, in_review, resolved, or dismissed. List responses
include the same items under both exceptions and the additive requests alias. Customer-supplied
reason, priority, and validated details are returned. title and severity are stable values
derived from the request type and priority; operational alert copy and metadata are not part of this
API. Creating a request does not change a policy by itself; review it in Alerts & Approvals.
Limit transaction velocity
Set exactly one ofmaxCount or maxAmount. Supported periods are HOUR, DAY, WEEK, and
MONTH. HOUR and DAY use rolling one-hour and 24-hour history. Weekly and monthly counts use UTC
calendar periods; weekly and monthly amount limits use the matching cumulative spend counters.
maxAmount:
scope. The default WALLET counts all of the wallet’s
transactions in the window. RECIPIENT counts only transactions to the current recipient address,
which limits rapid repeated payments to one counterparty without counting unrelated activity:
Restrict by category
Relationship-scoped payee controls
Use relationship controls when two agents need different authority for the same counterparty. From the counterparty detail page, configure:
These controls are additive to global counterparty lifecycle gating, organization baselines, and
assigned wallet or agent policies. Moving a counterparty to
APPROVED or TRUSTED does not weaken
a relationship-level approval requirement.
For production agents, the first payment attempt to an unknown address creates a DISCOVERED
counterparty and relationship before evaluation. The payment is routed to review until an operator
advances the counterparty lifecycle. If Conto cannot persist that review record, the request fails
closed with COUNTERPARTY_REVIEW_UNAVAILABLE.
Review routing never overrides a hard denial. Spend limits, allowlists, sanctions rules, and other
deny controls must leave an eligible wallet before counterparty or relationship approval can apply.
Geographic Restrictions OFAC
UseGEOGRAPHIC_RESTRICTION with ISO country codes when a policy needs explicit country gates.
Sanctions screening can still block high-risk recipients even when no geographic rule is attached.
Contract Allowlist
targetContractAddress in the payment request so Conto can evaluate
the rule against the intended contract interaction.
If a rule uses protocol names or categories, register the organization’s known contract
classifications through the authenticated contract registry:
GET /api/contract-registrylists entries and supportscategory,limit, andoffsetPOST /api/contract-registrysaves an address with optionalchainId,label,protocolName, andprotocolCategoryGET,PATCH, orDELETE /api/contract-registry/{address}reads, updates, or removes one entry
x402 Protocol Rules
The dashboard exposes guidedX402_SPEND_LIMIT, X402_SERVICE_CONTROL, and
X402_ENDPOINT_CONTROL policy types. The API also accepts those policy types directly; use
COMPOSITE only when one policy deliberately mixes categories.
MPP Protocol Rules
The dashboard exposes guidedMPP_SPEND_LIMIT, MPP_SERVICE_CONTROL, MPP_ENDPOINT_CONTROL, and
MPP_SESSION_LIFECYCLE policy types. Session-lifecycle rules are evaluated only for session
intent, and expired sessions do not count toward concurrency.
Budget Allocations
UseBUDGET_CAP when a wallet or agent needs a bounded allowance for a period, project, or
category. Supported periods are DAILY, WEEKLY, MONTHLY, QUARTERLY, and YEARLY. Period
boundaries are calculated in UTC.
department, project, or category to the rule value to scope the cap. Conto compares only
transactions recorded with the same dimensions and includes pending, confirming, and confirmed
spend. The request must pass the matching scope through context.department and context.project;
category uses the payment category.
Expiration Policies
UseDATE_RANGE for temporary permissions and BLACKOUT_PERIOD for known no-spend windows.
Time Rules and Timezones
Set an IANAtimezone in policy-rule values when a schedule represents local operating hours.
TIME_WINDOW and recurring BLACKOUT_PERIOD values accept timezone alongside their existing
fields. DAY_OF_WEEK accepts an object containing days and timezone. When timezone is omitted,
these policy rules retain the legacy server-local behavior. Supplied values must be valid IANA
identifiers; invalid values are rejected on write, and invalid legacy values fail closed during
evaluation rather than falling back to server-local time.
Built-in screening
Conto can combine configurable policies with sanctions and trust checks. Use Trust Scoring for counterparty-aware controls and Trust & Risk Providers for provider setup.Related
Spend limits
Common amount and budget controls
Time windows
Business hours and blackout windows
Counterparties
Recipient allowlists, blocklists, and trust rules
Recipes
Copy-paste policy setup snippets