null) wallet or relationship limit means no cap. A limit of 0 blocks every payment. A
positive value is the cap.
Policy scope
Every policy has one explicit scope:- Organization: a mandatory baseline applied automatically to every payment in the organization.
- Assigned: applies only through an explicit agent, wallet, or card assignment. An unassigned policy is a draft control and is not enforced.
scope and whether it reaches the payment through the
organization, agent, wallet, or card.
Daily, weekly, and monthly limits at organization or agent scope use the agent’s combined wallet
and live-card spend. See how spend limits count for
concurrent reservations, wallet-only and card-only limits, and test cards.
Evaluation order
- Pre-checks: the agent must be ACTIVE with linked wallets
DEVandSTAGINGagents can use only known testnet wallets. Mainnet and unclassified chains are denied.
- Geographic and sanctions: address sanctions screening on every payment, plus an OFAC country check when the request includes
context.recipientCountry(no policy needed) - Counterparty trust: pre-fetch trust level and network trust score for use in policy rules
- Wallet policies: spend limits, wallet-level time windows (timezone-aware), and other configured policy rules
- Identity allow rules evaluate environment, risk tier, owner role, tags, and attestation mode. Missing identity context denies the payment.
- Counterparty rules: block list, trust requirements, network intelligence
- Relationship controls: per-agent payee limits, category allowlists, approval requirements, and temporary access expiry
- Final decision: any denial denies. Otherwise a rule or workflow that requires approval holds the payment. Otherwise it is approved. See outcomes.
Address sanctions screening is active by default and uses maintained compliance data. A sanctions
match can deny a payment even when every configured policy would otherwise allow it.
Counterparty lifecycle and agent controls
Counterparty lifecycle state and per-agent relationship controls are evaluated independently:- A counterparty can move through
DISCOVERED,PENDING_REVIEW,APPROVED,TRUSTED,MONITORED,QUARANTINED, andBLOCKED. PENDING_REVIEW,MONITORED, andQUARANTINEDroute payments to approval.DISCOVEREDroutes a production agent’s payments to approval. Development and staging agents, which can only use testnet wallets, are not held for payee discovery.BLOCKEDdenies the payment.- Each agent-to-counterparty relationship can add stricter per-payment, daily, and monthly limits, require approval, restrict categories, or expire at a specific time.
Evaluation semantics
Policy rules use AND logic. Each active policy that applies is evaluated once, and every rule in it must pass unless it is aDENY or REQUIRE_APPROVAL trigger that does not match.
When the request leaves out a field
Many rules read a field from the payment request, such ascategory, context.recipientCountry,
targetContractAddress, or the x402 or MPP service.
- If the request does not include a field a rule checks, the payment is denied, whatever the rule’s action. The reason names the missing field.
- Exceptions: a
DENYorREQUIRE_APPROVALrule oncontext.recipientCountry, on the Fairscale score, or ontargetContractAddressdoes not apply when the field is missing. Plain transfers never carry a contract, and address sanctions screening still runs on every payment.ALLOWversions of these rules still deny. - A card payment is checked only against rules that apply to cards. A rule written for wallet, x402, or MPP payments, such as a trust rule or an x402 price ceiling, is skipped on a card payment whatever its action.
- On wallet, x402, and MPP payments, a
DENYorREQUIRE_APPROVALrule written for another payment type is skipped, and anALLOWrule still denies them. For example, anALLOWcard store rule denies the agent’s wallet payments, because they carry no store domain. To limit one payment type without blocking the others, useNOT_IN_LISTwithDENY.
ALLOW list.
Checkout purchases
A checkout checkpoint is evaluated against the agent’s policies at begin and again at confirm. It needs no linked wallet.- The merchant is the checkout domain. Counterparty rules see the registrable domain of the
checkout URL as the recipient. Case and a leading
www.do not matter, sohttps://WWW.Example.com/cartis the merchantexample.com. - Counterparty lists use that domain. Allow and block lists, payee status, and relationship
controls match the checkout host and each parent domain up to the registrable domain. An entry
for
example.comcoversshop.example.com. Write entries as domains. - Velocity rules count checkout purchases.
VELOCITY_LIMITcounts a purchase with the agent’s other payments while its spend is held and after it is paid. Cancelled, rejected, expired, and not-paid purchases stop counting. WithRECIPIENTscope, the rule counts purchases at the same merchant. - Period limits include checkout spend. Daily, weekly, and monthly limits at organization or agent scope count checkout spend together with wallet and card spend.
- Budgets and relationship limits count checkout purchases.
BUDGET_CAPrules and relationship daily and monthly limits count a purchase while its spend is held and after it is paid, as velocity rules do. A relationship withexample.comalso counts purchases onshop.example.com.
example.com covers a checkout
at shop.example.com.
Wallet balance and custody
Evaluation checks the wallet balance only for wallets Conto custodies. For those, the recorded balance is a ledger Conto maintains as it executes each payment, so a payment that would overdraw the wallet is denied withINSUFFICIENT_BALANCE.
External wallets are not checked this way on the external-wallet approval flow
(POST /api/sdk/payments/approve). Conto does not hold the keys and never sees the transfers the agent
signs, so the balance it records is a point-in-time reading rather than a running total.
Enforcing it would block funded wallets while still clearing drained ones. Spend limits, policy
rules, counterparty controls, budgets, and approval workflows apply to external wallets exactly as
they do to custodied ones, and an underfunded transfer reverts onchain rather than settling.
For a hands-on walkthrough, test allow, review, and deny.