Jeeves Public API (1.0.0)

Introduction

The Jeeves API is built around REST principles. Our API accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes.

Looking for money movement? Quotes, payments, beneficiaries, and funding accounts live in the separate Payments API reference (guides: Payments). This reference covers cards, boletos, transactions, travel, and webhook subscriptions.

Authentication

The Jeeves API uses mTLS and OAuth 2.0 to authenticate requests. You can request your mTLS certificate and OAuth 2.0 credentials in both sandbox and production environments by reaching out to our support team.

All API requests will only work over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Errors

The Jeeves API uses standard HTTP response codes to indicate the success or failure of an API request. In general: codes in the 2XX range indicate success; codes in the 4XX range indicate an error in the information provided; codes in the 5XX range indicate an internal error with Jeeves application/server.

Currently, the Jeeves API has the following HTTP responses:

CodeResponseDescription
200OkObject was returned as expected.
201OkObject was created as expected.
202AcceptedRequest was accepted and will be processed asynchronously.
204OkNo return, but request was processed as expected.
400Bad requestAt least one argument is wrong or missing.
401UnauthorizedNo valid API token provided.
403ForbiddenThe API token doesn't have permission to perform the request.
404Not foundThe requested resource doesn't exist.
409ConflictThe request conflicts with an operation already in progress — retry once it completes. In the Payments API, also returned when an Idempotency-Key is reused with a different body.
422Unprocessable entityThe request is well-formed but the resource's current state rejects it — in the Payments API, an expired quote, a corridor validation failure, or insufficient funds.
429Rate limitedToo many requests — honor Retry-After (Payments API).
500Server errorAn internal error at Jeeves.

In this reference, 409 and 422 are returned by the boleto discount and rebate endpoints; 429 is returned today only by the Payments API — full semantics in Errors & rate limits.

Download OpenAPI description
Languages
Servers
https://public-sandbox.tryjeeves.com/
https://public-api.jeev.es/

Boletos

The Boleto API supports the full boleto lifecycle, enabling clients to create, retrieve, extend, and cancel boletos, and to configure early-payment discounts and reduce the amount owed (abatimento), via secure integration. It also supports Bolepix, which adds a Pix QR code to the boleto for instant settlement through Pix rails. For boletos paid via barcode or digitable line, the API provides an early payment notice before final settlement - offering visibility of the payment up to one day in advance, with guaranteed settlement. For boletos paid via Pix (via Bolepix), the boleto is marked as paid directly, as settlement is immediate.

Operations

Pix Charges

The Pix Charges API lets clients create dynamic Pix charges: a single-use Pix QR code that the payer can scan or paste into their banking app. Each charge carries pixCopyPaste (the copy-and-paste payload) and qrCodeImage (a base64-encoded JPEG of the QR code).

Charges are not pushed to you: poll GET /v1/pix-charges/{id} to follow a charge until it reaches a final status.

A charge has one of these statuses:

StatusMeaning
activeThe charge can be paid. Only active charges can be canceled.
under_reviewThe charge is under review.
paidThe charge was paid. paymentDetails is present. Final status.
canceledThe charge was canceled with POST /v1/pix-charges/{id}/cancel. Final status.
expiredThe charge was not paid before payableUntil. Final status. It can be set 1 to 3 days after payableUntil, not right at the end of that day.

Due date and payable period. Without dueDate, the charge is due 365 days from today (Brasilia time) and daysPayableAfterDue is 0. daysPayableAfterDue can only be sent together with dueDate; when dueDate is sent without it, it defaults to 180. The response always carries the effective dueDate and daysPayableAfterDue, and payableUntil, the last day the QR code can be paid.

Your own reference. externalId is unique per organization. Reusing one returns a 409 whose errorData.chargeId is the id of the existing charge.

Operations

Cards

The Card API supports the full card lifecycle, enabling clients to create, retrieve, and update cards via secure integration. Use POST /v1/cards/transactions with the source field to query card or travel transactions in a single endpoint.

Operations

List all cards

Request

You can see a list of cards belonging to the owner of the client credentials.

Query
pagenumber>= 1

Page number to retrieve.

Default 1
Example: page=1
pageSizenumber[ 1 .. 500 ]

Number of items returned per page.

Default 20
Example: pageSize=20
Headers
Accept-Languagestring

Language code used for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
curl -i -X GET \
  'https://public-sandbox.tryjeeves.com/v1/cards?page=1&pageSize=20' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

