openapi: 3.0.0
paths:
  /v1/auth/login:
    post:
      operationId: AuthController_signIn
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignInDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthApiResponse'
      tags:
        - Autenticação
  /v1/marketplace/transactions/future_releases:
    get:
      operationId: TransactionsMarketplaceController_future_releases
      summary: Lançamentos futuros
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtraveis:
            gateway_authorization,expected_on
          schema:
            example: '{ "status": "CREATED" }'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FutureReleasesResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/future_releases_daily:
    get:
      operationId: TransactionsMarketplaceController_future_releases_daily
      summary: Lançamentos futuros diários
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: gateway_authorization,date '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. Campos ordenáveis: created_at,id'
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/FutureReleasesDailyItem'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions:
    get:
      operationId: TransactionsMarketplaceController_findAll
      summary: Listar transações
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            created_at,type,status,gateway_authorization,establishment.id,representative.id,point_of_sale.type,point_of_sale.identification_number,original_amount,checkout_id 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            created_at,amount,original_amount
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/TransactionClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
    post:
      operationId: TransactionsMarketplaceController_create
      summary: Criar transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransactionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTransactionClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/export:
    get:
      operationId: TransactionsMarketplaceController_exportTransactions
      summary: Exportar transações
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileExportResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/export/{id}:
    get:
      operationId: TransactionsMarketplaceController_findOneExport
      summary: Exibir exportação de transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileExportResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/exports:
    get:
      operationId: TransactionsMarketplaceController_findAllExport
      summary: Listar exportações de transações
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: created_at,status,module '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. Campos ordenáveis: created_at'
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/FileExportResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}:
    get:
      operationId: TransactionsMarketplaceController_findOne
      summary: Exibir transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionClientGetOneResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}/cancel:
    post:
      operationId: TransactionsMarketplaceController_cancelTransaction
      summary: Cancelar transação (Disponível apenas para Boleto)
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionClientGetOneResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}/antifraud-auth:
    post:
      operationId: TransactionsMarketplaceController_antifraudAuth
      summary: Autenticação de antifraude
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AntifraudAuthDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/simulate:
    post:
      operationId: TransactionsMarketplaceController_simulateFees
      summary: Simulação de valores da transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateFeesDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateFeesClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}/qrcode:
    get:
      operationId: TransactionsMarketplaceController_generateQrCode
      summary: Gerar QR code pix
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QrCodeClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}/reversal:
    post:
      operationId: TransactionsMarketplaceController_reversal
      summary: Estornar transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReverseTransactionDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}/split:
    get:
      operationId: TransactionsMarketplaceController_findSplit
      summary: Consultar split da transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitClientResponse'
      tags:
        - Transações
      security:
        - bearer: []
    post:
      operationId: TransactionsMarketplaceController_splitTransaction
      summary: Split de transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SplitDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
      tags:
        - Transações
      security:
        - bearer: []
    delete:
      operationId: TransactionsMarketplaceController_cancelSplitTransaction
      summary: Cancelar split de transação
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transactions/{id}/receipt/reversal:
    get:
      operationId: TransactionsMarketplaceController_exportReversalReceiptPdf
      summary: Comprovante de cancelamento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: Comprovante de cancelamento em PDF.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
      tags:
        - Transações
      security:
        - bearer: []
  /v1/marketplace/transfers/pix-keys:
    post:
      operationId: PixKeysMarketplaceController_create
      summary: Criar chave Pix
      parameters:
        - name: establishment_id
          in: header
          description: ID do EC filho do marketplace que receberá a chave Pix.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePixKeyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixKeyResponse'
      tags:
        - Chaves Pix
      security:
        - bearer: []
    get:
      operationId: PixKeysMarketplaceController_findAll
      summary: Listar chaves Pix
      parameters:
        - name: establishment_id
          in: header
          description: ID do EC filho do marketplace que receberá a chave Pix.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: page
          required: false
          in: query
          description: Página da consulta.
          schema:
            minimum: 1
            type: number
        - name: limit
          required: false
          in: query
          description: Quantidade de registros por página. Máximo 100.
          schema:
            minimum: 1
            maximum: 100
            type: number
        - name: type
          required: false
          in: query
          description: Filtra por tipo da chave Pix.
          schema:
            enum:
              - CPF
              - CNPJ
              - EMAIL
              - PHONE
              - RANDOM
            type: string
        - name: status
          required: false
          in: query
          description: Filtra por status da chave Pix.
          schema:
            enum:
              - PENDING
              - CREATED
              - CANCELED
              - AWAITING_PORTABILITY
              - REVERSAL_PORTABILITY
              - REFUSED_PORTABILITY
            type: string
        - name: key
          required: false
          in: query
          description: Filtra pela chave Pix cadastrada.
          schema:
            type: string
        - name: default
          required: false
          in: query
          description: Filtra chaves marcadas como padrão.
          schema:
            type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixKeyPaginatedResponse'
      tags:
        - Chaves Pix
      security:
        - bearer: []
  /v1/marketplace/transfers/pix-keys/{id}/confirm:
    post:
      operationId: PixKeysMarketplaceController_confirm
      summary: Confirmar chave Pix
      parameters:
        - name: establishment_id
          in: header
          description: ID do EC filho do marketplace que receberá a chave Pix.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmPixKeyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixKeyResponse'
      tags:
        - Chaves Pix
      security:
        - bearer: []
  /v1/marketplace/transfers/pix-keys/{id}:
    patch:
      operationId: PixKeysMarketplaceController_update
      summary: Definir chave Pix como padrão
      parameters:
        - name: establishment_id
          in: header
          description: ID do EC filho do marketplace que receberá a chave Pix.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePixKeyDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixKeyDefaultResponse'
      tags:
        - Chaves Pix
      security:
        - bearer: []
    get:
      operationId: PixKeysMarketplaceController_findOne
      summary: Consultar chave Pix
      parameters:
        - name: establishment_id
          in: header
          description: ID do EC filho do marketplace que receberá a chave Pix.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixKeyResponse'
      tags:
        - Chaves Pix
      security:
        - bearer: []
    delete:
      operationId: PixKeysMarketplaceController_remove
      summary: Remover chave Pix
      parameters:
        - name: establishment_id
          in: header
          description: ID do EC filho do marketplace que receberá a chave Pix.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixKeyResponse'
      tags:
        - Chaves Pix
      security:
        - bearer: []
  /v1/marketplace/transfers:
    get:
      operationId: TransfersMarketplaceController_findAll
      summary: Listar transferências
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            status,type,payer.establishment.document,recipient.establishment.document,payer.document,recipient.document,description,created_at,amount,method 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: >-
            Texto de busca. Campos pesquisáveis:
            _id,description,gateway_authorization,pix_protocol,end_to_end,payer.establishment.document,recipient.establishment.document,payer.first_name,recipient.first_name,payer.last_name,recipient.last_name
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. Campos ordenáveis: created_at,amount'
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/TransferResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/transfers/check-p2p:
    post:
      operationId: TransfersMarketplaceController_checkP2p
      summary: Consultar dados do destinatário antes de criar transferência P2P
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckTransferP2pDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/P2pCheckResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/transfers/{id}:
    get:
      operationId: TransfersMarketplaceController_findOne
      summary: Detalhar transferência
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/banking/transfers/ted:
    post:
      operationId: BankingTransfersMarketplaceController_ted
      summary: Criar transferência TED
      parameters:
        - name: mTLS
          in: header
          description: >-
            Esta rota requer autenticação mTLS. Você deve enviar seu certificado
            de cliente (ex: --cert client.crt --key client.key).
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransferTedDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/banking/transfers/p2p:
    post:
      operationId: BankingTransfersMarketplaceController_p2p
      summary: Criar transferência P2P
      parameters:
        - name: mTLS
          in: header
          description: >-
            Esta rota requer autenticação mTLS. Você deve enviar seu certificado
            de cliente (ex: --cert client.crt --key client.key).
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransferP2pDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/banking/transfers/pix-init:
    post:
      operationId: BankingTransfersMarketplaceController_init
      summary: Iniciar pagamento Pix
      parameters:
        - name: mTLS
          in: header
          description: >-
            Esta rota requer autenticação mTLS. Você deve enviar seu certificado
            de cliente (ex: --cert client.crt --key client.key).
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PixPaymentInitDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixPaymentInitResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/banking/transfers/pix-confirm:
    post:
      operationId: BankingTransfersMarketplaceController_confirm
      summary: Confirmar pagamento Pix
      parameters:
        - name: mTLS
          in: header
          description: >-
            Esta rota requer autenticação mTLS. Você deve enviar seu certificado
            de cliente (ex: --cert client.crt --key client.key).
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PixPaymentConfirmDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixPaymentConfirmResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/banking/transfers/pix-refunded/{transfer_id}:
    post:
      operationId: BankingTransfersMarketplaceController_refunded
      summary: Devolução do Pix
      parameters:
        - name: mTLS
          in: header
          description: >-
            Esta rota requer autenticação mTLS. Você deve enviar seu certificado
            de cliente (ex: --cert client.crt --key client.key).
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: transfer_id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PixRefundedDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixPaymentRefundedResponse'
      tags:
        - Transferências
      security:
        - bearer: []
  /v1/marketplace/establishments/transfers:
    get:
      operationId: EstablishmentsTransfersMarketplaceController_findAll
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
      security:
        - bearer: []
  /v1/marketplace/establishments/transfers/{id}:
    get:
      operationId: EstablishmentsTransfersMarketplaceController_findOne
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      security:
        - bearer: []
  /v1/marketplace/establishments:
    post:
      operationId: EstablishmentsMarketplaceController_crateEstablishment
      summary: Criar estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEstablishmentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentMarketplaceResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
    get:
      operationId: EstablishmentsMarketplaceController_findAll
      summary: Listar estabelecimentos
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: status,type,risk '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            id,created_at,updated_at,name1
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: >-
                            #/components/schemas/EstablishmentsMarketplaceResponse
      tags:
        - Estabelecimentos
      security:
        - bearer: []
  /v1/marketplace/establishments/{id}:
    put:
      operationId: EstablishmentsMarketplaceController_updateEstablishment
      summary: Atualizar estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEstablishmentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentMarketplaceResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
    get:
      operationId: EstablishmentsMarketplaceController_findOne
      summary: Exibir estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentMarketplaceResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
  /v1/marketplace/establishments/balance:
    get:
      operationId: EstablishmentsMarketplaceController_balance
      summary: Exibir saldo do estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentBalanceResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
  /v1/marketplace/establishments/extract:
    get:
      operationId: EstablishmentsMarketplaceController_extract
      summary: Lista extrato do estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: created_at '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. Campos ordenáveis: created_at'
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentExtractPaginatedResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
  /v1/marketplace/establishments/{id}/gateways/{gatewayId}:
    get:
      operationId: EstablishmentsMarketplaceController_findOneEstablishmentGateway
      summary: Exibir gateway do estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: gatewayId
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentGatewayResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
  /v1/marketplace/establishments/{id}/gateways:
    get:
      operationId: EstablishmentsMarketplaceController_findAllEstablishmentGAteways
      summary: Listar gateways do estabelecimento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros.  '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. '
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/EstablishmentGatewayResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
    post:
      operationId: EstablishmentsMarketplaceController_activateGateway
      summary: Ativar gateway
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActivateGatewayDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EstablishmentGatewayResponse'
      tags:
        - Estabelecimentos
      security:
        - bearer: []
  /v1/marketplace/representatives:
    get:
      operationId: RepresentativeMarketplaceController_findAll
      summary: Listar representantes
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: active '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            id,created_at,updated_at
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/RepresentativeResponseDto'
      tags:
        - Representantes
      security:
        - bearer: []
  /v1/marketplace/representatives/{id}:
    get:
      operationId: RepresentativeMarketplaceController_findOne
      summary: Exibir representante
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepresentativeResponseDto'
      tags:
        - Representantes
      security:
        - bearer: []
  /v1/marketplace/plans:
    get:
      operationId: PlansMarketplaceController_findAllComercials
      summary: Listar planos comerciais
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            gateway_id,modality,gateway_key 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. Campos pesquisáveis: Plan.name'
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            id,created_at,updated_at
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/PlansMarketplaceResponse'
      tags:
        - Planos do parceiro
      security:
        - bearer: []
  /v1/marketplace/plans/{id}:
    get:
      operationId: PlansMarketplaceController_findOne
      summary: Exibir plano
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanMarketplaceResponse'
      tags:
        - Planos do parceiro
      security:
        - bearer: []
  /v1/marketplace/fees-bankings:
    get:
      operationId: FeesBankingsMarketplaceController_findAll
      summary: Listar pacotes de tarifas bancárias
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros.  '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. Campos pesquisáveis: name'
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. Campos ordenáveis: id,created_at'
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/FeeBankingResponse'
      tags:
        - Tarifas bancárias do parceiro
      security:
        - bearer: []
  /v1/marketplace/fees-bankings/{id}:
    get:
      operationId: FeesBankingsMarketplaceController_findOne
      summary: Buscar tarifa bancária
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeeBankingResponse'
      tags:
        - Tarifas bancárias do parceiro
      security:
        - bearer: []
  /v1/marketplace/gateways:
    get:
      operationId: GatewaysMarketplaceController_findAll
      summary: Listar gateways
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros.  '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. '
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/GatewayResponse'
      tags:
        - Gateways
      security:
        - bearer: []
  /v1/marketplace/gateways/{id}:
    get:
      operationId: GatewaysMarketplaceController_findOne
      summary: Buscar gateway
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayResponse'
      tags:
        - Gateways
      security:
        - bearer: []
  /v1/marketplace/billets:
    post:
      operationId: BilletsMarketplaceController_createBillet
      summary: Criar boleto
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBilletDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBilletResponse'
      tags:
        - Boletos
      security:
        - bearer: []
    get:
      operationId: BilletsMarketplaceController_findAll
      summary: Listar boletos
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: status,type,risk '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            id,created_at,updated_at,name1
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/CreateBilletResponse'
      tags:
        - Boletos
      security:
        - bearer: []
  /v1/marketplace/billets/recharge:
    post:
      operationId: BilletsMarketplaceController_rechargeBillet
      summary: Recarga por boleto
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RechargeBilletDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBilletResponse'
      tags:
        - Boletos
      security:
        - bearer: []
  /v1/marketplace/billets/{id}:
    get:
      operationId: BilletsMarketplaceController_findOne
      summary: Exibir boleto
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBilletResponse'
      tags:
        - Boletos
      security:
        - bearer: []
    delete:
      operationId: BilletsMarketplaceController_remove
      summary: Cancelar boleto
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Boletos
      security:
        - bearer: []
  /v1/marketplace/establishments/{establishment_id}/split-pre:
    post:
      operationId: PreSplitMarketplaceController_createSplitRule
      summary: Criar regra de pré-split
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSplitRuleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRuleResponse'
      tags:
        - Pré-split
      security:
        - bearer: []
    get:
      operationId: PreSplitMarketplaceController_index
      summary: Listar todas as regras de pré-split da loja
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRuleIndexResponse'
      tags:
        - Pré-split
      security:
        - bearer: []
  /v1/marketplace/establishments/{establishment_id}/split-pre/{split_id}:
    put:
      operationId: PreSplitMarketplaceController_updateSplitRule
      summary: Atualizar regra de pré-split
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          required: true
          in: path
          schema:
            type: string
        - name: split_id
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSplitRuleDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRuleResponse'
      tags:
        - Pré-split
      security:
        - bearer: []
    delete:
      operationId: PreSplitMarketplaceController_deleteSplitRule
      summary: Deletar regra de pré-split
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          required: true
          in: path
          schema:
            type: string
        - name: split_id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Pré-split
      security:
        - bearer: []
    get:
      operationId: PreSplitMarketplaceController_show
      summary: Obter detalhes de uma regra de pré-split
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          required: true
          in: path
          schema:
            type: string
        - name: split_id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SplitRuleResponse'
      tags:
        - Pré-split
      security:
        - bearer: []
  /v1/marketplace/hooks/hook-events:
    post:
      operationId: WebHooksMarketplaceController_create
      summary: Registrar novo evento webhook
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhooksDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationFormattedResponse'
      tags:
        - Gerenciamento de webhooks
      security:
        - bearer: []
    get:
      operationId: WebHooksMarketplaceController_getHooks
      summary: Listar eventos de webhook
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros.  '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. Campos pesquisáveis: name,description'
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. Campos ordenáveis: id,created_at'
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/WebhookItemResponse'
      tags:
        - Gerenciamento de webhooks
      security:
        - bearer: []
  /v1/marketplace/hooks/hook-events/{event_id}:
    delete:
      operationId: WebHooksMarketplaceController_deleteIntegrationHookEvent
      summary: Remover evento webhook
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: event_id
          required: true
          in: path
          schema:
            type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteWebhookEventResponse'
      tags:
        - Gerenciamento de webhooks
      security:
        - bearer: []
  /v1/marketplace/hooks/resend:
    post:
      operationId: WebHooksMarketplaceController_resend
      summary: Redisparar webhook
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: establishment_id
          required: false
          in: header
          description: ID do estabelecimento.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResendWebhookDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResendResponse'
      tags:
        - Gerenciamento de webhooks
      security:
        - bearer: []
  /v1/marketplace/payments/check-billet:
    post:
      operationId: PaymentsMarketplaceController_checkBillet
      summary: Consultar os dados de um boleto antes do pagamento
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckBilletDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckBilletResponse'
      tags:
        - Pagamentos de boletos
      security:
        - bearer: []
  /v1/marketplace/payments:
    get:
      operationId: PaymentsMarketplaceController_findAllPayments
      summary: Listar pagamentos
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            status,amount,expected_on,payment_details.card,payment_details.balance,payment_details.fees,payment_details.total,created_at,establishment.id,establishment.type,establishment.access_type,establishment.active,establishment.first_name,establishment.last_name,establishment.risk,marketplace.type,marketplace.nickname,marketplace.active,marketplace.first_name,marketplace.last_name 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: >-
            Texto de busca. Campos pesquisáveis:
            _id,establishment.first_name,establishment.last_name,establishment.document,marketplace.first_name,marketplace.last_name,marketplace.document
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. '
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/PaymentMarketplaceResponse'
      tags:
        - Pagamentos de boletos
      security:
        - bearer: []
  /v1/marketplace/payments/{id}:
    get:
      operationId: PaymentsMarketplaceController_findOnePayment
      summary: Consultar um pagamento específico
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentFindOneResponse'
      tags:
        - Pagamentos de boletos
      security:
        - bearer: []
  /v1/marketplace/banking/payments:
    post:
      operationId: BankingPaymentsMarketplaceController_createPayment
      summary: Realizar pagamento
      parameters:
        - name: mTLS
          in: header
          description: >-
            Esta rota requer autenticação mTLS. Você deve enviar seu certificado
            de cliente (ex: --cert client.crt --key client.key).
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentFindOneResponse'
      tags:
        - Pagamentos de boletos
      security:
        - bearer: []
  /v1/marketplace/checkout:
    post:
      operationId: CheckoutMarketplaceController_create
      summary: Criar smart checkout
      parameters:
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCheckoutOrderDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutOrderResponse'
      tags:
        - Checkout
      security:
        - bearer: []
    get:
      operationId: CheckoutMarketplaceController_findAll
      summary: Listar smart checkouts
      parameters:
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: status,created_at '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            id,created_at,updated_at
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/CheckoutOrderResponse'
      tags:
        - Checkout
      security:
        - bearer: []
  /v1/marketplace/checkout/{id}:
    get:
      operationId: CheckoutMarketplaceController_findOne
      summary: Exibir smart checkout
      parameters:
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckoutOrderGetOneResponse'
      tags:
        - Checkout
      security:
        - bearer: []
    delete:
      operationId: CheckoutMarketplaceController_remove
      summary: Cancelar smart checkout
      parameters:
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
      tags:
        - Checkout
      security:
        - bearer: []
  /v1/marketplace/checkout/{id}/transactions:
    get:
      operationId: CheckoutMarketplaceController_findAllTransactions
      summary: Listar transações do smart checkout
      parameters:
        - name: establishment_id
          in: header
          description: ID do estabelecimento.
          required: true
          schema:
            type: string
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          description: Id do smart checkout
          schema:
            example: 6a3535a1383e6084c41135cb
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            created_at,type,status,gateway_authorization,marketplace.id,point_of_sale.type,point_of_sale.identification_number,original_amount 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            created_at,amount,original_amount
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionClientResponse'
      tags:
        - Checkout
      security:
        - bearer: []
  /v1/marketplace/liquidations:
    get:
      operationId: LiquidationsMarketplaceController_findAllLiquidations
      summary: Listar liquidações completas
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            amount,transactions,status,establishment.id,establishment.status,establishment.block,establishment.type 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. '
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/LiquidationMarketplaceResponse'
      tags:
        - Liquidações
      security:
        - bearer: []
  /v1/marketplace/liquidations/extract:
    get:
      operationId: LiquidationsMarketplaceController_findAllLiquidationsExtract
      summary: Listar liquidações sumarizadas
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: filters
          required: false
          in: query
          description: >-
            JSON com filtros. Campos filtráveis:
            amount,transactions,status,establishment.id,establishment.status,establishment.block,establishment.type 
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. '
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: 'JSON com lista de ordenadores. '
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/LiquidationSummaryResponse'
      tags:
        - Liquidações
      security:
        - bearer: []
  /v1/marketplace/liquidations/{id}/payments/{payment_id}/transfer:
    get:
      operationId: LiquidationsMarketplaceController_findTransfer
      summary: Exibir transferência
      parameters:
        - name: integration-key
          in: header
          description: Chave de integração.
          required: true
          schema:
            type: string
        - name: x-token
          in: header
          description: >-
            x-token utilizado para autenticação. Pode ser encontrado em nosso
            portal, na guia de integração com a api pública.
          required: true
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: payment_id
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiquidationTransferResponse'
      tags:
        - Liquidações
      security:
        - bearer: []
  /v1/activities:
    get:
      operationId: ActivityController_findAll
      summary: Listar atividades
      parameters:
        - name: filters
          required: false
          in: query
          description: 'JSON com filtros. Campos filtráveis: id,name,code '
          schema:
            example: '{ "status": "CREATED" }'
            type: string
        - name: search
          required: false
          in: query
          description: 'Texto de busca. Campos pesquisáveis: name,code'
          schema:
            example: Dado a se buscar
            type: string
        - name: perPage
          required: false
          in: query
          description: Quantidade de registros por página.
          schema:
            type: number
        - name: page
          required: false
          in: query
          description: Página.
          schema:
            type: number
        - name: sorters
          required: false
          in: query
          description: >-
            JSON com lista de ordenadores. Campos ordenáveis:
            id,name,code,created_at,updated_at
          schema:
            example: '[ { "column": "created_at", "direction": "DESC" } ]'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PaginatedResponse'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/ActivityResponseDto'
      tags:
        - Atividades
