Documentation Index
Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
Use this file to discover all available pages before exploring further.
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 For the full list of supported spending rule types and their fields, see the Create Order Intent API Reference.What to persist
POST request to /api/unstable/order-intents with the agent, the card to charge, and one or more spending rules.| Data | When |
|---|---|
orderIntentId | Always — every later operation keys off of it. |
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.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.