List of all cards with details.

Bodyapplication/json
rowsArray of objects(CardDto)required
rows[].​idstringrequired

Unique identifier of a card.

Example: "123e4567-e89b-12d3-a456-426614174000"
rows[].​createdAtstring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....required

Card creation date and time in UTC.

Example: "2024-12-25 10:35:00"
rows[].​updatedAtstring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....required

Card last update date and time in UTC.

Example: "2024-12-25 10:35:00"
rows[].​namestring[ 1 .. 60 ] characters^[a-zA-Z0-9\s]+$required

Name given to the card.

Example: "Travel Card"
rows[].​metadataobject

Set of key-value pairs that you can attach to the card. Limitations: maximum of 10 key-value pairs, keys cannot exceed 50 characters, values cannot exceed 255 characters.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
rows[].​expectedChargeDateUTCstring(date)

The date when the card is expected to be charged (UTC), if provided during card creation.

Example: "2025-02-20"
rows[].​restrictionsobject(CardRestrictions)required
rows[].​restrictions.​spendLimitnumbernon-empty> 0required

Maximum total amount that can be spent with the card in local currency. Must be greater than 0.

Example: 1000
rows[].​restrictions.​activeDateRangeUTCobject(CardActiveDateRangeRestrictions)
rows[].​restrictions.​maxTransactionCountnumber[ 1 .. 10 ]

The maximum number of transactions that can be made with the card.

Example: 10
rows[].​restrictions.​merchantCategoryobject(MerchantCategoryControl)
countnumberrequired
Example: 100
Response
application/json
{ "rows": [ { … } ], "count": 100 }

Create a card

Request

You can create a new credit card assigned to the owner of the client credentials.

Headers
Accept-Languagestring

Language code for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
Bodyapplication/jsonrequired

CardCreateDto

namestring[ 1 .. 60 ] characters^[a-zA-Z0-9\s]+$required

Name given to the card.

Example: "Travel Card"
metadataobject

Set of key-value pairs that you can attach to the card. Limitations: maximum of 10 key-value pairs, keys cannot exceed 50 characters, values cannot exceed 255 characters.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
expectedChargeDateUTCstring(date)

The date when the card is expected to be charged (UTC). Must not be a past date. Requires the cards:multiple:write scope, which is enabled on request — contact Jeeves support.

Example: "2025-02-20"
restrictionsobject(CardRestrictions)required
restrictions.​spendLimitnumbernon-empty> 0required

Maximum total amount that can be spent with the card in local currency. Must be greater than 0.

Example: 1000
restrictions.​activeDateRangeUTCobject(CardActiveDateRangeRestrictions)
restrictions.​maxTransactionCountnumber[ 1 .. 10 ]

The maximum number of transactions that can be made with the card.

Example: 10
restrictions.​merchantCategoryobject(MerchantCategoryControl)
curl -i -X POST \
  https://public-sandbox.tryjeeves.com/v1/cards \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Travel Card",
    "metadata": {
      "reservation_code": "abc123",
      "passenger_name": "John Doe"
    },
    "expectedChargeDateUTC": "2025-02-20",
    "restrictions": {
      "spendLimit": 1000,
      "activeDateRangeUTC": {
        "startDate": "2024-12-25 00:00:00",
        "endDate": "2024-12-31 23:59:59"
      },
      "maxTransactionCount": 10,
      "merchantCategory": {
        "mode": "allow",
        "categoryIds": [
          "Accounting"
        ]
      }
    }
  }'

Responses

Card details.

Bodyapplication/json
detailsobject(CardDetails)required
details.​cardNumberstringrequired

Card 16-digit number.

Example: "1234567890123456"
details.​cardHolderstringrequired

Card holder name.

Example: "John Doe"
details.​expiryDatestringrequired

Expiration date of the card.

Example: "12/27"
details.​cvvCodestringrequired

3-digit code usually printed on the back of the card.

Example: "123"
namestring[ 1 .. 60 ] characters^[a-zA-Z0-9\s]+$required

Name given to the card.

Example: "Travel Card"
metadataobject

Set of key-value pairs that you can attach to the card. Limitations: maximum of 10 key-value pairs, keys cannot exceed 50 characters, values cannot exceed 255 characters.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
expectedChargeDateUTCstring(date)

The date when the card is expected to be charged (UTC), if provided during card creation.

Example: "2025-02-20"
restrictionsobject(CardRestrictions)required
restrictions.​spendLimitnumbernon-empty> 0required

