/cardsIssue a new virtual card
Issues a card on the BIN you pick and loads it from your balance in the same call.
Request Body
bin_idstringrequired- BIN identifier (e.g. 491653). Use GET /bins to list available BINs.
amountnumberrequired- Initial load in USD, taken from your balance. Minimum $50; the $1 issuance fee is charged on top.
labelstringoptional- Custom label for the card (max 64 chars)
spending_limitnumberoptional- Monthly spending limit in USD. Defaults to BIN maximum.
allowed_categoriesstring[]optional- Merchant categories the card may be used for, such as advertising or software. Anything else is declined.
auto_freeze_atnumberoptional- Auto-freeze when balance drops below this amount
metadataobjectoptional- Key-value pairs for your internal tracking (max 20 keys)
curl -X POST https://usdtcryptocard.com/api/v1/cards \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"bin_id": "491653",
"amount": 500,
"label": "Meta Ads — Campaign 12",
"spending_limit": 2000,
"allowed_categories": [
"advertising"
],
"metadata": {
"campaign": "fall_2026"
}
}'{
"id": "card_8xK2m9Lp4q",
"bin_id": "491653",
"network": "visa",
"last4": "2039",
"status": "active",
"balance": 500,
"spending_limit": 2000,
"label": "Meta Ads — Campaign 12",
"allowed_categories": [
"advertising"
],
"auto_freeze_at": null,
"metadata": {
"campaign": "fall_2026"
},
"created_at": "2026-09-30T12:00:00Z",
"expires_at": "2030-10-31"
}