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

List Pix Charges

Request

Retrieves a paginated list of Pix charges. Filter by creation date (createdAt[gte], createdAt[lte]), by one or more statuses (status), or by your own reference (externalId, exact match).

Query
createdAt[gte]string or string

Filter Pix charges created after or on this date (inclusive)

Example: createdAt[gte]=2024-01-01
One of:

Filter Pix charges created after or on this date (inclusive)

string(date)

Filter Pix charges created after or on this date (inclusive)

createdAt[lte]string or string

Filter Pix charges created before or on this date (inclusive)

Example: createdAt[lte]=2024-12-31
One of:

Filter Pix charges created before or on this date (inclusive)

string(date)

Filter Pix charges created before or on this date (inclusive)

statusArray of strings

Filter by one or more Pix charge statuses

Items Enum"active""under_review""paid""canceled""expired"
Example: status=active&status=paid
externalIdstring<= 64 characters

Filter by your own reference (exact match).

Example: externalId=INV-789
pagenumber>= 1

The page number to retrieve.

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

The number of items per page.

Default 20
Example: pageSize=20
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/pix-charges?createdAt%5Bgte%5D=2024-01-01&createdAt%5Blte%5D=2024-12-31&externalId=INV-789&page=1&pageSize=20&status=active%2Cpaid' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

List of Pix charges.

Bodyapplication/json
rowsArray of objects(PixChargeDto)required
rows[].​idstring= 36 charactersrequired

Unique Pix charge identification key in uuid v4 format.

Example: "4c2fa514-a44d-40f2-8d57-c0caf1b9165a"
rows[].​statusstringrequired

Pix charge status.

Enum"active""under_review""paid""canceled""expired"
Example: "active"
rows[].​externalIdstring or null

Your reference for the charge, if one was given.

Example: "INV-789"
rows[].​metadataobject or null

Charge metadata.

Example: {"internalReference":"INV-789"}
rows[].​amountnumber> 0required

The charge amount in BRL.

Example: 150.75
rows[].​dueDatestring(date)= 10 charactersrequired

The effective due date (format YYYY-MM-DD).

Example: "2026-01-15"
rows[].​daysPayableAfterDueinteger>= 0required

The effective number of days the QR code stays payable after the due date.

Example: 30
rows[].​payableUntilstring(date)= 10 charactersrequired

Last payable day (dueDate + daysPayableAfterDue, format YYYY-MM-DD), until its end in Brasilia time.

Example: "2026-02-14"
rows[].​memostring or null

Optional note for the payer.

Example: "Payment for services"
rows[].​payerDataobject(PixChargePayerDataDto)required
rows[].​payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
rows[].​payerData.​personTypestringrequired

The type of person.

Enum"natural""legal"
Example: "legal"
rows[].​payerData.​documentNumberstring[ 11 .. 14 ] charactersrequired

The payer document number, digits only (CPF for natural person - 11 digits, CNPJ for legal person - 14 digits).

Example: "12345678000195"
rows[].​pixCopyPastestring or null

Pix copy-and-paste (EMV) payload the payer pastes into their banking app.

Example: "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD"
rows[].​qrCodeImagestring or null

Base64-encoded image of the QR code (JPEG).

Example: "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD..."
rows[].​paymentDetailsobject(PixChargePaymentDetailsDto)
rows[].​createdAtstring(date-time)required

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
rows[].​updatedAtstring(date-time)required

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
countnumberrequired
Example: 100
Response
application/json
{ "rows": [ { … } ], "count": 100 }

Create Pix Charge

Request

Creates a Pix charge: a single-use dynamic Pix QR code the payer can scan or paste. The response carries pixCopyPaste (the copy-and-paste payload) and qrCodeImage (a base64-encoded JPEG of the QR code).

Due date and payable period

  • Without dueDate, the charge is due 365 days from today (Brasilia time) and daysPayableAfterDue is 0.
  • dueDate is a YYYY-MM-DD date in the Brasilia calendar, from today to 365 days from today.
  • daysPayableAfterDue (0 to 180) can only be sent together with dueDate. When dueDate is sent without it, it defaults to 180.
  • The response returns the effective dueDate and daysPayableAfterDue, and payableUntil (dueDate + daysPayableAfterDue), the last day the QR code can be paid, until its end in Brasilia time.

Fields

  • amount is in BRL, positive, with at most 2 decimal places.
  • memo is optional, up to 140 characters.
  • externalId is your own reference, 1 to 64 characters, unique per organization. Reusing one returns a 409 whose errorData.chargeId is the id of the existing charge.
  • payerData.name is 1 to 100 characters, and payerData.documentNumber is the payer's CPF (11 digits) or CNPJ (14 digits), digits only.
  • metadata is a map of string values.

Errors

