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

List Boletos

Request

Retrieves a paginated list of boletos.

Query
createdAt[gt]string or string

Filter boletos created after this date (exclusive)

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

Filter boletos created after this date (exclusive)

string(date)

Filter boletos created after this date (exclusive)

createdAt[gte]string or string

Filter boletos created after or on this date (inclusive)

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

Filter boletos created after or on this date (inclusive)

string(date)

Filter boletos created after or on this date (inclusive)

createdAt[lt]string or string

Filter boletos created before this date (exclusive)

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

Filter boletos created before this date (exclusive)

string(date)

Filter boletos created before this date (exclusive)

createdAt[lte]string or string

Filter boletos created before or on this date (inclusive)

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

Filter boletos created before or on this date (inclusive)

string(date)

Filter boletos created before or on this date (inclusive)

statusArray of strings

Filter by one or more boleto statuses

Items Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: status=registered&status=paid
pagenumber>= 1

The page number to retrieve.

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

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/boletos?createdAt%5Bgt%5D=2024-01-01&createdAt%5Bgte%5D=2024-01-01&createdAt%5Blt%5D=2024-12-31&createdAt%5Blte%5D=2024-12-31&page=1&pageSize=20&status=registered%2Cpaid' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

List of boletos.

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

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
rows[].​amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
rows[].​dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

rows[].​memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
rows[].​barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
rows[].​digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
rows[].​payerDataobject(PayerDataDto)required
rows[].​payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
rows[].​payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
rows[].​payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
rows[].​payerData.​phoneobject(PayerPhoneDto)
rows[].​payerData.​addressobject(PayerAddressDto)
rows[].​qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
rows[].​bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
rows[].​paymentDetailsobject(PaymentDetailsDto)
rows[].​fineobject(FineDto)

Fine to be applied.

rows[].​interestobject(InterestDto)

Interest to be applied.

rows[].​discountobject(BoletoDiscountDto)
rows[].​pendingDiscountobject(BoletoDiscountDto)
rows[].​netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rows[].​rebateobject(BoletoRebateDto)
rows[].​pendingRebateobject(BoletoPendingRebateDto)
rows[].​paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
rows[].​metadataobject

Boleto metadata.

Example: {"key1":"value1"}
rows[].​createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

rows[].​updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

countnumberrequired
Example: 100
Response
application/json
{ "rows": [ { … } ], "count": 100 }

Create Boleto

Request

Creates a new boleto, available for immediate payment.

Early-payment discount (optional)

Send discount to issue the boleto with an early-payment discount already applied. The same tier rules as POST /v1/boletos/{id}/discount apply, checked against the boleto in this request:

  • 1 to 3 tiers, with limitDate strictly ascending and before dueDate.
  • Amount types (absolute, anticipation_*_daily_amount) require amount on every tier; percentage types (percentage, anticipation_*_daily_percentage) require percentage (0.01 to 100).
  • The worst-case total discount, i.e. paying on the day of issuance, cannot reach the boleto amount. An absolute amount must be below amount; an anticipation_* daily rate multiplied by the calendar days until dueDate cannot exceed 100% or reach amount.

A request that breaks these rules returns 400. The response includes the configured discount.

Headers
Accept-Languagestring

Language code for localization.

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

BoletoCreateDto

amountnumbernon-empty> 0required

Payment amount (positive)

Example: 5000
dueDatestring or string= 10 charactersrequired

Due date (ISO 8601 format: YYYY-MM-DD)

Example: "2025-01-15"
One of:

Due date (ISO 8601 format: YYYY-MM-DD)

= 10 characters
string(date)= 10 characters

Due date (ISO 8601 format: YYYY-MM-DD)

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

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

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
metadataobject

Additional custom key-value pairs

Example: {"internalReference":"INV-789","key1":"value1","key2":"value2"}
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
curl -i -X POST \
  https://public-sandbox.tryjeeves.com/v1/boletos \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "amount": 1000,
    "dueDate": "2026-11-30",
    "memo": "Invoice INV-789",
    "payerData": {
      "name": "Global Tech",
      "personType": "legal",
      "documentNumber": "12345678000195",
      "email": "finance@globaltech.com",
      "phone": {
        "countryCode": "055",
        "areaCode": "11",
        "number": "987654321"
      },
      "address": {
        "street": "Av. Paulista",
        "number": "1000",
        "neighborhood": "Bela Vista",
        "postalCode": "01310100",
        "city": "São Paulo",
        "state": "SP"
      }
    },
    "discount": {
      "type": "absolute",
      "tiers": [
        {
          "amount": 50,
          "limitDate": "2026-11-15"
        },
        {
          "amount": 25,
          "limitDate": "2026-11-25"
        }
      ]
    }
  }'