Maximum total amount that can be spent with the card in local currency. Must be greater than 0.

Example: 1000
restrictions.​activeDateRangeUTCobject(CardActiveDateRangeRestrictions)
restrictions.​maxTransactionCountnumber[ 1 .. 10 ]

The maximum number of transactions that can be made with the card.

Example: 10
restrictions.​merchantCategoryobject(MerchantCategoryControl)
idstringrequired

Unique identifier of a card.

Example: "123e4567-e89b-12d3-a456-426614174000"
createdAtstringrequired

Card creation date and time in UTC.

Example: "2024-12-25 10:35:00"
updatedAtstringrequired

Card last update date and time in UTC.

Example: "2024-12-25 10:35:00"
Response
application/json
{ "details": { "cardNumber": "1234567890123456", "cardHolder": "John Doe", "expiryDate": "12/27", "cvvCode": "123" }, "name": "Travel Card", "metadata": { "reservation_code": "abc123", "passenger_name": "John Doe" }, "expectedChargeDateUTC": "2025-02-20", "restrictions": { "spendLimit": 1000, "activeDateRangeUTC": { … }, "maxTransactionCount": 10, "merchantCategory": { … } }, "id": "123e4567-e89b-12d3-a456-426614174000", "createdAt": "2024-12-25 10:35:00", "updatedAt": "2024-12-25 10:35:00" }

Retrieve card or travel transactions

Request

Retrieve settled card transactions or completed travel card transactions through a single endpoint. The source field selects which transactions you get and determines the response shape: cards returns your company's regular Jeeves corporate-card transactions; travel returns transactions from the virtual cards created through this API.

Response shape by source

sourceResponse schemaDescription
cardsTransactionResponseSettled card transactions for your company
travelTravelTransactionResponseCompleted transactions from virtual travel cards

Both responses include a pagination object with pageSize, totalCount, nextCursor, and hasNext.

Pagination

Because this is a POST endpoint, links.next is always null — the request body cannot be encoded in a URL. To page forward, send a new request with the same filters and set pageCursor to the value from pagination.nextCursor. Repeat until pagination.hasNext is false.

Default date window

  • When cardIds is not provided, startDate and endDate both default to yesterday (D-1, yyyy-MM-dd).
  • When cardIds is provided, no default dates are applied — all transaction history is returned unless you set startDate and/or endDate explicitly.

Migration

This endpoint replaces GET /v1/transactions (use "source": "cards") and GET /v1/travel/transactions (use "source": "travel").

Headers
Accept-Languagestring

Language code used for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
Bodyapplication/jsonrequired
sourcestringrequired

The source of transactions to retrieve.

  • cards — settled card transactions (company cards).
  • travel — completed transactions from virtual travel cards created via API.
Enum"cards""travel"
Example: "cards"
cardIdsArray of strings(uuid)non-empty

Optional list of card UUIDs (v4) to filter transactions. Must contain at least one element when provided. When provided without dates, all transaction history is returned for those cards.

Example: ["c8ddf33f-6244-4218-af7e-7a6fe0b13528"]
startDatestring(date)

Start date (inclusive) for filtering transactions, in yyyy-MM-dd format. Must not be a future date. Must not be after endDate when both are set. Defaults to yesterday (D-1) when cardIds is not provided.

Example: "2025-01-01"
endDatestring(date)

End date (inclusive) for filtering transactions, in yyyy-MM-dd format. Must not be a future date. Defaults to yesterday (D-1) when cardIds is not provided.

Example: "2025-01-31"
pageSizeinteger[ 1 .. 100 ]

Number of transactions returned per page. Defaults to 20 when omitted. Maximum 50 when source=cards; maximum 100 when source=travel.

Default 20
Example: 20
pageCursorstring

Opaque cursor for the next page, returned in pagination.nextCursor from a previous response. Omit on the first request.

Example: "MTI7eyJ0cmFuc2FjdGlvbklkIjoiODA4MTUxOSIsImNyZWF0ZWRBdCI6IjE3NDY1NTUzMDI1MTIifq"
curl -i -X POST \
  https://public-sandbox.tryjeeves.com/v1/cards/transactions \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "source": "cards",
    "startDate": "2025-01-01",
    "endDate": "2025-01-31"
  }'

Responses

Paginated transactions. Response shape depends on source in the request body.

Bodyapplication/json
One of:
linksobject(TransactionResponseLinks)required
links.​nextstring or nullrequired