HTTPWhen
400The request body is malformed.
409The externalId is already used by another charge. errorData.chargeId is the id of the existing charge.
422The account cannot receive Pix charges, e.g. it has no Pix key.
502The Pix provider failed to create the charge.

Poll GET /v1/pix-charges/{id} to follow the charge until it is paid, canceled or expired.

Headers
Accept-Languagestring

Language code for localization.

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

PixChargeCreateDto

amountnumber> 0required

The charge amount in BRL, with at most 2 decimal places.

Example: 150.75
dueDatestring(date)= 10 characters

The due date (format YYYY-MM-DD, Brasilia calendar), from today to 365 days from today. Without it the charge is due 365 days from today and daysPayableAfterDue is 0.

Example: "2026-01-15"
daysPayableAfterDueinteger[ 0 .. 180 ]

Days the QR code stays payable after the due date. Requires dueDate; defaults to 180 when dueDate is given.

Example: 30
payerDataobject(PixChargePayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringrequired

The type of person.

Enum"natural""legal"
Example: "legal"
payerData.​documentNumberstring[ 11 .. 14 ] charactersrequired

The payer document number, digits only (CPF for natural person - 11 digits, CNPJ for legal person - 14 digits).

Example: "12345678000195"
memostring<= 140 characters

Optional note for the payer, shown with the charge.

Example: "Payment for services"
externalIdstring[ 1 .. 64 ] characters

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

Example: "INV-789"
metadataobject

Charge metadata. Can be used to store additional information about the charge, e.g. "internalReference":"INV-789". Values must be strings.

Example: {"internalReference":"INV-789"}
curl -i -X POST \
  https://public-sandbox.tryjeeves.com/v1/pix-charges \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount": 150.75,
    "payerData": {
      "name": "Global Tech",
      "personType": "legal",
      "documentNumber": "12345678000195"
    },
    "memo": "Payment for services",
    "externalId": "INV-789",
    "metadata": {
      "internalReference": "INV-789"
    }
  }'

Responses

Creates a Pix charge and returns its details, including the QR code.

Bodyapplication/json
idstring= 36 charactersrequired

Unique Pix charge identification key in uuid v4 format.

Example: "4c2fa514-a44d-40f2-8d57-c0caf1b9165a"
statusstringrequired

Pix charge status.

Enum"active""under_review""paid""canceled""expired"
Example: "active"
externalIdstring or null

Your reference for the charge, if one was given.

Example: "INV-789"
metadataobject or null

Charge metadata.

Example: {"internalReference":"INV-789"}
amountnumber> 0required

The charge amount in BRL.

Example: 150.75
dueDatestring(date)= 10 charactersrequired

The effective due date (format YYYY-MM-DD).

Example: "2026-01-15"
daysPayableAfterDueinteger>= 0required

The effective number of days the QR code stays payable after the due date.

Example: 30
payableUntilstring(date)= 10 charactersrequired

Last payable day (dueDate + daysPayableAfterDue, format YYYY-MM-DD), until its end in Brasilia time.

Example: "2026-02-14"
memostring or null

Optional note for the payer.

