Introduction
A card permission is created as an order intent — a request granting an agent scoped access to a card, defined by one or more spending rules (amount, description, frequency, and more). The user authorizes the intent with their passkey, after which the permission becomesactive and secure card numbers can be retrieved by the agent.
Prerequisites
- A saved card that has been verified for agentic payments. See Save a Card and Verify a Card if you have not done this yet.
- The
agentIdfrom Register an Agent. - The
paymentMethodIdof the verified card. - An authenticated user with a JWT.
Eligible CardsYou can currently use card permissions with Mastercard and eligible U.S.-issued Visa credit and debit cards.Not supported for Visa: non-US cards, business cards, prepaid cards, Chase cards, Fidelity cards.For AMEX and Ramp cards, contact us.
Steps
Create the order intent
Send a A card permission has two time controls. The mandate
POST request to /api/unstable/order-intents with the agent, the card to charge, and one or more spending rules.period (weekly, monthly, yearly) determines how often the spending limit resets. The expiresAt field determines when the permission itself stops working — after this date, the agent can no longer use it regardless of remaining balance. If expiresAt is not provided, it defaults to seven days from creation. Set expiresAt to a date that matches your use case — for example, a monthly spending limit typically needs an expiry at least one month in the future.For the full list of supported spending rule types and their fields, see the Create Order Intent API Reference.What to persist| Data | When |
|---|---|
orderIntentId | Always — every later operation keys off of it. |
expiresAt | Always — track the expiry so you can create a new order intent before the permission lapses. |
Merchant descriptor (name, url, countryCode) | When the card will charge the same merchant repeatedly. You pass it on every credential fetch, so saving it once avoids re-collecting it. |
| Card credentials | Never — short-lived and merchant-scoped. Fetch fresh on each purchase. |
Authorize the intent via passkey
If the order intent’s This step is passkey-only. The user does not receive an email code — the one-time email verification was completed during enrollment, and the device is already bound.After
phase is requires-verification, the user must authorize the spending with their passkey. Use the OrderIntentVerification component:onVerificationComplete fires, the order intent’s phase changes to active and the permission is ready — secure card numbers can now be retrieved.requires-verification → active → expired. For the full phase semantics, see the Get Order Intent API Reference.
Example Response
Example Response
Common Gotchas
Card permission requires a verified card
Card permission requires a verified card
If the
paymentMethodId has not been verified for agentic use, the order intent creation call will fail. Confirm status: "active" on the verification before creating an order intent.Permission expires after seven days by default
Permission expires after seven days by default
If you do not pass
expiresAt when creating the order intent, the permission defaults to seven days from creation. This applies regardless of the mandate period (weekly, monthly, or yearly). Always set expiresAt explicitly when the permission should remain valid beyond seven days.Each new order intent needs a fresh passkey tap
Each new order intent needs a fresh passkey tap
Unless the response returns
phase: "active" immediately, do not reuse a previous verification — each order intent has its own authorization.Treat `onVerificationError` distinctly from `onVerificationComplete`
Treat `onVerificationError` distinctly from `onVerificationComplete`
A denied or failed verification leaves the order intent in
requires-verification. Do not attempt to fetch credentials until the phase is active.Next Steps
Retrieve Secure Card Numbers
Fetch a secure one-time card number, expiration, and CVC to complete a purchase.
Remove Cards
Remove saved cards, delete agents, or rotate a card permission.