Link to the next page; null if there is no next page. For deprecated GET transaction endpoints, this may contain a URL with query parameters. For POST /v1/cards/transactions, this field is always null — use pagination.nextCursor in the next request body instead.

Example: "/v1/transactions?pageCursor=MTI7eyJ0cmFuc2FjdGlvbklkIjoiODA4MTUxOSIsImNyZWF0ZWRBdCI6IjE3NDY1NTUzMDI1MTIifq"
paginationobject(TransactionResponsePagination)required
pagination.​pageSizenumberrequired

Number of transactions returned by page.

Default 20
Example: 5
pagination.​totalCountnumberrequired

Total number of transactions for your call.

Example: 41
pagination.​nextCursorstring or null

The cursor pointing to the next page; null if there's no next page.

Example: "MTI7eyJ0cmFuc2FjdGlvbklkIjoiODA4MTUxOSIsImNyZWF0ZWRBdCI6IjE3NDY1NTUzMDI1MTIifq"
pagination.​hasNextbooleanrequired

True if there's a next page; false otherwise.

Example: true
dataArray of objects(TransactionDto)required

List of all transactions with all details.

Example: [{"id":"123e4567-e89b-12d3-a456-426614174000","productType":"credit_line","company":{"id":"361c697b-8d82-11ec-a51a-0ea06e4de10b","name":"Acme Corporation"},"user":{"id":"d5d5c940-3c58-4ecc-b772-fe20e764ed70","name":"John Doe","email":"john.doe@acmecorp.com"},"card":{"id":"c8ddf33f-6244-4218-af7e-7a6fe0b13528","name":"Travel Card","type":"Physical","number":"9876","metadata":{"processor":"stripe","networkTransactionId":"1234567890"},"restrictions":{"spendLimit":1000,"merchantCategory":{"mode":"allow","categoryIds":["Accounting","Travel"]}}},"merchant":{"name":"STARBUCKS SAO PAULO BRA"},"transactionType":"debit","transactionDate":"2025-01-29 16:22:51","settlementDate":"2025-01-30 08:00:03","statementClosingDate":"2025-02-01 23:59:59","statementDueDate":"2025-02-15 23:59:59","transactionAmount":127.59,"transactionCurrency":"USD","localTransactionAmount":741.33,"localTransactionCurrency":"BRL","authorizationCode":"123456"}]
data[].​idstringrequired

Unique identifier of a transaction.

Example: "123e4567-e89b-12d3-a456-426614174000"
data[].​productTypestringrequired

The card's funding model: credit_line (spend on your Jeeves credit line) or self_funded (spend from your own pre-funded balance). Same concept as productAccountType in the Payment API.

Enum"credit_line""self_funded"
Example: "credit_line"
data[].​companyobjectrequired
data[].​company.​idstringrequired

Company identification within Jeeves.

Example: "361c697b-8d82-11ec-a51a-0ea06e4de10b"
data[].​company.​namestringrequired

Company name within Jeeves.

Example: "Acme Corporation"
data[].​userobjectrequired
data[].​user.​idstringrequired

User identifier within Jeeves.

Example: "d5d5c940-3c58-4ecc-b772-fe20e764ed70"
data[].​user.​namestringrequired

User full name.

Example: "John Doe"
data[].​user.​emailstringrequired

User email address.

Example: "john.doe@acmecorp.com"
data[].​cardobjectrequired
data[].​card.​idstringrequired

Card identifier within Jeeves.

Example: "c8ddf33f-6244-4218-af7e-7a6fe0b13528"
data[].​card.​namestringrequired

Card label defined by the user.

Example: "Travel Card"
data[].​card.​typestringrequired

Card type.

Enum"Physical""Virtual"
Example: "Physical"
data[].​card.​numberstringrequired

Last 4 digits of the card number.

Example: "9876"
data[].​card.​metadataobject or null

Additional metadata associated with the card. Structure varies by transaction type and processor.

Example: {"processor":"stripe","networkTransactionId":"1234567890"}
data[].​card.​restrictionsobject(CardRestrictions)
data[].​merchantobjectrequired
data[].​merchant.​namestring<= 150 charactersrequired

Name of the merchant where the transaction happened.

Example: "STARBUCKS SAO PAULO BRA"
data[].​merchant.​mccstring

Merchant Category Code (MCC) used by the merchant.

Example: "5814"
data[].​merchant.​mccDescriptionstring

MCC description provided by the network.

