> ## Documentation Index
> Fetch the complete documentation index at: https://developers.portao3.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a boleto charge

> Issues a boleto that charges a payer, to be paid into the wallet.

The bank registers the boleto right away: the charge comes back `CREATED`, with the `digitableLine` and `barcode` to show the payer — download its PDF to send it. Rarely, it comes back `INITIATED`, still without them: read the charge until it is `CREATED`. There is no notification for a boleto charge: read it to know when it is `PAID`, which credits `confirmedAmount` to the wallet. A charge can't be cancelled: an unpaid boleto stays payable until `expiresAt` and is then written off by the bank (`CANCELED`).

The boleto is issued for exactly `txnAmount`: the payer can't pay a different amount. Amounts are in cents; the percentage rates of `txnDiscountAmount`, `txnFineAmount` and `txnInterestAmount` are fractions (`0.02` is 2%). The payer's name and address are printed on the boleto as the bank keeps them — without accents, the name cut to 50 characters, the street to 40 and the neighborhood to 20 — and the response shows them that way.

When the bank refuses the boleto, or doesn't answer, the error is returned and the charge is kept with status `PROCESSING`, without a barcode — Portão 3 will never give it one. If the bank refused it (a `4xx`), fix the request and create the charge again. If the bank didn't answer (a `5xx`), it may still have registered the boleto, which the payer could then pay from their bank's app: contact support before creating the charge again, so the payer isn't charged twice. A refusal under the bank's business rules comes back with the bank's status and its reason as `code` — in lower case, unless this API knows it by name; the reason `not_found` is always a `500` `NOT_FOUND` — and an answer this API doesn't recognize is a `500` `BANKING_PROVIDER_INTEGRATION_ERROR`. Use `default` as `walletId` for the organization's main wallet. Any member of the organization can create one.


## OpenAPI

````yaml /api-reference/banking.openapi.json post /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/boleto-billing
openapi: 3.0.3
info:
  title: Banking
  version: 1.0.0
  description: >-
    Portão 3 banking API. Every endpoint requires a bearer token in the
    Authorization header (Authorization: Bearer <token>) unless its page states
    otherwise; see the Authentication guide. That requirement is not repeated
    per endpoint. Generated by tools/openapi from code (routes + security) and
    the hand-written spec (request/response bodies). Banking attaches a zod
    validationSchema at the route; request bodies are resolved from it (object +
    array roots). Responses have no presenter layer, so they stay tier=unknown.
    Confidence tiers: generated:typed=318 copied:manual=0 unknown=0.
servers:
  - url: https://api.banking.v2.portao3.com.br/
    description: production
  - url: https://api.banking.dev.3pers.com.br/
    description: development
security: []
tags:
  - name: Accounts
  - name: Account Limits
  - name: Wallets
  - name: Transaction Limits
  - name: Transfers
  - name: Cards
  - name: Card Limits
  - name: Cards 3DS
  - name: Pix Payments
  - name: Pix Keys
  - name: Pix Billing
  - name: PIX Automatic
  - name: PIX Infractions (MED)
  - name: Boleto Payments
  - name: Boleto Billing
  - name: TED Payments
  - name: Transactions
  - name: Transaction Reversals
  - name: Spend Review
  - name: Cashback
  - name: Currency Codes
