Cards
Issue virtual cards with spend controls, track their transactions, and get notified in real time.
The Jeeves Card API lets you create credit cards programmatically, constrain exactly where and how much they can spend, and reconcile every transaction back to your ledger. It powers use cases from single-use travel VCNs to standing procurement cards.
Start in the Playground to watch the API calls fire as you click, or jump to the Quickstart to issue your first card from your terminal.
What you can do
| Capability | How | Where to read |
|---|---|---|
| Issue a virtual card | POST /v1/cards — returns the full card details in the response | Issuing cards |
| Constrain spending | restrictions on create/update: spend limit, active window, transaction count, merchant categories | Spend controls & MCC |
| Update or retire a card | PATCH /v1/cards/{id}, DELETE /v1/cards/{id} | Updating & deleting |
| Tie cards to bookings | Card metadata plus PATCH /v1/travel/cards/{id}/booking | Travel cards |
| Reconcile transactions | POST /v1/cards/transactions with source: cards or source: travel | Reconciliation |
| React in real time | Webhooks for auth approved/declined, settled, failed | Webhooks |
The card model
A card is created in one synchronous call and is immediately usable within its restrictions. There is no asynchronous provisioning step:
POST /v1/cards ──► card usable (within restrictions) ──► DELETE /v1/cards/{id}
│
├── activeDateRangeUTC bounds when it can transact
├── spendLimit caps total spend
├── maxTransactionCount caps usage (1–10)
└── merchantCategory allows/blocks MCC groupsThe create response carries the full card number, holder name, expiry, and CVV (details). Treat it as sensitive: pass it to your payment step or display flow and do not log it. You can fetch it again at any time with GET /v1/cards/{id}.
Authentication
Every call uses OAuth 2.0 client credentials over mTLS — your client certificate is required on every request (curl examples omit the --cert/--key flags for brevity). Request credentials for sandbox and production from the Jeeves support team. Card operations use the cards:read and cards:write scopes; transaction reads use transactions:read (and transactions:multiple:read to read across multiple companies under the same parent).
All examples in this section use the sandbox base URL:
https://public-sandbox.tryjeeves.comLocalization
Every endpoint accepts an Accept-Language header (en-US, es-MX, pt-BR) that localizes response messages.