Example: "Fast Food Restaurants"
data[].​transactionTypestringrequired

Debit for purchases and fees; credit for payments and refunds.

Enum"debit""credit"
Example: "debit"
data[].​transactionDatestring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....required

The date and time the transaction occurred, in UTC.

Example: "2025-01-29 16:22:51"
data[].​settlementDatestring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....required

The date and time the transaction was settled, in UTC.

Example: "2025-01-30 08:00:03"
data[].​transactionAmountnumberrequired

Amount billed to your account, in your account's billing currency.

Example: 127.59
data[].​transactionCurrencystringrequired

Currency the amount was billed in (ISO 4217), e.g. USD.

Example: "USD"
data[].​localTransactionAmountnumberrequired

Amount in the merchant's local currency — the currency of the transaction location.

Example: 741.33
data[].​localTransactionCurrencystringrequired

Currency of the merchant's local amount (ISO 4217).

Example: "BRL"
data[].​statementClosingDatestring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....

The date and time the statement was closed, in UTC. Only present for credit line transactions.

Example: "2025-02-01 23:59:59"
data[].​statementDueDatestring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....

The date and time of the statement due date, in UTC. Only present for credit line transactions.

Example: "2025-02-15 23:59:59"
data[].​authorizationCodestring

Authorization code provided by the card network for the transaction.

Example: "123456"
Response
application/json
{ "links": { "next": null }, "pagination": { "pageSize": 20, "totalCount": 41, "nextCursor": "MTI7eyJ0cmFuc2FjdGlvbklkIjoiODA4MTUxOSIsImNyZWF0ZWRBdCI6IjE3NDY1NTUzMDI1MTIifq", "hasNext": true }, "data": [ { … } ] }

Retrieve a card

Request

You can get the card details by the card unique id.