Example: "Payment for services"
payerDataobject(PixChargePayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringrequired

The type of person.

Enum"natural""legal"
Example: "legal"
payerData.​documentNumberstring[ 11 .. 14 ] charactersrequired

The payer document number, digits only (CPF for natural person - 11 digits, CNPJ for legal person - 14 digits).

Example: "12345678000195"
pixCopyPastestring or null

Pix copy-and-paste (EMV) payload the payer pastes into their banking app.

Example: "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD"
qrCodeImagestring or null

Base64-encoded image of the QR code (JPEG).

Example: "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD..."
paymentDetailsobject(PixChargePaymentDetailsDto)
createdAtstring(date-time)required

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
updatedAtstring(date-time)required

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "active", "externalId": "INV-789", "metadata": { "internalReference": "INV-789" }, "amount": 150.75, "dueDate": "2027-01-10", "daysPayableAfterDue": 0, "payableUntil": "2027-01-10", "memo": "Payment for services", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195" }, "pixCopyPaste": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD", "qrCodeImage": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...", "createdAt": "2026-01-10T14:00:00Z", "updatedAt": "2026-01-10T14:00:00Z" }

Get Pix Charge by ID

Request

Retrieves a specific Pix charge by its ID. Poll this endpoint to follow the status of a charge.

Path
idstringrequired

Pix charge ID (UUID v4).

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/pix-charges/{id}' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Pix charge details.

Bodyapplication/json
idstring= 36 charactersrequired

Unique Pix charge identification key in uuid v4 format.

Example: "4c2fa514-a44d-40f2-8d57-c0caf1b9165a"
statusstringrequired

Pix charge status.

Enum"active""under_review""paid""canceled""expired"
Example: "active"
externalIdstring or null

Your reference for the charge, if one was given.

Example: "INV-789"
metadataobject or null

Charge metadata.

Example: {"internalReference":"INV-789"}
amountnumber> 0required

The charge amount in BRL.

Example: 150.75
dueDatestring(date)= 10 charactersrequired

The effective due date (format YYYY-MM-DD).

Example: "2026-01-15"
daysPayableAfterDueinteger>= 0required

The effective number of days the QR code stays payable after the due date.

Example: 30
payableUntilstring(date)= 10 charactersrequired

Last payable day (dueDate + daysPayableAfterDue, format YYYY-MM-DD), until its end in Brasilia time.

Example: "2026-02-14"
memostring or null

Optional note for the payer.

Example: "Payment for services"
payerDataobject(PixChargePayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringrequired

The type of person.

Enum"natural""legal"
Example: "legal"
payerData.​documentNumberstring[ 11 .. 14 ] charactersrequired

The payer document number, digits only (CPF for natural person - 11 digits, CNPJ for legal person - 14 digits).

Example: "12345678000195"
pixCopyPastestring or null

Pix copy-and-paste (EMV) payload the payer pastes into their banking app.

Example: "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD"
qrCodeImagestring or null

Base64-encoded image of the QR code (JPEG).

Example: "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD..."
paymentDetailsobject(PixChargePaymentDetailsDto)
createdAtstring(date-time)required

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
updatedAtstring(date-time)required

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
Response
application/json

Once the charge is paid, status is paid and paymentDetails is present.

{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "paid", "externalId": "INV-790", "metadata": null, "amount": 150.75, "dueDate": "2026-01-15", "daysPayableAfterDue": 30, "payableUntil": "2026-02-14", "memo": null, "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195" }, "pixCopyPaste": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD", "qrCodeImage": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...", "paymentDetails": { "paidAmount": 150.75, "paidAt": "2026-01-10T14:32:05Z", "endToEndId": "E12345678202601101432abcdefghijk", "payerName": "Global Tech", "payerBank": "Banco Exemplo S.A." }, "createdAt": "2026-01-09T09:15:32Z", "updatedAt": "2026-01-10T14:32:05Z" }

Cancel Pix Charge

Request

Cancels a Pix charge by its ID. Only active charges can be canceled; any other status returns a 409.

Path
idstringrequired

Pix charge ID (UUID v4).

Headers
Accept-Languagestring

Language code for localization.

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

Responses

Pix charge details.

Bodyapplication/json
idstring= 36 charactersrequired

Unique Pix charge identification key in uuid v4 format.

Example: "4c2fa514-a44d-40f2-8d57-c0caf1b9165a"
statusstringrequired

Pix charge status.

Enum"active""under_review""paid""canceled""expired"
Example: "active"
externalIdstring or null

Your reference for the charge, if one was given.

Example: "INV-789"
metadataobject or null

Charge metadata.

Example: {"internalReference":"INV-789"}
amountnumber> 0required

The charge amount in BRL.

Example: 150.75
dueDatestring(date)= 10 charactersrequired

The effective due date (format YYYY-MM-DD).

Example: "2026-01-15"
daysPayableAfterDueinteger>= 0required

The effective number of days the QR code stays payable after the due date.

Example: 30
payableUntilstring(date)= 10 charactersrequired

Last payable day (dueDate + daysPayableAfterDue, format YYYY-MM-DD), until its end in Brasilia time.

Example: "2026-02-14"
memostring or null

Optional note for the payer.

Example: "Payment for services"
payerDataobject(PixChargePayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringrequired

The type of person.

Enum"natural""legal"
Example: "legal"
payerData.​documentNumberstring[ 11 .. 14 ] charactersrequired

The payer document number, digits only (CPF for natural person - 11 digits, CNPJ for legal person - 14 digits).

Example: "12345678000195"
pixCopyPastestring or null

Pix copy-and-paste (EMV) payload the payer pastes into their banking app.

Example: "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD"
qrCodeImagestring or null

Base64-encoded image of the QR code (JPEG).

Example: "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD..."
paymentDetailsobject(PixChargePaymentDetailsDto)
createdAtstring(date-time)required

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
updatedAtstring(date-time)required

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "active", "externalId": "INV-789", "metadata": { "internalReference": "INV-789" }, "amount": 150.75, "dueDate": "2026-01-15", "daysPayableAfterDue": 30, "payableUntil": "2026-02-14", "memo": "Payment for services", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195" }, "pixCopyPaste": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-426614174000520400005303986540515.075802BR5912Your Company6009SAO PAULO62070503***6304ABCD", "qrCodeImage": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...", "paymentDetails": { "paidAmount": 150.75, "paidAt": "2026-01-10T14:32:05Z", "endToEndId": "E12345678202601101432abcdefghijk", "payerName": "Global Tech", "payerBank": "Banco Exemplo S.A." }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

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 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