{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-cards/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Quickstart","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":"quickstart"},"children":["Quickstart"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Issue your first card and pull its transactions, end to end."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Four calls: get a token, create a card, read it back, and query transactions. You need your sandbox OAuth client credentials and mTLS certificate — request both from Jeeves support if you don't have them yet."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"1.-get-an-access-token"},"children":["1. Get an access token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Exchange your client credentials for a bearer token using the OAuth 2.0 client-credentials flow (token endpoint provided with your credentials):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"$JEEVES_TOKEN_URL\" \\\n  --cert client.crt --key client.key \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d 'grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Export the returned token as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["JEEVES_ACCESS_TOKEN"]}," for the rest of this guide."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"2.-create-a-card"},"children":["2. Create a card"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \\\n  'https://public-sandbox.tryjeeves.com/v1/cards' \\\n  -H \"Authorization: Bearer $JEEVES_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"name\": \"My First Card\",\n    \"restrictions\": {\n      \"spendLimit\": 1000\n    }\n  }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["name"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["restrictions.spendLimit"]}," are required. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["201"]}," response is the complete card, including the sensitive ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details"]}," object:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"name\": \"My First Card\",\n  \"restrictions\": { \"spendLimit\": 1000 },\n  \"details\": {\n    \"cardNumber\": \"1234567890123456\",\n    \"cardHolder\": \"John Doe\",\n    \"expiryDate\": \"12/27\",\n    \"cvvCode\": \"123\"\n  },\n  \"createdAt\": \"2026-09-29 10:35:00\",\n  \"updatedAt\": \"2026-09-29 10:35:00\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"3.-read-it-back"},"children":["3. Read it back"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl 'https://public-sandbox.tryjeeves.com/v1/cards/123e4567-e89b-12d3-a456-426614174000' \\\n  -H \"Authorization: Bearer $JEEVES_ACCESS_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Note the single-card GET includes the sensitive ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details"]}," object (per the API schema) — treat each retrieval as a PAN reveal. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /v1/cards"]}," (with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pageSize"]},") lists your whole fleet without ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"4.-pull-transactions"},"children":["4. Pull transactions"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \\\n  'https://public-sandbox.tryjeeves.com/v1/cards/transactions' \\\n  -H \"Authorization: Bearer $JEEVES_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"source\": \"cards\", \"cardIds\": [\"123e4567-e89b-12d3-a456-426614174000\"] }'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["With ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["cardIds"]}," set, you get the card's full history; without it, the window defaults to yesterday. See ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/transactions/reconciliation"},"children":["Reconciliation"]}," for the pagination model."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"where-to-next"},"children":["Where to next"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Add ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/card-management/spend-controls"},"children":["spend controls"]}," — limits, windows, merchant categories."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Subscribe to ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/platform-tools/webhooks"},"children":["webhooks"]}," so settlements push to you."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Or play with all of it interactively in the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/cards/demo"},"children":["Playground"]},"."]}]}]},"headings":[{"value":"Quickstart","id":"quickstart","depth":1},{"value":"1. Get an access token","id":"1.-get-an-access-token","depth":2},{"value":"2. Create a card","id":"2.-create-a-card","depth":2},{"value":"3. Read it back","id":"3.-read-it-back","depth":2},{"value":"4. Pull transactions","id":"4.-pull-transactions","depth":2},{"value":"Where to next","id":"where-to-next","depth":2}],"frontmatter":{"seo":{"title":"Quickstart"}},"lastModified":"2026-10-28T18:10:31.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/cards/quickstart","userData":{"isAuthenticated":false,"teams":["anonymous"]}}