Path
idstring[^\/#\?]+?required

Unique identifier of a card.

Headers
Accept-Languagestring

Language code for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
curl -i -X GET \
  'https://public-sandbox.tryjeeves.com/v1/cards/{id}' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Card details.

Bodyapplication/json
detailsobject(CardDetails)required
details.​cardNumberstringrequired

Card 16-digit number.

Example: "1234567890123456"
details.​cardHolderstringrequired

Card holder name.

Example: "John Doe"
details.​expiryDatestringrequired

Expiration date of the card.

Example: "12/27"
details.​cvvCodestringrequired

3-digit code usually printed on the back of the card.

Example: "123"
namestring[ 1 .. 60 ] characters^[a-zA-Z0-9\s]+$required

Name given to the card.

Example: "Travel Card"
metadataobject

Set of key-value pairs that you can attach to the card. Limitations: maximum of 10 key-value pairs, keys cannot exceed 50 characters, values cannot exceed 255 characters.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
expectedChargeDateUTCstring(date)

The date when the card is expected to be charged (UTC), if provided during card creation.

Example: "2025-02-20"
restrictionsobject(CardRestrictions)required
restrictions.​spendLimitnumbernon-empty> 0required

Maximum total amount that can be spent with the card in local currency. Must be greater than 0.

Example: 1000
restrictions.​activeDateRangeUTCobject(CardActiveDateRangeRestrictions)
restrictions.​maxTransactionCountnumber[ 1 .. 10 ]

The maximum number of transactions that can be made with the card.

Example: 10
restrictions.​merchantCategoryobject(MerchantCategoryControl)
idstringrequired

Unique identifier of a card.

Example: "123e4567-e89b-12d3-a456-426614174000"
createdAtstringrequired

Card creation date and time in UTC.

Example: "2024-12-25 10:35:00"
updatedAtstringrequired

Card last update date and time in UTC.

Example: "2024-12-25 10:35:00"
Response
application/json
{ "details": { "cardNumber": "1234567890123456", "cardHolder": "John Doe", "expiryDate": "12/27", "cvvCode": "123" }, "name": "Travel Card", "metadata": { "reservation_code": "abc123", "passenger_name": "John Doe" }, "expectedChargeDateUTC": "2025-02-20", "restrictions": { "spendLimit": 1000, "activeDateRangeUTC": { … }, "maxTransactionCount": 10, "merchantCategory": { … } }, "id": "123e4567-e89b-12d3-a456-426614174000", "createdAt": "2024-12-25 10:35:00", "updatedAt": "2024-12-25 10:35:00" }

Update a card

Request

You can update card configuration by the card unique id.

Path
idstring[^\/#\?]+?required

Unique identifier of a card.

Headers
Accept-Languagestring

Language code for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
Bodyapplication/jsonrequired

CardUpdateDto

namestring<= 60 characters^[a-zA-Z0-9\s]+$

Name given to the card.

Example: "Travel Card"
metadataobject

Set of key-value pairs that you can attach to the card. Limitations: maximum of 10 key-value pairs, keys cannot exceed 50 characters, values cannot exceed 255 characters.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
restrictionsobject(CardRestrictionsUpdateDto)
curl -i -X PATCH \
  'https://public-sandbox.tryjeeves.com/v1/cards/{id}' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Travel Card",
    "metadata": {
      "reservation_code": "abc123",
      "passenger_name": "John Doe"
    },
    "restrictions": {
      "spendLimit": 1000,
      "activeDateRangeUTC": {
        "startDate": "2024-12-25 00:00:00",
        "endDate": "2024-12-31 23:59:59"
      },
      "maxTransactionCount": 10,
      "merchantCategory": {
        "mode": "allow",
        "categoryIds": [
          "Accounting"
        ]
      }
    }
  }'

Responses

Card details.

Bodyapplication/json
idstringrequired

Unique identifier of a card.

Example: "123e4567-e89b-12d3-a456-426614174000"
createdAtstring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....required

Card creation date and time in UTC.

Example: "2024-12-25 10:35:00"
updatedAtstring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....required

Card last update date and time in UTC.

Example: "2024-12-25 10:35:00"
namestring[ 1 .. 60 ] characters^[a-zA-Z0-9\s]+$required

Name given to the card.

Example: "Travel Card"
metadataobject

Set of key-value pairs that you can attach to the card. Limitations: maximum of 10 key-value pairs, keys cannot exceed 50 characters, values cannot exceed 255 characters.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
expectedChargeDateUTCstring(date)

The date when the card is expected to be charged (UTC), if provided during card creation.

Example: "2025-02-20"
restrictionsobject(CardRestrictions)required
restrictions.​spendLimitnumbernon-empty> 0required

Maximum total amount that can be spent with the card in local currency. Must be greater than 0.

Example: 1000
restrictions.​activeDateRangeUTCobject(CardActiveDateRangeRestrictions)
restrictions.​maxTransactionCountnumber[ 1 .. 10 ]

The maximum number of transactions that can be made with the card.

Example: 10
restrictions.​merchantCategoryobject(MerchantCategoryControl)
Response
application/json
{ "id": "123e4567-e89b-12d3-a456-426614174000", "createdAt": "2024-12-25 10:35:00", "updatedAt": "2024-12-25 10:35:00", "name": "Travel Card", "metadata": { "reservation_code": "abc123", "passenger_name": "John Doe" }, "expectedChargeDateUTC": "2025-02-20", "restrictions": { "spendLimit": 1000, "activeDateRangeUTC": { … }, "maxTransactionCount": 10, "merchantCategory": { … } } }

Delete a card

Request

You can delete a card by the card unique id.

Path
idstring[^\/#\?]+?required

Unique identifier of a card.

Headers
Accept-Languagestring

Language code for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
curl -i -X DELETE \
  'https://public-sandbox.tryjeeves.com/v1/cards/{id}' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Card deleted.

Bodyapplication/json
Response
application/json
null

List all MCC categories

Request

You can list all MCC categories.

Headers
Accept-Languagestring

Language code for localization.

Default en-US
Enum"en-US""es-MX""pt-BR"
Example: en-US
curl -i -X GET \
  https://public-sandbox.tryjeeves.com/v1/cards/mcc/categories \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

List of merchant categories with their associated merchant category codes.

Bodyapplication/json
rowsArray of objects(MccCategoryDto)
countnumber
Example: 100
Response
application/json
{ "rows": [ { … } ], "count": 100 }

Transactions

The Transactions API enables clients to retrieve card and payment transactions via secure integration. Supports filtering by date range and pagination for efficient data retrieval.

Operations

Travel

The Travel API covers the virtual cards created through this API (originally built for travel platforms, hence the name): retrieve their completed transactions and attach booking details to a card.

Operations

Webhooks

The Webhooks API provides access to webhook subscription management and event tracking, enabling you to receive real-time HTTP notifications the moment a card transaction is approved, declined, settled, or fails. These subscriptions cover card events only — payment.status.updated for the Payments API is delivered separately and has no subscription endpoint, see the Payments API reference.

Operations