Responses

Creates a boleto and returns its details.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Get Boleto by ID

Request

Retrieves a specific boleto by its ID.

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

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

Responses

Boleto details.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Cancel Boleto

Request

Cancels a registered boleto by its ID.

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

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

Responses

Cancels a boleto and returns its details.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Extend Boleto

Request

Requests a due-date extension for a registered boleto.

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

Boleto ID (UUID v4).

Headers
Accept-Languagestring

Language code for localization.

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

BoletoExtendDto

newDueDatestring= 10 charactersrequired

The new due date (ISO 8601 format YYYY-MM-DD).

Example: "2026-09-15"
curl -i -X POST \
  'https://public-sandbox.tryjeeves.com/v1/boletos/{id}/extend' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "newDueDate": "2026-09-15"
  }'

Responses

Extends a boleto's due date and returns its details.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Configure Boleto Discount

Request

Configures an early-payment discount (desconto) on a registered boleto, replacing any tiers already configured.

The change is applied asynchronously: the response returns the boleto with pendingDiscount set, and discount keeps showing what the payer can currently claim until the bank confirms the change. After confirmation, pendingDiscount returns to null and discount holds the new configuration.

Tier rules

  • 1 to 3 tiers, with limitDate strictly ascending and before the boleto's due date.
  • Amount types (absolute, anticipation_*_daily_amount) require amount on every tier and do not accept percentage.
  • Percentage types (percentage, anticipation_*_daily_percentage) require percentage (0.01 to 100) on every tier and do not accept amount.
  • anticipation_* types accrue per day paid early; the total discount cannot reach the boleto amount.
  • The boleto must be registered and not yet due.
  • If the boleto has an amount reduction (confirmed or awaiting confirmation), the discount is checked against netAmount, what the payer owes, instead of amount. See POST /v1/boletos/{id}/rebate.

Errors

HTTPCodeWhen
400validation_errorThe request body is malformed (see the tier rules above).
404boleto_not_foundThe boleto doesn't exist.
409boleto_discount_in_flightA discount change for this boleto is already awaiting confirmation. Retry once it completes.
422boleto_not_discountableThe boleto is not registered yet.
422boleto_discount_window_closedThe boleto is due today or already past due.
422boleto_invalid_discountA limitDate is not before the due date, or an accruing discount would reach the boleto amount, or the amount the payer owes if the boleto has an amount reduction.
422boleto_discount_not_allowedDiscounts are not available for this type of boleto.
Path
idstring[^\/#\?]+?required

Boleto ID (UUID v4).

Headers
Accept-Languagestring

Language code for localization.

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

BoletoDiscountRequestDto

discountobject(BoletoDiscountDto)required
discount.​typestringrequired

Discount type, shared by every tier.

  • absolute: a fixed amount off if paid by the tier's limitDate.
  • percentage: a fixed percentage off if paid by the tier's limitDate.
  • anticipation_calendar_days_daily_amount / anticipation_workdays_daily_amount: an amount off for each calendar or business day paid before the tier's limitDate.
  • anticipation_calendar_days_daily_percentage / anticipation_workdays_daily_percentage: a percentage off for each calendar or business day paid before the tier's limitDate.
Enum"absolute""percentage""anticipation_calendar_days_daily_amount""anticipation_workdays_daily_amount""anticipation_calendar_days_daily_percentage""anticipation_workdays_daily_percentage"
Example: "absolute"
discount.​tiersArray of objects(BoletoDiscountTierDto)[ 1 .. 3 ] itemsrequired

Between 1 and 3 tiers, with limitDate strictly ascending. An accruing discount cannot reach the boleto amount.

discount.​tiers[].​amountnumber> 0

Discount amount in BRL. Required for the amount types (absolute, anticipation_calendar_days_daily_amount, anticipation_workdays_daily_amount) and not allowed for the percentage types. For anticipation_* types it is a per-day amount.

Example: 50
discount.​tiers[].​percentagenumber[ 0.01 .. 100 ]

Discount percentage of the boleto amount. Required for the percentage types (percentage, anticipation_calendar_days_daily_percentage, anticipation_workdays_daily_percentage) and not allowed for the amount types. For anticipation_* types it is a per-day rate.

Example: 5
discount.​tiers[].​limitDatestring= 10 charactersrequired

Date the payer must pay by to earn this tier (ISO 8601 format YYYY-MM-DD). Must come before the boleto's due date.

Example: "2026-10-20"
curl -i -X POST \
  'https://public-sandbox.tryjeeves.com/v1/boletos/{id}/discount' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "discount": {
      "type": "absolute",
      "tiers": [
        {
          "amount": 50,
          "percentage": 5,
          "limitDate": "2026-10-20"
        }
      ]
    }
  }'

