Cards API
Create and manage the cards of your program. See Cards concepts for statuses and lifecycle.
This page is part of the reference of the first version of the Web3Card API, kept here for reference. API v1 does not take new integrations: API v2 replaces it, and the platform today works as described in the rest of this manual.
POST /cards
Create a virtual card for a user with an active vault.
// Request
{ "userId": "usr_9f4c", "type": "virtual" }
// Response
{
"id": "card_3b7c",
"userId": "usr_9f4c",
"vaultId": "vlt_77aa",
"type": "virtual",
"status": "active",
"last4": "1234",
"network": "visa",
"createdAt": "2026-07-19T14:00:00Z"
}
GET /cards
List cards. Filters: userId, status, type.
GET /cards/{id}
Retrieve a card and its current status.
POST /cards/{id}/activate
Activate a delivered physical card.
// Request
{ "last4": "5678" }
POST /cards/{id}/freeze
Temporarily block authorizations. Reversible.
POST /cards/{id}/unfreeze
Lift a freeze and return the card to active.
POST /cards/{id}/report-lost
Permanently block a card reported lost. Terminal.
POST /cards/{id}/report-stolen
Permanently block a card reported stolen. Terminal.
POST /cards/{id}/void
Cancel a virtual card. Terminal. The vault and its balance are unaffected.
GET /cards/{id}/limits
// Response
{ "daily": { "amount": "1000.00", "currency": "USDC", "spentToday": "112.40" } }
PUT /cards/{id}/limits
Set the daily limit. Requires a user session (vault-owner signed).
// Request
{ "daily": { "amount": "2500.00" } }
POST /cards/{id}/secure-session
Create a single-use secure element session to display full card credentials to the cardholder. See Create Virtual Cards.