Prerequisites
- Verified order intent — follow Create an Agent Card and wait for a rail with
status: "active". - Crossmint API key — a client-side key with
order-intents.readandorder-intents.credentialsscopes. In staging, all scopes are included by default. - User JWT — use the JWT for the user who owns the order intent.
Mint a Credential
Find the rail you want to use and confirm that it is active and supports card credentials. Other rails can remain pending. Send the selected rail’srail and provider values back in the request.
This example continues from the merchant-scoped order intent created in the previous guide, so the credential request does not repeat the merchant:
Open Order Intents
IforderIntent.merchant is absent, include a merchant in every credential request:
List Order Intents
List every order intent owned by the authenticated user:GET /api/unstable/order-intents/{orderIntentId} when you only need to refresh one order intent.
Common Gotchas
The request amount must fit the available balance
The request amount must fit the available balance
Use the same currency as the order intent and keep the requested value at or below
amount.available.Creating a credential spends allowance capacity
Creating a credential spends allowance capacity
Do not retry a credential request blindly. Each successful mint is a new credential and consumes the requested amount.
A pending rail cannot mint credentials
A pending rail cannot mint credentials
Complete allowance verification for the rail you selected and fetch the order intent again before minting. You do not need to verify unrelated rails.
Open order intents require a merchant
Open order intents require a merchant
If the order intent was created without
merchant, include one in every credential request. If the merchant was set at creation, omit it when minting.Next Steps
Cancel Card Access
Cancel an order intent or delete a saved card
Cards Quickstart
Run the complete flow in the reference app