info:
  title: Api Pública
  description: Api Pública
  version: '1.0'
  contact: {}
tags: []
servers:
  - url: https://api.sandbox.paytime.com.br
    description: Sandbox
  - url: https://api.paytime.com.br
    description: Produção
components:
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http
  schemas:
    SignInDto:
      type: object
      properties:
        integration-key:
          type: string
          description: Chave de integração.
          example: c89b1331-eaae-48de-a3a8-2aa9c8e62916
        authentication-key:
          type: string
          description: >-
            Token de autenticação. Pode ser encontrado em nosso portal, na guia
            de integração com a api pública.
          example: c89b1331-eaae-48de-a3a8-2aa9c8e62916
        x-token:
          type: string
          description: >-
            x-token. Pode ser encontrado em nosso portal, na guia de integração
            com a api pública.
          example: c89b1331-eaae-48de-a3a8-2aa9c8e62916
      required:
        - integration-key
        - authentication-key
        - x-token
    AuthApiResponse:
      type: object
      properties:
        type:
          type: string
          description: Tipo.
          example: bearer
        token:
          type: string
          description: Token jwt.
      required:
        - type
        - token
    CalendarItem:
      type: object
      properties:
        amount:
          type: number
          description: Valor previsto para a data.
        date:
          type: string
          description: Data prevista.
      required:
        - amount
        - date
    AmountItem:
      type: object
      properties:
        amount:
          type: number
          description: Valor total.
      required:
        - amount
    MonthItem:
      type: object
      properties:
        amount:
          type: number
          description: Valor previsto no mês.
        year:
          type: number
          description: Ano.
        month:
          type: number
          description: Mês.
      required:
        - amount
        - year
        - month
    FutureReleasesResponse:
      type: object
      properties:
        calendar:
          description: Valores previstos por dia.
          type: array
          items:
            $ref: '#/components/schemas/CalendarItem'
        sevenDays:
          description: Total previsto para 7 dias.
          allOf:
            - $ref: '#/components/schemas/AmountItem'
        fifteenDays:
          description: Total previsto para 15 dias.
          allOf:
            - $ref: '#/components/schemas/AmountItem'
        thirtyDays:
          description: Total previsto para 30 dias.
          allOf:
            - $ref: '#/components/schemas/AmountItem'
        months:
          description: Valores previstos por mês.
          type: array
          items:
            $ref: '#/components/schemas/MonthItem'
        total:
          description: Valor total previsto.
          allOf:
            - $ref: '#/components/schemas/AmountItem'
      required:
        - calendar
        - sevenDays
        - fifteenDays
        - thirtyDays
        - months
        - total
    PaginatedResponse:
      type: object
      properties:
        total:
          type: number
          description: Número total de registros.
        page:
          type: number
          description: Página atual.
        perPage:
          type: number
          description: Número de registros por página.
        lastPage:
          type: number
          description: Número total de páginas.
      required:
        - total
        - page
        - perPage
        - lastPage
    FutureReleasesDailyItem:
      type: object
      properties:
        transaction_date:
          type: string
          description: Data / hora da transação.
        transaction_modality:
          type: string
          description: Modalidade da transação.
        brand_name:
          type: string
          description: Bandeira do cartão.
        gateway_authorization:
          type: string
          enum:
            - PAYTIME
            - ZOOP
            - PAGSEGURO
          description: Subadquirente responsável pela transação.
        point_of_sale:
          type: string
          description: Ponto de venda.
        transaction_original_amount:
          type: number
          description: Valor original da transação.
        transaction_amount:
          type: number
          description: Valor líquido da transação.
        transaction_id:
          type: string
          description: ID da transação.
        date:
          type: string
          description: Data prevista para liberação.
        installment:
          type: number
          description: Número de parcelas.
        amount:
          type: number
          description: Valor líquido em centavos.
      required:
        - transaction_date
        - transaction_modality
        - brand_name
        - gateway_authorization
        - point_of_sale
        - transaction_original_amount
        - transaction_amount
        - transaction_id
        - date
        - installment
        - amount
    Establishment:
      type: object
      properties:
        first_name:
          type: string
          description: Nome fantasia ou nome do responsável.
        last_name:
          type: string
          description: Razão social.
        document:
          type: string
          description: CPF ou CNPJ.
        type:
          type: string
          description: >-
            Tipo do estabelecimento, BUSINESS (Pessoa jurídica) ou INDIVIDUAL
            (Pessoa física).
          enum:
            - INDIVIDUAL
            - BUSINESS
        access_type:
          type: string
          description: Tipo de acesso, ACQUIRER (Adquirência) ou BANKING (Conta digital).
          enum:
            - ACQUIRER
            - BANKING
        id:
          type: number
          description: Identificador único do estabelecimento.
      required:
        - first_name
        - last_name
        - document
        - type
        - access_type
        - id
    Marketplace:
      type: object
      properties:
        id:
          type: number
          description: Id único do marketplace.
        type:
          type: string
          description: Tipo do marketplace.
          enum:
            - WHITELABEL
            - LICENSED
            - REPRESENTATIVE
        nickname:
          type: string
          description: Nome público ou apelido.
        active:
          type: boolean
          description: Indica se o marketplace está ativo.
        first_name:
          type: string
          description: Nome fantasia ou nome do responsável.
        last_name:
          type: string
          description: Razão social ou sobrenome.
        document:
          type: string
          description: CPF ou CNPJ.
      required:
        - id
        - type
        - nickname
        - active
        - first_name
        - last_name
        - document
    Representative:
      type: object
      properties:
        id:
          type: number
          description: Identificador único do representante.
        marketplace_id:
          type: number
          description: ID do marketplace.
        active:
          type: boolean
          description: Indica se o representante está ativo.
        first_name:
          type: string
          description: Nome fantasia ou nome do responsável.
        last_name:
          type: string
          description: Razão social ou sobrenome.
        document:
          type: string
          description: CPF ou CNPJ.
      required:
        - id
        - marketplace_id
        - active
        - first_name
        - last_name
        - document
    Card:
      type: object
      properties:
        brand_name:
          type: string
          description: Bandeira.
        first4_digits:
          type: string
          description: Primeiros 4 dígitos.
        last4_digits:
          type: string
          description: Últimos 4 dígitos.
        expiration_month:
          type: string
          description: Mês de expiração.
        expiration_year:
          type: string
          description: Ano de expiração.
        holder_name:
          type: string
          description: Nome do portador.
        token:
          type: string
          description: Token do cartão
      required:
        - brand_name
        - first4_digits
        - last4_digits
        - expiration_month
        - expiration_year
        - holder_name
        - token
    Customer:
      type: object
      properties:
        first_name:
          type: string
          description: Nome completo (pessoa física) ou razão social (pessoa jurídica).
        last_name:
          type: string
          description: Razão social (Pessoa jurídica).
        document:
          type: string
          description: CPF ou CNPJ.
        phone:
          type: string
          description: Número de telefone ou celular.
        email:
          type: string
          description: Endereço de e-mail.
      required:
        - first_name
        - document
    PointOfSale:
      type: object
      properties:
        type:
          type: string
          enum:
            - ONLINE
            - CHIP
            - TAP
            - SMART
          description: >-
            Modalidade - ONLINE: venda online. - CHIP: venda presencial. - TAP:
            venda presencial via Tap on Phone , - SMART: venda presencial via
            A960
        identification_type:
          type: string
          enum:
            - CHIP
            - CONTACTLESS
            - MAGNETIC
            - LINK
            - API
            - CHECKOUT
          description: >-
            - CHIP: normal. - CONTACTLESS: aproximação. - MAGNETIC: cartão
            passado. - LINK: link de pagamento. - API: transação via API. -
            CHECKOUT: transação via smart checkout.
        identification_number:
          type: string
          description: Número de identificação.
      required:
        - type
    Acquirer:
      type: object
      properties:
        name:
          type: string
        nsu:
          type: number
        acquirer_nsu:
          type: number
        end_to_end:
          type: string
        key:
          type: string
        gateway_key:
          type: string
        authorization_number:
          type: string
      required:
        - name
        - nsu
        - acquirer_nsu
        - end_to_end
        - key
        - gateway_key
        - authorization_number
    ExpectedOn:
      type: object
      properties:
        installment:
          type: number
          description: Número da parcela.
        date:
          format: date-time
          type: string
          description: Data de liquidação da parcela.
        paid_at:
          format: date-time
          type: string
          description: >-
            Data de pagamento da parcela. Exibida apenas quando o status da
            parcela for "PAID".
        amount:
          type: number
          description: Valor da parcela em centavos.
        status:
          type: string
          enum:
            - PENDING
            - PAID
            - CANCELED
            - REFUNDED
            - FAILED
          description: >-
            Status da parcela. PENDING: Pendente; PAID: Liquidada; CANCELED:
            Cancelada; REFUNDED: Estornada; FAILED: Falha.
      required:
        - installment
        - date
        - amount
        - status
    Antifraud:
      type: object
      properties:
        analyse_required:
          type: string
          description: Tipo de antifraude requerido.
          enum:
            - THREEDS
            - CLEARSALE
            - IDPAY
        analyse_status:
          type: string
          description: Status da análise de antifraude.
          enum:
            - APPROVED
            - PROCESSING
            - WAITING_AUTH
            - FAILED
            - NO_ANALYSED
        antifraud_id:
          type: string
          description: ID de identificação da transação no antifraude.
      required:
        - analyse_required
        - analyse_status
    PaymentResponse:
      type: object
      properties:
        code:
          type: string
          description: >-
            Código da adquirente que indica o motivo da resposta de autorização
            no pagamento, tanto para pagamento autorizado quanto para negado.
        message:
          type: string
          description: >-
            Mensagem amigável que descreve o motivo da não aprovação ou
            autorização da cobrança. Compatível com o padrão ABECS - Normativo
            21.
        reference:
          type: string
          description: NSU da autorização, caso o pagamento seja aprovado pelo emissor.
        authorization_code:
          type: string
          description: >-
            Código de autorização para realizar a transação, gerado pelo emissor
            do cartão.
        nsu:
          type: string
          description: >-
            O número sequencial único (NSU) é um código de 12 dígitos que
            identifica uma transação.
        reason_code:
          type: string
          description: >-
            Código do motivo de compra negada enviada pela bandeira do cartão,
            são ABECS compliance, seguindo normativa nº021. -> link da norma em
            https://api.abecs.org.br/wp-content/uploads/2019/09/Normativo-021.pdf
      required:
        - code
        - message
    InfoAdditionalResponse:
      type: object
      properties:
        key:
          type: string
          description: Chave
        value:
          type: string
          description: Valor da chave
      required:
        - key
        - value
    TransactionSplitResponse:
      type: object
      properties:
        active:
          type: boolean
          description: Indica se a transação possui split ativo.
        is_origin:
          type: boolean
          description: Indica se é a transação que originou o split.
        processing:
          type: boolean
          description: >-
            Indica se a transação está em processo de split ou de cancelamento
            de split.
        initial_amount:
          type: number
          description: >-
            Valor original da transação principal. Informado apenas caso a
            transação seja a que originou o split.
      required:
        - active
        - is_origin
        - processing
    BilletDiscountItemResponse:
      type: object
      properties:
        value:
          type: number
          description: Valor do desconto em centavos.
          example: 55
        limit_date:
          type: string
          description: Data limite para aplicação do desconto, no formato YYYY-MM-DD.
          example: '2026-12-12'
      required:
        - value
        - limit_date
    BilletDiscountResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - VALOR_DATA_FIXA
          description: Tipo de desconto.
          example: VALOR_DATA_FIXA
        items:
          description: Lista de descontos com até 3 itens.
          type: array
          items:
            $ref: '#/components/schemas/BilletDiscountItemResponse'
      required:
        - type
        - items
    BilletFineResponse:
      type: object
      properties:
        percentage:
          type: string
          description: 'Percentual de multa no formato 0.00 (ex: 2.00 representa 2%).'
          example: '1.20'
        quantity_days:
          type: number
          description: Quantidade de dias após o vencimento para cobrar a multa.
          minimum: 1
          maximum: 99
          example: 5
      required:
        - percentage
        - quantity_days
    BilletPaymentResponse:
      type: object
      properties:
        paid_via:
          type: string
          enum:
            - QRCODE
            - BARCODE
          description: Meio pelo qual o boleto foi pago.
          example: BARCODE
        date:
          format: date-time
          type: string
          description: Data do pagamento do boleto.
          example: '2025-11-24T13:46:52.015Z'
        paid_amount:
          type: number
          description: Valor pago em centavos.
          example: 10000
        interest_value:
          type: number
          description: Valor de juros cobrado em centavos.
          example: 150
        fine:
          type: number
          description: Valor de multa cobrado em centavos.
          example: 200
        deduction_value:
          type: number
          description: Valor de desconto aplicado em centavos.
          example: 0
        iof_value:
          type: number
          description: Valor de IOF recolhido em centavos.
          example: 0
      required:
        - paid_via
        - date
        - paid_amount
        - interest_value
        - fine
        - deduction_value
        - iof_value
    BilletResponse:
      type: object
      properties:
        due_date:
          type: string
          description: Data de vencimento do boleto, no formato YYYY-MM-DD.
          example: '2026-07-18'
        issue_date:
          type: string
          description: Data de emissão do boleto, no formato YYYY-MM-DD.
          example: '2026-06-18'
        entry_date:
          type: string
          description: Data de entrada/registro do boleto, no formato YYYY-MM-DD.
          example: '2023-09-09'
        document_kind:
          type: string
          enum:
            - DUPLICATA_MERCANTIL
            - DUPLICATA_SERVICO
            - NOTA_PROMISSORIA
            - NOTA_PROMISSORIA_RURAL
            - RECIBO
            - APOLICE_SEGURO
            - BOLETO_CARTAO_CREDITO
            - BOLETO_PROPOSTA
            - BOLETO_DEPOSITO_APORTE
            - CHEQUE
            - NOTA_PROMISSORIA_DIRETA
            - OUTROS
          description: Espécie do documento.
          example: BOLETO_PROPOSTA
        iof_percentage:
          type: string
          description: Percentual de IOF no formato 0.00000.
          example: '32.45325'
        messages:
          description: Mensagens de instrução exibidas no boleto (máximo de 3 linhas).
          example:
            - Mensagem 1
            - Mensagem 2
          type: array
          items:
            type: string
        digitable_line:
          type: string
          description: Linha digitável do boleto.
          example: '03399356782060000000201234501011693970000000100'
        barcode:
          type: string
          description: Código de barras do boleto.
          example: '03396939700000001009356720600000000123450101'
        qr_code_pix:
          type: string
          description: Payload do QR Code Pix do boleto, para pagamento via Pix.
        qr_code_url:
          type: string
          description: URL do QR Code Pix do boleto.
          example: pix.santander.com.br/qr/v2/cobv/...
        pdf_url:
          type: string
          description: URL do PDF do boleto gerado.
          example: https://storage.example.com/billets/billet.pdf
        configured_amount:
          type: number
          description: Valor configurado do boleto em centavos (após descontos/acréscimos).
          example: 44308
        configured_original_amount:
          type: number
          description: Valor original configurado do boleto em centavos.
          example: 45678
        discount:
          description: Configuração de desconto do boleto.
          allOf:
            - $ref: '#/components/schemas/BilletDiscountResponse'
        fine:
          description: Configuração de multa por atraso.
          allOf:
            - $ref: '#/components/schemas/BilletFineResponse'
        interest_percentage:
          type: string
          description: 'Percentual de juros ao mês no formato 0.00 (ex: 1.00 representa 1%).'
          example: '1.12'
        payment:
          description: Informações do pagamento do boleto, disponível após pagamento.
          allOf:
            - $ref: '#/components/schemas/BilletPaymentResponse'
      required:
        - due_date
        - issue_date
    TransactionClientResponse:
      type: object
      properties:
        _id:
          type: string
          description: Identificador único da transação.
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - APPROVED
            - PAID
            - FAILED
            - REFUNDED
            - DISPUTED
            - CANCELED
            - CHARGEBACK
          description: Status da transação.
        amount:
          type: number
          description: Valor líquido em centavos.
        original_amount:
          type: number
          description: Valor bruto em centavos.
        interest:
          type: string
          enum:
            - STORE
            - CLIENT
          description: ' - CLIENT: o valor das taxas serão repassadas ao cliente, aumentando o valor bruto da transação. - STORE: o valor das taxas serão cobradas do estabelecimento, mantendo o valor bruto da transação.'
        fees:
          type: number
          description: Valor total de taxas em centavos.
        establishment:
          description: Informações do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/Establishment'
        marketplace:
          description: Informações do marketplace.
          allOf:
            - $ref: '#/components/schemas/Marketplace'
        representative:
          description: Informações do representante.
          allOf:
            - $ref: '#/components/schemas/Representative'
        type:
          type: string
          enum:
            - CREDIT
            - DEBIT
            - PIX
            - BILLET
          description: Tipo da transação.
        gateway_authorization:
          type: string
          enum:
            - PAYTIME
            - ZOOP
            - PAGSEGURO
          description: Subadquirente responsável pela transação.
        card:
          description: Informações do cartão.
          allOf:
            - $ref: '#/components/schemas/Card'
        installments:
          type: number
          description: Número de parcelas.
        customer:
          description: Dados do cliente.
          allOf:
            - $ref: '#/components/schemas/Customer'
        point_of_sale:
          description: Modalidade.
          allOf:
            - $ref: '#/components/schemas/PointOfSale'
        acquirer:
          description: Informações da adquirente.
          allOf:
            - $ref: '#/components/schemas/Acquirer'
        expected_on:
          description: Lista de detalhes das parcelas.
          type: array
          items:
            $ref: '#/components/schemas/ExpectedOn'
        created_at:
          format: date-time
          type: string
          description: Data da transação.
        emv:
          type: string
          description: Código "copia e cola" de transações do tipo Pix.
        antifraud:
          description: Informações da análise de antifraude, caso executada.
          type: array
          items:
            $ref: '#/components/schemas/Antifraud'
        payment_response:
          description: Informações do pagamento enviadas pela adquirente.
          allOf:
            - $ref: '#/components/schemas/PaymentResponse'
        info_additional:
          description: Informações adicionais da transação.
          type: array
          items:
            $ref: '#/components/schemas/InfoAdditionalResponse'
        split:
          description: Informações sobre split do pagamento, caso existam.
          allOf:
            - $ref: '#/components/schemas/TransactionSplitResponse'
        reference_id:
          type: string
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno da transação.
        billet:
          description: Informações do boleto, disponível para transações do tipo BILLET.
          allOf:
            - $ref: '#/components/schemas/BilletResponse'
      required:
        - _id
        - status
        - amount
        - original_amount
        - interest
        - fees
        - establishment
        - marketplace
        - representative
        - type
        - gateway_authorization
        - card
        - installments
        - customer
        - point_of_sale
        - acquirer
        - expected_on
        - created_at
    FileExportResponse:
      type: object
      properties:
        _id:
          type: string
          description: Identificador único da exportação.
        module:
          type: string
          description: Módulo de origem da exportação.
        name:
          type: string
          description: Nome do arquivo de exportação.
        marketplace_id:
          type: number
          description: Identificador do marketplace.
        status:
          type: string
          description: Status da exportação.
          enum:
            - PROCESSING
            - READY
            - ERROR
        deleted:
          type: string
          description: Data de exclusão da exportação.
          nullable: true
        created:
          type: string
          description: Data de criação da exportação.
        updated:
          type: string
          description: Data de última atualização da exportação.
        size:
          type: number
          description: Tamanho do arquivo em KB.
          nullable: true
        url:
          type: string
          description: URL de download do arquivo.
          nullable: true
      required:
        - _id
        - module
        - name
        - marketplace_id
        - status
        - deleted
        - created
        - updated
        - size
        - url
    PlanFlagResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador da bandeira.
        name:
          type: string
          description: >-
            Nome da bandeira: MASTERCARD | VISA | ELO | AMERICAN EXPRESS | HIPER
            / HIPERCARD | OTHERS | BACEN
          enum:
            - MASTERCARD
            - VISA
            - ELO
            - AMERICAN EXPRESS
            - HIPERCARD
            - OTHERS
            - BACEN
      required:
        - id
        - name
    PlanResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador do plano utilizado.
        allow_anticipation:
          type: boolean
          description: Indica se o plano possui antecipação habilitada.
        days_anticipation:
          type: number
          description: 'Número de dias para antecipação (ex.: 1 - D1 | 14 - D14 | 30 - D30).'
          enum:
            - 1
            - 14
            - 30
        name:
          type: string
          description: Nome do plano.
        modality:
          type: string
          description: >-
            Modalidade do plano: PHYSICAL (presencial) | ONLINE (online) |
            TAP_PHONE (tap phone).
          enum:
            - PHYSICAL
            - ONLINE
            - TAP_PHONE
        flag:
          description: Informações da bandeira do plano.
          allOf:
            - $ref: '#/components/schemas/PlanFlagResponse'
      required:
        - id
        - allow_anticipation
        - days_anticipation
        - name
        - modality
        - flag
    TransactionClientGetOneResponse:
      type: object
      properties:
        _id:
          type: string
          description: Identificador único da transação.
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - APPROVED
            - PAID
            - FAILED
            - REFUNDED
            - DISPUTED
            - CANCELED
            - CHARGEBACK
          description: Status da transação.
        amount:
          type: number
          description: Valor líquido em centavos.
        plan:
          description: Informações do plano utilizado na transação.
          allOf:
            - $ref: '#/components/schemas/PlanResponse'
        original_amount:
          type: number
          description: Valor bruto em centavos.
        interest:
          type: string
          enum:
            - STORE
            - CLIENT
          description: ' - CLIENT: o valor das taxas serão repassadas ao cliente, aumentando o valor bruto da transação. - STORE: o valor das taxas serão cobradas do estabelecimento, mantendo o valor bruto da transação.'
        fees:
          type: number
          description: Valor total de taxas em centavos.
        establishment:
          description: Informações do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/Establishment'
        marketplace:
          description: Informações do marketplace.
          allOf:
            - $ref: '#/components/schemas/Marketplace'
        representative:
          description: Informações do representante.
          allOf:
            - $ref: '#/components/schemas/Representative'
        type:
          type: string
          enum:
            - CREDIT
            - DEBIT
            - PIX
            - BILLET
          description: Tipo da transação.
        gateway_authorization:
          type: string
          enum:
            - PAYTIME
            - ZOOP
            - PAGSEGURO
          description: Subadquirente responsável pela transação.
        card:
          description: Informações do cartão.
          allOf:
            - $ref: '#/components/schemas/Card'
        installments:
          type: number
          description: Número de parcelas.
        customer:
          description: Dados do cliente.
          allOf:
            - $ref: '#/components/schemas/Customer'
        point_of_sale:
          description: Modalidade.
          allOf:
            - $ref: '#/components/schemas/PointOfSale'
        acquirer:
          description: Informações da adquirente.
          allOf:
            - $ref: '#/components/schemas/Acquirer'
        expected_on:
          description: Lista de detalhes das parcelas.
          type: array
          items:
            $ref: '#/components/schemas/ExpectedOn'
        created_at:
          format: date-time
          type: string
          description: Data da transação.
        emv:
          type: string
          description: Código "copia e cola" de transações do tipo Pix.
        antifraud:
          description: Informações da análise de antifraude, caso executada.
          type: array
          items:
            $ref: '#/components/schemas/Antifraud'
        payment_response:
          description: Informações do pagamento enviadas pela adquirente.
          allOf:
            - $ref: '#/components/schemas/PaymentResponse'
        info_additional:
          description: Informações adicionais da transação.
          type: array
          items:
            $ref: '#/components/schemas/InfoAdditionalResponse'
        split:
          description: Informações sobre split do pagamento, caso existam.
          allOf:
            - $ref: '#/components/schemas/TransactionSplitResponse'
        reference_id:
          type: string
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno da transação.
        billet:
          description: Informações do boleto, disponível para transações do tipo BILLET.
          allOf:
            - $ref: '#/components/schemas/BilletResponse'
      required:
        - _id
        - status
        - amount
        - plan
        - original_amount
        - interest
        - fees
        - establishment
        - marketplace
        - representative
        - type
        - gateway_authorization
        - card
        - installments
        - customer
        - point_of_sale
        - acquirer
        - expected_on
        - created_at
    Address:
      type: object
      properties:
        street:
          type: string
          description: Logradouro.
        number:
          type: string
          description: Número.
        complement:
          type: string
          description: Complemento.
        neighborhood:
          type: string
          description: Bairro.
        city:
          type: string
          description: Cidade.
        state:
          type: string
          description: Estado.
          enum:
            - AC
            - AL
            - AP
            - AM
            - BA
            - CE
            - DF
            - ES
            - GO
            - MA
            - MS
            - MT
            - MG
            - PA
            - PB
            - PR
            - PE
            - PI
            - RJ
            - RN
            - RS
            - RO
            - RR
            - SC
            - SP
            - SE
            - TO
        zip_code:
          type: string
          description: CEP.
          maxLength: 8
          minLength: 8
      required:
        - street
        - number
        - neighborhood
        - city
        - state
        - zip_code
    TransactionClient:
      type: object
      properties:
        first_name:
          type: string
          description: Nome / razão social do cliente.
        last_name:
          type: string
          description: Sobrenome / nome fantasia do cliente.
        document:
          type: string
          description: CPF / CNPJ do cliente.
        phone:
          type: string
          description: Número de telefone do cliente.
        email:
          type: string
          description: E-mail do cliente.
        address:
          description: Endereço. Obrigatório para transações do tipo crédito e boleto.
          allOf:
            - $ref: '#/components/schemas/Address'
      required:
        - first_name
        - document
        - email
    TransactionCard:
      type: object
      properties:
        holder_name:
          type: string
          description: Nome do portador do cartão.
        holder_document:
          type: string
          description: CPF / CNPJ do portador do cartão.
        card_number:
          type: string
          description: Número do cartão. Deve ter de 13 a 16 dígitos.
          minLength: 13
          maxLength: 16
        expiration_month:
          type: number
          description: Mês de expiração do cartão (1 a 12).
          minimum: 1
          maximum: 12
        expiration_year:
          type: number
          description: Ano de expiração.
        security_code:
          type: string
          description: Código de segurança. Deve ter 3 ou 4 dígitos.
          minLength: 3
          maxLength: 4
        create_token:
          type: boolean
          description: Gerar token com os dados do cartão.
        token:
          type: string
          description: Token gerado do cartão.
      required:
        - holder_name
        - holder_document
        - card_number
        - expiration_month
        - expiration_year
        - security_code
    BilletDiscountItem:
      type: object
      properties:
        limit_date:
          type: string
          description: >-
            Data limite para aplicação do desconto, no formato YYYY-MM-DD.
            Obrigatório apenas para descontos do tipo VALOR_DATA_FIXA
          example: '2026-07-10'
        value:
          type: number
          description: Valor do desconto em centavos.
          minimum: 1
          example: 5
      required:
        - limit_date
        - value
    BilletDiscount:
      type: object
      properties:
        type:
          type: string
          enum:
            - VALOR_DATA_FIXA
          description: Tipo de desconto.
        items:
          description: Lista de descontos com até 3 itens.
          maxItems: 3
          type: array
          items:
            $ref: '#/components/schemas/BilletDiscountItem'
      required:
        - type
        - items
    BilletFine:
      type: object
      properties:
        percentage:
          type: string
          description: 'Percentual de multa no formato 0.00 (ex: 2.00 representa 2%).'
          example: '2.00'
        quantity_days:
          type: number
          description: Quantidade de dias após o vencimento para cobrar a multa.
          minimum: 1
          maximum: 31
          example: 3
      required:
        - percentage
        - quantity_days
    TransactionBilletDto:
      type: object
      properties:
        due_date:
          type: string
          description: Data de vencimento do boleto, no formato YYYY-MM-DD.
          example: '2026-07-15'
        document_kind:
          type: string
          description: Espécie do documento (padrão = OUTROS)
          default: OUTROS
        days_until_expiration:
          type: number
          description: >-
            Quantidade de dias após o vencimento até que o boleto expire e não
            possa mais ser pago.
          minimum: 1
          maximum: 99
          example: 5
        iof_percentage:
          type: string
          description: >-
            Percentual de IOF no formato 0.00000 (ex: 0.00820). Aplicado sobre o
            valor do boleto.
          example: '0.00820'
        messages:
          description: Mensagens de instrução exibidas no boleto (máximo de 3 linhas).
          maxItems: 3
          example:
            - Não receber após o vencimento
          type: array
          items:
            type: string
        discount:
          description: Configuração de desconto do boleto.
          allOf:
            - $ref: '#/components/schemas/BilletDiscount'
        fine:
          description: Configuração de multa por atraso.
          allOf:
            - $ref: '#/components/schemas/BilletFine'
        interest_percentage:
          type: string
          description: 'Percentual de juros ao mês no formato 0.00 (ex: 1.00 representa 1%).'
          example: '1.00'
      required:
        - due_date
    InfoAdditionalDto:
      type: object
      properties:
        key:
          type: string
          description: Chave
        value:
          type: string
          description: Valor da chave
      required:
        - key
        - value
    SplitEstablishmentDto:
      type: object
      properties:
        id:
          type: number
          description: ID do estabelecimento.
        value:
          type: number
          description: >-
            Valor do split. Em centavos para a regra de divisão igual à
            "CURRENCY". Em porcentagem para a regra de divisão igual à
            "PERCENTAGE"
      required:
        - id
        - value
    SplitDto:
      type: object
      properties:
        title:
          type: string
          description: Título do split.
        division:
          type: string
          description: Regra de divisão do split.
          enum:
            - PERCENTAGE
            - CURRENCY
        establishments:
          description: Detalhes dos estabelecimentos participantes do split.
          type: array
          items:
            $ref: '#/components/schemas/SplitEstablishmentDto'
      required:
        - title
        - division
        - establishments
    CreateTransactionDto:
      type: object
      properties:
        payment_type:
          type: string
          enum:
            - CREDIT
            - PIX
            - BILLET
          description: 'Tipo de transação. - CREDIT: Crédito. - PIX'
        amount:
          type: number
          description: Valor da transação em centavos.
        installments:
          type: number
          description: >-
            Quantidade de parcelas. Obrigatório somente para transações do tipo
            crédito.
        interest:
          type: string
          enum:
            - STORE
            - CLIENT
          description: ' - CLIENT: o valor das taxas serão repassadas ao cliente, aumentando o valor bruto da transação. - STORE: o valor das taxas serão cobradas do estabelecimento, mantendo o valor bruto da transação.'
        client:
          description: >-
            Dados do cliente. Obrigatório em transações cŕedito (se usando
            antifraude) e boleto.
          allOf:
            - $ref: '#/components/schemas/TransactionClient'
        card:
          description: Dados do cartão. Obrigatório para transações do tipo crédito.
          allOf:
            - $ref: '#/components/schemas/TransactionCard'
        billet:
          description: Dados do boleto. Obrigatório para transações do tipo BILLET.
          allOf:
            - $ref: '#/components/schemas/TransactionBilletDto'
        session_id:
          type: string
          description: ID da sessão de antifraud.
        info_additional:
          description: Informações adicionais. Utilizado para transações do tipo PIX.
          type: array
          items:
            $ref: '#/components/schemas/InfoAdditionalDto'
        split:
          description: Configuração de split.
          allOf:
            - $ref: '#/components/schemas/SplitDto'
        reference_id:
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno da transação.
          oneOf:
            - type: string
              example: ABC-123
            - type: number
              example: 42
        antifraud_type:
          type: string
          enum:
            - THREEDS
            - IDPAY
          description: >-
            Tipo de antifraude utilizado. - THREEDS: Antifraude 3DS. - IDPAY:
            Antifraude IDPAY.
      required:
        - payment_type
        - amount
        - interest
    AntifraudSession:
      type: object
      properties:
        analyse_required:
          type: string
          description: Tipo de antifraude requerido.
          enum:
            - THREEDS
            - CLEARSALE
            - IDPAY
        analyse_status:
          type: string
          description: Status da análise de antifraude.
          enum:
            - APPROVED
            - PROCESSING
            - WAITING_AUTH
            - FAILED
            - NO_ANALYSED
        antifraud_id:
          type: string
          description: ID de identificação da transação no antifraude.
        session:
          type: string
          description: ID da sessão de antifraude.
      required:
        - analyse_required
        - analyse_status
    CreateTransactionClientResponse:
      type: object
      properties:
        _id:
          type: string
          description: Identificador único da transação.
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - APPROVED
            - PAID
            - FAILED
            - REFUNDED
            - DISPUTED
            - CANCELED
            - CHARGEBACK
          description: Status da transação.
        amount:
          type: number
          description: Valor líquido em centavos.
        original_amount:
          type: number
          description: Valor bruto em centavos.
        interest:
          type: string
          enum:
            - STORE
            - CLIENT
          description: ' - CLIENT: o valor das taxas serão repassadas ao cliente, aumentando o valor bruto da transação. - STORE: o valor das taxas serão cobradas do estabelecimento, mantendo o valor bruto da transação.'
        fees:
          type: number
          description: Valor total de taxas em centavos.
        establishment:
          description: Informações do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/Establishment'
        marketplace:
          description: Informações do marketplace.
          allOf:
            - $ref: '#/components/schemas/Marketplace'
        representative:
          description: Informações do representante.
          allOf:
            - $ref: '#/components/schemas/Representative'
        type:
          type: string
          enum:
            - CREDIT
            - DEBIT
            - PIX
            - BILLET
          description: Tipo da transação.
        gateway_authorization:
          type: string
          enum:
            - PAYTIME
            - ZOOP
            - PAGSEGURO
          description: Subadquirente responsável pela transação.
        card:
          description: Informações do cartão.
          allOf:
            - $ref: '#/components/schemas/Card'
        installments:
          type: number
          description: Número de parcelas.
        customer:
          description: Dados do cliente.
          allOf:
            - $ref: '#/components/schemas/Customer'
        point_of_sale:
          description: Modalidade.
          allOf:
            - $ref: '#/components/schemas/PointOfSale'
        acquirer:
          description: Informações da adquirente.
          allOf:
            - $ref: '#/components/schemas/Acquirer'
        expected_on:
          description: Lista de detalhes das parcelas.
          type: array
          items:
            $ref: '#/components/schemas/ExpectedOn'
        created_at:
          format: date-time
          type: string
          description: Data da transação.
        emv:
          type: string
          description: Código "copia e cola" de transações do tipo Pix.
        antifraud:
          description: Informações da análise de antifraude, caso executada.
          type: array
          items:
            $ref: '#/components/schemas/AntifraudSession'
        payment_response:
          description: Informações do pagamento enviadas pela adquirente.
          allOf:
            - $ref: '#/components/schemas/PaymentResponse'
        info_additional:
          description: Informações adicionais da transação.
          type: array
          items:
            $ref: '#/components/schemas/InfoAdditionalResponse'
        split:
          description: Informações sobre split do pagamento, caso existam.
          allOf:
            - $ref: '#/components/schemas/TransactionSplitResponse'
        reference_id:
          type: string
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno da transação.
        billet:
          description: Informações do boleto, disponível para transações do tipo BILLET.
          allOf:
            - $ref: '#/components/schemas/BilletResponse'
      required:
        - _id
        - status
        - amount
        - original_amount
        - interest
        - fees
        - establishment
        - marketplace
        - representative
        - type
        - gateway_authorization
        - card
        - installments
        - customer
        - point_of_sale
        - acquirer
        - expected_on
        - created_at
    AntifraudAuthDto:
      type: object
      properties:
        id:
          type: string
          description: Identificador da operação.
        status:
          type: string
          description: >-
            Obrigatório apenas para 3DS. Status do antifraude obtido na operação
            do 3DS.
          enum:
            - AUTH_FLOW_COMPLETED
            - AUTH_NOT_SUPPORTED
            - CHANGE_PAYMENT_METHOD
            - REQUIRE_CHALLENGE
        authentication_status:
          type: string
          description: Status da autenticação do antifraude obtido na operação do 3DS.
        concluded:
          type: boolean
          description: Status da conclusão do antifraude obtido na operação do IDPAY.
        capture_concluded:
          type: boolean
          description: >-
            Status da conclusão da captura do antifraude obtido na operação do
            IDPAY.
      required:
        - id
    SimulateFeesDto:
      type: object
      properties:
        amount:
          type: number
          description: Valor da simulação em centavos.
        flag_id:
          type: number
          description: >-
            Bandeiras: 1 - MASTERCARD, 2 - VISA, 3 - ELO, 4 - AMERICAN_EXPRESS,
            5 - HIPER_HIPERCARD, 6 - OTHERS, 8 - BACEN
        gateway_id:
          type: number
          description: 'Gateways: 1 - ZOOP, 2 - PAGSEGURO, 4 - SUBPAYTIME'
        modality:
          type: string
          description: 'Modalidades de venda: ONLINE, PHYSICAL, TAP_PHONE'
        interest:
          type: string
          enum:
            - STORE
            - CLIENT
          description: ' - CLIENT: o valor das taxas serão passadas ao cliente, aumentando o valor bruto da transação. - STORE: o valor das taxas serão passadas ao estabelecimento, mantendo o valor bruto da transação.'
        antifraud_type:
          type: string
          description: 'Antifraude a ser utilizado: THREEDS, IDPAY'
      required:
        - amount
        - flag_id
        - modality
        - interest
    SimulationAmounts:
      type: object
      properties:
        total:
          type: number
          description: Valor total da transação na quantidade de parcelas informada.
        installment:
          type: number
          description: Valor total da parcela.
      required:
        - total
        - installment
    SimulationCredit:
      type: object
      properties:
        1x:
          description: Valores da transação em uma (1) parcela.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        2x:
          description: Valores da transação em duas (2) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        3x:
          description: Valores da transação em três (3) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        4x:
          description: Valores da transação em quatro (4) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        5x:
          description: Valores da transação em cinco (5) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        6x:
          description: Valores da transação em seis (6) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        7x:
          description: Valores da transação em sete (7) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        8x:
          description: Valores da transação em oito (8) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        9x:
          description: Valores da transação em nove (9) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        10x:
          description: Valores da transação em dez (10) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        11x:
          description: Valores da transação em onze (11) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        12x:
          description: Valores da transação em doze (12) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        13x:
          description: Valores da transação em treze (13) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        14x:
          description: Valores da transação em quatorze (14) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        15x:
          description: Valores da transação em quinze (15) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        16x:
          description: Valores da transação em dezesseis (16) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        17x:
          description: Valores da transação em dezessete (17) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        18x:
          description: Valores da transação em dezoito (18) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        19x:
          description: Valores da transação em dezenove (19) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        20x:
          description: Valores da transação em vinte (20) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        21x:
          description: Valores da transação em vinte e uma (21) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        22x:
          description: Valores da transação em vinte e duas (22) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        23x:
          description: Valores da transação em vinte e três (23) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
        24x:
          description: Valores da transação em vinte e quatro (24) parcelas.
          allOf:
            - $ref: '#/components/schemas/SimulationAmounts'
      required:
        - 1x
        - 2x
        - 3x
        - 4x
        - 5x
        - 6x
        - 7x
        - 8x
        - 9x
        - 10x
        - 11x
        - 12x
        - 13x
        - 14x
        - 15x
        - 16x
        - 17x
        - 18x
        - 19x
        - 20x
        - 21x
        - 22x
        - 23x
        - 24x
    SimulationFees:
      type: object
      properties:
        credit:
          description: >-
            Valores simulados para transação de crédito. Retornado apenas se o
            campo "card_number" for preenchido.
          allOf:
            - $ref: '#/components/schemas/SimulationCredit'
        debit:
          type: number
          description: >-
            Valor simulado para transação de débito. Retornado apenas se o campo
            "card_number" for preenchido.
        pix:
          type: number
          description: Valor simulado para transação pix.
        billet_barcode:
          type: number
          description: >-
            Valor simulado para transação do tipo boleto quando pago via código
            de barras.
        billet_qrcode:
          type: number
          description: >-
            Valor simulado para transação do tipo boleto quando pago via qrcode
            pix.
      required:
        - pix
    SimulateFeesClientResponse:
      type: object
      properties:
        amount:
          type: number
          description: Valor em centavos informado para simulação.
        simulation:
          description: Informações dos valores simulados.
          allOf:
            - $ref: '#/components/schemas/SimulationFees'
      required:
        - amount
        - simulation
    QrCodeClientResponse:
      type: object
      properties:
        qrcode:
          type: string
          description: Hash do QRCode.
      required:
        - qrcode
    ReverseTransactionDto:
      type: object
      properties:
        use_account:
          type: boolean
          description: >-
            Indica se será utilizado o saldo do estabelecimento como fonte para
            o estorno da transação, caso ela já tenha sido paga.
    SplitEstablishmentBasicDataClientResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estabelecimento.
        first_name:
          type: string
          description: Nome completo / razão social.
        last_name:
          type: string
          description: Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
      required:
        - id
        - first_name
        - document
    SplitEstablishmentClientResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estabelecimento.
        first_name:
          type: string
          description: Nome completo / razão social.
        last_name:
          type: string
          description: Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
        priority:
          type: number
          description: Ordem de prioridade para execução do split.
        value:
          type: number
          description: Valor configurado para split, em porcentagem ou em centavos.
        original_amount:
          type: number
          description: Valor calculado em centavos.
        transaction_id:
          type: string
          description: Identificador da transação originada.
      required:
        - id
        - first_name
        - document
        - priority
        - value
        - original_amount
        - transaction_id
    SplitHistoryClientResponse:
      type: object
      properties:
        created_at:
          format: date-time
          type: string
          description: Data do evento.
        status:
          type: string
          enum:
            - PENDING
            - ACTIVE
            - CANCELED
          description: Status do split.
        message:
          type: string
          description: Mensagem contendo informações sobre o status referente.
      required:
        - created_at
        - status
    SplitClientResponse:
      type: object
      properties:
        _id:
          type: string
          description: Identificador único do split.
        transaction_id:
          type: string
          description: Identificador da transação.
        status:
          type: string
          description: Status do split.
          enum:
            - PENDING
            - ACTIVE
            - CANCELED
        establishment:
          description: Dados do estabelecimento responsável.
          allOf:
            - $ref: '#/components/schemas/SplitEstablishmentBasicDataClientResponse'
        title:
          type: string
          description: Título do split.
        original_amount:
          type: number
          description: >-
            Valor total disponível (valor bruto subtraído pela taxa de
            antifraude) da transação dividida.
        channel:
          type: string
          description: Canal da transação.
          enum:
            - CHIP
            - TAP
            - SMART
            - ONLINE
            - ALL
        modality:
          type: string
          description: Modalidade da transação.
          enum:
            - DEBIT
            - PIX
            - CREDIT
            - ALL
        division:
          type: string
          description: Regra de divisão.
          enum:
            - PERCENTAGE
            - CURRENCY
        establishments:
          description: Detalhes dos estabelecimentos envolvidos.
          type: array
          items:
            $ref: '#/components/schemas/SplitEstablishmentClientResponse'
        history:
          description: Histórico de alterações de status do split.
          type: array
          items:
            $ref: '#/components/schemas/SplitHistoryClientResponse'
        created_at:
          format: date-time
          type: string
          description: Data de criação.
      required:
        - _id
        - transaction_id
        - status
        - establishment
        - original_amount
        - channel
        - modality
        - division
        - establishments
        - history
        - created_at
    MessageResponse:
      type: object
      properties:
        message:
          type: string
          description: Mensagem.
          example:
            - Processo de split iniciado.
            - Processo de cancelamento de split iniciado.
      required:
        - message
    CreatePixKeyDto:
      type: object
      properties:
        type:
          type: string
          description: >-
            Tipo da chave Pix. Para CPF e CNPJ, a chave deve corresponder ao
            documento da conta, conforme regras do BACEN/DICT.
          enum:
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        key:
          type: string
          description: >-
            Valor da chave Pix. Obrigatório para CPF, CNPJ, e-mail e telefone.
            Não deve ser enviado para chave aleatória.
      required:
        - type
    PixKeyHistoryResponse:
      type: object
      properties:
        status:
          type: string
          description: Status registrado no histórico.
        created_at:
          format: date-time
          type: string
          description: Data do registro do histórico.
        _id:
          type: string
          description: ID do registro no histórico.
      required:
        - status
        - created_at
    PixKeyResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID da chave Pix.
        establishment_id:
          type: string
          description: ID do estabelecimento.
        type:
          type: string
          description: Tipo da chave Pix.
          enum:
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        key:
          type: string
          description: Valor da chave Pix.
        status:
          type: string
          description: Status da chave Pix.
          enum:
            - PENDING
            - CREATED
            - CANCELED
            - AWAITING_PORTABILITY
            - REVERSAL_PORTABILITY
            - REFUSED_PORTABILITY
        bank:
          type: string
          description: Código ou identificador do banco participante.
        bank_name:
          type: string
          description: Nome do banco.
        routing_number:
          type: string
          description: Agência vinculada à chave.
        account_number:
          type: string
          description: Conta vinculada à chave.
        account_check_digit:
          type: string
          description: Dígito da conta vinculada à chave.
        account_type:
          type: string
          description: Tipo da conta bancária.
        default:
          type: boolean
          description: Indica se a chave é a padrão da conta.
        portability_id:
          type: string
          description: >-
            ID da reivindicação/portabilidade, quando houver processo em
            andamento.
        history:
          description: Histórico de alterações de status.
          type: array
          items:
            $ref: '#/components/schemas/PixKeyHistoryResponse'
        created_at:
          format: date-time
          type: string
          description: Data de criação da chave.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização da chave.
      required:
        - _id
        - establishment_id
        - type
        - status
        - created_at
        - updated_at
    ConfirmPixKeyDto:
      type: object
      properties:
        code:
          type: string
          description: >-
            Código de confirmação recebido para a chave Pix de e-mail ou
            telefone.
      required:
        - code
    UpdatePixKeyDto:
      type: object
      properties:
        default:
          type: boolean
          description: >-
            Define a chave como padrão da conta. O valor ou tipo de uma chave
            Pix não é alterado; para trocar a chave, remova/inative e crie
            outra.
      required:
        - default
    PixKeyDefaultResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID da chave Pix.
        establishment_id:
          type: string
          description: ID do estabelecimento.
        type:
          type: string
          description: Tipo da chave Pix.
          enum:
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        key:
          type: string
          description: Valor da chave Pix.
        status:
          type: string
          description: Status da chave Pix.
          enum:
            - PENDING
            - CREATED
            - CANCELED
            - AWAITING_PORTABILITY
            - REVERSAL_PORTABILITY
            - REFUSED_PORTABILITY
        bank:
          type: string
          description: Código ou identificador do banco participante.
        bank_name:
          type: string
          description: Nome do banco.
        routing_number:
          type: string
          description: Agência vinculada à chave.
        account_number:
          type: string
          description: Conta vinculada à chave.
        account_check_digit:
          type: string
          description: Dígito da conta vinculada à chave.
        account_type:
          type: string
          description: Tipo da conta bancária.
        default:
          type: boolean
          description: Indica se a chave é a padrão da conta.
        portability_id:
          type: string
          description: >-
            ID da reivindicação/portabilidade, quando houver processo em
            andamento.
        history:
          description: Histórico de alterações de status.
          type: array
          items:
            $ref: '#/components/schemas/PixKeyHistoryResponse'
        created_at:
          format: date-time
          type: string
          description: Data de criação da chave.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização da chave.
      required:
        - _id
        - establishment_id
        - type
        - status
        - created_at
        - updated_at
    PixKeyPaginatedResponse:
      type: object
      properties:
        total:
          type: number
          description: Total de registros encontrados.
        page:
          type: number
          description: Página atual.
        perPage:
          type: number
          description: Registros por página.
        lastPage:
          type: number
          description: Última página disponível.
        data:
          description: Chaves Pix da conta.
          type: array
          items:
            $ref: '#/components/schemas/PixKeyResponse'
      required:
        - total
        - page
        - perPage
        - lastPage
        - data
    TransferEntity:
      type: object
      properties:
        id:
          type: number
        first_name:
          type: string
          description: Nome / Razão Social.
        last_name:
          type: string
          description: Sobrenome / Nome Fantasia.
        document:
          type: string
          description: CPF / CNPJ.
      required:
        - id
        - first_name
        - last_name
        - document
    TransferAccount:
      type: object
      properties:
        establishment:
          $ref: '#/components/schemas/TransferEntity'
        marketplace:
          $ref: '#/components/schemas/TransferEntity'
        representative:
          $ref: '#/components/schemas/TransferEntity'
        document:
          type: string
          description: Documento do titular (CPF/CNPJ).
        bank_code:
          type: string
          description: Código do banco.
        bank_ispb:
          type: string
          description: ISPB do banco.
        bank_name:
          type: string
          description: Nome do banco.
        routing_number:
          type: string
          description: Número da agência bancária.
        routing_check_digit:
          type: string
          description: Dígito verificador da agência.
        account_number:
          type: string
          description: Número da conta bancária.
        account_check_digit:
          type: string
          description: Dígito verificador da conta.
        type:
          type: string
          enum:
            - SAVING
            - CHECKING
            - PAYMENT
          example: CHECKING
          description: Tipo da conta.
        pix_key:
          type: string
          description: Chave pix de origem ou destino.
      required:
        - establishment
        - marketplace
        - document
        - account_number
        - account_check_digit
        - type
    TransferHistory:
      type: object
      properties:
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - PAID
            - FAILED
            - REFUNDED
            - CANCELED
            - PROCESSING
          description: Status histórico da transferência.
        created_at:
          format: date-time
          type: string
          description: Data do registro do histórico.
        _id:
          type: string
      required:
        - status
        - created_at
        - _id
    TransferUser:
      type: object
      properties:
        id:
          type: number
          description: Id do usuário.
        first_name:
          type: string
          description: Primeiro nome.
        last_name:
          type: string
          description: Sobrenome.
        profile_id:
          type: number
          description: Id do perfil.
      required:
        - id
        - first_name
        - profile_id
    TransferResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID da transferência.
        type:
          type: string
          enum:
            - TED
            - P2P
            - PIX
          description: Tipo da transferência.
        status:
          type: string
          enum:
            - CREATED
            - PENDING
            - PAID
            - FAILED
            - REFUNDED
            - CANCELED
            - PROCESSING
          description: Status atual da transferência.
        amount:
          type: number
          description: Valor transferido em centavos.
        original_amount:
          type: number
          description: Valor original da transferência em centavos.
        establishment_id:
          type: string
          description: ID do estabelecimento.
        gateway_key:
          type: string
          description: Código do gateway.
        gateway_authorization:
          type: string
          description: Código de autorização do gateway.
        expected_at:
          format: date-time
          type: string
          description: Data prevista para conclusão da transferência.
        recipient:
          description: Informações da conta recebedora.
          allOf:
            - $ref: '#/components/schemas/TransferAccount'
        payer:
          description: Informações da conta pagadora.
          allOf:
            - $ref: '#/components/schemas/TransferAccount'
        history:
          description: Histórico de status da transferência.
          type: array
          items:
            $ref: '#/components/schemas/TransferHistory'
        method:
          type: string
          enum:
            - IN
            - OUT
          description: Direção da transferência (entrada ou saída).
        pixKey:
          type: string
          description: Chave Pix utilizada (caso aplicável).
        end_to_end:
          type: string
          description: Identificador único de cada transação.
        description:
          type: string
          description: Descrição da transferência.
        reprocessed:
          type: boolean
          description: Indica se a transferência foi reprocessada.
        created_at:
          format: date-time
          type: string
          description: Data de criação da transferência.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização da transferência.
        fees:
          type: number
          description: Valor total de taxas da transferência.
        user:
          $ref: '#/components/schemas/TransferUser'
      required:
        - _id
        - type
        - status
        - amount
        - establishment_id
        - gateway_authorization
        - expected_at
        - recipient
        - payer
        - history
        - method
        - reprocessed
        - created_at
        - updated_at
    CheckTransferP2pDto:
      type: object
      properties:
        document:
          type: string
          description: Documento do destinatário (CPF ou CNPJ).
      required:
        - document
    P2pCheckBankResponse:
      type: object
      properties:
        name:
          type: string
          description: Nome do banco.
        code:
          type: string
          description: Código do banco.
        ispb:
          type: string
          description: ISPB do banco.
      required:
        - name
        - code
        - ispb
    P2pCheckAccountResponse:
      type: object
      properties:
        document:
          type: string
          description: Documento do titular da conta.
        bank_id:
          type: number
          description: ID do banco.
        routing_number:
          type: string
          description: Número da agência.
        routing_check_digit:
          type: string
          description: Dígito verificador da agência.
        account_number:
          type: string
          description: Número da conta.
        account_check_digit:
          type: string
          description: Dígito verificador da conta.
        type:
          type: string
          description: Tipo da conta.
        bank:
          description: Banco da conta.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/P2pCheckBankResponse'
      required:
        - document
        - bank_id
        - routing_number
        - routing_check_digit
        - account_number
        - account_check_digit
        - type
    P2pCheckResponse:
      type: object
      properties:
        first_name:
          type: string
          description: Primeiro nome ou razão social do recebedor.
        last_name:
          type: string
          description: Sobrenome ou nome fantasia do recebedor.
        document:
          type: string
          description: Documento do recebedor.
        phone_number:
          type: string
          description: Telefone do recebedor.
        type:
          type: string
          description: Tipo do estabelecimento recebedor.
        account:
          description: Conta do recebedor.
          allOf:
            - $ref: '#/components/schemas/P2pCheckAccountResponse'
      required:
        - first_name
        - last_name
        - document
        - phone_number
        - type
        - account
    BankAccountDto:
      type: object
      properties:
        account_check_digit:
          type: string
          description: Dígito verificador da conta.
        account_number:
          type: string
          description: Número da conta bancária.
        bank_code:
          type: string
          description: Código de três dígitos do banco.
        routing_number:
          type: string
          description: Número da agência bancária (sem dígito).
          maxLength: 4
        routing_check_digit:
          type: string
          description: Dígito verificador da agência (se aplicável).
        type:
          type: string
          description: Tipo de conta bancária.
          enum:
            - CHECKING
            - SAVINGS
          example: CHECKING
      required:
        - account_check_digit
        - account_number
        - bank_code
        - routing_number
        - type
    RecipientDto:
      type: object
      properties:
        amount:
          type: number
          description: Valor da transferência em centavos.
        expected_at:
          type: string
          description: Data esperada para conclusão da transferência.
      required:
        - amount
    CreateTransferTedDto:
      type: object
      properties:
        first_name:
          type: string
          description: Primeiro nome do recebedor.
        last_name:
          type: string
          description: Sobrenome do recebedor.
        document:
          type: string
          description: Documento do recebedor.
        phone_number:
          type: string
          description: Número de telefone do recebedor.
        email:
          type: string
          description: E-mail do recebedor.
        bank_account:
          description: Dados bancários do recebedor.
          allOf:
            - $ref: '#/components/schemas/BankAccountDto'
        recipient:
          description: Informações do destinatário da transferência.
          allOf:
            - $ref: '#/components/schemas/RecipientDto'
      required:
        - first_name
        - last_name
        - document
        - phone_number
        - email
        - bank_account
        - recipient
    CreateTransferP2pDto:
      type: object
      properties:
        amount:
          type: number
          description: Valor da transferência em centavos.
          example: 200
        document:
          type: string
          description: Documento do destinatário.
        description:
          type: string
          description: Descrição livre da transferência.
      required:
        - amount
        - document
    PixPaymentInitDto:
      type: object
      properties:
        type:
          type: string
          description: Tipo da chave Pix.
          enum:
            - HASH
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        key:
          type: string
          description: Chave Pix. Obrigatório quando o tipo não for HASH.
        hash_code:
          type: string
          description: Código copia e cola. Obrigatório quando o tipo for HASH.
      required:
        - type
    PixPaymentFeeDetail:
      type: object
      properties:
        name:
          type: string
          description: Nome da taxa.
        amount:
          type: number
          description: Valor da taxa em centavos.
        description:
          type: string
          description: Descrição da taxa.
        _id:
          type: string
          description: ID da taxa.
      required:
        - name
        - amount
        - description
        - _id
    PixPaymentRecipient:
      type: object
      properties:
        first_name:
          type: string
          description: Primeiro nome do recebedor.
        document:
          type: string
          description: Documento do recebedor.
        bank_ispb:
          type: string
          description: ISPB do banco.
        bank_name:
          type: string
          description: Nome do banco.
        routing_number:
          type: string
          description: Número da agência.
        routing_check_digit:
          type: string
          description: Dígito da agência.
        account_number:
          type: string
          description: Número da conta.
        account_check_digit:
          type: string
          description: Dígito da conta.
        account_type:
          type: string
          description: Tipo da conta.
        pix_key:
          type: string
          description: Chave Pix.
        pix_key_type:
          type: string
          description: Tipo da chave Pix.
        type:
          type: string
          description: Tipo.
      required:
        - first_name
        - document
        - bank_ispb
        - bank_name
        - routing_number
        - routing_check_digit
        - account_number
        - account_check_digit
        - account_type
        - pix_key
        - pix_key_type
        - type
    PixPaymentPayerEstablishment:
      type: object
      properties:
        id:
          type: number
          description: ID do estabelecimento.
        first_name:
          type: string
          description: Primeiro nome do estabelecimento.
        last_name:
          type: string
          description: Último nome do estabelecimento.
        document:
          type: string
          description: Documento do estabelecimento.
        type:
          type: string
          description: Tipo do estabelecimento.
        access_type:
          type: string
          description: Tipo de acesso do estabelecimento.
        risk:
          type: string
          description: Risco.
        active:
          type: boolean
          description: Estabelecimento ativo.
        mcc:
          type: string
          description: MCC.
      required:
        - id
        - first_name
        - last_name
        - document
        - type
        - access_type
        - risk
        - active
        - mcc
    PixPaymentPayerMarketplace:
      type: object
      properties:
        id:
          type: number
          description: ID do marketplace.
        nickname:
          type: string
          description: Apelido do marketplace.
        first_name:
          type: string
          description: Primeiro nome do marketplace.
        last_name:
          type: string
          description: Último nome do marketplace.
        document:
          type: string
          description: Documento do marketplace.
        type:
          type: string
          description: Tipo do marketplace.
        active:
          type: boolean
          description: Marketplace ativo.
      required:
        - id
        - nickname
        - first_name
        - last_name
        - document
        - type
        - active
    PixPaymentPayer:
      type: object
      properties:
        bank_code:
          type: string
          description: Código do banco.
        bank_name:
          type: string
          description: Nome do banco.
        routing_number:
          type: string
          description: Número da agência.
        account_number:
          type: string
          description: Número da conta.
        account_check_digit:
          type: string
          description: Dígito da conta.
        establishment:
          description: Estabelecimento pagador.
          allOf:
            - $ref: '#/components/schemas/PixPaymentPayerEstablishment'
        marketplace:
          description: Marketplace pagador.
          allOf:
            - $ref: '#/components/schemas/PixPaymentPayerMarketplace'
        type:
          type: string
          description: Tipo da conta.
      required:
        - bank_code
        - bank_name
        - routing_number
        - account_number
        - account_check_digit
        - establishment
        - marketplace
        - type
    PixPaymentHistory:
      type: object
      properties:
        status:
          type: string
          description: Status histórico.
        created_at:
          type: string
          description: Data do histórico.
        _id:
          type: string
          description: ID do histórico.
      required:
        - status
        - created_at
        - _id
    PixPaymentInitResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID do pagamento.
        type:
          type: string
          description: Tipo do pagamento.
        status:
          type: string
          description: Status do pagamento.
        establishment_id:
          type: string
          description: ID do estabelecimento.
        init_type:
          type: string
          description: Tipo de inicialização.
        transaction_identification:
          type: string
          description: Identificação da transação.
          nullable: true
        gateway_authorization:
          type: string
          description: Gateway autorizador.
        fees_details:
          description: Detalhes das taxas.
          type: array
          items:
            $ref: '#/components/schemas/PixPaymentFeeDetail'
        expected_at:
          type: string
          description: Data prevista.
        pixKey:
          type: string
          description: Chave Pix.
        recipient:
          description: Dados do recebedor.
          allOf:
            - $ref: '#/components/schemas/PixPaymentRecipient'
        payer:
          description: Dados do pagador.
          allOf:
            - $ref: '#/components/schemas/PixPaymentPayer'
        history:
          description: Histórico do pagamento.
          type: array
          items:
            $ref: '#/components/schemas/PixPaymentHistory'
        method:
          type: string
          description: Método do pagamento.
        description:
          type: string
          description: Descrição do pagamento.
        init_id:
          type: string
          description: ID do init.
        end_to_end:
          type: string
          description: End-to-end.
        reprocessed:
          type: boolean
          description: Reprocessado.
        commission_id:
          type: string
          description: ID da comissão.
          nullable: true
        reversal_transaction_id:
          type: string
          description: ID da reversão.
          nullable: true
        transfer_id_fees_origin:
          type: string
          description: ID da transferência de taxas de origem.
          nullable: true
        created_at:
          type: string
          description: Data de criação.
        updated_at:
          type: string
          description: Data de atualização.
        __v:
          type: number
          description: Versão do documento.
      required:
        - _id
        - type
        - status
        - establishment_id
        - init_type
        - gateway_authorization
        - fees_details
        - expected_at
        - pixKey
        - recipient
        - payer
        - history
        - method
        - description
        - init_id
        - end_to_end
        - reprocessed
        - created_at
        - updated_at
        - __v
    PixPaymentConfirmDto:
      type: object
      properties:
        type:
          type: string
          description: Tipo da chave Pix.
          enum:
            - HASH
            - CPF
            - CNPJ
            - EMAIL
            - PHONE
            - RANDOM
        key:
          type: string
          description: Chave Pix. Obrigatório quando o tipo não for HASH.
        hash_code:
          type: string
          description: Código copia e cola. Obrigatório quando o tipo for HASH.
        amount:
          type: number
          description: Valor da transferência em centavos.
        init_id:
          type: string
          description: Identificador retornado no init.
      required:
        - type
        - amount
        - init_id
    PixPaymentFeesBanking:
      type: object
      properties:
        id:
          type: number
          description: ID.
        fees_banking_id:
          type: number
          description: ID do pacote de tarifas.
        name:
          type: string
          description: Nome.
        description:
          type: string
          description: Descrição.
        standard:
          type: number
          description: Taxa base em centavos.
        markup:
          type: number
          description: Markup em centavos.
        fees:
          type: number
          description: Total de taxas em centavos.
      required:
        - id
        - fees_banking_id
        - name
        - description
        - standard
        - markup
        - fees
    PixPaymentConfirmResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID do pagamento.
        type:
          type: string
          description: Tipo do pagamento.
        status:
          type: string
          description: Status do pagamento.
        establishment_id:
          type: string
          description: ID do estabelecimento.
        init_type:
          type: string
          description: Tipo de inicialização.
        transaction_identification:
          type: string
          description: Identificação da transação.
          nullable: true
        gateway_authorization:
          type: string
          description: Gateway autorizador.
        fees_details:
          description: Detalhes das taxas.
          type: array
          items:
            $ref: '#/components/schemas/PixPaymentFeeDetail'
        expected_at:
          type: string
          description: Data prevista.
        pixKey:
          type: string
          description: Chave Pix.
        recipient:
          description: Dados do recebedor.
          allOf:
            - $ref: '#/components/schemas/PixPaymentRecipient'
        payer:
          description: Dados do pagador.
          allOf:
            - $ref: '#/components/schemas/PixPaymentPayer'
        history:
          description: Histórico do pagamento.
          type: array
          items:
            $ref: '#/components/schemas/PixPaymentHistory'
        method:
          type: string
          description: Método do pagamento.
        description:
          type: string
          description: Descrição do pagamento.
        init_id:
          type: string
          description: ID do init.
        end_to_end:
          type: string
          description: End-to-end.
        reprocessed:
          type: boolean
          description: Reprocessado.
        commission_id:
          type: string
          description: ID da comissão.
          nullable: true
        reversal_transaction_id:
          type: string
          description: ID da reversão.
          nullable: true
        transfer_id_fees_origin:
          type: string
          description: ID da transferência de taxas de origem.
          nullable: true
        created_at:
          type: string
          description: Data de criação.
        updated_at:
          type: string
          description: Data de atualização.
        __v:
          type: number
          description: Versão do documento.
        amount:
          type: number
          description: Valor em centavos.
        fees:
          type: number
          description: Total de taxas em centavos.
        fees_banking:
          description: Pacote de taxas aplicado.
          allOf:
            - $ref: '#/components/schemas/PixPaymentFeesBanking'
        gateway_key:
          type: string
          description: Chave do gateway.
        original_amount:
          type: number
          description: Valor original em centavos.
      required:
        - _id
        - type
        - status
        - establishment_id
        - init_type
        - gateway_authorization
        - fees_details
        - expected_at
        - pixKey
        - recipient
        - payer
        - history
        - method
        - description
        - init_id
        - end_to_end
        - reprocessed
        - created_at
        - updated_at
        - __v
        - amount
        - fees
        - fees_banking
        - gateway_key
        - original_amount
    PixRefundedDto:
      type: object
      properties:
        description:
          type: string
          description: Descrição sobre o motivo da devolução do PIX.
    PixPaymentRefundedResponse:
      type: object
      properties:
        amount:
          type: number
          description: Valor em centavos.
        status:
          type: string
          description: Status da solicitação.
        id:
          type: string
          description: ID da transferência.
        endToEndId:
          type: string
          description: Identificador único de cada transação.
        establishment_id:
          type: number
          description: ID do estabelecimento.
      required:
        - amount
        - status
        - id
        - endToEndId
        - establishment_id
    ResponsibleDto:
      type: object
      properties:
        email:
          type: string
          description: E-mail.
        document:
          type: string
          description: CPF.
        first_name:
          type: string
          description: Nome.
        phone:
          type: string
          description: Número de telefone.
        birthdate:
          type: string
          description: Data de nascimento.
          example: '2000-01-01'
      required:
        - email
        - document
        - first_name
        - phone
        - birthdate
    EstablishmentAddressDto:
      type: object
      properties:
        zip_code:
          type: string
          description: CEP.
        street:
          type: string
          description: Logradouro.
        neighborhood:
          type: string
          description: Bairro.
        city:
          type: string
          description: Cidade.
        state:
          type: string
          enum:
            - AC
            - AL
            - AP
            - AM
            - BA
            - CE
            - DF
            - ES
            - GO
            - MA
            - MS
            - MT
            - MG
            - PA
            - PB
            - PR
            - PE
            - PI
            - RJ
            - RN
            - RS
            - RO
            - RR
            - SC
            - SP
            - SE
            - TO
          description: Estado.
        complement:
          type: string
          description: Complemento.
        number:
          type: string
          description: Número.
      required:
        - zip_code
        - street
        - neighborhood
        - city
        - state
        - complement
        - number
    CreateEstablishmentDto:
      type: object
      properties:
        type:
          type: string
          description: 'Tipo - BUSINESS: pessoa física. - INDIVIDUAL: pessoa jurídica.'
          enum:
            - INDIVIDUAL
            - BUSINESS
        activity_id:
          type: number
          description: Tipo de atividade.
        representative_id:
          type: number
          description: ID do representante.
        notes:
          type: string
          description: Anotações.
        visited:
          type: boolean
          description: Indica se o estabelecimento foi visitado.
        responsible:
          description: Dados do responsável pelo estabelecimento.
          allOf:
            - $ref: '#/components/schemas/ResponsibleDto'
        address:
          description: Endereço do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/EstablishmentAddressDto'
        revenue:
          type: number
          description: Faturamento.
        first_name:
          type: string
          description: Razão social.
        last_name:
          type: string
          description: Nome fantasia.
        cnae:
          type: string
          description: Código CNAE.
        document:
          type: string
          description: CNPJ.
        phone_number:
          type: string
          description: Número de telefone.
        format:
          type: string
          enum:
            - SS
            - SC
            - SPE
            - LTDA
            - SA
            - ME
            - MEI
            - EI
            - EIRELI
            - SLU
            - ESI
          description: Formato da empresa.
        email:
          type: string
          description: E-mail.
        birthdate:
          format: date-time
          type: string
          description: >-
            Data de abertura, obrigatório apenas quando o campo 'Type' for
            'BUSINESS'.
        gmv:
          type: number
          description: Meta de faturamento.
      required:
        - type
        - responsible
        - address
        - revenue
        - cnae
        - document
        - phone_number
        - format
        - email
    BankType:
      type: object
      properties:
        name:
          type: string
          description: Nome do banco.
          example: Banco X
        code:
          type: string
          description: Código de três dígitos do banco.
          example: '022'
        ispb:
          type: string
          description: Identificador de Sistema de Pagamentos Brasileiro.
          example: '02318222'
      required:
        - name
        - code
        - ispb
    BankAccountType:
      type: object
      properties:
        account_check_digit:
          type: string
          description: Dígito verificador da conta.
          example: '1'
        account_number:
          type: string
          description: Número da conta bancária.
          example: '123456'
        routing_check_digit:
          type: string
          description: Dígito verificador da agência (se aplicável).
          example: '9'
        routing_number:
          type: string
          description: Número da agência bancária (sem dígito).
          example: '1234'
          maxLength: 4
        type:
          type: string
          description: Tipo de conta bancária.
          enum:
            - CHECKING
            - SAVING
          example: CHECKING
        bank:
          description: Dados do banco.
          allOf:
            - $ref: '#/components/schemas/BankType'
      required:
        - account_check_digit
        - account_number
        - routing_check_digit
        - routing_number
        - type
        - bank
    SpbAccountType:
      type: object
      properties:
        account_check_digit:
          type: string
          description: Dígito verificador da conta.
          example: '1'
        account_number:
          type: string
          description: Número da conta bancária.
          example: '123456'
        routing_check_digit:
          type: string
          description: Dígito verificador da agência (se aplicável).
          example: '9'
        routing_number:
          type: string
          description: Número da agência bancária (sem dígito).
          example: '1234'
          maxLength: 4
        type:
          type: string
          description: Tipo de conta bancária.
          enum:
            - CHECKING
            - SAVING
          example: CHECKING
        bank:
          description: Tipo da conta bancária.
          allOf:
            - $ref: '#/components/schemas/BankType'
      required:
        - account_check_digit
        - account_number
        - routing_check_digit
        - routing_number
        - type
        - bank
    metadataResponse:
      type: object
      properties:
        code:
          type: string
          description: Código.
          example: '123'
        email:
          type: string
          description: E-mail.
          example: user@mail.com
        token:
          type: string
          description: Token.
          example: '456'
        statement_descriptor:
          type: string
          description: Nome a ser exibido na fatura.
          example: X Pagamentos
      required:
        - code
        - email
        - token
        - statement_descriptor
    gatewayResponseEstablishment:
      type: object
      properties:
        id:
          type: number
          description: Identificador do gateway.
        name:
          type: string
          description: Nome do gateway.
        reference_id:
          type: number
          description: Identificador de referência.
        status:
          type: string
          enum:
            - PENDING
            - WAITING
            - ANALYZE
            - BLOCKED
            - CANCELED
            - DISAPPROVED
            - APPROVED
          description: Status da configuração do gateway.
          default: PENDING
        active:
          type: boolean
          description: Indica se está ativo.
          default: true
        form_receipt:
          type: string
          enum:
            - BANKACCOUNT
            - PAYTIME
            - PAGBANK
            - ZOOPBANK
          description: Forma de recebimento dos valores.
          nullable: true
        bank_account:
          description: Conta de recebimento.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        spb_account:
          description: Conta SPB, caso a ativação seja BANKING.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/SpbAccountType'
        metadata:
          description: Metadados adicionais (JSON livre).
          allOf:
            - $ref: '#/components/schemas/metadataResponse'
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
          nullable: true
      required:
        - id
        - name
        - reference_id
        - status
        - active
        - form_receipt
        - bank_account
        - spb_account
        - metadata
        - created_at
        - updated_at
    FeeDetails:
      type: object
      properties:
        pix:
          type: number
          description: Taxa para PIX.
        ted:
          type: number
          description: Taxa para TED.
        billet:
          type: number
          description: Taxa para boleto.
        dynamic_pix:
          type: number
          description: Taxa para PIX dinâmico.
      required:
        - pix
        - ted
        - billet
        - dynamic_pix
    FeeBankingEstablishmentResponse:
      type: object
      properties:
        id:
          type: number
          description: ID da taxa bancária.
        name:
          type: string
          description: Nome da taxa bancária.
        type:
          type: string
          description: Tipo da taxa bancária.
          enum:
            - COMMERCIAL
            - STANDARD
        standard:
          description: Taxas padrão.
          allOf:
            - $ref: '#/components/schemas/FeeDetails'
        markup:
          description: Markup sobre as taxas.
          allOf:
            - $ref: '#/components/schemas/FeeDetails'
        fees:
          description: Taxas finais (standard + markup).
          allOf:
            - $ref: '#/components/schemas/FeeDetails'
      required:
        - id
        - name
        - type
        - standard
        - markup
        - fees
    RepresentativeResponse:
      type: object
      properties:
        id:
          type: number
          description: ID do representante.
        first_name:
          type: string
          description: Nome / Razão social.
        last_name:
          type: string
          description: Sobrenome / Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
        active:
          type: object
          description: Indica se este representante está ativo.
          example: true
      required:
        - id
        - first_name
        - last_name
        - document
        - active
    EstablishmentMarketplaceResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estabelecimento.
        type:
          type: string
          enum:
            - INDIVIDUAL
            - BUSINESS
          description: 'Tipo - BUSINESS: pessoa jurídica. - INDIVIDUAL: pessoa física.'
        first_name:
          type: string
          description: Nome / Razão social.
        last_name:
          type: string
          description: Sobrenome / Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
        birthdate:
          format: date-time
          type: string
          description: Data de nascimento / Data de abertura.
        phone_number:
          type: string
          description: Número de telefone.
        active:
          type: boolean
          description: Indica se o estabelecimento está credenciado ou não.
        revenue:
          type: string
          description: Faturamento.
        format:
          type: string
          description: Formato da empresa.
          enum:
            - SS
            - SC
            - SPE
            - LTDA
            - SA
            - ME
            - MEI
            - EI
            - EIRELI
            - SLU
            - ESI
        email:
          type: string
          description: E-mail.
        risk:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
          description: Risco.
        status:
          type: string
          enum:
            - PENDING
            - VALIDATION
            - RISK_ANALYSIS
            - APPROVED
            - DISAPPROVED
            - DISCREDITED
            - DISCREDITED_PERMANENTLY
            - BACKGROUND_CHECK
          description: Status do estabelecimento.
        account_level:
          type: string
          enum:
            - ADVANCED
            - SIMPLE
          description: Nível da conta.
        plans:
          description: Planos vinculados ao estabelecimento.
          type: array
          items:
            $ref: '#/components/schemas/PlanResponse'
        gateways:
          description: Gateways vinculados ao estabelecimento.
          type: array
          items:
            $ref: '#/components/schemas/gatewayResponseEstablishment'
        fees_banking:
          description: Taxas bancárias vinculadas ao estabelecimento.
          type: array
          items:
            $ref: '#/components/schemas/FeeBankingEstablishmentResponse'
        representative:
          description: Representante responsável.
          allOf:
            - $ref: '#/components/schemas/RepresentativeResponse'
        address:
          description: Endereço.
          allOf:
            - $ref: '#/components/schemas/Address'
        category:
          type: string
          description: Código da categoria comercial (MCC).
        code:
          type: string
          description: Identificador alfanumérico único do estabelecimento
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
        deleted_at:
          format: date-time
          type: string
          description: Data de exclusão.
      required:
        - id
        - type
        - first_name
        - last_name
        - document
        - birthdate
        - phone_number
        - active
        - revenue
        - email
        - risk
        - status
        - account_level
        - plans
        - gateways
        - fees_banking
        - representative
        - address
        - category
        - code
        - created_at
        - updated_at
        - deleted_at
    UpdateEstablishmentAddressDto:
      type: object
      properties:
        zip_code:
          type: string
          description: CEP.
        street:
          type: string
          description: Logradouro.
        neighborhood:
          type: string
          description: Bairro.
        city:
          type: string
          description: Cidade.
        state:
          type: string
          enum:
            - AC
            - AL
            - AP
            - AM
            - BA
            - CE
            - DF
            - ES
            - GO
            - MA
            - MS
            - MT
            - MG
            - PA
            - PB
            - PR
            - PE
            - PI
            - RJ
            - RN
            - RS
            - RO
            - RR
            - SC
            - SP
            - SE
            - TO
          description: Estado.
        complement:
          type: string
          description: Complemento.
        number:
          type: string
          description: Número.
    UpdateEstablishmentDto:
      type: object
      properties:
        access_type:
          type: string
          description: Tipo de acesso.
          enum:
            - ACQUIRER
            - BANKING
        first_name:
          type: string
          description: Nome / razão social.
        last_name:
          type: string
          description: Sobrenome / nome fantasia.
          nullable: true
        address:
          description: Endereço do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/UpdateEstablishmentAddressDto'
        phone_number:
          type: string
          description: Número de telefone.
        revenue:
          type: number
          description: Faturamento.
        format:
          type: string
          description: Formato da empresa.
          enum:
            - SS
            - SC
            - SPE
            - LTDA
            - SA
            - ME
            - MEI
            - EI
            - EIRELI
            - SLU
            - ESI
        email:
          type: string
          description: E-mail.
        gmv:
          type: number
          description: Meta de faturamento.
        birthdate:
          format: date-time
          type: string
          description: Data de nascimento / data de abertura.
    EstablishmentsMarketplaceResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estabelecimento.
        type:
          type: string
          enum:
            - INDIVIDUAL
            - BUSINESS
          description: 'Tipo - BUSINESS: pessoa jurídica. - INDIVIDUAL: pessoa física.'
        first_name:
          type: string
          description: Nome / Razão social.
        last_name:
          type: string
          description: Sobrenome / Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
        birthdate:
          format: date-time
          type: string
          description: Data de nascimento / Data de abertura.
        phone_number:
          type: string
          description: Número de telefone.
        active:
          type: boolean
          description: Indica se o estabelecimento está credenciado ou não.
        revenue:
          type: string
          description: Faturamento.
        format:
          type: string
          description: Formato da empresa.
          enum:
            - SS
            - SC
            - SPE
            - LTDA
            - SA
            - ME
            - MEI
            - EI
            - EIRELI
            - SLU
            - ESI
        email:
          type: string
          description: E-mail.
        risk:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
          description: Risco.
        status:
          type: string
          enum:
            - PENDING
            - VALIDATION
            - RISK_ANALYSIS
            - APPROVED
            - DISAPPROVED
            - DISCREDITED
            - DISCREDITED_PERMANENTLY
            - BACKGROUND_CHECK
          description: Status do estabelecimento.
        address:
          description: Endereço.
          allOf:
            - $ref: '#/components/schemas/Address'
        category:
          type: string
          description: Código da categoria comercial (MCC).
        code:
          type: string
          description: Identificador alfanumérico único do estabelecimento
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
        deleted_at:
          format: date-time
          type: string
          description: Data de exclusão.
      required:
        - id
        - type
        - first_name
        - last_name
        - document
        - birthdate
        - phone_number
        - active
        - revenue
        - email
        - risk
        - status
        - address
        - category
        - code
        - created_at
        - updated_at
        - deleted_at
    EstablishmentBalanceResponse:
      type: object
      properties:
        total_balance:
          type: number
          description: Saldo total do estabelecimento.
        blocked_balance:
          type: number
          description: Saldo bloqueado do estabelecimento.
        balance:
          type: number
          description: Saldo disponível do estabelecimento.
      required:
        - total_balance
        - blocked_balance
        - balance
    AdditionalInformationResponse:
      type: object
      properties:
        old_balance:
          type: number
          description: Saldo anterior.
        current_balance:
          type: number
          description: Saldo atual.
      required:
        - old_balance
        - current_balance
    EstablishmentExtractResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - FEES
            - PIX
            - TED
            - BILLET
            - P2P
          description: Tipo da transferência.
        modality:
          type: string
          enum:
            - OUT
            - IN
          description: Modalidade da transferência.
        created_at:
          type: string
          description: Data de criação da transferência.
        description:
          type: string
          enum:
            - PAGAMENTO DE CONTAS
            - RECEBIMENTO DE PAGAMENTO
            - TRANSFERÊNCIA PIX
            - RECEBIMENTO PIX
            - DEPOSITO
            - TRANSFERÊNCIA ENVIADA
            - TRANSFERÊNCIA RECEBIDA
            - TRANSFERÊNCIA ENTRE CONTAS (P2P)
          description: Descrição da transferência.
        gateway_key:
          type: string
          description: Chave identificadora da transferência no gateway.
        amount:
          type: number
          description: Valor da transferência em centavos.
        status:
          type: string
          description: Status da transferência.
        additionalInformation:
          description: Informações adicionais da transferência.
          allOf:
            - $ref: '#/components/schemas/AdditionalInformationResponse'
      required:
        - type
        - modality
        - created_at
        - description
        - gateway_key
        - amount
        - status
        - additionalInformation
    EstablishmentExtractPaginatedResponse:
      type: object
      properties:
        total:
          type: number
          description: Total de registros.
        perPage:
          type: number
          description: Registros por página.
        page:
          type: number
          description: Página atual.
        lastPage:
          type: number
          description: Última página.
        data:
          description: Dados do extrato.
          type: array
          items:
            $ref: '#/components/schemas/EstablishmentExtractResponse'
      required:
        - total
        - perPage
        - page
        - lastPage
        - data
    gatewayResponse:
      type: object
      properties:
        id:
          type: number
          description: ID do gateway.
        name:
          type: string
          description: Nome de identificação.
      required:
        - id
        - name
    EstablishmentGatewayResponse:
      type: object
      properties:
        id:
          type: number
          description: ID da configuração do gateway.
        gateway:
          description: Gateway da ativação.
          allOf:
            - $ref: '#/components/schemas/gatewayResponse'
        establishment_id:
          type: number
          description: ID do estabelecimento.
        gateway_key:
          type: string
          description: Chave do gateway (caso exista).
          nullable: true
        status:
          type: string
          enum:
            - PENDING
            - WAITING
            - ANALYZE
            - BLOCKED
            - CANCELED
            - DISAPPROVED
            - APPROVED
          description: Status da configuração do gateway.
          default: PENDING
        active:
          type: boolean
          description: Indica se está ativo.
          default: true
        form_receipt:
          type: string
          enum:
            - BANKACCOUNT
            - PAYTIME
            - PAGBANK
            - ZOOPBANK
          description: Forma de recebimento dos valores.
          nullable: true
        bank_account:
          description: Conta de recebimento.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/BankAccountType'
        spb_account:
          description: Conta SPB, caso a ativação seja BANKING.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/SpbAccountType'
        metadata:
          description: Metadados adicionais (JSON livre).
          allOf:
            - $ref: '#/components/schemas/metadataResponse'
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
          nullable: true
      required:
        - id
        - gateway
        - establishment_id
        - gateway_key
        - status
        - active
        - form_receipt
        - bank_account
        - spb_account
        - metadata
        - created_at
        - updated_at
    PlanDto:
      type: object
      properties:
        id:
          type: number
          description: ID do plano.
          example: 5
        active:
          type: boolean
          description: 'Flag de ativação: true para ativar, false para desativar.'
          example: true
      required:
        - id
        - active
    ActivateGatewayDto:
      type: object
      properties:
        reference_id:
          oneOf:
            - type: string
              example: ABC-123
            - type: number
              example: 42
        gateway_id:
          type: number
          description: >-
            ID da plataforma a ser ativada: 2 - PAGSEGURO, 4 - PAYTIME, 6 -
            BANKING
          enum:
            - 2
            - 4
            - 6
        active:
          type: boolean
          description: True ativa a plataforma; false desativa a plataforma.
        form_receipt:
          type: string
          enum:
            - BANKACCOUNT
            - PAYTIME
            - PAGBANK
          description: Forma de recebimento dos valores.
        bank_account:
          description: >-
            Dados da conta bancária. Obrigatório caso a forma de recebimento
            selecionada seja "BANKACCOUNT".
          allOf:
            - $ref: '#/components/schemas/BankAccountDto'
        statement_descriptor:
          type: string
          description: >-
            Nome a ser exibido na fatura. Obrigatório na ativação da plataforma
            Sub Paytime.
        plans:
          description: >-
            Planos a serem associados. Obrigatório na ativação das plataformas
            Sub Paytime e PagSeguro.
          type: array
          items:
            $ref: '#/components/schemas/PlanDto'
        fees_banking_id:
          type: number
          description: >-
            Pacote de tarifas bancárias a ser associado. Obrigatório para
            ativação do Banking.
      required:
        - gateway_id
        - active
        - form_receipt
        - bank_account
    RepresentativeStates:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estado.
          example: 1
        initials:
          type: string
          description: Iniciais do estado
          example: ES
        name:
          type: string
          description: Nome do estado.
          example: Espírito Santo
      required:
        - id
        - initials
        - name
    EstablishmentOwner:
      type: object
      properties:
        first_name:
          type: string
          description: Nome / razão social.
        last_name:
          type: string
          description: Sobrenome / nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
      required:
        - first_name
        - last_name
        - document
    EstablishmentRepresentativeResponse:
      type: object
      properties:
        first_name:
          type: string
          description: Nome / razão social.
        last_name:
          type: string
          description: Sobrenome / nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
        owner:
          description: Responsável pelo estabelecimento.
          allOf:
            - $ref: '#/components/schemas/EstablishmentOwner'
      required:
        - first_name
        - last_name
        - document
        - owner
    RepresentativeRoyalties:
      type: object
      properties:
        pix:
          type: number
          description: Royaltie do pix.
          example: 10
        ted:
          type: number
          description: Royaltie do ted.
          example: 10
        debit:
          type: number
          description: Royaltie do débito.
          example: 10
        billet:
          type: number
          description: Royaltie do boleto.
          example: 10
        credit:
          type: number
          description: Royaltie do crédito.
          example: 10
      required:
        - pix
        - ted
        - debit
        - billet
        - credit
    RepresentativeResponseDto:
      type: object
      properties:
        id:
          type: number
          description: Identificador do representante.
          example: 1
        active:
          type: boolean
          description: Indica se está ativo.
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
        deleted_at:
          format: date-time
          type: string
          description: Data de exclusão.
        states:
          description: Estados de atuação do representante.
          type: array
          items:
            $ref: '#/components/schemas/RepresentativeStates'
        establishment:
          description: Estabelecimento do representante.
          allOf:
            - $ref: '#/components/schemas/EstablishmentRepresentativeResponse'
        royalties:
          description: Royalties dos representantes.
          allOf:
            - $ref: '#/components/schemas/RepresentativeRoyalties'
      required:
        - id
        - active
        - created_at
        - updated_at
        - deleted_at
        - states
        - establishment
        - royalties
    PlansMarketplaceResponse:
      type: object
      properties:
        id:
          type: number
          description: ID do plano.
        name:
          type: string
          description: Nome do plano.
        active:
          type: boolean
          description: Indica se o plano está ativo.
        gateway_id:
          type: number
          description: ID do gateway associado ao plano.
        description:
          type: string
          description: Descrição do plano.
          nullable: true
        type:
          type: string
          enum:
            - COMMERCIAL
            - STANDARD
          description: Tipo do plano.
        modality:
          type: string
          enum:
            - ONLINE
            - PHYSICAL
          description: Modalidade do plano.
        allow_anticipation:
          type: boolean
          description: Indica se o plano permite antecipação.
        days_anticipation:
          type: number
          description: Indica o número de dias para antecipação se o plano permitir.
        created_at:
          format: date-time
          type: string
          description: Data de criação do plano.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização do plano.
      required:
        - id
        - name
        - active
        - gateway_id
        - description
        - type
        - modality
        - allow_anticipation
        - days_anticipation
        - created_at
        - updated_at
    CreditFees:
      type: object
      properties:
        1x:
          type: number
        2x:
          type: number
        3x:
          type: number
        4x:
          type: number
        5x:
          type: number
        6x:
          type: number
        7x:
          type: number
        8x:
          type: number
        9x:
          type: number
        10x:
          type: number
        11x:
          type: number
        12x:
          type: number
        13x:
          type: number
        14x:
          type: number
        15x:
          type: number
        16x:
          type: number
        17x:
          type: number
        18x:
          type: number
        19x:
          type: number
        20x:
          type: number
        21x:
          type: number
        22x:
          type: number
        23x:
          type: number
        24x:
          type: number
    PlanFlagCalculation:
      type: object
      properties:
        pix:
          type: number
          description: Taxa aplicada para PIX.
        debit:
          type: number
          description: Taxa aplicada para débito.
        credit:
          description: Taxas aplicadas para crédito parcelado de 1x a 24x.
          allOf:
            - $ref: '#/components/schemas/CreditFees'
      required:
        - pix
        - debit
        - credit
    PlanFlagResponseWithFees:
      type: object
      properties:
        id:
          type: number
          description: ID da bandeira.
        name:
          type: string
          description: Nome da bandeira.
        active:
          type: boolean
          description: Indica se a bandeira está ativa.
        standard:
          $ref: '#/components/schemas/PlanFlagCalculation'
        markup:
          $ref: '#/components/schemas/PlanFlagCalculation'
        fees:
          $ref: '#/components/schemas/PlanFlagCalculation'
      required:
        - id
        - name
        - active
        - standard
        - markup
        - fees
    PlanMarketplaceResponse:
      type: object
      properties:
        id:
          type: number
        name:
          type: string
        active:
          type: boolean
        gateway_id:
          type: number
        description:
          type: string
          nullable: true
        type:
          type: string
          enum:
            - COMMERCIAL
            - STANDARD
        modality:
          type: string
          enum:
            - ONLINE
            - PHYSICAL
        allow_anticipation:
          type: boolean
        created_at:
          format: date-time
          type: string
        updated_at:
          format: date-time
          type: string
        flags:
          type: array
          items:
            $ref: '#/components/schemas/PlanFlagResponseWithFees'
      required:
        - id
        - name
        - active
        - gateway_id
        - description
        - type
        - modality
        - allow_anticipation
        - created_at
        - updated_at
        - flags
    FeeBankingResponse:
      type: object
      properties:
        id:
          type: number
          description: ID da taxa bancária.
        name:
          type: string
          description: Nome da taxa bancária.
        type:
          type: string
          description: Tipo da taxa bancária.
          enum:
            - COMMERCIAL
            - STANDARD
        standard:
          description: Taxas padrão.
          allOf:
            - $ref: '#/components/schemas/FeeDetails'
        markup:
          description: Markup sobre as taxas.
          allOf:
            - $ref: '#/components/schemas/FeeDetails'
        fees:
          description: Taxas finais (standard + markup).
          allOf:
            - $ref: '#/components/schemas/FeeDetails'
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
      required:
        - id
        - name
        - type
        - standard
        - markup
        - fees
        - created_at
        - updated_at
    GatewayResponse:
      type: object
      properties:
        id:
          type: number
          description: ID do gateway.
        name:
          type: string
          description: Nome do gateway.
        type:
          type: string
          description: Tipo do gateway.
        created_at:
          format: date-time
          type: string
          description: Data de criação do gateway.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização do gateway.
      required:
        - id
        - name
        - type
        - created_at
        - updated_at
    BilletClientDto:
      type: object
      properties:
        first_name:
          type: string
          description: Nome / razão social do cliente.
        last_name:
          type: string
          description: Sobrenome / nome fantasia do cliente.
        document:
          type: string
          description: CPF / CNPJ do cliente.
        email:
          type: string
          description: E-mail do cliente.
        address:
          description: Endereço.
          allOf:
            - $ref: '#/components/schemas/Address'
      required:
        - first_name
        - document
        - email
        - address
    BilletLateFee:
      type: object
      properties:
        mode:
          type: string
          description: Unidade para cobrança.
          enum:
            - PERCENTAGE
        amount:
          type: number
          description: Valor da multa.
          example: 2.5
      required:
        - mode
        - amount
    BilletInterestDto:
      type: object
      properties:
        mode:
          type: string
          description: Unidade para cobrança.
          enum:
            - MONTHLY_PERCENTAGE
        amount:
          type: number
          description: Valor do juros.
          example: 2.5
      required:
        - mode
        - amount
    BilletDiscountDto:
      type: object
      properties:
        mode:
          type: string
          description: Modalidade para desconto.
          enum:
            - PERCENTAGE
        amount:
          type: number
          description: Valor para desconto.
          example: 2.5
        limit_date:
          type: string
          description: Data limite para desconto.
      required:
        - mode
        - amount
        - limit_date
    BilletInstructionDto:
      type: object
      properties:
        booklet:
          type: boolean
          description: Boleto do tipo carnê?
        description:
          type: string
          description: Descrição do boleto.
          nullable: false
        late_fee:
          description: Multa por atraso.
          allOf:
            - $ref: '#/components/schemas/BilletLateFee'
        interest:
          description: Juros por atraso.
          allOf:
            - $ref: '#/components/schemas/BilletInterestDto'
        discount:
          description: Desconto.
          allOf:
            - $ref: '#/components/schemas/BilletDiscountDto'
      required:
        - booklet
    CreateBilletDto:
      type: object
      properties:
        amount:
          type: number
          description: Valor do documento.
        expiration:
          type: string
          description: Data de vencimento.
        payment_limit_date:
          type: string
          description: Data limite para pagamento.
        recharge:
          type: boolean
          description: Recarga por boleto?
        reference_id:
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno do boleto.
          oneOf:
            - type: string
              example: ABC-123
            - type: number
              example: 42
        client:
          description: Dados do cliente.
          allOf:
            - $ref: '#/components/schemas/BilletClientDto'
        instruction:
          description: Instruções do boleto.
          allOf:
            - $ref: '#/components/schemas/BilletInstructionDto'
      required:
        - amount
        - expiration
        - client
        - instruction
    BilletFeesBankingResponse:
      type: object
      properties:
        name:
          type: string
          description: Nome do plano.
        description:
          type: string
          description: Descrição do plano.
        fees:
          type: number
          description: Valor cobrado.
      required:
        - name
        - description
        - fees
    BilletLateFeeResponseDto:
      type: object
      properties:
        mode:
          type: string
          description: Unidade para cobrança.
          enum:
            - PERCENTAGE
        amount:
          type: number
          description: Valor da multa.
      required:
        - mode
        - amount
    BilletInterestResponseDto:
      type: object
      properties:
        mode:
          type: string
          description: Unidade para cobrança.
          enum:
            - MONTHLY_PERCENTAGE
        amount:
          type: number
          description: Valor dos juros.
      required:
        - mode
        - amount
    BilletDiscountResponseDto:
      type: object
      properties:
        mode:
          type: string
          description: Modalidade para desconto.
          enum:
            - PERCENTAGE
        amount:
          type: number
          description: Valor para desconto.
        limit_date:
          type: string
          description: Data limite para desconto.
      required:
        - mode
        - amount
        - limit_date
    BilletInstructionResponseDto:
      type: object
      properties:
        booklet:
          type: boolean
          description: Boleto do tipo carnê?
        description:
          type: string
          description: Descrição do boleto.
        late_fee:
          description: Multa por atraso.
          allOf:
            - $ref: '#/components/schemas/BilletLateFeeResponseDto'
        interest:
          description: Juros por atraso.
          allOf:
            - $ref: '#/components/schemas/BilletInterestResponseDto'
        discount:
          description: Desconto.
          allOf:
            - $ref: '#/components/schemas/BilletDiscountResponseDto'
      required:
        - booklet
    CreateBilletResponse:
      type: object
      properties:
        _id:
          type: string
          description: Identificador do boleto.
        type:
          type: string
          description: Tipo do boleto.
        gateway_key:
          type: string
          description: Chave do boleto.
        establishment_id:
          type: string
          description: Identificador do estabelecimento.
        description:
          type: string
          description: Descrição do boleto.
        amount:
          type: number
          description: Valor bruto do boleto.
        original_amount:
          type: number
          description: Valor líquido do boleto.
        barcode:
          type: string
          description: Código de barras do boleto.
        digitable_line:
          type: string
          description: Linha digitável do boleto.
        url:
          type: string
          description: URL para download do boleto.
        status:
          type: string
          description: Status do boleto.
          enum:
            - PROCESSING
            - CREATED
            - PENDING
            - CANCELED
            - PAID
            - FAILED
        expiration_at:
          type: string
          description: Data de vencimento do boleto.
        payment_limit_date:
          type: string
          description: Data limite para pagamento do boleto.
        fees:
          type: number
          description: Taxa do boleto.
        fees_banking:
          description: Detalhes da taxa do boleto.
          allOf:
            - $ref: '#/components/schemas/BilletFeesBankingResponse'
        establishment:
          description: Dados do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/BilletFeesBankingResponse'
        client:
          description: Dados do cliente.
          allOf:
            - $ref: '#/components/schemas/BilletClientDto'
        billet_instructions:
          description: Instruções do boleto.
          allOf:
            - $ref: '#/components/schemas/BilletInstructionResponseDto'
        recharge:
          type: boolean
          description: Boleto de recarga.
        pix_emv:
          type: string
          description: Pix copia e cola.
        reference_id:
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno do boleto.
          oneOf:
            - type: string
              example: ABC-123
            - type: number
              example: 42
      required:
        - _id
        - type
        - gateway_key
        - establishment_id
        - description
        - amount
        - original_amount
        - barcode
        - digitable_line
        - url
        - status
        - expiration_at
        - payment_limit_date
        - fees
        - fees_banking
        - establishment
        - client
        - billet_instructions
        - recharge
        - pix_emv
    RechargeBilletDto:
      type: object
      properties:
        amount:
          type: number
          description: Valor do documento.
      required:
        - amount
    EstablishmentsDto:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estabelecimento.
        active:
          type: boolean
          description: Indica se a regra está ativa.
        value:
          type: number
          description: Valor / porcentagem atribuída ao estabelecimento.
      required:
        - id
        - active
        - value
    CreateSplitRuleDto:
      type: object
      properties:
        title:
          type: string
          description: Título da regra de pré-split.
        modality:
          type: string
          description: Modalidade do pré-split.
          enum:
            - ALL
            - CREDIT
            - DEBIT
            - PIX
        channel:
          type: string
          description: Canal do pré-split.
          enum:
            - ALL
            - CHIP
            - TAP
            - SMART
            - ONLINE
        division:
          type: string
          description: Tipo de divisão do pré-split.
          enum:
            - PERCENTAGE
            - CURRENCY
        active:
          type: boolean
          description: Indica se o pré-split está ativo ou não.
        installment:
          type: number
          description: Quantidade de parcelas.
        establishments:
          description: Lista de estabelecimentos participantes do pré-split.
          type: array
          items:
            $ref: '#/components/schemas/EstablishmentsDto'
      required:
        - title
        - modality
        - channel
        - division
        - active
        - establishments
    EstablishmentType:
      type: object
      properties:
        id:
          type: number
          description: Identificador do estabelecimento.
        first_name:
          type: string
          description: Nome / Razão social.
        last_name:
          type: string
          description: Sobrenome / Nome fantasia.
        document:
          type: string
          description: Documento cadastrado do estabelecimento.
      required:
        - id
        - first_name
        - last_name
        - document
    EstablishmentsType:
      type: object
      properties:
        value:
          type: number
          description: Valor/Porcentagem atribuído ao estabelecimento.
        priority:
          type: number
          description: Prioridade da regra.
        active:
          type: boolean
          description: Indica se a regra está ativa.
        establishment:
          description: Informações do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/EstablishmentType'
      required:
        - value
        - priority
        - active
        - establishment
    MetaResponse:
      type: object
      properties:
        ecs_count:
          type: number
          description: Quantidade de estabelecimentos participantes ativos.
      required:
        - ecs_count
    SplitRuleResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador da regra de split pré.
        title:
          type: string
          description: Título da regra de split.
        modality:
          type: string
          description: Modalidade do pré-split.
          enum:
            - ALL
            - CREDIT
            - DEBIT
            - PIX
        channel:
          type: string
          description: Canal do pré-split.
          enum:
            - ALL
            - CHIP
            - TAP
            - SMART
            - ONLINE
        division:
          type: string
          description: Tipo de divisão do pré-split.
          enum:
            - PERCENTAGE
            - CURRENCY
        installment:
          type: number
          description: Número de parcelas do pré-split.
          nullable: true
        active:
          type: boolean
          description: Indica se a regra está ativa.
        establishment_percentage:
          type: number
          description: Porcentagem do estabelecimento principal.
        establishment:
          description: Estabelecimento principal.
          allOf:
            - $ref: '#/components/schemas/EstablishmentType'
        establishments:
          description: Estabelecimentos secundários.
          type: array
          items:
            $ref: '#/components/schemas/EstablishmentsType'
        __meta__:
          description: Metadados da resposta.
          allOf:
            - $ref: '#/components/schemas/MetaResponse'
      required:
        - id
        - title
        - modality
        - channel
        - division
        - installment
        - active
        - establishment
        - establishments
        - __meta__
    UpdateSplitRuleDto:
      type: object
      properties:
        title:
          type: string
          description: Título da regra de pré-split.
        modality:
          type: string
          description: Modalidade do pré-split.
          enum:
            - ALL
            - CREDIT
            - DEBIT
            - PIX
        channel:
          type: string
          description: Canal do pré-split.
          enum:
            - ALL
            - CHIP
            - TAP
            - SMART
            - ONLINE
        division:
          type: string
          description: Tipo de divisão do pré-split.
          enum:
            - PERCENTAGE
            - CURRENCY
        active:
          type: boolean
          description: Indica se o pré-split está ativo ou não.
        installment:
          type: number
          description: Quantidade de parcelas.
        establishments:
          description: Lista de estabelecimentos participantes do pré-split.
          type: array
          items:
            $ref: '#/components/schemas/EstablishmentsDto'
    SplitRuleIndexResponse:
      type: object
      properties:
        id:
          type: number
          description: Identificador da regra de pré-split.
        title:
          type: string
          description: Título da regra de pré-split.
        modality:
          type: string
          description: Modalidade do pré-split.
          enum:
            - ALL
            - CREDIT
            - DEBIT
            - PIX
        channel:
          type: string
          description: Canal do pré-split.
          enum:
            - ALL
            - CHIP
            - TAP
            - SMART
            - ONLINE
        division:
          type: string
          description: Tipo de divisão do pré-split.
          enum:
            - PERCENTAGE
            - CURRENCY
        installment:
          type: number
          description: Número de parcelas do pré-split.
          nullable: true
        establishment_id:
          type: number
          description: Identificador do estabelecimento principal.
        active:
          type: boolean
          description: Indica se a regra está ativa.
        __meta__:
          description: Metadados da resposta.
          allOf:
            - $ref: '#/components/schemas/MetaResponse'
      required:
        - id
        - title
        - modality
        - channel
        - division
        - installment
        - establishment_id
        - active
        - __meta__
    CreateWebhookEventDto:
      type: object
      properties:
        event_id:
          type: number
          description: ID do evento.
        active:
          type: boolean
          description: Define se o webhook está ativo.
        url:
          type: string
          description: URL de recebimento do webhook (obrigatória se ativo).
        basic_user:
          type: string
          description: Usuário para autenticação básica.
        basic_pass:
          type: string
          description: Senha para autenticação básica.
      required:
        - event_id
        - active
    CreateWebhooksDto:
      type: object
      properties:
        events:
          description: Lista de webhooks a serem criados ou atualizados.
          type: array
          items:
            $ref: '#/components/schemas/CreateWebhookEventDto'
      required:
        - events
    HookEventIntegration:
      type: object
      properties:
        id:
          type: number
          description: ID do evento.
        name:
          type: string
          description: Nome do evento.
        description:
          type: string
          description: Descrição do evento.
        active:
          type: boolean
        url:
          type: string
          nullable: true
          description: URL de recebimento do webhook.
        basic_user:
          type: string
          nullable: true
          description: Basic user para autenticação.
        basic_pass:
          type: string
          nullable: true
          description: Basic password para autenticação.
      required:
        - id
        - name
        - description
        - active
        - url
        - basic_user
        - basic_pass
    IntegrationFormattedResponse:
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/HookEventIntegration'
      required:
        - events
    DeleteWebhookEventResponse:
      type: object
      properties:
        message:
          type: string
          description: Mensagem de retorno.
      required:
        - message
    WebhookItemResponse:
      type: object
      properties:
        id:
          type: number
          description: ID do evento.
        active:
          type: boolean
          description: Indica se o webhook está ativo.
        name:
          type: string
          description: Nome do evento.
        url:
          type: string
          description: URL de recebimento do webhook.
        basic_user:
          type: string
          description: Basic user para autenticação.
        basic_pass:
          type: string
          description: Basic password para autenticação.
      required:
        - id
        - active
        - name
        - url
        - basic_user
        - basic_pass
    ResendWebhookDto:
      type: object
      properties:
        event:
          type: string
          description: Evento de webhook a ser reenviado.
          enum:
            - new-sub-transaction
            - updated-sub-transaction
            - new-sub-checkout
            - updated-sub-checkout
            - new-zoop-transaction
            - updated-zoop-transaction
            - new-pagseguro-transaction
            - updated-pagseguro-transaction
            - new-establishment
            - updated-establishment-status
            - updated-establishment-data
            - new-billet
            - updated-billet-status
            - updated-establishment-gateway
            - new-sub-split
            - canceled-sub-split
            - new-transfer-ted-out
            - updated-transfer-ted-out
            - new-transfer-ted-in
            - new-transfer-pix-out
            - updated-transfer-pix-out
            - new-transfer-pix-in
            - new-transfer-p2p-in
            - new-transfer-p2p-out
            - updated-transfer-p2p-out
            - new-payment-billet
            - updated-payment-billet
            - updated-export-file
          example: new-sub-transaction
        id:
          description: ID da entidade relacionada ao evento, se aplicável.
          oneOf:
            - type: string
              example: 507f191e810c19729de860ea
            - type: number
              example: 123
      required:
        - event
    WebhookResendResponse:
      type: object
      properties:
        message:
          type: string
          example: Solicitação de webhook realizada com sucesso...
      required:
        - message
    CheckBilletDto:
      type: object
      properties:
        digitable:
          type: string
          description: Linha digitável do boleto.
        barcode:
          type: string
          description: Código de barras do boleto.
    CheckBilletRecipientResponse:
      type: object
      properties:
        name:
          type: string
          description: Nome do beneficiário do boleto.
        document:
          type: string
          description: Documento do beneficiário do boleto.
      required:
        - name
        - document
    CheckBilletPayerResponse:
      type: object
      properties:
        document:
          type: string
          description: Documento do pagador do boleto.
        name:
          type: string
          description: Nome do pagador do boleto.
      required:
        - document
        - name
    CheckBilletDetailsResponse:
      type: object
      properties:
        installments_paid:
          type: number
          description: Quantidade de parcelas já pagas do boleto.
        total_amount_paid:
          type: number
          description: Valor total já pago do boleto.
        document_final_recipient:
          type: string
          description: Documento do destinatário final do boleto.
          nullable: true
        final_recipient:
          type: string
          description: Nome do destinatário final do boleto.
          nullable: true
        billet_type:
          type: string
          description: Tipo do boleto.
      required:
        - installments_paid
        - total_amount_paid
        - document_final_recipient
        - final_recipient
        - billet_type
    CheckBilletResponse:
      type: object
      properties:
        barcode:
          type: string
          description: Código de barras do boleto.
        digitable_line:
          type: string
          description: Linha digitável do boleto.
        expected_on:
          format: date-time
          type: string
          description: Data de vencimento do boleto.
        type:
          type: number
          description: Tipo do boleto.
        amount:
          type: number
          description: Valor a ser pago.
        nominal_amount:
          type: number
          description: Valor nominal do boleto.
        discount:
          type: number
          description: Valor de desconto aplicado ao boleto.
        fine:
          type: number
          description: Valor de multa aplicado ao boleto.
        interest:
          type: number
          description: Valor de juros aplicado ao boleto.
        max_amount:
          type: number
          description: Valor máximo permitido para pagamento do boleto.
          nullable: true
        min_amount:
          type: number
          description: Valor mínimo permitido para pagamento do boleto.
          nullable: true
        transaction_id:
          type: string
          description: Identificador da transação.
        recipient:
          description: Dados do beneficiário do boleto.
          allOf:
            - $ref: '#/components/schemas/CheckBilletRecipientResponse'
        payer:
          description: Dados do pagador do boleto.
          allOf:
            - $ref: '#/components/schemas/CheckBilletPayerResponse'
        billet_details:
          description: Informações adicionais do boleto.
          allOf:
            - $ref: '#/components/schemas/CheckBilletDetailsResponse'
      required:
        - barcode
        - digitable_line
        - expected_on
        - type
        - amount
        - nominal_amount
        - discount
        - fine
        - interest
        - max_amount
        - min_amount
        - transaction_id
        - recipient
        - payer
        - billet_details
    PaymentDetails:
      type: object
      properties:
        balance:
          type: number
          description: Valor pago com saldo.
        card:
          type: number
          description: Valor pago com cartão.
        total:
          type: number
          description: Valor total pago.
        fees:
          type: number
          description: Valor da taxa aplicada quando pago com cartão.
      required:
        - balance
        - card
        - total
        - fees
    EstablishmentPaymentInfo:
      type: object
      properties:
        id:
          type: number
          description: ID do estabelecimento.
        type:
          type: string
          description: Tipo do estabelecimento.
          enum:
            - INDIVIDUAL
            - BUSINESS
        access_type:
          type: string
          description: Tipo de acesso do estabelecimento.
        active:
          type: number
          description: Indica se o estabelecimento está ativo.
          example: 1
        first_name:
          type: string
          description: Nome / Razão social.
        last_name:
          type: string
          description: Sobrenome / Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
      required:
        - id
        - type
        - access_type
        - active
        - first_name
        - last_name
        - document
    MarketplacePaymentInfo:
      type: object
      properties:
        id:
          type: number
          description: ID do marketplace.
        type:
          type: string
          description: Tipo do marketplace.
          enum:
            - WHITELABEL
            - LICENSED
            - REPRESENTATIVE
        nickname:
          type: string
          description: Apelido do marketplace.
        active:
          type: number
          description: Indica se o marketplace está ativo.
        first_name:
          type: string
          description: Nome / Razão social.
        last_name:
          type: string
          description: Sobrenome / Nome fantasia.
        document:
          type: string
          description: CPF / CNPJ.
      required:
        - id
        - type
        - nickname
        - active
        - first_name
        - last_name
        - document
    PaymentMarketplaceResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID do pagamento.
        status:
          type: string
          description: Status atual do pagamento.
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - REFUNDED
            - CANCELED
          example: PAID
        expected_on:
          format: date-time
          type: string
          description: Data prevista para o pagamento.
        amount:
          type: number
          description: Valor do pagamento.
        payment_details:
          description: Detalhamento do pagamento.
          allOf:
            - $ref: '#/components/schemas/PaymentDetails'
        establishment:
          description: Informações do estabelecimento.
          allOf:
            - $ref: '#/components/schemas/EstablishmentPaymentInfo'
        marketplace:
          description: Informações do marketplace.
          allOf:
            - $ref: '#/components/schemas/MarketplacePaymentInfo'
        created_at:
          format: date-time
          type: string
          description: Data e hora da criação do pagamento.
        payment_date:
          format: date-time
          type: string
          description: Data e hora em que o pagamento foi efetivado.
      required:
        - _id
        - status
        - expected_on
        - amount
        - payment_details
        - establishment
        - marketplace
        - created_at
        - payment_date
    RecipientInfo:
      type: object
      properties:
        name:
          type: string
          description: Nome do beneficiário do boleto.
        document:
          type: string
          description: Documento do beneficiário do boleto.
        _id:
          type: string
          description: ID do beneficiário no banco de dados.
      required:
        - name
        - document
        - _id
    BilletDetails:
      type: object
      properties:
        installments_paid:
          type: number
          description: Quantidade de parcelas pagas.
        total_amount_paid:
          type: number
          description: Valor total já pago.
        document_final_recipient:
          type: string
          description: Documento do destinatário final do boleto.
          nullable: true
        final_recipient:
          type: string
          description: Nome do destinatário final do boleto.
          nullable: true
        billet_type:
          type: string
          description: Tipo do boleto.
        _id:
          type: string
          description: ID dos detalhes do boleto.
      required:
        - installments_paid
        - total_amount_paid
        - document_final_recipient
        - final_recipient
        - billet_type
        - _id
    PaymentUser:
      type: object
      properties:
        id:
          type: number
          description: ID do usuário que realizou o pagamento.
        first_name:
          type: string
          description: Primeiro nome do usuário.
        last_name:
          type: string
          description: Último nome do usuário.
          nullable: true
        profile_id:
          type: number
          description: ID do perfil do usuário.
      required:
        - id
        - first_name
        - last_name
        - profile_id
    HistoryEntry:
      type: object
      properties:
        status:
          type: string
          description: Status atribuído ao pagamento.
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - REFUNDED
            - CANCELED
        created_at:
          format: date-time
          type: string
          description: Data e hora em que o status foi registrado.
        _id:
          type: string
          description: ID do histórico.
      required:
        - status
        - created_at
        - _id
    PaymentFindOneResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID do pagamento.
        type:
          type: string
          description: Tipo do pagamento.
        status:
          type: string
          description: Status atual do pagamento.
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - REFUNDED
            - CANCELED
        barcode:
          type: string
          description: Código de barras do boleto pago.
        digitable_line:
          type: string
          description: Linha digitável do boleto pago.
        expected_on:
          format: date-time
          type: string
          description: Data prevista para pagamento.
        amount:
          type: number
          description: Valor líquido.
        nominal_amount:
          type: number
          description: Valor nominal do boleto.
        discount:
          type: number
          description: Valor de desconto aplicado.
        fine:
          type: number
          description: Valor de multa (mora) aplicado ao boleto.
        interest:
          type: number
          description: Valor de juros aplicado ao boleto.
        gateway_key:
          type: string
          description: Chave do gateway que processou o pagamento.
        document_number:
          type: string
          description: Documento informado como referência no boleto.
        gateway_authorization:
          type: string
          description: Nome do gateway responsável pelo processamento do boleto.
        payment_details:
          description: Informações sobre os meios utilizados no pagamento.
          allOf:
            - $ref: '#/components/schemas/PaymentDetails'
        recipient:
          description: Dados do beneficiário do boleto.
          allOf:
            - $ref: '#/components/schemas/RecipientInfo'
        billet_details:
          description: Informações adicionais do boleto pago.
          allOf:
            - $ref: '#/components/schemas/BilletDetails'
        establishment_id:
          type: string
          description: ID do estabelecimento.
        user:
          description: Dados do usuário que realizou o pagamento.
          allOf:
            - $ref: '#/components/schemas/PaymentUser'
        establishment:
          description: Informações do estabelecimento vinculado ao pagamento.
          allOf:
            - $ref: '#/components/schemas/EstablishmentPaymentInfo'
        marketplace:
          description: Informações do marketplace vinculado ao pagamento.
          allOf:
            - $ref: '#/components/schemas/MarketplacePaymentInfo'
        history:
          description: Histórico de mudanças de status do pagamento.
          type: array
          items:
            $ref: '#/components/schemas/HistoryEntry'
        reprocessed:
          type: boolean
          description: Indica se o pagamento foi reprocessado.
        created_at:
          format: date-time
          type: string
          description: Data de criação do pagamento.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização do pagamento.
        payment_date:
          format: date-time
          type: string
          description: Data em que o pagamento foi confirmado.
      required:
        - _id
        - type
        - status
        - barcode
        - digitable_line
        - expected_on
        - amount
        - nominal_amount
        - discount
        - fine
        - interest
        - gateway_key
        - document_number
        - gateway_authorization
        - payment_details
        - recipient
        - billet_details
        - establishment_id
        - user
        - establishment
        - marketplace
        - history
        - reprocessed
        - created_at
        - updated_at
        - payment_date
    CreatePaymentDto:
      type: object
      properties:
        barcode:
          type: string
          description: Código de barras.
        description:
          type: string
          description: Descrição opcional do pagamento.
        amount:
          type: number
          description: Valor do pagamento, caso diferente do nominal.
      required:
        - barcode
    ClientAddressDto:
      type: object
      properties:
        city:
          type: string
          description: Cidade.
        state:
          type: string
          description: Estado.
        zip_code:
          type: string
          description: CEP.
        street:
          type: string
          description: Logradouro.
        complement:
          type: string
          description: Complemento.
        number:
          type: string
          description: Número.
        neighborhood:
          type: string
          description: Bairro.
      required:
        - city
        - state
        - zip_code
        - street
        - number
        - neighborhood
    ClientDto:
      type: object
      properties:
        first_name:
          type: string
          description: Nome/Razão Social.
        last_name:
          type: string
          description: Sobrenome/Nome fantasia.
        email:
          type: string
          description: E-mail.
        document:
          type: string
          description: CPF ou CNPJ.
        phone:
          type: string
          description: Número de telefone.
        address:
          description: Endereço.
          allOf:
            - $ref: '#/components/schemas/ClientAddressDto'
      required:
        - first_name
        - email
        - document
    DiscountDto:
      type: object
      properties:
        method:
          type: string
          description: Método de pagamento do desconto.
        value:
          type: number
          description: Valor do desconto.
        type:
          type: string
          description: Tipo do desconto.
          enum:
            - PERCENTAGE
            - CURRENCY
      required:
        - method
        - value
        - type
    OptInsDto:
      type: object
      properties:
        allowRecurrenceOptIn:
          type: boolean
          description: Habilitar cobrança recorrente.
          default: false
    PaymentOrderDto:
      type: object
      properties:
        discounts:
          description: Descontos por método de pagamento.
          type: array
          items:
            $ref: '#/components/schemas/DiscountDto'
        max_number_installments:
          type: number
          description: Número máximo de parcelas.
        pix_expiration_interval:
          type: number
          description: Tempo de expiração do PIX em minutos.
        payment_type_allowed:
          type: array
          description: Métodos de pagamento permitidos.
          items:
            type: string
            enum:
              - CREDIT
              - PIX
              - GOOGLEPAY
              - APPLEPAY
              - BANK_SLIP
        opt_ins:
          description: Configurações de opt-ins.
          allOf:
            - $ref: '#/components/schemas/OptInsDto'
    ThemeDto:
      type: object
      properties:
        main:
          type: string
          description: Cor primária.
        secondary:
          type: string
          description: Cor secundária.
        logo_url:
          type: string
          description: URL do logotipo.
        favicon_url:
          type: string
          description: URL do favicon.
        wallet_icon_url:
          type: string
          description: URL do ícone da carteira.
        font_family:
          type: string
          description: Tipo da fonte.
          enum:
            - roboto
            - poppins
            - sf-pro-text
        card_border_radius:
          type: number
          description: Borda do card em que fica o conteúdo (em REM)
          minimum: 0
          maximum: 2
        button_border_radius:
          type: number
          description: Borda dos botões (em REM)
          minimum: 0
          maximum: 2
    CreateCheckoutOrderDto:
      type: object
      properties:
        client:
          description: Dados do comprador.
          allOf:
            - $ref: '#/components/schemas/ClientDto'
        title:
          type: string
          description: Descrição do checkout.
          maxLength: 100
        payment_order:
          description: Configurações de pagamento.
          allOf:
            - $ref: '#/components/schemas/PaymentOrderDto'
        theme:
          description: Configurações de tela.
          allOf:
            - $ref: '#/components/schemas/ThemeDto'
        duration:
          type: number
          description: Tempo de expiração do link em minutos.
        reference_id:
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno do checkout.
          oneOf:
            - type: string
              example: ABC-123
            - type: number
              example: 42
        multiple_payments:
          type: boolean
          description: Permite múltiplos pagamentos.
        interest:
          type: string
          description: ' - CLIENT: as taxas são repassadas ao comprador, resultando no aumento do valor bruto da transação. - STORE: as taxas são cobradas do estabelecimento, mantendo inalterado o valor bruto da transação.'
          enum:
            - STORE
            - CLIENT
        brand_plan:
          type: string
          description: Plano utilizado para calcular as taxas quando o interest for CLIENT.
          enum:
            - MASTERCARD
            - VISA
            - ELO
            - OTHERS
        amount:
          type: number
          description: Valor do checkout em centavos.
        billet:
          description: Dados do boleto. Obrigatório para pagamentos do tipo BANK_SLIP.
          allOf:
            - $ref: '#/components/schemas/TransactionBilletDto'
      required:
        - title
        - amount
    CheckoutOrderResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID do pedido de checkout.
        title:
          type: string
          description: Descrição do checkout.
        checkout_token:
          type: string
          description: Token do checkout.
        amount:
          type: number
          description: Valor do checkout em centavos.
        status:
          type: string
          description: Status do checkout.
        reference_id:
          type: string
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno do checkout.
        created_at:
          type: string
          description: Data de criação.
        updated_at:
          type: string
          description: Data de atualização.
      required:
        - _id
        - title
        - checkout_token
        - amount
        - status
        - created_at
        - updated_at
    PaymentOrderResponse:
      type: object
      properties:
        discounts:
          type: object
          description: Descontos por método de pagamento.
        payment_type_allowed:
          type: object
          description: Métodos de pagamento permitidos.
    ThemeResponse:
      type: object
      properties:
        main:
          type: string
          description: Cor primária.
        secondary:
          type: string
          description: Cor secundária.
        logo_url:
          type: string
          description: URL do logotipo.
    CheckoutOrderGetOneResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID do pedido de checkout.
        title:
          type: string
          description: Descrição do checkout.
        checkout_token:
          type: string
          description: Token do checkout.
        amount:
          type: number
          description: Valor do checkout em centavos.
        status:
          type: string
          description: Status do checkout.
        reference_id:
          type: string
          description: >-
            Identificador definido pelo cliente para controle e rastreamento
            interno do checkout.
        created_at:
          type: string
          description: Data de criação.
        updated_at:
          type: string
          description: Data de atualização.
        interest:
          type: string
          description: ' - CLIENT: as taxas são repassadas ao comprador, resultando no aumento do valor bruto da transação. - STORE: as taxas são cobradas do estabelecimento, mantendo inalterado o valor bruto da transação.'
          enum:
            - STORE
            - CLIENT
        multiple_payments:
          type: boolean
          description: Permite múltiplos pagamentos.
        current_use:
          type: number
          description: Quantidade de usos atuais do checkout.
        brand_plan:
          type: string
          description: Plano utilizado para calcular as taxas quando o interest for CLIENT.
        payment_order:
          description: Configurações de pagamento.
          allOf:
            - $ref: '#/components/schemas/PaymentOrderResponse'
        theme:
          description: Configurações de tela.
          allOf:
            - $ref: '#/components/schemas/ThemeResponse'
      required:
        - _id
        - title
        - checkout_token
        - amount
        - status
        - created_at
        - updated_at
        - multiple_payments
        - current_use
    EstablishmentInfo:
      type: object
      properties:
        id:
          type: number
          description: ID do estabelecimento.
        name1:
          type: string
          description: Nome ou razão social do estabelecimento.
        name2:
          type: string
          description: Nome fantasia ou nome complementar do estabelecimento.
          nullable: true
        document:
          type: string
          description: Documento do estabelecimento.
        status:
          type: string
          description: Status atual do estabelecimento.
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - ERROR
          example: PENDING
        active:
          type: boolean
          description: Indica se o estabelecimento está ativo.
        block:
          type: number
          description: Define se o estabelecimento está bloqueado.
        type:
          type: string
          description: Tipo do estabelecimento.
      required:
        - id
        - name1
        - name2
        - document
        - status
        - active
        - block
        - type
    MarketplaceInfo:
      type: object
      properties:
        id:
          type: number
          description: ID do marketplace.
        name1:
          type: string
          description: Nome ou razão social principal do marketplace.
        name2:
          type: string
          description: Nome fantasia ou nome complementar do marketplace.
        document:
          type: string
          description: Documento do marketplace.
        nickname:
          type: string
          description: Apelido do marketplace.
      required:
        - id
        - name1
        - name2
        - document
        - nickname
    PlanPivot:
      type: object
      properties:
        plan_id:
          type: number
          description: ID do plano vinculado.
        establishment_id:
          type: number
          description: ID do estabelecimento vinculado.
        active:
          type: boolean
          description: Define se o vínculo do plano com o estabelecimento está ativo.
      required:
        - plan_id
        - establishment_id
        - active
    Plan:
      type: object
      properties:
        id:
          type: number
          description: ID do plano.
        name:
          type: string
          description: Nome do plano.
        allow_anticipation:
          type: boolean
          description: Define se o plano permite antecipação.
        modality:
          type: string
          description: Modalidade do plano.
          enum:
            - ONLINE
            - PHYSICAL
          example: PHYSICAL
        pivot:
          description: Relação entre o plano e o estabelecimento.
          allOf:
            - $ref: '#/components/schemas/PlanPivot'
      required:
        - id
        - name
        - allow_anticipation
        - modality
        - pivot
    Bank:
      type: object
      properties:
        id:
          type: number
          description: ID do banco.
        name:
          type: string
          description: Nome do banco.
        code:
          type: string
          description: Código do banco.
        ispb:
          type: string
          description: Código ISPB do banco.
      required:
        - id
        - name
        - code
        - ispb
    Receipt:
      type: object
      properties:
        document:
          type: string
          description: Documento do titular da conta.
        form_receipt:
          type: string
          description: Forma de recebimento.
          enum:
            - BANKACCOUNT
            - PAYTIME
            - PAGBANK
            - ZOOPBANK
          example: BANKACCOUNT
        type:
          type: string
          description: Tipo de conta.
        routing_number:
          type: string
          description: Número da agência.
        account_check_digit:
          type: string
          description: Dígito verificador da conta bancária.
        routing_check_digit:
          type: string
          description: Dígito verificador da agência.
        account_number:
          type: string
          description: Número da conta bancária.
        bank:
          description: Informações do banco do destinatário.
          allOf:
            - $ref: '#/components/schemas/Bank'
      required:
        - document
        - form_receipt
        - type
        - routing_number
        - account_check_digit
        - routing_check_digit
        - account_number
        - bank
    ReductionHistory:
      type: object
      properties:
        status:
          type: string
          enum:
            - CREATED
            - DELETED
        user_id:
          type: number
        created_at:
          format: date-time
          type: string
      required:
        - status
        - user_id
        - created_at
    Reduction:
      type: object
      properties:
        amount:
          type: number
          description: Valor reduzido do pagamento, em centavos.
        motive:
          type: string
          description: Motivo da redução aplicada ao pagamento.
        description:
          type: string
          description: Descrição adicional sobre a redução aplicada.
        file_url:
          type: string
          description: URL do arquivo que comprova ou justifica a redução.
        status:
          type: string
          description: Status atual da redução aplicada.
          enum:
            - CREATED
            - DELETED
          example: CREATED
        history:
          description: Histórico de alterações do status da redução.
          type: array
          items:
            $ref: '#/components/schemas/ReductionHistory'
        created_at:
          format: date-time
          type: string
          description: Data de criação da redução.
      required:
        - amount
        - motive
        - description
        - file_url
        - status
        - history
        - created_at
    Payment:
      type: object
      properties:
        _id:
          type: string
          description: ID do pagamento.
        amount:
          type: number
          description: Valor líquido do pagamento, em centavos.
        status:
          type: string
          description: Status atual do pagamento.
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - ERROR
          example: PAID
        original_amount:
          type: number
          description: Valor original antes de descontos ou reduções.
        transfer_id:
          type: string
          description: ID da transferência associada a este pagamento.
        send_to_establishment:
          type: boolean
          description: Indica se o valor será enviado ao estabelecimento.
        receipt:
          description: Informações bancárias do destinatário do pagamento.
          allOf:
            - $ref: '#/components/schemas/Receipt'
        effects:
          description: Lista de efeitos aplicados ao pagamento.
          type: array
          items:
            type: object
        reductions:
          description: Lista de reduções aplicadas ao valor original do pagamento.
          type: array
          items:
            $ref: '#/components/schemas/Reduction'
      required:
        - _id
        - amount
        - status
        - original_amount
        - transfer_id
        - send_to_establishment
        - receipt
        - effects
        - reductions
    HistoryUser:
      type: object
      properties:
        id:
          type: number
          description: ID do usuário que realizou a ação.
        first_name:
          type: string
          description: Primeiro nome do usuário.
        last_name:
          type: string
          description: Último nome do usuário.
      required:
        - id
        - first_name
        - last_name
    History:
      type: object
      properties:
        status:
          type: string
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - ERROR
        created_at:
          format: date-time
          type: string
        user:
          $ref: '#/components/schemas/HistoryUser'
      required:
        - status
        - created_at
        - user
    LiquidationMarketplaceResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID da liquidação.
        amount:
          type: number
          description: Valor total da liquidação, em centavos.
        transactions:
          type: number
          description: Quantidade de transações associadas à liquidação.
        status:
          type: string
          description: Status atual da liquidação.
          enum:
            - PAID
            - PENDING
            - PROCESSING
            - ERROR
          example: PENDING
        liquidation:
          format: date-time
          type: string
          description: Data em que a liquidação foi realizada.
        establishment:
          description: Informações do estabelecimento participante da liquidação.
          allOf:
            - $ref: '#/components/schemas/EstablishmentInfo'
        marketplace:
          description: Informações do marketplace participante da liquidação.
          allOf:
            - $ref: '#/components/schemas/MarketplaceInfo'
        plans:
          description: Lista de planos envolvidos na liquidação.
          type: array
          items:
            $ref: '#/components/schemas/Plan'
        payments:
          description: Lista de pagamentos realizados durante a liquidação.
          type: array
          items:
            $ref: '#/components/schemas/Payment'
        reprocessing:
          type: boolean
          description: Indica se a liquidação está em processo de reprocessamento.
        history:
          description: Histórico de mudanças de status da liquidação.
          type: array
          items:
            $ref: '#/components/schemas/History'
        created_at:
          format: date-time
          type: string
          description: Data de criação do registro da liquidação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização do registro da liquidação.
      required:
        - _id
        - amount
        - transactions
        - status
        - liquidation
        - establishment
        - marketplace
        - plans
        - payments
        - reprocessing
        - history
        - created_at
        - updated_at
    BankSummary:
      type: object
      properties:
        name:
          type: string
          description: Nome da instituição financeira.
        code:
          type: string
          description: Código do banco.
      required:
        - name
        - code
    ReceiptSummary:
      type: object
      properties:
        form_receipt:
          type: string
          description: Forma de recebimento.
          enum:
            - BANKACCOUNT
            - PAYTIME
            - PAGBANK
            - ZOOPBANK
          example: BANKACCOUNT
        type:
          type: string
          description: Tipo de conta bancária.
          enum:
            - CHECKING
            - SAVING
          example: CHECKING
        bank:
          description: Informações do banco associado ao recebimento.
          allOf:
            - $ref: '#/components/schemas/BankSummary'
      required:
        - form_receipt
        - type
        - bank
    MarketplaceSummary:
      type: object
      properties:
        id:
          type: number
          description: ID do marketplace associado à liquidação.
        document:
          type: string
          description: Documento do marketplace.
        name1:
          type: string
          description: Primeiro nome ou razão social do marketplace.
        name2:
          type: string
          description: Nome fantasia ou segundo nome do marketplace.
        nickname:
          type: string
          description: Apelido do marketplace.
      required:
        - id
        - document
        - name1
        - name2
        - nickname
    EstablishmentSummary:
      type: object
      properties:
        id:
          type: number
          description: ID do estabelecimento associado à liquidação.
        document:
          type: string
          description: Documento do estabelecimento.
        name1:
          type: string
          description: Primeiro nome ou razão social do estabelecimento.
        name2:
          type: string
          description: Nome fantasia ou segundo nome do estabelecimento, se houver.
          nullable: true
      required:
        - id
        - document
        - name1
        - name2
    LiquidationSummaryResponse:
      type: object
      properties:
        _id:
          type: string
          description: ID da liquidação.
        amount:
          type: number
          description: Valor total da liquidação em centavos.
        liquidation:
          format: date-time
          type: string
          description: Data da liquidação.
        receipt:
          description: Resumo dos dados bancários da liquidação.
          allOf:
            - $ref: '#/components/schemas/ReceiptSummary'
        marketplace:
          description: Informações do marketplace associado.
          allOf:
            - $ref: '#/components/schemas/MarketplaceSummary'
        establishment:
          description: Informações do estabelecimento associado.
          allOf:
            - $ref: '#/components/schemas/EstablishmentSummary'
        modality:
          type: string
          description: Modalidade da transferência.
          enum:
            - ONLINE
            - PHYSICAL
          example: PHYSICAL
        transfer_id:
          type: string
          description: ID da transferência associada.
        payment_id:
          type: string
          description: ID do pagamento associado.
      required:
        - _id
        - amount
        - liquidation
        - receipt
        - marketplace
        - establishment
        - modality
        - transfer_id
        - payment_id
    TransferParticipant:
      type: object
      properties:
        first_name:
          type: string
          description: Nome do titular da conta.
        document:
          type: string
          description: Documento do titular.
        routing_number:
          type: string
          description: Número da agência bancária.
        routing_check_digit:
          type: string
          description: Dígito verificador da agência.
        account_number:
          type: string
          description: Número da conta bancária.
        account_check_digit:
          type: string
          description: Dígito verificador da conta.
        type:
          type: string
          description: Tipo de conta bancária.
          enum:
            - CHECKING
            - SAVING
          example: CHECKING
      required:
        - first_name
        - document
        - routing_number
        - routing_check_digit
        - account_number
        - account_check_digit
        - type
    LiquidationTransferResponse:
      type: object
      properties:
        recipient:
          description: Informações do destinatário da transferência.
          allOf:
            - $ref: '#/components/schemas/RecipientInfo'
        payer:
          description: Informações do pagador da transferência.
          allOf:
            - $ref: '#/components/schemas/TransferParticipant'
        _id:
          type: string
          description: ID da transferência.
        type:
          type: string
          description: Tipo de transferência.
          enum:
            - TED
            - P2P
            - PIX
          example: TED
        status:
          type: string
          description: Status atual da transferência.
          enum:
            - PENDING
            - PAID
            - FAILED
            - REFUNDED
            - CANCELED
          example: PENDING
        amount:
          type: number
          description: Valor da transferência em centavos.
        expected_at:
          format: date-time
          type: string
          description: Data e hora esperada para a efetivação da transferência.
        gateway_key:
          type: string
          description: Chave identificadora da transferência no gateway.
        liquidation_id:
          type: string
          description: ID da liquidação associada.
        gateway_authorization:
          type: string
          description: Identificador da autorização da transferência no gateway.
        lot_number:
          type: string
          description: Número do lote da transferência.
        release_number:
          type: string
          description: Número de liberação da transferência.
        user:
          description: Informações do usuário que executou a transferência.
          allOf:
            - $ref: '#/components/schemas/TransferUser'
        history:
          description: Histórico de status da transferência.
          type: array
          items:
            $ref: '#/components/schemas/TransferHistory'
        created_at:
          format: date-time
          type: string
          description: Data de criação do registro da transferência.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização do registro da transferência.
      required:
        - recipient
        - payer
        - _id
        - type
        - status
        - amount
        - expected_at
        - gateway_key
        - liquidation_id
        - gateway_authorization
        - lot_number
        - release_number
        - user
        - history
        - created_at
        - updated_at
    ActivityResponseDto:
      type: object
      properties:
        id:
          type: number
          description: Identificador da atividade.
        name:
          type: string
          description: Nome da atividade.
        code:
          type: string
          description: Código da atividade.
        created_at:
          format: date-time
          type: string
          description: Data de criação.
        updated_at:
          format: date-time
          type: string
          description: Data da última atualização.
        deleted_at:
          format: date-time
          type: string
          description: Data de exclusão.
      required:
        - id
        - name
        - code
        - created_at
        - updated_at
        - deleted_at
