Skip to main content

Cards API

Create and manage the cards of your program. See Cards concepts for statuses and lifecycle.

API v1 · Legacy

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.