paths:
  /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/boleto-billing:
    post:
      tags:
        - Boleto Billing
      summary: Create a boleto charge
      description: Issues a boleto that charges a payer, to be paid into the wallet.
      operationId: >-
        postRealmsByRealmIdOrganizationsByOrganizationIdAccountsByAccountIdWalletsByWalletIdBoletoBilling
      parameters:
        - name: realmId
          in: path
          required: true
          description: |-
            ID of your realm.

            Format: `UUID`
          schema:
            type: string
            format: uuid
          example: f495ff0c-ab54-4f99-8e92-ca8682e4de9b
        - name: organizationId
          in: path
          required: true
          description: |-
            ID of the organization.

            Format: `UUID`
          schema:
            type: string
            format: uuid
          example: c4bd3f21-dfbd-44e8-8055-68ba15bed410
        - name: accountId
          in: path
          required: true
          description: ID of the organization's account (24 hexadecimal characters).
          schema:
            type: string
            pattern: ^[0-9a-fA-F]{24}$
          example: 66f2a1c7b4d3e80012c9a0b4
        - name: walletId
          in: path
          required: true
          description: >-
            ID of the wallet that receives the payment (24 hexadecimal
            characters), or `default` for the organization's main wallet.
          schema:
            type: string
            pattern: ^([0-9a-fA-F]{24}|default)$
          example: 66f2a3d1b4d3e80012c9a0d2
        - name: x-environment
          in: header
          required: false
          description: >-
            Environment of the charge: `LIVE` (production) or `TEST` (sandbox).
            When you omit it, `TEST` is used; any other value is rejected.
          schema:
            type: string
            enum:
              - LIVE
              - TEST
          example: LIVE
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                txnCurrency:
                  type: string
                  enum:
                    - '986'
                  description: >-
                    Currency of the charge: `986` (Brazilian real) — the only
                    one a boleto takes.
                  example: '986'
                txnAmount:
                  type: integer
                  minimum: 1
                  maximum: 24999900
                  description: >-
                    Amount of the boleto, in cents — at most 24,999,900 (R$
                    249,999.00).
                  example: 150000
                txnDivergentAmountType:
                  type: string
                  enum:
                    - ANY_AMOUNT
                    - BETWEEN_MIN_AND_MAX
                    - ONLY_MIN_AMOUNT
                    - NOT_ALLOW_DIFFERENT_AMOUNT
                  description: >-
                    Whether the payer may pay a different amount. Send
                    `NOT_ALLOW_DIFFERENT_AMOUNT`: the boleto is always issued
                    for exactly `txnAmount`, whatever you send, and the charge
                    comes back with `NOT_ALLOW_DIFFERENT_AMOUNT`. With
                    `BETWEEN_MIN_AND_MAX` or `ONLY_MIN_AMOUNT` you must still
                    send `txnMinAmount` and `txnMaxAmount`.
                  example: NOT_ALLOW_DIFFERENT_AMOUNT
                txnAmountLimitType:
                  description: >-
                    Unit of `txnMinAmount` and `txnMaxAmount`: `FIXED_VALUE`
                    (cents) or `PERCENT`. Not used today, since the payer can't
                    pay a different amount.
                  example: FIXED_VALUE
                  type: string
                  enum:
                    - FIXED_VALUE
                    - PERCENT
                txnMaxAmount:
                  description: >-
                    Highest amount the payer may pay. Required, an integer of at
                    least 1, with `BETWEEN_MIN_AND_MAX` or `ONLY_MIN_AMOUNT`;
                    otherwise omit it or send `0`. Not used today, since the
                    payer can't pay a different amount.
                  example: 0
                  type: number
                  nullable: true
                txnMinAmount:
                  description: >-
                    Lowest amount the payer may pay. Required, an integer of at
                    least 1, with `BETWEEN_MIN_AND_MAX` or `ONLY_MIN_AMOUNT`;
                    otherwise omit it or send `0`. Not used today, since the
                    payer can't pay a different amount.
                  example: 0
                  type: number
                  nullable: true
                txnDiscountAmount:
                  description: Discounts for paying early. Omit it for none.
                  type: array
                  items:
                    type: object
                    properties:
                      date:
                        type: string
                        minLength: 1
                        description: >-
                          Last day the discount applies (`YYYY-MM-DD`). It must
                          be before `dueDate`.
                        example: '2026-11-15'
                      amount:
                        type: number
                        description: >-
                          The discount. For a `PERCENT_*` type, a fraction of
                          the amount from `0.01` (1%) to `1` (100%) — `0.05` is
                          5%. For the other types, an amount in cents, an
                          integer of at least 1.
                        example: 0.05
                      amountType:
                        type: string
                        enum:
                          - EXEMPT
                          - FIXED_AMOUNT_UNTIL_INFORMED_DATE
                          - PERCENT_UNTIL_INFORMED_DATE
                          - AMOUNT_PER_ANTICIPATION_CALENDAR_DAYS
                          - AMOUNT_PER_ANTICIPATION_WORKING_DAYS
                          - PERCENT_PER_ANTICIPATION_CALENDAR_DAYS
                          - PERCENT_PER_ANTICIPATION_WORKING_DAYS
                        description: >-
                          How the discount is computed:
                          `FIXED_AMOUNT_UNTIL_INFORMED_DATE` or
                          `PERCENT_UNTIL_INFORMED_DATE` — a fixed amount or a
                          percentage when paid by `date`;
                          `AMOUNT_PER_ANTICIPATION_*` or
                          `PERCENT_PER_ANTICIPATION_*` — per calendar or working
                          day paid early; `EXEMPT` — no discount.
                        example: PERCENT_UNTIL_INFORMED_DATE
                    required:
                      - date
                      - amount
                      - amountType
                  nullable: true
                txnFineAmount:
                  description: A one-off fine for paying late. Omit it for none.
                  type: object
                  properties:
                    date:
                      type: string
                      minLength: 1
                      description: >-
                        Day the fine starts to apply (`YYYY-MM-DD`). It must be
                        after `dueDate`.
                      example: '2026-11-21'
                    amount:
                      type: number
                      description: >-
                        The fine. For `PERCENT`, a fraction of the amount from
                        `0.01` (1%) to `1` (100%) — `0.02` is 2%. For
                        `FIXED_VALUE`, an amount in cents, an integer of at
                        least 1.
                      example: 0.02
                    amountType:
                      type: string
                      enum:
                        - FIXED_VALUE
                        - PERCENT
                      description: '`PERCENT` of the amount, or a `FIXED_VALUE` in cents.'
                      example: PERCENT
                  required:
                    - date
                    - amount
                    - amountType
                  nullable: true
                txnInterestAmount:
                  description: Interest for paying late. Omit it for none.
                  type: object
                  properties:
                    date:
                      type: string
                      minLength: 1
                      description: >-
                        Day interest starts to accrue (`YYYY-MM-DD`). It must be
                        after `dueDate`.
                      example: '2026-11-21'
                    amount:
                      type: number
                      description: >-
                        The interest. For a `PERCENT_POINT_*` type, a monthly
                        rate as a fraction from `0.01` (1% a month) to `1` (100%
                        a month). For the other types, an amount in cents, an
                        integer of at least 1 and below 3.3% of `txnAmount`.
                      example: 0.01
                    amountType:
                      type: string
                      enum:
                        - AMOUNT_CALENDAR_DAYS
                        - AMOUNT_WORKING_DAYS
                        - PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                        - PERCENT_POINT_PER_MONTH_WORKING_DAYS
                        - PERCENT_POINT_PER_DAY_CALENDAR_DAYS
                        - PERCENT_POINT_PER_DAY_WORKING_DAYS
                        - EXEMPT
                      description: >-
                        How the interest is computed: `AMOUNT_*` — an amount in
                        cents per calendar or working day late;
                        `PERCENT_POINT_PER_MONTH_*` — a rate per month, counted
                        in calendar or working days; `EXEMPT` — no interest.
                        `PERCENT_POINT_PER_DAY_*` is accepted, but the boleto is
                        issued with the same number as a rate per MONTH (`0.01`
                        is charged as 1% a month, not 1% a day) and comes back
                        with the matching `PERCENT_POINT_PER_MONTH_*` type.
                      example: PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                  required:
                    - date
                    - amount
                    - amountType
                  nullable: true
                dueDate:
                  type: string
                  minLength: 1
                  description: 'Due date of the boleto (`YYYY-MM-DD`): today or later.'
                  example: '2026-11-20'
                expiresAt:
                  type: string
                  minLength: 1
                  description: >-
                    Last day the boleto can be paid (`YYYY-MM-DD`). It must be
                    after `dueDate`.
                  example: '2026-12-20'
                description:
                  description: Description of the charge.
                  example: Mensalidade de novembro
                  type: string
                customer:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 100
                      description: >-
                        Name of the payer. Accents are removed, and so is any
                        character other than letters, digits, spaces and `[ ] (
                        ) , . & $ ! -`; the first 50 characters are kept.
                      example: Padaria Pao Dourado Ltda
                    document:
                      type: string
                      minLength: 1
                      description: >-
                        CPF or CNPJ of the payer. Dots, dashes, slashes and
                        spaces are removed and letters upper-cased before it is
                        checked.
                      example: '11222333000181'
                    address:
                      type: object
                      properties:
                        street:
                          type: string
                          minLength: 1
                          maxLength: 100
                          description: Street. The first 40 characters are kept.
                          example: Rua das Laranjeiras
                        number:
                          type: string
                          minLength: 1
                          maxLength: 10
                          description: Number.
                          example: '250'
                        complement:
                          description: Complement.
                          example: Loja 2
                          type: string
                          maxLength: 50
                        neighborhood:
                          type: string
                          minLength: 1
                          maxLength: 100
                          description: Neighborhood. The first 20 characters are kept.
                          example: Centro
                        postalCode:
                          type: string
                          pattern: ^\d{5}-\d{3}$
                          description: CEP, formatted `00000-000`.
                          example: 01310-100
                        city:
                          type: string
                          minLength: 1
                          maxLength: 50
                          description: City.
                          example: São Paulo
                        state:
                          type: string
                          enum:
                            - AC
                            - AL
                            - AP
                            - AM
                            - BA
                            - CE
                            - ES
                            - GO
                            - MA
                            - MT
                            - MS
                            - MG
                            - PA
                            - PB
                            - PR
                            - PE
                            - PI
                            - RJ
                            - RN
                            - RS
                            - RO
                            - RR
                            - SC
                            - SP
                            - SE
                            - TO
                            - DF
                          description: State, as its two-letter code.
                          example: SP
                      required:
                        - street
                        - number
                        - neighborhood
                        - postalCode
                        - city
                        - state
                      description: Address of the payer, printed on the boleto.
                  required:
                    - name
                    - document
                    - address
                  description: 'The payer: the person or company the boleto is issued to.'
              required:
                - txnCurrency
                - txnAmount
                - txnDivergentAmountType
                - dueDate
                - expiresAt
                - customer
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  _id:
                    type: string
                    description: >-
                      ID of the charge. Use it as `{boletoId}` in the charge
                      endpoints.
                    example: 6727c3d4b4d3e80012c9b5c2
                  environment:
                    type: string
                    enum:
                      - LIVE
                      - TEST
                    description: >-
                      Environment of the charge: `LIVE` (production) or `TEST`
                      (sandbox).
                    example: LIVE
                  realmId:
                    type: string
                    description: ID of the realm.
                    example: f495ff0c-ab54-4f99-8e92-ca8682e4de9b
                    format: uuid
                  organizationId:
                    type: string
                    description: ID of the organization.
                    example: c4bd3f21-dfbd-44e8-8055-68ba15bed410
                    format: uuid
                  accountId:
                    type: string
                    description: ID of the account.
                    example: 66f2a1c7b4d3e80012c9a0b4
                  walletId:
                    type: string
                    description: ID of the wallet that receives the payment.
                    example: 66f2a3d1b4d3e80012c9a0d2
                  status:
                    type: string
                    enum:
                      - INITIATED
                      - REQUESTED
                      - ENQUEUED
                      - PROCESSING
                      - CREATED
                      - PROCESSING_PAYMENT
                      - PAID
                      - CANCELED
                      - ERROR
                    description: >-
                      Status of the charge:

                      - `CREATED` — registered at the bank and payable: show
                      `digitableLine`, `barcode` or the PDF.

                      - `PAID` — paid and credited to the wallet (see
                      `confirmedAmount`).

                      - `CANCELED` — written off unpaid by the bank some weeks
                      after `expiresAt`; it can't be paid.

                      - `INITIATED`, `REQUESTED`, `ENQUEUED` — accepted by the
                      bank and being registered; there is   no barcode yet, so
                      read the charge again until it is `CREATED`.

                      - `PROCESSING` — being issued. A charge still `PROCESSING`
                      after its creation answered an error   never gets a
                      barcode from Portão 3. If the bank refused it, create a
                      new one; if the bank   didn't answer, it may have
                      registered the boleto anyway — contact support before
                      creating   a new one, so the payer isn't charged twice.

                      - `PROCESSING_PAYMENT` — paid and being credited.

                      - `ERROR` — the bank could not issue it.
                    example: CREATED
                  barcode:
                    type: string
                    nullable: true
                    description: >-
                      Barcode of the boleto (44 digits). Absent or `null` until
                      the charge is `CREATED`.
                    example: '34191162100001500001090000012345678901234567'
                  digitableLine:
                    type: string
                    nullable: true
                    description: >-
                      Digitable line of the boleto (*linha digitável*, 47
                      digits) — what the payer types into their bank app. Absent
                      or `null` until the charge is `CREATED`.
                    example: '34191090080123456789001234567890116210000150000'
                  txnCurrency:
                    type: string
                    description: >-
                      Currency of the charge: `986` (Brazilian real). A charge
                      whose creation failed before 2026-11 keeps the currency it
                      was sent with.
                    example: '986'
                  txnAmount:
                    type: number
                    description: Amount of the boleto, in cents.
                    example: 150000
                  txnDivergentAmountType:
                    type: string
                    enum:
                      - ANY_AMOUNT
                      - BETWEEN_MIN_AND_MAX
                      - ONLY_MIN_AMOUNT
                      - NOT_ALLOW_DIFFERENT_AMOUNT
                    description: >-
                      Whether the payer may pay a different amount. Always
                      `NOT_ALLOW_DIFFERENT_AMOUNT` once the charge is issued:
                      the boleto is issued for exactly `txnAmount`.
                    example: NOT_ALLOW_DIFFERENT_AMOUNT
                  txnAmountLimitType:
                    type: string
                    enum:
                      - FIXED_VALUE
                      - PERCENT
                    description: >-
                      Unit of `txnMinAmount` and `txnMaxAmount`. Always
                      `FIXED_VALUE` once the charge is issued.
                    example: FIXED_VALUE
                  txnMaxAmount:
                    type: number
                    description: >-
                      Highest amount the payer may pay, in cents — `txnAmount`
                      once the charge is issued.
                    example: 150000
                  txnMinAmount:
                    type: number
                    description: >-
                      Lowest amount the payer may pay, in cents — `txnAmount`
                      once the charge is issued.
                    example: 150000
                  txnDiscountAmount:
                    description: >-
                      Discounts for paying early. Empty when there are none —
                      `null` on some charges created before 2026-11, whose
                      creation failed.
                    type: array
                    items:
                      type: object
                      properties:
                        _id:
                          type: string
                          description: ID of the discount entry.
                          example: 6727c3d4b4d3e80012c9b5c3
                        date:
                          type: string
                          description: Last day the discount applies.
                          example: '2026-11-15T00:00:00.000Z'
                          format: date-time
                        amount:
                          type: number
                          description: >-
                            The discount: a fraction of the amount for a
                            `PERCENT_*` type (`0.05` is 5%), otherwise an amount
                            in cents.
                          example: 0.05
                        amountType:
                          type: string
                          enum:
                            - EXEMPT
                            - FIXED_AMOUNT_UNTIL_INFORMED_DATE
                            - PERCENT_UNTIL_INFORMED_DATE
                            - AMOUNT_PER_ANTICIPATION_CALENDAR_DAYS
                            - AMOUNT_PER_ANTICIPATION_WORKING_DAYS
                            - PERCENT_PER_ANTICIPATION_CALENDAR_DAYS
                            - PERCENT_PER_ANTICIPATION_WORKING_DAYS
                          description: How the discount is computed.
                          example: PERCENT_UNTIL_INFORMED_DATE
                      required:
                        - _id
                        - date
                        - amount
                        - amountType
                      description: A discount for paying early.
                    nullable: true
                  txnFineAmount:
                    description: >-
                      The fine for paying late. Absent (or `null`, on some older
                      charges) when there is none.
                    type: object
                    properties:
                      date:
                        type: string
                        description: Day the fine starts to apply.
                        example: '2026-11-21T00:00:00.000Z'
                        format: date-time
                      amount:
                        type: number
                        description: >-
                          The fine: a fraction of the amount for `PERCENT`
                          (`0.02` is 2%), otherwise an amount in cents.
                        example: 0.02
                      amountType:
                        type: string
                        enum:
                          - FIXED_VALUE
                          - PERCENT
                        description: '`PERCENT` of the amount, or a `FIXED_VALUE` in cents.'
                        example: PERCENT
                    nullable: true
                  txnInterestAmount:
                    description: >-
                      The interest for paying late. Absent (or `null`, on some
                      older charges) when there is none.
                    type: object
                    properties:
                      date:
                        type: string
                        description: Day interest starts to accrue.
                        example: '2026-11-21T00:00:00.000Z'
                        format: date-time
                      amount:
                        type: number
                        description: >-
                          The interest: a monthly rate as a fraction for a
                          `PERCENT_POINT_*` type (`0.01` is 1% a month),
                          otherwise an amount in cents per day late. On some
                          charges created before 2026-11 with
                          `PERCENT_POINT_PER_MONTH_CALENDAR_DAYS`, the rate is
                          shown as a percentage instead (`1` for 1%) — what is
                          charged is right.
                        example: 0.01
                      amountType:
                        type: string
                        enum:
                          - AMOUNT_CALENDAR_DAYS
                          - AMOUNT_WORKING_DAYS
                          - PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                          - PERCENT_POINT_PER_MONTH_WORKING_DAYS
                          - PERCENT_POINT_PER_DAY_CALENDAR_DAYS
                          - PERCENT_POINT_PER_DAY_WORKING_DAYS
                          - EXEMPT
                        description: >-
                          How the interest is computed. A charge created with a
                          `PERCENT_POINT_PER_DAY_*` type comes back with the
                          matching `PERCENT_POINT_PER_MONTH_*` type — the rate
                          it is charged at.
                        example: PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                    nullable: true
                  dueDate:
                    type: string
                    description: Due date of the boleto.
                    example: '2026-11-20T00:00:00.000Z'
                    format: date-time
                  expiresAt:
                    type: string
                    description: Last day the boleto can be paid.
                    example: '2026-12-20T00:00:00.000Z'
                    format: date-time
                  description:
                    type: string
                    description: Description of the charge. Empty when none was sent.
                    example: Mensalidade de novembro
                  customer:
                    type: object
                    properties:
                      name:
                        type: string
                        description: >-
                          Name of the payer, as printed on the boleto: without
                          accents, at most 50 characters. On a charge whose
                          creation failed, as it was sent.
                        example: Padaria Pao Dourado Ltda
                      document:
                        type: string
                        description: CPF or CNPJ of the payer, unformatted.
                        example: '11222333000181'
                      address:
                        type: object
                        properties:
                          street:
                            type: string
                            description: Street (at most 40 characters on the boleto).
                            example: Rua das Laranjeiras
                          number:
                            type: string
                            description: Number.
                            example: '250'
                          complement:
                            type: string
                            nullable: true
                            description: Complement. `null` or absent when there is none.
                            example: Loja 2
                          neighborhood:
                            type: string
                            description: >-
                              Neighborhood (at most 20 characters on the
                              boleto).
                            example: Centro
                          postalCode:
                            type: string
                            description: CEP, formatted `00000-000`.
                            example: 01310-100
                          city:
                            type: string
                            description: City.
                            example: São Paulo
                          state:
                            type: string
                            description: State, as its two-letter code.
                            example: SP
                        required:
                          - street
                          - number
                          - neighborhood
                          - postalCode
                          - city
                          - state
                        description: Address of the payer, as printed on the boleto.
                    required:
                      - name
                      - document
                      - address
                    description: >-
                      The payer, as printed on the boleto (as it was sent, on a
                      charge whose creation failed).
                  finalBeneficiary:
                    type: object
                    properties:
                      document:
                        type: string
                        description: CPF or CNPJ of the beneficiary, unformatted.
                        example: '45678912000134'
                      documentType:
                        type: string
                        enum:
                          - CPF
                          - CNPJ
                        description: Whether `document` is a `CPF` or a `CNPJ`.
                        example: CNPJ
                      name:
                        type: string
                        description: Name of the beneficiary.
                        example: ACME COMERCIO LTDA
                    description: >-
                      The beneficiary printed on the boleto. Absent until the
                      charge is issued.
                  external:
                    type: object
                    properties:
                      boletoBillingId:
                        type: string
                        description: The bank's ID of the boleto.
                        example: 3c5e7a9b-1d2f-4b6a-8c0e-2f4a6b8c0d1e
                        format: uuid
                    description: >-
                      Reference of the boleto at the bank. Absent until the
                      charge is issued.
                  confirmedAt:
                    type: string
                    description: >-
                      When the payment was credited. Present only on `PAID`
                      charges.
                    example: '2026-11-18T14:32:10.000Z'
                    format: date-time
                  confirmedAmount:
                    type: number
                    description: >-
                      Amount paid, in cents — with any discount, fine or
                      interest applied. `0` until the charge is paid.
                    example: 0
                  confirmedCurrency:
                    type: string
                    description: >-
                      Currency of the payment: `986` (Brazilian real). Absent
                      until the charge is issued.
                    example: '986'
                  confirmedBalanceCategory:
                    type: string
                    enum:
                      - FLEX_NATIONAL
                      - FLEX_INTERNATIONAL
                      - FOOD
                      - GAS
                      - MOBILITY
                      - TOLL
                      - FLEX_NATIONAL_WITHOUT_WITHDRAWALS
                      - ADS
                      - SAAS
                      - HOTEL
                      - AIRLINES
                      - TRAVEL
                      - BLOCKED
                      - CASHBACK
                    description: >-
                      Balance category of the wallet the payment is credited to.
                      Absent until the charge is issued.
                    example: FLEX_INTERNATIONAL
                  createdAt:
                    type: string
                    description: When the charge was created.
                    example: '2026-11-05T13:10:22.000Z'
                    format: date-time
                  updatedAt:
                    type: string
                    description: When the charge last changed.
                    example: '2026-11-05T13:10:24.000Z'
                    format: date-time
                  __v:
                    type: number
                    description: Internal revision counter of the record.
                    example: 0
                required:
                  - _id
                  - environment
                  - realmId
                  - organizationId
                  - accountId
                  - walletId
                  - status
                  - txnCurrency
                  - txnAmount
                  - txnDivergentAmountType
                  - txnMaxAmount
                  - txnMinAmount
                  - txnDiscountAmount
                  - dueDate
                  - expiresAt
                  - description
                  - customer
                  - confirmedAmount
                  - createdAt
                  - updatedAt
                description: A boleto charge issued from one of your wallets.
        '400':
          description: >-
            `ACCOUNT_NOT_OPEN` — The account isn't open in this environment.


            `WALLET_NOT_ACTIVE` — The wallet isn't `ACTIVE`.


            `ACCOUNT_LIMITS_EXCEEDED` — The account's limits don't allow it:
            receiving by boleto is turned off, or `txnAmount` is above the
            maximum per boleto.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - ACCOUNT_NOT_OPEN
                      - WALLET_NOT_ACTIVE
                      - ACCOUNT_LIMITS_EXCEEDED
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: ACCOUNT_NOT_OPEN
                origin: BANKING
                message: Account not open
        '401':
          description: >-
            `INVALID_BANKING_PROVIDER` — The account's bank can't issue boletos.
            Contact support.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - INVALID_BANKING_PROVIDER
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: INVALID_BANKING_PROVIDER
                origin: BANKING
                message: The provided Banking Provider is invalid
        '404':
          description: >-
            `ACCOUNT_NOT_FOUND` — No account with this ID exists in the
            organization.


            `WALLET_NOT_FOUND` — No wallet with this ID exists in the account
            and environment — or, with `walletId` `default`, the account has no
            main wallet in this environment.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - ACCOUNT_NOT_FOUND
                      - WALLET_NOT_FOUND
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: ACCOUNT_NOT_FOUND
                origin: BANKING
                message: Account not found
        '422':
          description: >-
            `BAD_REQUEST` — A path parameter or a body field is invalid;
            `fields` lists each one. Nothing was created.


            `WALLET_EXTERNAL_PROPERTIES_NOT_SET` — The wallet isn't set up at
            the bank to receive by boleto. Contact support.


            `BANKING_PROVIDER_VALIDATION_ERROR` — The bank rejected a field;
            `fields` names it, with the bank's own rule, when the bank says
            which. Fix it and create the charge again.


            `unexpected_provider_response` — The bank refused the boleto without
            saying why. Create the charge again later.


            `account_not_active` — The bank considers the account inactive.
            Contact support.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - BAD_REQUEST
                      - WALLET_EXTERNAL_PROPERTIES_NOT_SET
                      - BANKING_PROVIDER_VALIDATION_ERROR
                      - unexpected_provider_response
                      - account_not_active
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                  fields:
                    type: array
                    description: >-
                      One entry per invalid request field (validation errors
                      only).
                    items:
                      type: object
                      properties:
                        field:
                          type: string
                          description: >-
                            Path of the invalid field, e.g. `label` or
                            `values[0].value`.
                          example: label
                        message:
                          type: string
                          description: Why the field was rejected.
                          example: label is required
                        code:
                          type: string
                          description: >-
                            `<FIELD>_<REASON>` — e.g. `LABEL_REQUIRED`,
                            `TYPE_ONE_OF`, `VALUES_VALUE_TYPE_ERROR`.
                          example: LABEL_REQUIRED
                        values:
                          type: array
                          items:
                            type: string
                          description: >-
                            The accepted values, when the field is an
                            enumeration.
                      required:
                        - field
                        - message
                        - code
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: BAD_REQUEST
                origin: BANKING
                message: >-
                  Bad Request: Your request is invalid or incomplete. Please
                  make sure you are requesting with the right fields.
                fields:
                  - field: txnCurrency
                    message: 'Invalid option: expected one of "986"'
                    code: TXNCURRENCY_ONE_OF
                    values:
                      - '986'
        '429':
          description: >-
            `INTEGRATION_ERROR` — The bank is throttling requests. When the bank
            gives a reason, the code is that reason (in lower case, unless this
            API knows it by name). Create the charge again later.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - INTEGRATION_ERROR
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: INTEGRATION_ERROR
                origin: BANKING
                message: Too many requests on banking provider
        '500':
          description: >-
            `BANKING_PROVIDER_INTEGRATION_ERROR` — The bank gave an answer this
            API doesn't recognize. It may have registered the boleto: contact
            support before creating the charge again.


            `NOT_FOUND` — The bank couldn't find the wallet's account. Contact
            support.


            `BANKING_PROVIDER_UNAVAILABLE` — The bank failed. It may have
            registered the boleto: contact support before creating the charge
            again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - BANKING_PROVIDER_INTEGRATION_ERROR
                      - NOT_FOUND
                      - BANKING_PROVIDER_UNAVAILABLE
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: BANKING_PROVIDER_INTEGRATION_ERROR
                origin: BANKING
                message: Unexpected banking provider error
        '502':
          description: >-
            `BANKING_PROVIDER_UNAVAILABLE` — The bank's gateway failed. It may
            have registered the boleto: contact support before creating the
            charge again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - BANKING_PROVIDER_UNAVAILABLE
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: BANKING_PROVIDER_UNAVAILABLE
                origin: BANKING
                message: Banking provider temporarily unavailable, please retry
        '503':
          description: >-
            `BANKING_PROVIDER_UNAVAILABLE` — The bank is unavailable. It may
            have registered the boleto: contact support before creating the
            charge again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - BANKING_PROVIDER_UNAVAILABLE
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: BANKING_PROVIDER_UNAVAILABLE
                origin: BANKING
                message: Banking provider temporarily unavailable, please retry
        '504':
          description: >-
            `BANKING_PROVIDER_UNAVAILABLE` — The bank didn't answer in time — or
            its gateway timed out. It may have registered the boleto: contact
            support before creating the charge again.
          content:
            application/json:
              schema:
                type: object
                properties:
                  traceId:
                    type: string
                    description: >-
                      Identifier of the request that failed. Quote it when
                      contacting support.
                    example: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                  code:
                    type: string
                    enum:
                      - BANKING_PROVIDER_UNAVAILABLE
                    description: >-
                      Stable, machine-readable error code. Branch on this, never
                      on `message`.
                  origin:
                    type: string
                    enum:
                      - BANKING
                    description: Service that produced the error.
                  message:
                    type: string
                    description: >-
                      Human-readable explanation. Its wording may change without
                      notice.
                required:
                  - traceId
                  - code
                  - origin
                  - message
              example:
                traceId: 1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b
                code: BANKING_PROVIDER_UNAVAILABLE
                origin: BANKING
                message: Banking provider did not respond in time, please retry

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.