> ## 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 Pix charge

> Creates a Pix charge: a QR code your customer pays with Pix to credit the wallet. The answer carries the Pix Copia e Cola code in `emv` — render it as a QR code, or let the payer paste it in their bank's app.

What you send decides the kind of charge:

* **No `dueDate`** — a static QR code for `txnAmount`. It never expires and can't be canceled. Only the payer's `name` is used, at most 25 characters, and `description` is at most 39.
* **`dueDate`, with no fine, interest, discount or rebate** — a charge payable until the end of `expiresAt` — or of `dueDate`, when you omit it — in UTC.
* **`dueDate` with a fine, interest, discount or rebate** — a charge with a due date: paid before `dueDate` it gets the discount, after it the fine and the interest, and it can be paid until `expiresAt`. The payer's bank works out the amount due on the day.

The answer is the charge, `status` `ACTIVE`. When it is paid, it moves to `PAID` with the amount received in `confirmedAmount`, and your organization's `PIX_BILLING_PAID` webhook is sent — see [Receive webhooks](https://developers.portao3.com.br/guides/webhooks.md). Follow it with `GET .../pix-billing/{pixId}` too.

Send `forceWallet=true` to receive the payment in the wallet in the path. Without it, the QR code is issued for the organization's main wallet — the payment is credited there, and a charge that belongs to another wallet is never marked `PAID`. Use `default` as `walletId` for the main wallet.

The QR code pays into one of the receiving wallet's active Pix keys, so that wallet needs one. The account's limits for incoming Pix apply. When the payment institution refuses the charge, or doesn't answer, after it was recorded, the charge stays `CREATING` with no QR code (`emv`): nobody received a code to pay it, so create a new one.

When the payment institution throttles the request, the answer is a `429` whose `code` is the institution's own reason; retry later.

Any member of the organization can create one.


## OpenAPI

