{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-cards/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Cards","description":"Start today using our public API to power your next project."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"cards"},"children":["Cards"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Issue virtual cards with spend controls, track their transactions, and get notified in real time."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["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."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Start in the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/demo"},"children":["Playground"]}," to watch the API calls fire as you click, or jump to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/quickstart"},"children":["Quickstart"]}," to issue your first card from your terminal."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"what-you-can-do"},"children":["What you can do"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Capability"},"children":["Capability"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"How"},"children":["How"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Where to read"},"children":["Where to read"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Issue a virtual card"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/cards"]}," — returns the full card details in the response"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/card-management/issuing-cards"},"children":["Issuing cards"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Constrain spending"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["restrictions"]}," on create/update: spend limit, active window, transaction count, merchant categories"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/card-management/spend-controls"},"children":["Spend controls & MCC"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Update or retire a card"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH /v1/cards/{id}"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["DELETE /v1/cards/{id}"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/card-management/managing-cards"},"children":["Updating & deleting"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Tie cards to bookings"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Card ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metadata"]}," plus ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PATCH /v1/travel/cards/{id}/booking"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/card-management/travel-cards"},"children":["Travel cards"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Reconcile transactions"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/cards/transactions"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source: cards"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source: travel"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/transactions/reconciliation"},"children":["Reconciliation"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["React in real time"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":["Webhooks for auth approved/declined, settled, failed"]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/platform-tools/webhooks"},"children":["Webhooks"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-card-model"},"children":["The card model"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A card is created in one synchronous call and is immediately usable within its restrictions. There is no asynchronous provisioning step:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"POST /v1/cards ──► card usable (within restrictions) ──► DELETE /v1/cards/{id}\n                      │\n                      ├── activeDateRangeUTC bounds when it can transact\n                      ├── spendLimit caps total spend\n                      ├── maxTransactionCount caps usage (1–10)\n                      └── merchantCategory allows/blocks MCC groups\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The create response carries the full card number, holder name, expiry, and CVV (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["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 ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/cards/{id}"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"authentication"},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every call uses ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth 2.0 client credentials"]}," over ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mTLS"]}," — your client certificate is required on every request (curl examples omit the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--cert"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--key"]}," flags for brevity). Request credentials for sandbox and production from the Jeeves support team. Card operations use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cards:read"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cards:write"]}," scopes; transaction reads use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactions:read"]}," (and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactions:multiple:read"]}," to read across multiple companies under the same parent)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All examples in this section use the sandbox base URL:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"https://public-sandbox.tryjeeves.com\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"localization"},"children":["Localization"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every endpoint accepts an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Accept-Language"]}," header (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["en-US"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["es-MX"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pt-BR"]},") that localizes response messages."]}]},"headings":[{"value":"Cards","id":"cards","depth":1},{"value":"What you can do","id":"what-you-can-do","depth":2},{"value":"The card model","id":"the-card-model","depth":2},{"value":"Authentication","id":"authentication","depth":2},{"value":"Localization","id":"localization","depth":2}],"frontmatter":{"seo":{"title":"Cards"}},"lastModified":"2026-10-28T18:10:31.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/cards","userData":{"isAuthenticated":false,"teams":["anonymous"]}}