Responses

Discount change accepted. Returns the boleto with pendingDiscount set.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Remove Boleto Discount

Request

Removes the early-payment discount from a registered boleto. No request body is needed.

The bank cannot clear a discount, so a nominal one (BRL 0.01) is submitted in its place. Like configuring a discount, the change is applied asynchronously: the response returns the boleto with pendingDiscount set until the bank confirms it. Errors

HTTPCodeWhen
404boleto_not_foundThe boleto doesn't exist.
409boleto_discount_in_flightA discount change for this boleto is already awaiting confirmation. Retry once it completes.
422boleto_not_discountableThe boleto is not registered yet.
422boleto_discount_window_closedThe boleto is due today or already past due.
422boleto_discount_not_allowedDiscounts are not available for this type of boleto.
Path
idstring[^\/#\?]+?required

Boleto 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/boletos/{id}/discount/remove' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Discount removal accepted. Returns the boleto with pendingDiscount set.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Reduce Boleto Amount

Request

Requests an amount reduction (abatimento) on a registered boleto. Send newAmount, the amount the payer should owe, not the reduction itself. It must be lower than the boleto amount.

The change is applied asynchronously: the response returns the boleto with pendingRebate set (type: rebate). Until the bank confirms the change, netAmount and rebate keep showing what the payer currently owes. After confirmation, pendingRebate returns to null, rebate holds the reduction and netAmount the new amount owed. The boleto amount always remains the face value.

Changing an amount that is already reduced

A boleto takes one reduction at a time and a reduction cannot be updated in place. To set a different amount:

  1. Call POST /v1/boletos/{id}/rebate/cancel to restore the original amount.
  2. Wait until pendingRebate is null and rebate is null.
  3. Call this endpoint again with the new newAmount.

Rules

  • The boleto must be registered. Unlike a discount, a reduction can also be requested on a boleto that is past due.
  • newAmount must be greater than zero and lower than amount, with at most 2 decimal places.
  • The reduction is refused if the boleto's discount, applied or awaiting confirmation, would reach or exceed newAmount. Likewise, a discount is refused if it would reach or exceed netAmount. Lower the discount or choose a higher amount.
  • This feature must be enabled for your company.

Errors

HTTPCodeWhen
400validation_errorThe request body is malformed: newAmount is missing, is not a number, is not positive or has more than 2 decimal places.
403AuthErrorThe credential does not have the boletos:write scope.
403boleto_rebate_not_enabledBoleto amount reduction is not enabled for your company.
404boleto_not_foundThe boleto doesn't exist.
409boleto_rebate_in_flightAn amount change (reduction or restore) for this boleto is already awaiting confirmation. Retry once it completes.
409boleto_rebate_already_activeThe boleto already has a reduced amount. Restore the original amount, wait for confirmation, and then set the new one.
422boleto_not_rebatableThe boleto is not registered.
422boleto_invalid_rebatenewAmount is not greater than zero and lower than the boleto amount.
422boleto_rebate_conflicts_with_discountThe boleto's discount would reach or exceed newAmount.
Path
idstring[^\/#\?]+?required

Boleto ID (UUID v4).

Headers
Accept-Languagestring

Language code for localization.

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

BoletoRebateRequestDto

newAmountnumber> 0required

The amount the payer should owe after the reduction, in BRL. This is not the reduction itself. It must be lower than the boleto amount, with at most 2 decimal places.

Example: 3500
curl -i -X POST \
  'https://public-sandbox.tryjeeves.com/v1/boletos/{id}/rebate' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "newAmount": 3500
  }'

Responses

Amount reduction accepted. Returns the boleto with pendingRebate set.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

Restore Boleto Original Amount

Request

Cancels the amount reduction (abatimento) on a registered boleto, so the payer owes the full boleto amount again. No request body is needed. It is the first step to set a different reduced amount; see POST /v1/boletos/{id}/rebate.

Like reducing the amount, the change is applied asynchronously: the response returns the boleto with pendingRebate set (type: cancel_rebate, with the rebateAmount being removed) until the bank confirms it. Until then, netAmount and rebate keep showing the reduced amount. After confirmation, pendingRebate and rebate return to null and netAmount equals amount. Wait for that before requesting a new reduction.

Errors

HTTPCodeWhen
403AuthErrorThe credential does not have the boletos:write scope.
403boleto_rebate_not_enabledBoleto amount reduction is not enabled for your company.
404boleto_not_foundThe boleto doesn't exist.
409boleto_rebate_in_flightAn amount change (reduction or restore) for this boleto is already awaiting confirmation. Retry once it completes.
422boleto_not_rebatableThe boleto is not registered.
422boleto_no_active_rebateThe boleto has no reduced amount to restore.
Path
idstring[^\/#\?]+?required

Boleto 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/boletos/{id}/rebate/cancel' \
  -H 'Accept-Language: en-US' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Restore of the original amount accepted. Returns the boleto with pendingRebate set.

Bodyapplication/json
idstring= 36 charactersrequired

Unique boleto identification key in uuid v4 format.

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

Boleto status. A cancel request returns cancellation_in_progress while the cancellation is being processed.

Enum"accepted""rejected""payment_notice""notary_office_payment_notice""registered""payment_blocked""paid""written_off""cancellation_in_progress"
Example: "registered"
amountnumbernon-empty> 0required

The boleto payment amount (face value). An amount reduction does not change it; see netAmount for what the payer owes.

Example: 4000
dueDatestring or string= 10 charactersrequired

The due date (ISO 8601 format YYYY-MM-DD).

Example: "2024-07-12"
One of:

The due date (ISO 8601 format YYYY-MM-DD).

= 10 characters
string(date)= 10 characters

The due date (ISO 8601 format YYYY-MM-DD).

memostring<= 320 characters

Optional note for the payer, shown on the boleto.

Example: "Payment for marketing services"
barcodestringnon-emptyrequired

The barcode for the boleto.

Example: "32994978900005000000001546128483498231955341"
digitableLinestringnon-emptyrequired

The digitable line for the boleto.

Example: "32990001524612848349582319553408497890000500002"
payerDataobject(PayerDataDto)required
payerData.​namestring[ 1 .. 100 ] charactersrequired

The payer name.

Example: "Global Tech"
payerData.​personTypestringnon-emptyrequired

The type of person.

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

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

Example: "12345678000195"
payerData.​emailstring(email)[ 1 .. 320 ] characters

The payer email address

Example: "finance@globaltech.com"
payerData.​phoneobject(PayerPhoneDto)
payerData.​addressobject(PayerAddressDto)
qrCodeImagestring

QR code image in base64 format for BolePix payments.

Example: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY..."
bolepixEnabledboolean

If true, generates a BolePix boleto with a Pix QR code.

Default true
paymentDetailsobject(PaymentDetailsDto)
fineobject(FineDto)

Fine to be applied.

interestobject(InterestDto)

Interest to be applied.

discountobject(BoletoDiscountDto)
pendingDiscountobject(BoletoDiscountDto)
netAmountnumber> 0

What the payer owes, in BRL. It is amount less any confirmed amount reduction (abatimento), and equals amount when there is none.

Example: 3500
rebateobject(BoletoRebateDto)
pendingRebateobject(BoletoPendingRebateDto)
paidRebateAmountnumber or null

The amount reduction the bank applied when the boleto was paid, in BRL. Null until the boleto is paid, or when no reduction applied.

Example: 500
metadataobject

Boleto metadata.

Example: {"key1":"value1"}
createdAtstring or stringnon-emptyrequired

Creation date (ISO 8601).

Example: "2024-06-23T09:15:32Z"
One of:

Creation date (ISO 8601).

non-empty
string(date)non-empty

Creation date (ISO 8601).

updatedAtstring or string

Updated at (ISO 8601).

Example: "2024-06-26T12:53:47Z"
One of:

Updated at (ISO 8601).

string(date)

Updated at (ISO 8601).

Response
application/json
{ "id": "4c2fa514-a44d-40f2-8d57-c0caf1b9165a", "status": "registered", "amount": 4000, "dueDate": "2024-07-12", "memo": "Payment for marketing services", "barcode": "32994978900005000000001546128483498231955341", "digitableLine": "32990001524612848349582319553408497890000500002", "payerData": { "name": "Global Tech", "personType": "legal", "documentNumber": "12345678000195", "email": "finance@globaltech.com", "phone": { … }, "address": { … } }, "qrCodeImage": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAY...", "bolepixEnabled": true, "paymentDetails": { "paidAmount": 5000, "method": "account_debit", "origin": "qr_code", "creditDate": "2025-01-15" }, "fine": { "type": "absolute", "amount": 100, "percentage": 10, "daysAfterDue": 10 }, "interest": { "type": "calendar_days_daily_amount", "dailyAmount": 100, "monthlyPercentage": 10, "daysAfterDue": 10 }, "discount": { "type": "absolute", "tiers": [ … ] }, "pendingDiscount": { "type": "absolute", "tiers": [ … ] }, "netAmount": 3500, "rebate": { "amount": 500 }, "pendingRebate": { "type": "rebate", "newAmount": 3500, "rebateAmount": 500 }, "paidRebateAmount": 500, "metadata": { "key1": "value1" }, "createdAt": "2024-06-23T09:15:32Z", "updatedAt": "2024-06-26T12:53:47Z" }

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

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