````yaml /api-reference/banking.openapi.json post /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/pix-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}/pix-billing:
    post:
      tags:
        - Pix Billing
      summary: Create a Pix charge
      description: >-
        Creates a Pix charge: a QR code your customer pays with Pix to credit
        the wallet. The answer carries the Pix Copia e Cola code in `emv` —
        render it as a QR code, or let the payer paste it in their bank's app.
      operationId: >-
        postRealmsByRealmIdOrganizationsByOrganizationIdAccountsByAccountIdWalletsByWalletIdPixBilling
      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 the charge belongs to (24 hexadecimal characters),
            or `default` for the organization's main wallet. Send
            `forceWallet=true` too, or the payment goes to the main wallet.
          schema:
            type: string
            pattern: ^([0-9a-fA-F]{24}|default)$
          example: 66f2a3d1b4d3e80012c9a0d2
        - name: forceWallet
          in: query
          required: false
          description: >-
            Send `true` to receive the payment in the wallet in the path. When
            you omit it (or send `false`), the QR code is issued for the
            organization's main wallet: the payment is credited there, and a
            charge that belongs to another wallet is never marked `PAID`.
            `?forceWallet` with no value counts as `true`.
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
              - ''
          example: 'true'
        - 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, as an ISO 4217 numeric code: always
                    `986` (Brazilian real). The number `986` is accepted too.
                  example: '986'
                txnAmount:
                  type: integer
                  minimum: 1
                  description: Amount of the charge, in cents.
                  example: 28500
                txnCanAmountChange:
                  type: boolean
                  description: >-
                    `true` lets the payer change the amount when paying; `false`
                    locks it. Not used by a static QR code (no `dueDate`), which
                    always asks for `txnAmount`.
                  example: false
                dueDate:
                  description: >-
                    Due date of the charge (`YYYY-MM-DD`), today or later.
                    Without it, the charge is a static QR code: it never expires
                    and can't be canceled.
                  example: '2026-11-20'
                  type: string
                expiresAt:
                  description: >-
                    Last day the charge can be paid (`YYYY-MM-DD`), on or after
                    `dueDate`. When you omit it (or send it blank), `dueDate` is
                    the last day. Not used without `dueDate`.
                  example: '2026-12-20'
                  type: string
                description:
                  description: >-
                    Description of the charge, shown to the payer. At most 39
                    characters without `dueDate` (a static QR code).
                  example: Pedido 4821
                  type: string
                customer:
                  type: object
                  properties:
                    name:
                      type: string
                      minLength: 1
                      maxLength: 50
                      description: >-
                        Name of the payer, at most 50 characters — at most 25
                        without `dueDate` (a static QR code). Characters other
                        than letters, digits, spaces, `.` and `-` are removed
                        before it is checked and stored.
                      example: Juliana Ribeiro
                    document:
                      type: string
                      minLength: 1
                      description: >-
                        CPF (11 digits) or CNPJ (14 characters) of the payer,
                        with valid check digits. Dots, dashes, slashes and
                        spaces are removed, and letters upper-cased (a CNPJ may
                        carry letters).
                      example: '12345678909'
                    email:
                      type: string
                      format: email
                      pattern: >-
                        ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                      description: E-mail of the payer.
                      example: juliana.ribeiro@exemplo.com.br
                    address:
                      type: object
                      properties:
                        street:
                          type: string
                          minLength: 1
                          maxLength: 100
                          description: Street of the payer's address.
                          example: Avenida Paulista
                        number:
                          type: string
                          minLength: 1
                          maxLength: 10
                          description: Number of the address.
                          example: '1578'
                        complement:
                          description: Complement of the address.
                          example: Sala 12
                          type: string
                          maxLength: 50
                        neighborhood:
                          type: string
                          minLength: 1
                          maxLength: 100
                          description: Neighborhood of the address.
                          example: Bela Vista
                        postalCode:
                          type: string
                          minLength: 1
                          description: >-
                            Postal code (CEP) of the address, as `NNNNN-NNN` —
                            with the dash.
                          example: 01310-200
                        city:
                          type: string
                          minLength: 1
                          maxLength: 50
                          description: City of the address.
                          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 of the address — its two-letter code.
                          example: SP
                      required:
                        - street
                        - number
                        - neighborhood
                        - postalCode
                        - city
                        - state
                      description: Address of the payer.
                  required:
                    - name
                    - document
                    - email
                    - address
                  description: >-
                    The payer. Required for every charge, but a static QR code
                    (no `dueDate`) uses only its `name`.
                txnFineAmount:
                  description: >-
                    Fine charged once when the charge is paid after `dueDate`.
                    Ignored without `dueDate`. Omit it for no fine.
                  type: object
                  properties:
                    amount:
                      description: >-
                        The fine: with `PERCENT`, a percentage of the amount
                        from 0.0101 to 100; with `FIXED_VALUE`, an amount in
                        cents (an integer, at least 1). `null` means no fine; so
                        does omitting `txnFineAmount`.
                      example: 2
                      type: number
                      nullable: true
                    amountType:
                      type: string
                      enum:
                        - FIXED_VALUE
                        - PERCENT
                      description: >-
                        `PERCENT` — a percentage of the amount — or
                        `FIXED_VALUE` — an amount in cents.
                      example: PERCENT
                  required:
                    - amountType
                  nullable: true
                txnInterestAmount:
                  description: >-
                    Interest charged for each day the charge is paid after
                    `dueDate`. Ignored without `dueDate`. Omit it for no
                    interest.
                  type: object
                  properties:
                    amount:
                      description: >-
                        The interest: with a `PERCENT_POINT_*` type, a
                        percentage from 0.0101 to 100; with the `AMOUNT_*` types
                        and `UNT_PER_WORKING_DAYS`, an amount in cents (an
                        integer, at least 1). `null` means no interest; so does
                        omitting `txnInterestAmount`.
                      example: 1
                      type: number
                      nullable: true
                    amountType:
                      type: string
                      enum:
                        - AMOUNT_CALENDAR_DAYS
                        - AMOUNT_WORKING_DAYS
                        - PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                        - PERCENT_POINT_PER_DAY_CALENDAR_DAYS
                        - PERCENT_POINT_PER_YEAR_CALENDAR_DAYS
                        - PERCENT_POINT_PER_MONTH_WORKING_DAYS
                        - PERCENT_POINT_PER_DAY_WORKING_DAYS
                        - PERCENT_POINT_PER_YEAR_WORKING_DAYS
                        - UNT_PER_WORKING_DAYS
                      description: >-
                        How the interest accrues for each day late: an amount
                        per calendar day (`AMOUNT_CALENDAR_DAYS`) or per
                        business day (`AMOUNT_WORKING_DAYS`,
                        `UNT_PER_WORKING_DAYS`), or a percentage per day, month
                        or year, counted in calendar days
                        (`PERCENT_POINT_PER_DAY_CALENDAR_DAYS`,
                        `PERCENT_POINT_PER_MONTH_CALENDAR_DAYS`,
                        `PERCENT_POINT_PER_YEAR_CALENDAR_DAYS`) or in business
                        days (`PERCENT_POINT_PER_DAY_WORKING_DAYS`,
                        `PERCENT_POINT_PER_MONTH_WORKING_DAYS`,
                        `PERCENT_POINT_PER_YEAR_WORKING_DAYS`).
                      example: PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                  required:
                    - amountType
                  nullable: true
                txnDiscountAmount:
                  description: >-
                    Discount for paying before `dueDate`. Ignored without
                    `dueDate`. Omit it for no discount.
                  type: object
                  properties:
                    amount:
                      description: >-
                        The discount: with a `PERCENT_*` type, a percentage from
                        0.0101 to 100; with an `AMOUNT_*` type, an amount in
                        cents (an integer, at least 1). `null` means no
                        discount; so does omitting `txnDiscountAmount`.
                      example: 50
                      type: number
                      nullable: true
                    amountType:
                      type: string
                      enum:
                        - AMOUNT_PER_ANTICIPATION_CALENDAR_DAYS
                        - AMOUNT_PER_ANTICIPATION_WORKING_DAYS
                        - PERCENT_PER_ANTICIPATION_CALENDAR_DAYS
                        - PERCENT_PER_ANTICIPATION_WORKING_DAYS
                      description: >-
                        How the discount accrues for each day paid before
                        `dueDate`: an amount (`AMOUNT_*`) or a percentage
                        (`PERCENT_*`), counted in calendar days
                        (`*_CALENDAR_DAYS`) or business days (`*_WORKING_DAYS`).
                      example: AMOUNT_PER_ANTICIPATION_CALENDAR_DAYS
                  required:
                    - amountType
                  nullable: true
                txnRebateAmount:
                  description: >-
                    Rebate deducted from the amount whenever the charge is paid.
                    Ignored without `dueDate`. Omit it for no rebate.
                  type: object
                  properties:
                    amount:
                      description: >-
                        The rebate: with `PERCENT`, a percentage of the amount
                        from 0.0101 to 100; with `FIXED_VALUE`, an amount in
                        cents (an integer, at least 1). `null` means no rebate;
                        so does omitting `txnRebateAmount`.
                      example: 1000
                      type: number
                      nullable: true
                    amountType:
                      type: string
                      enum:
                        - FIXED_VALUE
                        - PERCENT
                      description: >-
                        `PERCENT` — a percentage of the amount — or
                        `FIXED_VALUE` — an amount in cents.
                      example: FIXED_VALUE
                  required:
                    - amountType
                  nullable: true
              required:
                - txnCurrency
                - txnAmount
                - txnCanAmountChange
                - customer
      responses:
        '201':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  _id:
                    type: string
                    description: ID of the charge.
                    example: 672a1f4eb4d3e80012c9b3e7
                  environment:
                    type: string
                    enum:
                      - LIVE
                      - TEST
                    description: '`LIVE` (production) or `TEST` (sandbox).'
                    example: LIVE
                  realmId:
                    type: string
                    description: ID of the realm.
                    example: f495ff0c-ab54-4f99-8e92-ca8682e4de9b
                  organizationId:
                    type: string
                    description: ID of the organization.
                    example: c4bd3f21-dfbd-44e8-8055-68ba15bed410
                  accountId:
                    type: string
                    description: ID of the account.
                    example: 66f2a1c7b4d3e80012c9a0b4
                  walletId:
                    type: string
                    description: ID of the wallet the charge belongs to.
                    example: 66f2a3d1b4d3e80012c9a0d2
                  status:
                    type: string
                    enum:
                      - CREATING
                      - ACTIVE
                      - PAID
                      - CANCELED
                    description: >-
                      `CREATING` while the QR code is being issued — one that
                      stays `CREATING` never got its QR code (`emv`) back, so it
                      can't be shown to a payer; `ACTIVE` once it can be paid;
                      `PAID` once paid; `CANCELED` once canceled.
                    example: ACTIVE
                  emv:
                    type: string
                    description: >-
                      The Pix Copia e Cola code: render it as a QR code or let
                      the payer paste it in their bank's app. Absent while
                      `CREATING`.
                    example: >-
                      00020101021226900014br.gov.bcb.pix2568qrcodes.exemplo.com.br/v2/cobv/b8c1d3e54f2a4c6b9d7e1a2b3c4d5e6f5204000053039865802BR5915Loja
                      Exemplo6009Sao Paulo62070503***6304A1B2
                  key:
                    type: string
                    description: >-
                      The Pix key the charge pays into — one of the receiving
                      wallet's active keys. Absent while `CREATING`.
                    example: financeiro@lojaexemplo.com.br
                  txnCurrency:
                    type: string
                    description: 'Currency of the charge: `986` (Brazilian real).'
                    example: '986'
                  txnAmount:
                    type: number
                    description: Amount of the charge, in cents.
                    example: 28500
                  txnCanAmountChange:
                    type: boolean
                    description: Whether the payer can change the amount when paying.
                    example: false
                  txnFineAmount:
                    description: >-
                      Fine charged once when the charge is paid after `dueDate`.
                      When it has none: `null`, or an `amount` of `0` (a static
                      QR code keeps the object it was created with).
                    type: object
                    properties:
                      amount:
                        type: number
                        nullable: true
                        description: >-
                          The fine: a percentage of the amount with `PERCENT`,
                          an amount in cents with `FIXED_VALUE`. `0` or `null`
                          means no fine.
                        example: 2
                      amountType:
                        type: string
                        enum:
                          - FIXED_VALUE
                          - PERCENT
                        description: >-
                          `PERCENT` or `FIXED_VALUE`. Absent on the `{ amount: 0
                          }` a static QR code gets when it was created without
                          one.
                        example: PERCENT
                    required:
                      - amount
                    nullable: true
                  txnInterestAmount:
                    description: >-
                      Interest charged for each day the charge is paid after
                      `dueDate`. When it has none: `null`, or an `amount` of `0`
                      (a static QR code keeps the object it was created with).
                    type: object
                    properties:
                      amount:
                        type: number
                        nullable: true
                        description: >-
                          The interest: a percentage with a `PERCENT_POINT_*`
                          type, an amount in cents otherwise. `0` or `null`
                          means no interest.
                        example: 1
                      amountType:
                        type: string
                        enum:
                          - AMOUNT_CALENDAR_DAYS
                          - AMOUNT_WORKING_DAYS
                          - PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                          - PERCENT_POINT_PER_DAY_CALENDAR_DAYS
                          - PERCENT_POINT_PER_YEAR_CALENDAR_DAYS
                          - PERCENT_POINT_PER_MONTH_WORKING_DAYS
                          - PERCENT_POINT_PER_DAY_WORKING_DAYS
                          - PERCENT_POINT_PER_YEAR_WORKING_DAYS
                          - UNT_PER_WORKING_DAYS
                        description: >-
                          How the interest accrues for each day late. Absent on
                          the `{ amount: 0 }` a static QR code gets when it was
                          created without one.
                        example: PERCENT_POINT_PER_MONTH_CALENDAR_DAYS
                    required:
                      - amount
                    nullable: true
                  txnDiscountAmount:
                    description: >-
                      Discount for paying before `dueDate`. When it has none:
                      `null`, or an `amount` of `0` (a static QR code keeps the
                      object it was created with).
                    type: object
                    properties:
                      amount:
                        type: number
                        nullable: true
                        description: >-
                          The discount: a percentage with a `PERCENT_*` type, an
                          amount in cents with an `AMOUNT_*` one. `0` or `null`
                          means no discount.
                        example: 0
                      amountType:
                        type: string
                        enum:
                          - AMOUNT_PER_ANTICIPATION_CALENDAR_DAYS
                          - AMOUNT_PER_ANTICIPATION_WORKING_DAYS
                          - PERCENT_PER_ANTICIPATION_CALENDAR_DAYS
                          - PERCENT_PER_ANTICIPATION_WORKING_DAYS
                        description: >-
                          How the discount accrues for each day paid early.
                          Absent on the `{ amount: 0 }` a static QR code gets
                          when it was created without one.
                        example: AMOUNT_PER_ANTICIPATION_CALENDAR_DAYS
                    required:
                      - amount
                    nullable: true
                  txnRebateAmount:
                    description: >-
                      Rebate deducted from the amount. When it has none: `null`,
                      or an `amount` of `0` (a static QR code keeps the object
                      it was created with).
                    type: object
                    properties:
                      amount:
                        type: number
                        nullable: true
                        description: >-
                          The rebate: a percentage of the amount with `PERCENT`,
                          an amount in cents with `FIXED_VALUE`. `0` or `null`
                          means no rebate.
                        example: 0
                      amountType:
                        type: string
                        enum:
                          - FIXED_VALUE
                          - PERCENT
                        description: >-
                          `PERCENT` or `FIXED_VALUE`. Absent on the `{ amount: 0
                          }` a static QR code gets when it was created without
                          one.
                        example: FIXED_VALUE
                    required:
                      - amount
                    nullable: true
                  dueDate:
                    type: string
                    nullable: true
                    description: >-
                      Due date of the charge — midnight UTC when it was sent as
                      `YYYY-MM-DD`. `null` for a static QR code.
                    example: '2026-11-20T00:00:00.000Z'
                    format: date-time
                  expiresAt:
                    type: string
                    nullable: true
                    description: >-
                      Last day the charge can be paid — midnight UTC when it was
                      sent as `YYYY-MM-DD`. `null` when you didn't send one.
                    example: '2026-12-20T00:00:00.000Z'
                    format: date-time
                  description:
                    type: string
                    description: Description of the charge. Empty when you didn't send one.
                    example: Pedido 4821
                  customer:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Name of the payer.
                        example: Juliana Ribeiro
                      document:
                        type: string
                        description: CPF or CNPJ of the payer, without formatting.
                        example: '12345678909'
                      email:
                        type: string
                        description: E-mail of the payer.
                        example: juliana.ribeiro@exemplo.com.br
                      address:
                        type: object
                        properties:
                          street:
                            type: string
                            description: Street.
                            example: Avenida Paulista
                          number:
                            type: string
                            description: Number.
                            example: '1578'
                          complement:
                            type: string
                            description: Complement, when you sent one.
                            example: Sala 12
                          neighborhood:
                            type: string
                            description: Neighborhood.
                            example: Bela Vista
                          postalCode:
                            type: string
                            description: Postal code (CEP), as `NNNNN-NNN`.
                            example: 01310-200
                          city:
                            type: string
                            description: City.
                            example: São Paulo
                          state:
                            type: string
                            description: State — its two-letter code.
                            example: SP
                        required:
                          - street
                          - number
                          - neighborhood
                          - postalCode
                          - city
                          - state
                        description: Address of the payer.
                    required:
                      - name
                      - document
                      - email
                      - address
                    description: The payer.
                  confirmedAmount:
                    type: number
                    description: Amount paid, in cents. `0` until the charge is `PAID`.
                    example: 0
                  confirmedAmountAuthorized:
                    type: number
                    description: 'Not used: always `0`.'
                    example: 0
                  confirmedAt:
                    type: string
                    description: When the payment was received. Only on a `PAID` charge.
                    example: '2026-11-18T14:32:07.512Z'
                    format: date-time
                  canceledAt:
                    type: string
                    description: When the charge was canceled. Only on a `CANCELED` charge.
                    example: '2026-11-19T09:15:42.087Z'
                    format: date-time
                  external:
                    type: object
                    properties:
                      pixBillingId:
                        type: string
                        description: ID of the charge at the payment institution.
                        example: b8c1d3e5-4f2a-4c6b-9d7e-1a2b3c4d5e6f
                      locationId:
                        type: string
                        description: >-
                          ID of the location of the charge's QR code — only on a
                          charge with `dueDate`.
                        example: d4e5f6a7-b8c9-4d0e-8f1a-2b3c4d5e6f7a
                      transactionId:
                        type: string
                        description: Pix transaction ID (`txid`) the payment carries.
                        example: 672a1f4eb4d3e80012c9b3e70000
                    description: >-
                      References of the charge at the payment institution.
                      Absent while `CREATING`.
                  createdAt:
                    type: string
                    description: When the charge was created.
                    example: '2026-11-05T18:21:34.112Z'
                    format: date-time
                  updatedAt:
                    type: string
                    description: When the charge last changed.
                    example: '2026-11-05T18:21:35.004Z'
                    format: date-time
                  __v:
                    type: number
                    description: Version of the record.
                    example: 0
                required:
                  - _id
                  - environment
                  - realmId
                  - organizationId
                  - accountId
                  - walletId
                  - status
                  - txnCurrency
                  - txnAmount
                  - txnCanAmountChange
                  - txnFineAmount
                  - txnInterestAmount
                  - txnDiscountAmount
                  - txnRebateAmount
                  - dueDate
                  - expiresAt
                  - description
                  - customer
                  - confirmedAmount
                  - confirmedAmountAuthorized
                  - createdAt
                  - updatedAt
                  - __v
                description: >-
                  A Pix charge: a QR code the payer pays with Pix to credit the
                  wallet.
        '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:
            incoming Pix is turned off, or `txnAmount` is above the maximum per
            incoming Pix.
          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
        '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.


            `PIX_DICT_NOT_FOUND` — The wallet that receives the payment has no
            active Pix key 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
                      - PIX_DICT_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, query or body field is invalid — for example
            a `dueDate` before today, an `expiresAt` before `dueDate`, or,
            without `dueDate`, a `customer.name` over 25 characters; `fields`
            lists each one.


            `BANKING_PROVIDER_VALIDATION_ERROR` — The payment institution
            refused a field of the charge — for example the payer's e-mail;
            `fields` names it. The charge stays `CREATING`.
          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
                      - BANKING_PROVIDER_VALIDATION_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.
                  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: >-
            `BANKING_PROVIDER_INTEGRATION_ERROR` — Too many requests reached the
            wallet's balance at once. Retry shortly.
          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
                    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: Too Many Requests
        '500':
          description: >-
            `NOT_FOUND` — The payment institution didn't find the wallet's
            account or its Pix key. The charge stays `CREATING`, with no QR
            code.


            `BANKING_PROVIDER_UNAVAILABLE` — The payment institution answered
            with a server error. Retry; if the charge was already recorded, it
            stays `CREATING`, with no QR code.


            `BANKING_PROVIDER_INTEGRATION_ERROR` — The payment institution
            answered with an error this API doesn't recognize. If the charge was
            already recorded, it stays `CREATING`.


            `INTERNAL_SERVER_ERROR` — An unexpected failure. If it persists,
            contact support with the `traceId`.
          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:
                      - NOT_FOUND
                      - BANKING_PROVIDER_UNAVAILABLE
                      - BANKING_PROVIDER_INTEGRATION_ERROR
                      - INTERNAL_SERVER_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: NOT_FOUND
                origin: BANKING
                message: Critical data was not found on banking provider
        '502':
          description: >-
            `BANKING_PROVIDER_UNAVAILABLE` — The payment institution's gateway
            failed. Retry.
          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 payment institution was
            unavailable. Retry.
          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 payment institution didn't
            answer in time. Retry.
          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.