AgentCard
AgentCard is FluxA's prepaid virtual card service for AI agents. Your agent gets a USD-denominated virtual card it can use at online checkouts. The card is funded with USDC from the user's FluxA Wallet. Cards are reusable and rechargeable, and any unused balance can be withdrawn back to the wallet.
- Prepaid: the card spends only what has been loaded onto it. There is no credit line.
- Funded from the wallet: each issuance and recharge is paid in USDC from the user's FluxA Wallet, inside a mandate (a budget the user approved in advance).
- Reusable and rechargeable: one card can be used for many purchases and topped up again later.
- Withdrawable: unused balance can be sent back to the agent's linked FluxA Wallet.
Availability
AgentCard is rolled out gradually. If it is enabled on your account, the card products you can apply for appear in GET /api/v2/card-types. Some products require the account owner to complete identity verification first, and some require separate approval in FluxA Wallet. The catalog tells you which, product by product.
How it works
1. Authenticate POST /api/v2/auth/challenge → Agent VC → Authorization: Bearer <VC>
2. Pick a product GET /api/v2/card-types
3. Cardholder (if GET /api/v2/cardholders/get → create / verify identity if required
required)
4. Issue POST /api/v2/cards/initiate → sign x402 payment with a mandate
POST /api/v2/cards/complete
5. Use GET /api/v2/cards/{cardId}/balance · POST /details · GET /3ds/latest
6. Recharge POST /api/v2/cards/{cardId}/recharge/initiate → /recharge/complete
7. Withdraw POST /api/v2/cards/{cardId}/withdrawTwo ways to call it
CLI (recommended for agents)
The fluxa-wallet CLI handles authentication, payment signing and polling for you:
fluxa-wallet card types
fluxa-wallet card holder me
fluxa-wallet card create --card-type-id <cardTypeId> --amount 25.00 --mandate <mandate_id>
fluxa-wallet card list
fluxa-wallet card balance --id card_xxx
fluxa-wallet card details --id card_xxxEach page in this section shows the matching CLI command next to the HTTP endpoint.
HTTP
Base URL:
https://agentcard.fluxapay.xyz/api/v2- All request and response bodies are JSON.
- Every endpoint except
POST /auth/challengerequiresAuthorization: Bearer <agent-vc>. See Authentication. - Amounts are USD decimal strings with up to two decimal places, e.g.
"10.00". - IDs are opaque strings (
card_…,ct_…,wdr_…). Always use the values the API returns. - A machine-readable contract is served at
GET /api/v2/openapi.json, and plain-text agent instructions atGET /api/v2/llms.txt.
Prerequisites
- A FluxA Agent ID that is linked to the user's FluxA Wallet. See Agent registration. Unlinked agents get
403 agent_not_linked. - A signed mandate that covers the issuance or recharge amount plus fees. See Mandates.
- For products that require it, an approved cardholder profile. See Cardholder.
Security
- Card details (full card number, CVV, expiry) are returned only by
POST /cards/{cardId}/details. Request them only when you are about to pay, and never write them to logs, prompts, or analytics. - Never put tokens or card details in query strings.
- 3DS codes are one-time secrets. Treat them the same way as card details.
Reference
| Page | Endpoints |
|---|---|
| Authentication | POST /auth/challenge |
| Card types | GET /card-types |
| Cardholder | POST /cardholders/create, POST /cardholders/update, GET /cardholders/get |
| Cards | POST /cards/initiate, GET /cards/requests/{id}, POST /cards/complete, GET /cards, GET /cards/{cardId}, GET /cards/{cardId}/balance, POST /cards/{cardId}/details |
| Recharge | POST /cards/{cardId}/recharge/initiate, POST /cards/{cardId}/recharge/complete |
| Withdraw | POST /cards/{cardId}/withdraw, GET /cards/{cardId}/withdrawals, GET /cards/{cardId}/withdrawals/{withdrawalId} |
| Transactions | GET /cards/{cardId}/transactions |
| 3DS | GET /cards/{cardId}/3ds/latest, GET /cards/{cardId}/3ds, GET /3ds, GET /3ds/unread-count |
| Errors | Error format and codes |
