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.

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.
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.
500Server errorAn internal error at Jeeves.
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 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

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

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 enables clients to retrieve transactions from virtual travel cards and update booking details via secure integration.

Operations

Update booking details

Request

Path
idstring[^\/#\?]+?required
Headers
Accept-Languagestring

Language code for localization.

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

TravelCardBookingDetails

itineraryIdstring<= 60 characters

The travel itinerary where the card is used.

Example: "ITIN-993235"
bookingReferencestring<= 60 characters

The booking reference where the card is used.

Example: "BREF-334234"
transactionIdstring<= 60 characters

The transaction id.

Example: "TRX-673829"
otherCustomFieldstring

Other custom key-value field

Example: "custom-value"
curl -i -X PATCH \
  'https://public-sandbox.tryjeeves.com/v1/travel/cards/{id}/booking' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "itineraryId": "ITIN-993235",
    "bookingReference": "BREF-334234",
    "transactionId": "TRX-673829",
    "otherCustomField": "custom-value"
  }'

Responses

Travel card details.

Bodyapplication/json
metadataobject(TravelCardBookingDetails)
namestring[ 1 .. 60 ] characters^[a-zA-Z0-9\s]+$required

The name of the card.

Example: "Travel Card"
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
Example: "123e4567-e89b-12d3-a456-426614174000"
createdAtstringrequired
Example: "2024-12-25 10:35:00"
updatedAtstringrequired
Example: "2024-12-25 10:35:00"
Response
application/json
{ "metadata": { "itineraryId": "ITIN-993235", "bookingReference": "BREF-334234", "transactionId": "TRX-673829", "otherCustomField": "custom-value" }, "name": "Travel Card", "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" }

Get transactionsDeprecated

Request

Deprecated. Use POST /v1/cards/transactions with "source": "travel" instead.

Get completed transactions from the virtual cards created via API for reconciliation.

Query
pageCursorstring or null

The cursor of the next page of transactions (returned in the "nextCursor" property in the response).

Default null
pageSizenumber[ 1 .. 100 ]

The page size.

Default 100
Example: pageSize=100
startDatestring or string(yyyy-MM-dd)

The start date of the transaction.

Default "D-1 (yesterday)"
Example: startDate=2025-01-01
One of:

The start date of the transaction.

string(yyyy-MM-dd)

The start date of the transaction.

Default "D-1 (yesterday)"
endDatestring or string(yyyy-MM-dd)

The end date of the transaction.

Default "D-1 (yesterday)"
Example: endDate=2025-01-01
One of:

The end date of the transaction.

string(yyyy-MM-dd)

The end date of the transaction.

Default "D-1 (yesterday)"
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/travel/transactions?endDate=2025-01-01&pageSize=100&startDate=2025-01-01' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Paginated list of completed transactions done from the virtual cards created via API.

Bodyapplication/json
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(TravelTransactionDto)required

List of all transactions with all details.

data[].​transactionIdstringrequired

Unique identifier of a transaction.

Example: "123e4567-e89b-12d3-a456-426614174000"
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....

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

Example: "2025-01-30 08:00:03"
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.

Example: "2025-01-30 08:00:03"
data[].​statementDueDatestring\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d....

The date and time the statement due date, in UTC.

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

The last 4 digits of the card number.

Example: "9876"
data[].​merchantNamestringrequired

The name of the merchant.

Example: "Starbucks"
data[].​transactionAmountnumberrequired

Transaction amount in account currency.

Example: 741.33
data[].​transactionCurrencystringrequired

Currency code of the transaction amount (ISO 4217).

Example: "BRL"
data[].​localAmountnumberrequired

Transaction amount in the currency of the transaction location.

Example: 127.59
data[].​localCurrencystringrequired

Currency code of the local transaction amount (ISO 4217).

Example: "USD"
data[].​transactionTypestringrequired

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

Enum"debit""credit"
Example: "debit"
data[].​merchantCategoryCodestringrequired

Merchant Category Code (MCC) used by the merchant.

Example: "5814"
data[].​cardholderNamestringrequired

The name of the cardholder.

Example: "John Doe"
data[].​cardNamestringrequired

The name of the card.

Example: "Travel Card"
data[].​cardIdstringrequired

The ID of the card.

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

The authorization code of the transaction.

Example: "123456"
data[].​metadataobjectrequired

The metadata of the transaction.

Example: {"reservation_code":"abc123","passenger_name":"John Doe"}
data[].​restrictionsobject(CardRestrictions)required
data[].​restrictions.​spendLimitnumbernon-empty> 0required

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

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

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

Example: 10
data[].​restrictions.​merchantCategoryobject(MerchantCategoryControl)
Response
application/json
{ "links": { "next": "/v1/transactions?pageCursor=MTI7eyJ0cmFuc2FjdGlvbklkIjoiODA4MTUxOSIsImNyZWF0ZWRBdCI6IjE3NDY1NTUzMDI1MTIifq" }, "pagination": { "pageSize": 5, "totalCount": 41, "nextCursor": "MTI7eyJ0cmFuc2FjdGlvbklkIjoiODA4MTUxOSIsImNyZWF0ZWRBdCI6IjE3NDY1NTUzMDI1MTIifq", "hasNext": true }, "data": [ {} ] }

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.

Operations