Answers · agent payments
A shopping agent wants to pay with our Visa card through Visa Intelligent Commerce. What limits can a purchase instruction and its mandates actually put on what the agent charges, what does Visa check on each purchase, and where are the gaps we still have to cover ourselves?
Last updated
TL;DR: In Visa Intelligent Commerce (VIC) the cardholder authenticates a purchase instruction, the agreed purchase intent between them and the agent, and each instruction carries up to 10 mandates. A mandate sets a decline threshold (an amount and currency), an end time, and optionally a preferred merchant name, merchant category and a weekly, monthly or yearly recurring frequency. Visa's developer docs say that before it returns a payment credential it checks that the purchase alone doesn't exceed the mandate's threshold, that the total of all transactions on the instruction (including earlier ones) doesn't exceed it, that the merchant name matches any preferred merchant set, and for recurring mandates that the frequency and end date fit. Each credential's cryptogram is single-use and lasts 72 hours, a card token can get at most 15 cryptograms in a rolling 24 hours, and instructions can't be edited: changing a budget means cancelling and creating a new instruction with fresh cardholder authentication. The gaps: the totals check is per instruction, not across every instruction an agent holds for you; merchant category isn't in the docs' list of checks Visa runs; and US instructions stay usable for 30 days by default unless you set a shorter end time.
What should I check, step by step?
1. Ask the agent or app which purchase type it uses. Visa's docs define three: human-in-the-loop (the cardholder authorizes the specific transaction), autonomous (the agent buys within a bounded one-time instruction) and autonomous recurring (within a standing instruction). Prefer human-in-the-loop for anything you haven't bought from that merchant before.
- Set each mandate's decline threshold to the most this one purchase plan should cost, in the card's currency, including tax and shipping. Visa sums every transaction on the instruction against it, so a second purchase under the same instruction eats into the same threshold.
- Set a preferred merchant name whenever you know the store. Visa's docs say it checks the transaction's merchant name against it; without one, the threshold is the only merchant-independent limit.
- Set the mandate's end time to the job's real deadline instead of relying on the default: Visa's docs give US instructions a default 30-day intent expiration (for recurring instructions, the mandate's end time sets the window).
- For subscriptions, use a recurring mandate with the right weekly, monthly or yearly frequency and an end date. Visa allows yearly recurrence for at most 5 years; pick a shorter date and renew it on purpose.
- Don't rely on the merchant category field as a block. It exists on the mandate, but the docs' list of checks Visa runs doesn't include it; ask your Visa integration contact before treating it as enforced.
- Keep your own running total across instructions. The docs describe the totals check per instruction, and an agent can hold several instructions, so a monthly budget for everything an agent buys has to live in the agent app or your own records.
- When a plan changes, cancel the old instruction rather than leaving it active alongside the new one. Visa has no endpoint to modify an instruction or mandate, so changes always mean cancel and recreate.
- Keep the purchase instruction, mandate and the agent's order details with each charge. Visa's docs say instructions are required to evidence what was authorized if there's a dispute.
What is a Visa Intelligent Commerce purchase instruction and mandate?
Visa's VIC concepts page describes four building blocks. A token is the tokenized form of the card, and must exist first. A purchase instruction is the agreed purchase intent between the cardholder and the agent: the cardholder authorizes the agent to create it and signs that authorization with their authentication data. A mandate holds the cardholder's spending parameters inside one instruction. A credential is the network token, cryptogram and ECI that Visa returns for one purchase.
- The instruction API's mandate fields are a mandate ID assigned by the agent app (never reused), a decline threshold amount and ISO 4217 currency, an end time (effectiveUntilTime), and optionally a merchant category or category code, a preferred merchant name and a recurring frequency. The instruction can also carry an optional consumerPrompt, a recap of the prompts that led to the purchase.
- Cardholder authentication is recorded as assurance data and can be FIDO2 biometric or device-based, app-based, a one-time passcode, or a Visa Token Service step-up. VIC checks it's valid before it returns any credential. The docs also require agent-side verification of the cardholder through Visa Payment Passkeys or another approved method for every purchase type.
What does Visa check before an AI agent gets a payment credential under a mandate?
Each credential request names exactly one instruction and one mandate. Per the docs' controls list, Visa validates the request against that mandate's decline threshold in two ways: the transaction amount alone must not exceed it, and the sum of all transactions on the instruction, including earlier ones, must not exceed it. If the mandate has a preferred merchant name, the transaction's merchant name must match. For a recurring mandate, each retrieval must fit the stated frequency and end date.
- Further limits apply around that. Cryptograms are single-use with a 72-hour lifespan, and if a purchase fails, a fresh credential can be requested once Visa has been told through the confirmation API. A token can have at most 15 cryptograms retrieved in a rolling 24-hour window. Every transaction reference on an instruction must be unique. Restricted merchant category codes, listed in Visa's implementation guide, are declined automatically.
- Agents that are Trusted Agent Providers or wallet providers must sign every credential request afresh, and Visa checks the signature against its Visa Agent Registry Service, which gives a per-purchase record of which registered agent asked. Open-source agents use a fixed agent ID and don't sign.
What doesn't a Visa Intelligent Commerce mandate limit for an AI agent?
The threshold is per instruction. The docs don't describe a cap across all of one cardholder's instructions, and an agent can create several (up to 10 mandates each, up to 50 tokens per consumer), so a weekly or monthly ceiling on everything an agent buys isn't something a single mandate gives you.
- Merchant matching is by the merchant name you set as preferred. Merchant category and category code are fields on the mandate, but the controls list on the concepts page doesn't say Visa checks them, so treat them as information unless Visa confirms otherwise.
- Time limits are generous by default. US instructions have a default 30-day intent expiration, and the assurance data stays valid for the same window, so an autonomous instruction you forget about can still be drawn against for weeks unless its end time is shorter or you cancel it.
- Revocation is silent. Visa's docs say an issuer or the Visa Token Service can revoke a card token without changing the instruction's status or sending any notification; the first sign is usually a failed credential request. An agent app should treat an unexpected UNAUTHENTICATED or NOT_FOUND on a token that used to work as a possible revocation, not a glitch to retry.
- In the US, merchants that support 3-D Secure get a "Program Not Supported" response for agentic transactions, so don't expect a bank step-up challenge to catch a bad agent purchase there.
How do I ask Rightshold about this (free, no key)?
Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Before my shopping agent asks Visa for a credential under purchase instruction INS-123, check the $84.50 purchase at shop.example.com against its spending policy for today and record the decision with the instruction reference, so purchases across all its instructions stay inside one daily budget.”
{
"tool": "authorize_spend",
"arguments": {
"credential_id": "YOUR_AGENT_CREDENTIAL_ID",
"amount_minor": 8450,
"currency": "USD",
"merchant_domain": "shop.example.com",
"category": "retail",
"reference": "visa-instruction-INS-123"
}
}- Needs a key for your account. It checks the amount against the policy set with set_spend_policy (owner account key only): currency, per-transaction cap, UTC-day cap, allowed merchant domains and categories, expiry. It returns a signed allow or deny with reasons such as over_daily_cap or merchant_not_allowed, recorded on Rightshold's ledger.
- Its daily total counts every authorization recorded for that agent credential, whichever Visa instruction the purchase falls under, which is the cross-instruction total a single mandate doesn't give you. It has no weekly or monthly cap; keep those in the agent app.
- It doesn't create or read Visa purchase instructions or mandates, hold card details or stop Visa releasing a credential. It only sees purchases the agent checks with it first, so keep the mandate's threshold and end time as the hard limits behind it.
Rightshold records spending decisions your agent asks it for. It never holds or moves money, isn't a payment network, wallet or processor and isn't affiliated with Visa. The VIC behavior described here comes from Visa's developer documentation (VIC concepts page and Initiate Purchase Instruction API reference) as read on November 11, 2026; programs, limits and regional rules may change and access is through Visa's onboarding. Not financial advice.
What are the sources?
- Visa Developer: Visa Intelligent Commerce concepts (lifecycle, controls and rules)
- Visa Developer: Initiate Purchase Instruction API (mandate fields)
- Visa: Visa Opens the Door to AI-Driven Shopping for Businesses Worldwide (Intelligent Commerce Connect, April 8, 2026)
- Visa Perspectives: How AI agents are changing how we shop and pay
Related
- How do Mastercard token spend controls cap what an AI agent can charge on an Agent Pay token?
- How do Stripe shared payment tokens limit what a seller can charge for an AI agent purchase?
- How do AP2 open payment mandates cap what an AI agent spends when you're not there?
- Can you dispute a purchase your AI agent made with your card?
Not legal advice. JSON · Markdown · All answers
Get a free API key in one call
No card and no email needed. 100 free credits; the license and policy checks stay free without a key.
curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_... # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
-H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'
