Skip to main content
POST
/
api
/
v1
/
cards
curl -X POST https://api.agentcard.sh/api/v1/cards \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"amountCents": 1000, "cardholderId": "ch_abc123"}'
{
  "id": "cm3abc123",
  "cardholderId": "ch_abc123",
  "last4": "4242",
  "expiry": "03/28",
  "spendLimitCents": 1000,
  "balanceCents": 1000,
  "status": "OPEN",
  "createdAt": "2026-03-10T12:00:00.000Z"
}
Creates a new virtual Visa card. The card’s spend limit is held on the cardholder’s payment method via a PaymentIntent authorization (not captured until the card is used). The cardholder must have a payment method attached before you can create cards.

Request body

amountCents
integer
required
The card’s spend limit in cents. Must be a positive integer, maximum 50,000 ($500.00).
cardholderId
string
required
The cardholder ID. The card is associated with this cardholder and the spend limit is held on their payment method.

Response

id
string
Unique card identifier.
cardholderId
string
The cardholder this card belongs to.
last4
string
Last 4 digits of the card number.
expiry
string
Card expiration date in MM/YY format.
spendLimitCents
integer
The card’s total spend limit in cents.
balanceCents
integer
Remaining balance in cents (equals spendLimitCents at creation).
status
string
Card status. Always OPEN on creation.
createdAt
string
ISO 8601 creation timestamp.
curl -X POST https://api.agentcard.sh/api/v1/cards \
  -H "Authorization: Bearer sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{"amountCents": 1000, "cardholderId": "ch_abc123"}'
{
  "id": "cm3abc123",
  "cardholderId": "ch_abc123",
  "last4": "4242",
  "expiry": "03/28",
  "spendLimitCents": 1000,
  "balanceCents": 1000,
  "status": "OPEN",
  "createdAt": "2026-03-10T12:00:00.000Z"
}