openapi: 3.0.1
info:
  title: PIX Banestes Arrecadação
  description: API para exposição de serviços para arrecadação com integração ao Pix
  version: 1.1.3-30
servers:
  - url: 'https://api-pix-sandbox.banestes.b.br/pix-qrcode-arrecadacao/v1'
    description: 'SANDBOX'
  - url: 'https://api-pix.banestes.b.br/pix-qrcode-arrecadacao/v1'
    description: 'PRODUCTION'
tags:
  - name: Arrecadação
    description: >-
      Reúne endpoints destinados a lidar com gerenciamento de arrecadações
      integradas ao Pix
  - name: Webhook
    description: >-
      Reúne endpoints para gerenciamento de notificações por parte do Banestes
      ao usuário recebedor
  - name: Pix
    description: Reúne endpoints destinados a lidar com gerenciamento de Pix recebidos
paths:
  /webhook/{chave}:
    get:
      tags:
        - Webhook
      summary: Exibir informações acerca do Webhook Pix
      description: >-
        Endpoint para recuperação de informações sobre o Webhook Pix.
        Funcionalidade disponível apenas para uso via mTLS
      operationId: findByKey
      parameters:
        - name: chave
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Dados do webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponseDTO'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
    put:
      tags:
        - Webhook
      summary: Configurar o Webhook Pix
      description: >-
        Endpoint para configuração do serviço de notificações acerca de Pix
        recebidos. Somente Pix associados a um txid serão notificados.
        Funcionalidade disponível apenas para uso via mTLS
      operationId: createOrReplaceWebhook
      parameters:
        - name: chave
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CriarWebhookRequestDTO'
        required: true
      responses:
        '200':
          description: >-
            Webhook para notificações acerca de Pix recebidos associados a um
            txid
        '400':
          description: Requisição com formato inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequisicaoInvalidaSchema'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
      callbacks:
        listaPix:
          '{$request.body#/webhookUrl}/pix':
            post:
              description: >-
                O callback deve ser acionado sempre que um ou mais Pix
                associados a um txid forem recebidos pelo usuário recebedor e
                desde que a chave associada ao Pix em questão esteja associada a
                um webhook cadastrado.


                O callback também deve ser acionado sempre que uma devolução
                associada a um Pix associado a um txid atinja um status final:
                `DEVOLVIDO` ou `NAO_REALIZADO`.


                O SLA específico a ser definido no contexto dos acionamento dos
                callbacks fica a cargo de cada PSP recebedor. Orienta-se, no
                entanto, que o SLA seja definido dentro de um limite razoável
                tendo em vista que a expectativa é que o callback seja um aviso
                "on-line" da ocorrência do pagamento.


                No contexto da estratégia específica de SLA de cada PSP
                recebedor, é possível agrupar Pix associados a uma mesma chave
                para economizar acionamentos múltiplos. Este serviço está
                protegido por uma camada de autenticação mTLS. Para maiores
                detalhes, verificar o [Manual de padrões para iniciação do
                Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix).
              requestBody:
                description: Dados para notificação dos Pix.
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/NotificacaoWebhookPixWrapperRequest'
                required: true
              responses:
                '200':
                  description: Notificação recebida com sucesso
    delete:
      tags:
        - Webhook
      summary: Cancelar o Webhook Pix
      description: >-
        Endpoint para cancelamento do webhook. Não é a única forma pela qual um
        webhook pode ser removido.


        O Banestes está livre para remover unilateralmente um webhook que esteja
        associado a uma chave que não pertence mais a este usuário recebedor.
        Funcionalidade disponível apenas para uso via mTLS
      operationId: cancelByKey
      parameters:
        - name: chave
          in: path
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Webhook para notificações Pix foi cancelado
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
  /cob-arrecadacao:
    post:
      tags:
        - Arrecadação
      summary: Criar um registro de arrecadação
      description: >-
        Endpoint para criar um registro de arrecadação. O txid correspondente
        será criado internamente e retornado como resultado da operação
      operationId: create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CobrancaArrecadacaoImediataCriarRequestDTO'
        required: true
      responses:
        '201':
          description: Registro criado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobrancaArrecadacaoImediataResponseDTO'
        '400':
          description: Requisição com formato inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequisicaoInvalidaSchema'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: ' Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
  /cob-arrecadacao/{txid}:
    get:
      tags:
        - Arrecadação
      summary: Consultar cobrança de arrecadação
      description: >-
        Endpoint para consultar uma cobrança de arrecadação através de um
        determinado txid
      operationId: findByTxId
      parameters:
        - name: txid
          in: path
          required: true
          schema:
            type: string
        - name: revisao
          in: query
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Dados da cobrança
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobrancaArrecadacaoImediataResponseDTO'
        '400':
          description: Requisição com formato inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequisicaoInvalidaSchema'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: ' Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
    patch:
      tags:
        - Arrecadação
      summary: Revisar cobrança de arrecadação
      description: Endpoint para revisar cobrança de arrecadação
      operationId: update
      parameters:
        - name: txid
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/CobrancaArrecadacaoImediataAtualizarRequestDTO
        required: true
      responses:
        '200':
          description: Cobrança revisada. A revisão deve ser incrementada em 1
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CobrancaArrecadacaoImediataResponseDTO'
        '400':
          description: Requisição com formato inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequisicaoInvalidaSchema'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: ' Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
  /webhook:
    get:
      tags:
        - Webhook
      summary: Consultar webhooks cadastrados
      description: >-
        Endpoint para consultar Webhooks cadastrados. Funcionalidade disponível
        apenas para uso via mTLS
      operationId: findList
      parameters:
        - name: inicio
          in: query
          required: false
          schema:
            pattern: yyyy-MM-dd'T'HH:mm:ss[.SSS]['Z']
            type: string
            format: date-time
        - name: fim
          in: query
          required: false
          schema:
            pattern: yyyy-MM-dd'T'HH:mm:ss[.SSS]['Z']
            type: string
            format: date-time
        - name: paginacao.paginaAtual
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: paginacao.itensPorPagina
          in: query
          required: false
          schema:
            minimum: 1
            type: integer
            format: int32
            default: 100
      responses:
        '200':
          description: Lista dos locations cadastrados de acordo com o critério de busca
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/WebhookPesquisaPaginadaResultadoResponseDTO
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
  /pix/{e2eid}:
    get:
      tags:
        - Pix
      summary: Consultar Pix
      description: Endpoint para consultar um Pix através de um e2eid
      operationId: findById
      parameters:
        - name: e2eid
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Dados do Pix recebido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixResponseDTO'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
  /pix:
    get:
      tags:
        - Pix
      summary: Consultar Pix recebidos
      description: Endpoint para consultar Pix recebidos
      operationId: findList_1
      parameters:
        - name: cpf
          in: query
          required: false
          schema:
            pattern: ^\d{11}$
            type: string
        - name: cnpj
          in: query
          required: false
          schema:
            pattern: ^\d{14}$
            type: string
        - name: txid
          in: query
          required: false
          schema:
            type: string
        - name: txidPresente
          in: query
          required: false
          schema:
            type: boolean
        - name: devolucaoPresente
          in: query
          required: false
          schema:
            type: boolean
        - name: inicio
          in: query
          required: false
          schema:
            pattern: yyyy-MM-dd'T'HH:mm:ss[.SSS]['Z']
            type: string
            format: date-time
        - name: fim
          in: query
          required: false
          schema:
            pattern: yyyy-MM-dd'T'HH:mm:ss[.SSS]['Z']
            type: string
            format: date-time
        - name: paginacao.paginaAtual
          in: query
          required: false
          schema:
            minimum: 0
            type: integer
            format: int32
            default: 0
        - name: paginacao.itensPorPagina
          in: query
          required: false
          schema:
            minimum: 1
            type: integer
            format: int32
            default: 100
      responses:
        '200':
          description: Lista dos Pix recebidos de acordo com o critério de busca
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PixPesquisaPaginadaResultadoResponseDTO'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
  /pix/{e2eid}/devolucao/{id}:
    get:
      tags:
        - Pix
      summary: Consultar Devolucao
      description: Endpoint para consultar uma devolução através de um End To End ID do Pix e do ID da devolução
      operationId: findRefund
      parameters:
        - name: e2eid
          in: path
          required: true
          schema:
            type: string
        - name: id 
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Dados da Devolução
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevolucaoResponseDTO'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
    put:
      tags:
        - Pix
      summary: Solicitar Devolucao
      description: Endpoint para solicitar uma devolução através de um e2eid do Pix e do ID da devolução. O motivo que será atribuído à PACS.004 será "MD06" ou "SL02" de acordo com a aba RTReason da PACS.004 que consta no Catálogo de Mensagens do Pix a depender da natureza da devolução (Vide a descrição deste campo).
      operationId: createRefund
      parameters:
        - name: e2eid
          in: path
          required: true
          schema:
            type: string
        - name: id 
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DevolucaoRequestDTO'
        required: true
      responses:
        '200':
          description: Dados da Devolução
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevolucaoResponseDTO'
        '403':
          description: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcessoNegadoSchema'
        '404':
          description: Recurso solicitado não foi encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecursoNaoEncontradoSchema'
        '500':
          description: Erro interno
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErroInternoSchema'
        '503':
          description: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServicoIndisponivelSchema'
components:
  schemas:
    CriarWebhookRequestDTO:
      title: Webhook solicitado
      required:
        - webhookUrl
      type: object
      properties:
        webhookUrl:
          maxLength: 300
          type: string
          example: https://pix.example.com/api/webhook/
    RecursoNaoEncontradoSchema:
      required:
        - status
        - title
        - type
      type: object
      properties:
        type:
          type: string
          description: >-
            URI de referência que identifica o tipo de problema. De acordo com a
            RFC 7807
          example: https://pix.bcb.gov.br/api/v2/error/NaoEncontrado
        title:
          type: string
          description: Descrição resumida do problema
          example: Não Encontrado
        status:
          type: integer
          description: Código HTTP do status retornado
          format: int32
          example: 404
        detail:
          type: string
          description: Descrição completa do problema
          example: Entidade não encontrada
    ErroViolationResponseDTO:
      title: Violação
      type: object
      properties:
        razao:
          type: string
          description: Descrição do erro
          example: O valor para o campo não pode ser negativo
        propriedade:
          type: string
          description: Nome da propriedade
          example: Exemplo de propriedade do objeto
        valor:
          type: string
          description: Valor da propriedade
          example: '-10'
    RequisicaoInvalidaSchema:
      required:
        - status
        - title
        - type
      type: object
      properties:
        type:
          type: string
          description: >-
            URI de referência que identifica o tipo de problema. De acordo com a
            RFC 7807
          example: https://pix.bcb.gov.br/api/v2/error/OperacaoInvalida
        title:
          type: string
          description: Descrição resumida do problema
          example: Operação Inválida
        status:
          type: integer
          description: Código HTTP do status retornado
          format: int32
          example: 400
        detail:
          type: string
          description: Descrição completa do problema
          example: >-
            A requisição que busca alterar ou criar um registro não respeita o
            schema ou está semanticamente errada
        violacoes:
          type: array
          items:
            $ref: '#/components/schemas/ErroViolationResponseDTO'
    AcessoNegadoSchema:
      required:
        - status
        - title
        - type
      type: object
      properties:
        type:
          type: string
          description: >-
            URI de referência que identifica o tipo de problema. De acordo com a
            RFC 7807
          example: https://pix.bcb.gov.br/api/v2/error/AcessoNegado
        title:
          type: string
          description: Descrição resumida do problema
          example: Acesso Negado
        status:
          type: integer
          description: Código HTTP do status retornado
          format: int32
          example: 403
        detail:
          type: string
          description: Descrição completa do problema
          example: >-
            Requisição de participante autenticado que viola alguma regra de
            autorização
    ErroInternoSchema:
      required:
        - status
        - title
        - type
      type: object
      properties:
        type:
          type: string
          description: >-
            URI de referência que identifica o tipo de problema. De acordo com a
            RFC 7807
          example: https://pix.bcb.gov.br/api/v2/error/ErroInterno
        title:
          type: string
          description: Descrição resumida do problema
          example: Erro Interno
        status:
          type: integer
          description: Código HTTP do status retornado
          format: int32
          example: 500
        detail:
          type: string
          description: Descrição completa do problema
          example: Erro inesperado
    ServicoIndisponivelSchema:
      required:
        - status
        - title
        - type
      type: object
      properties:
        type:
          type: string
          description: >-
            URI de referência que identifica o tipo de problema. De acordo com a
            RFC 7807
          example: https://pix.bcb.gov.br/api/v2/error/ServicoIndisponivel
        title:
          type: string
          description: Descrição resumida do problema
          example: Serviço Indisponível
        status:
          type: integer
          description: Código HTTP do status retornado
          format: int32
          example: 503
        detail:
          type: string
          description: Descrição completa do problema
          example: >-
            Serviço não está disponível no momento. Serviço solicitado pode
            estar em manutenção ou fora da janela de funcionamento
    NotificacaoWebhookDevolucaoHorarioRequest:
      title: Horário
      required:
        - solicitacao
      type: object
      properties:
        solicitacao:
          title: Horário de solicitação
          type: string
          description: Horário no qual a devolução foi solicitada no PSP
          format: date-time
        liquidacao:
          title: Horário de liquidação
          type: string
          description: Horário no qual a devolução foi liquidada no PSP
          format: date-time
    NotificacaoWebhookDevolucaoRequest:
      title: Devolução
      required:
        - horario
        - id
        - natureza
        - rtrId
        - status
        - valor
      type: object
      properties:
        id:
          title: Id da Devolução
          pattern: ^[a-zA-Z0-9]{1,35}$
          type: string
          description: Id gerado pelo cliente para representar unicamente uma devolução
          example: '123456'
        rtrId:
          title: RtrId
          maxLength: 32
          minLength: 32
          pattern: ^[a-zA-Z0-9]{32}$
          type: string
          description: ReturnIdentification que transita na PACS004
          example: D12345678202009091000abcde123456
        valor:
          title: Valor a devolver
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor a devolver
          example: '7.89'
        natureza:
          title: Natureza da Devolucao
          type: string
          description: >-
            Indica qual é a natureza da devolução. Uma devolução pode ser
            relacionada a um Pix comum (com códigos possíveis: `MD06`, `BE08` e
            `FR01` da pacs.004), ou a um Pix de Saque ou Troco (com códigos
            possíveis: `MD06` e `SL02` da pacs.004). Na ausência deste campo a
            natureza deve ser interpretada como sendo de um Pix comum
            (ORIGINAL).


            As naturezas são assim definidas:


            * `ORIGINAL`: quando a devolução é solicitada pelo usuário recebedor
            e se refere a um Pix comum ou ao valor da compra em um Pix Troco
            (`MD06`);

            * `RETIRADA`: quando a devolução é solicitada pelo usuário recebedor
            e se refere a um Pix Saque ou ao valor do troco em um Pix Troco
            (`SL02`);

            * `MED_OPERACIONAL`: quando a devolução ocorre no âmbito do MED por
            motivo de falha operacional e se refere a um Pix comum (`BE08`);

            * `MED_FRAUDE`: quando a devolução ocorre no âmbito do MED por
            fundada suspeita de fraude e se refere a um Pix comum (`FR01`).


            Os valores de devoluções são sempre limitados aos valores máximos a
            seguir:


            * Pix comum: o valor da devolução é limitado ao valor do próprio Pix
            (a natureza nesse caso pode ser: ORIGINAL, MED_OPERACIONAL ou
            MED_FRAUDE);

            * Pix Saque: o valor da devolução é limitado ao valor da retirada (a
            natureza nesse caso deve ser: RETIRADA); e

            * Pix Troco: o valor da devolução é limitado ao valor relativo à
            compra ou ao troco:


            - Quando a devolução for referente à compra, o valor limita-se ao
            valor da compra (a natureza nesse caso deve ser ORIGINAL); e

            - Quando a devolução for referente ao troco, o valor limita-se ao
            valor do troco (a natureza nesse caso deve ser RETIRADA).
          example: ORIGINAL
          enum:
            - ORIGINAL
            - RETIRADA
        descricao:
          title: Mensagem ao pagador relativa à devolução.
          maxLength: 140
          type: string
          description: >-
            O campo `descricao`, opcional, determina um texto a ser apresentado
            ao pagador contendo informações sobre a devolução. Esse texto será
            preenchido, na pacs.004, pelo PSP do recebedor, no campo
            RemittanceInformation. O tamanho do campo na pacs.004 está limitado
            a 140 caracteres.
          example: descrição devolução
        horario:
          $ref: '#/components/schemas/NotificacaoWebhookDevolucaoHorarioRequest'
        status:
          title: Status
          type: string
          description: Status da devolução
          enum:
            - EM_PROCESSAMENTO
            - DEVOLVIDO
            - NAO_REALIZADO
        motivo:
          title: Descrição do status
          maxLength: 140
          type: string
          description: >-
            ### Status da Devolução


            Campo opcional que pode ser utilizado pelo PSP recebedor para
            detalhar os motivos de a devolução ter atingido o status em questão.
            Pode ser utilizado, por exemplo, para detalhar o motivo de a
            devolução não ter sido realizada
          example: motivo devolução
    NotificacaoWebhookPixRequest:
      title: Pix
      required:
        - endToEndId
        - horario
        - valor
      type: object
      properties:
        endToEndId:
          title: Id fim a fim da transação
          maxLength: 32
          minLength: 32
          pattern: ^[a-zA-Z0-9]{32}$
          type: string
          description: EndToEndIdentification que transita na PACS002, PACS004 e PACS008
          example: E12345678202009091221kkkkkkkkkkk
        txid:
          title: Id da Transação
          pattern: ^[a-zA-Z0-9]{1,35}$
          type: string
          description: >-
            # Identificador da transação

            O campo `txid` determina o identificador da transação. O objetivo
            desse campo é ser um elemento que possibilite ao PSP do recebedor
            apresentar ao usuário recebedor a funcionalidade de conciliação de
            pagamentos.


            Na PACS.008, é referenciado como `TransactionIdentification` <txId>
            ou `idConciliacaoRecebedor`.


            Em termos de fluxo de funcionamento, o txid é lido pelo aplicativo
            do PSP do pagador e, depois de confirmado o pagamento, é enviado
            para o SPI via PACS.008. Uma PACS.008 também é enviada ao PSP do
            recebedor, contendo, além de todas as informações usuais do
            pagamento, o txid. Ao perceber um recebimento dotado de txid, o PSP
            do recebedor está apto a se comunicar com o usuário recebedor,
            informando que um pagamento específico foi liquidado.


            O txid é criado exclusivamente pelo usuário recebedor e está sob sua
            responsabilidade. O txid, no contexto de representação de uma
            cobrança, é único por CPF/CNPJ do usuário recebedor. Cabe ao PSP
            recebedor validar essa regra na API PIX
          example: c3e0e7a4e7f1469a9f782d3d4999343c
        valor:
          title: Valor do Pix
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor do Pix
        chave:
          title: Chave DICT do recebedor
          maxLength: 77
          type: string
          description: >-
            # Formato do campo chave

            * O campo chave determina a chave Pix registrada no DICT que será
            utilizada para a cobrança. Essa chave será lida pelo aplicativo do
            PSP do pagador para consulta ao DICT, que retornará a informação que
            identificará o recebedor da cobrança

            * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP

            * O formato das chaves pode ser encontrado na seção "Formatação das
            chaves do DICT no BR Code" do [Manual de Padrões para iniciação do
            PIX](https://www.bcb.gov.br/estabilidadefinanceira/pix)
          example: 7d9f0335-8dcc-4054-9bf9-0dbd61d36907
        horario:
          title: Horário
          type: string
          description: Horário em que o Pix foi processado no PSP
          format: date-time
          example: '2020-09-09T20:15:00.358Z'
        infoPagador:
          title: Informação livre do pagador
          maxLength: 140
          type: string
          example: '0123456789'
        devolucoes:
          title: Devoluções
          type: array
          items:
            $ref: '#/components/schemas/NotificacaoWebhookDevolucaoRequest'
    NotificacaoWebhookPixWrapperRequest:
      title: Notificação Webhook
      type: object
      properties:
        pix:
          type: array
          items:
            $ref: '#/components/schemas/NotificacaoWebhookPixRequest'
    CalendarioRequestDTO:
      title: Calendário
      type: object
      properties:
        expiracao:
          title: Tempo de vida da cobrança, especificado em segundos
          minimum: 1
          type: integer
          description: >-
            Tempo de vida da cobrança, especificado em segundos a partir da data
            de criação (Calendario.criacao)
          format: int32
          example: 3600
          default: 86400
      description: >-
        Os campos aninhados sob o identificador calendário organizam informações
        a respeito de controle de tempo da cobrança
    CobrancaArrecadacaoImediataCriarRequestDTO:
      title: Cobrança de arrecadação imediata solicitado
      required:
        - calendario
        - chave
        - codigoDeBarras
        - numeroConvenio
        - valor
      type: object
      properties:
        codigoDeBarras:
          title: Código de barras
          pattern: ^\d{44}$
          type: string
          description: Código de barras do boleto de arrecadação
          example: '00000111112222233333444445555566666777778888'
        numeroConvenio:
          title: Código do convênio de arrecadação
          pattern: ^\d{4}$
          type: string
          description: Código do convênio de arrecadação junto ao Banestes
          example: '0123'
        calendario:
          $ref: '#/components/schemas/CalendarioRequestDTO'
        devedor:
          $ref: '#/components/schemas/PessoaRequestDTO'
        loc:
          $ref: '#/components/schemas/PayloadLocationCobrancaCriarRequestDTO'
        valor:
          $ref: '#/components/schemas/ValorRequestDTO'
        chave:
          title: Chave DICT do recebedor
          maxLength: 77
          type: string
          description: >-
            # Formato do campo chave

            * O campo chave determina a chave Pix registrada no DICT que será
            utilizada para a cobrança. Essa chave será lida pelo aplicativo do
            PSP do pagador para consulta ao DICT, que retornará a informação que
            identificará o recebedor da cobrança

            * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP

            * O formato das chaves pode ser encontrado na seção "Formatação das
            chaves do DICT no BR Code" do [Manual de Padrões para iniciação do
            PIX](https://www.bcb.gov.br/estabilidadefinanceira/pix)
          example: 7d9f0335-8dcc-4054-9bf9-0dbd61d36906
        solicitacaoPagador:
          title: Solicitação ao pagador
          maxLength: 140
          type: string
          description: >-
            O campo solicitacaoPagador, opcional, determina um texto a ser
            apresentado ao pagador para que ele possa digitar uma informação
            correlata, em formato livre, a ser enviada ao recebedor. Esse texto
            será preenchido, na pacs.008, pelo PSP do pagador, no campo
            RemittanceInformation. O tamanho do campo na pacs.008 está limitado
            a 140 caracteres
          example: Informar a cor da camisa
        infoAdicionais:
          title: Informações adicionais
          maximum: 50
          type: array
          description: >-
            Cada respectiva informação adicional contida na lista (nome e valor)
            deve ser apresentada ao pagador
          items:
            $ref: '#/components/schemas/InformacaoAdicionalRequestDTO'
      description: Dados enviados para criação do registro de arrecadação
    InformacaoAdicionalRequestDTO:
      title: Informação Adicional
      maximum: 50
      required:
        - nome
        - valor
      type: object
      properties:
        nome:
          title: Nome
          maxLength: 50
          type: string
          description: Nome do campo
          example: Informação Adicional
        valor:
          title: Valor
          maxLength: 200
          type: string
          description: Dados do campo
          example: Valor da Informação Adicional
      description: >-
        Cada respectiva informação adicional contida na lista (nome e valor)
        deve ser apresentada ao pagador
    PayloadLocationCobrancaCriarRequestDTO:
      title: Location do Payload
      required:
        - id
      type: object
      properties:
        id:
          type: integer
          description: Identificador da localização do payload
          format: int64
          example: 1
      description: Identificador da localização do payload
      example: null
    PessoaFisicaRequestDTO:
      title: Pessoa Física
      required:
        - cpf
        - nome
      type: object
      properties:
        cpf:
          title: CPF
          pattern: ^\d{11}$
          type: string
          description: CPF do usuário
          example: '11122233344'
        nome:
          title: Nome
          maxLength: 200
          type: string
          description: Nome do usuário
          example: Joao
    PessoaJuridicaRequestDTO:
      title: Pessoa Jurídica
      required:
        - cnpj
        - nome
      type: object
      properties:
        cnpj:
          title: CNPJ
          pattern: ^\d{14}$
          type: string
          description: CNPJ do usuário
          example: '11122233344455'
        nome:
          title: Nome
          maxLength: 200
          type: string
          description: Nome do usuário
          example: Empresa de Serviço
    PessoaRequestDTO:
      title: Devedor
      type: object
      description: >-
        Os campos aninhados sob o objeto devedor são opcionais e identificam o
        devedor, ou seja, a pessoa ou a instituição a quem a cobrança está
        endereçada. Não identifica, necessariamente, quem irá efetivamente
        realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas
        pode acontecer de outro CPF realizar, efetivamente, o pagamento do
        documento. Não é permitido que o campo devedor.cpf e campo devedor.cnpj
        estejam preenchidos ao mesmo tempo. Se o campo devedor.cnpj está
        preenchido, então o campo devedor.cpf não pode estar preenchido, e
        vice-versa. Se o campo devedor.nome está preenchido, então deve existir
        ou um devedor.cpf ou um campo devedor.cnpj preenchido
      oneOf:
        - $ref: '#/components/schemas/PessoaFisicaRequestDTO'
        - $ref: '#/components/schemas/PessoaJuridicaRequestDTO'
    ValorRequestDTO:
      title: Valor
      required:
        - original
      type: object
      properties:
        original:
          title: Valor
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor original da cobrança
          example: '37.55'
        modalidadeAlteracao:
          title: Modalidade de Alteração
          maximum: 1
          minimum: 0
          type: integer
          description: >-
            Trata-se de um campo que determina se o valor final do documento
            pode ser alterado pelo pagador. Na ausência desse campo, assume-se
            que não se pode alterar o valor do documento de cobrança, ou seja,
            assume-se o valor 0. Se o campo estiver presente e com valor 1,
            então está determinado que o valor final da cobrança pode ter seu
            valor alterado pelo pagador.
          format: int32
          example: 0
          default: 0
      description: Valores monetários referentes à cobrança
    CalendarioResponseDTO:
      title: Calendário
      required:
        - criacao
        - expiracao
      type: object
      properties:
        expiracao:
          title: Tempo de vida da cobrança, especificado em segundos
          type: integer
          description: >-
            Tempo de vida da cobrança, especificado em segundos a partir da data
            de criação (Calendario.criacao)
          format: int32
          example: 3600
        criacao:
          title: Data de Criação
          type: string
          description: >-
            Timestamp que indica o momento em que foi criada a cobrança.
            Respeita o formato definido na RFC 3339
          format: date-time
          example: '2020-04-01T00:00:00Z'
      description: >-
        Os campos aninhados sob o identificador calendário organizam informações
        a respeito de controle de tempo da cobrança
    CobrancaArrecadacaoImediataResponseDTO:
      title: Registro de arrecadação gerado
      required:
        - calendario
        - chave
        - codigoDeBarras
        - numeroConvenio
        - qrCode
        - revisao
        - status
        - txid
        - valor
      type: object
      properties:
        codigoDeBarras:
          title: Código de barras
          type: string
          description: Código de barras do boleto de arrecadação
        numeroConvenio:
          title: Código do convênio de arrecadação
          type: string
          description: Código do convênio de arrecadação junto ao Banestes
          example: '0123'
        qrCode:
          title: Pix Copia e Cola correspondente à cobrança
          maxLength: 512
          type: string
          description: >-
            Este campo retorna o valor do Pix Copia e Cola correspondente à
            cobrança. Trata-se da sequência de caracteres que representa o QR
            Code
        calendario:
          $ref: '#/components/schemas/CalendarioResponseDTO'
        devedor:
          $ref: '#/components/schemas/PessoaResponseDTO'
        loc:
          $ref: '#/components/schemas/PayloadLocationResponseDTO'
        valor:
          $ref: '#/components/schemas/ValorResponseDTO'
        chave:
          title: Chave DICT do recebedor
          maxLength: 77
          type: string
          description: >-
            # Formato do campo chave

            * O campo chave determina a chave Pix registrada no DICT que será
            utilizada para a cobrança. Essa chave será lida pelo aplicativo do
            PSP do pagador para consulta ao DICT, que retornará a informação que
            identificará o recebedor da cobrança

            * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP

            * O formato das chaves pode ser encontrado na seção "Formatação das
            chaves do DICT no BR Code" do [Manual de Padrões para iniciação do
            PIX](https://www.bcb.gov.br/estabilidadefinanceira/pix)
        solicitacaoPagador:
          title: Solicitação ao pagador
          maxLength: 140
          type: string
          description: >-
            O campo solicitacaoPagador, opcional, determina um texto a ser
            apresentado ao pagador para que ele possa digitar uma informação
            correlata, em formato livre, a ser enviada ao recebedor. Esse texto
            será preenchido, na pacs.008, pelo PSP do pagador, no campo
            RemittanceInformation. O tamanho do campo na pacs.008 está limitado
            a 140 caracteres
        infoAdicionais:
          title: Informações adicionais
          maximum: 50
          type: array
          description: >-
            Cada respectiva informação adicional contida na lista (nome e valor)
            deve ser apresentada ao pagador
          items:
            $ref: '#/components/schemas/InformacaoAdicionalResponseDTO'
        txid:
          title: Id da Transação
          pattern: ^[a-zA-Z0-9]{26,35}$
          type: string
          description: >-
            # Identificador da transação

            O campo txid determina o identificador da transação. O objetivo
            desse campo é ser um elemento que possibilite ao PSP do recebedor
            apresentar ao usuário recebedor a funcionalidade de conciliação de
            pagamentos.


            Na PACS.008, é referenciado como TransactionIdentification <txId> ou
            idConciliacaoRecebedor.


            Em termos de fluxo de funcionamento, o txid é lido pelo aplicativo
            do PSP do pagador e, depois de confirmado o pagamento, é enviado
            para o SPI via PACS.008. Uma PACS.008 também é enviada ao PSP do
            recebedor, contendo, além de todas as informações usuais do
            pagamento, o txid. Ao perceber um recebimento dotado de txid, o PSP
            do recebedor está apto a se comunicar com o usuário recebedor,
            informando que um pagamento específico foi liquidado.


            O txid é criado exclusivamente pelo usuário recebedor e está sob sua
            responsabilidade. O txid, no contexto de representação de uma
            cobrança, é único por CPF/CNPJ do usuário recebedor. Cabe ao PSP
            recebedor validar essa regra na API PIX
        revisao:
          title: Revisão
          type: integer
          description: >-
            O campo revisao


            Denota a revisão da cobrança. Sempre começa em zero. Sempre varia em
            acréscimos de 1.


            O incremento em uma cobrança deve ocorrer sempre que um objeto da
            cobrança em questão for alterado. O campo loc é uma exceção a esta
            regra.


            Se em uma determinada alteração em uma cobrança, o único campo
            alterado for o campo loc, então esta operação não incrementa a
            revisão da cobrança.


            O campo loc não ocasiona uma alteração na cobrança em si. Não é
            necessário armazenar histórico das alterações do campo loc para uma
            determinada cobrança. Para os outros campos da cobrança, registra-se
            histórico.
          format: int32
          readOnly: true
        location:
          title: Localização do payload
          maxLength: 77
          type: string
          readOnly: true
        status:
          title: Status da Cobrança
          type: string
          enum:
            - ATIVA
            - CONCLUIDA
            - REMOVIDA_PELO_USUARIO_RECEBEDOR
            - REMOVIDA_PELO_PSP
        pix:
          title: Pix recebidos
          type: array
          items:
            $ref: '#/components/schemas/PixResponseDTO'
      description: Dados criados para o registro de arrecadação
    DevolucaoResponseDTO:
      title: Devolução de PIX
      required:
        - horario
        - id
        - rtrId
        - status
        - valor
      type: object
      properties:
        id:
          title: Id da Devolução
          pattern: ^\d{11}$
          type: string
          description: Id gerado pelo cliente para representar unicamente uma devolução
          example: "id00000000000001"
        rtrId:
          title: RtrId
          maxLength: 32
          minLength: 32
          pattern: ^[a-zA-Z0-9]{32}$
          type: string
          description: ReturnIdentification que transita na PACS004
          example: D2812760320240101000000000000001
        valor:
          title: Valor a devolver
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor a devolver
          example: "1.95"
        natureza:
          title: Natureza da Devolução Solicitada
          type: string
          description: "Indica qual é a natureza da devolução solicitada. Uma solicitação de devolução pelo usuário recebedor pode ser relacionada a um Pix comum (com código: ```MD06``` da pacs.004), ou a um Pix de Saque ou Troco (com códigos possíveis: ```MD06``` e ```SL02``` da pacs.004). Na ausência deste campo a natureza deve ser interpretada como sendo de um Pix comum (```ORIGINAL```).\r\n\r\nAs naturezas são assim definidas:\r\n\r\n* ```ORIGINAL```: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix comum ou ao valor da compra em um Pix Troco (```MD06```);\r\n* ```RETIRADA```: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix Saque ou ao valor do troco em um Pix Troco (```SL02```).\r\n\r\nOs valores de devoluções são sempre limitados aos valores máximos a seguir:\n\n\r\n* Pix comum: o valor da devolução é limitado ao valor do próprio Pix (a natureza nesse caso deve ser: ORIGINAL);\r\n* Pix Saque: o valor da devolução é limitado ao valor da retirada (a natureza nesse caso deve ser: RETIRADA); e\r\n* Pix Troco: o valor da devolução é limitado ao valor relativo à compra ou ao troco:\r\n  + Quando a devolução for referente à compra, o valor limita-se ao valor da compra (a natureza nesse caso deve ser ORIGINAL); e\r\n  - Quando a devolução for referente ao troco, o valor limita-se ao valor do troco (a natureza nesse caso deve ser RETIRADA)"
          enum:
            - ORIGINAL
            - RETIRADA
        descricao:
          title: Mensagem ao pagador relativa à devolução.
          maxLength: 140
          type: string
          example: "Texto exemplo para descrição"
          description: >-
            O campo descricao, opcional, determina um texto a ser apresentado ao
            pagador contendo informações sobre a devolução. Esse texto será
            preenchido, na pacs.004, pelo PSP do recebedor, no campo
            RemittanceInformation. O tamanho do campo na pacs.004 está limitado
            a 140 caracteres.
        horario:
          $ref: '#/components/schemas/HorarioResponseDTO'
        status:
          title: Status
          type: string
          description: Status da devolução
          enum:
            - EM_PROCESSAMENTO
            - DEVOLVIDO
            - NAO_REALIZADO
        motivo:
          title: Descrição do status
          maxLength: 140
          type: string
          example: "Texto exemplo para motivo"
          description: >-
            ### Status da Devolução


            Campo opcional que pode ser utilizado pelo PSP recebedor para
            detalhar os motivos de a devolução ter atingido o status em questão.
            Pode ser utilizado, por exemplo, para detalhar o motivo de a
            devolução não ter sido realizada
    HorarioResponseDTO:
      title: Horário
      type: object
      properties:
        solicitacao:
          title: Horário de solicitação
          type: string
          description: Horário no qual a devolução foi solicitada no PSP
          format: date-time
        liquidacao:
          title: Horário de liquidação
          type: string
          description: Horário no qual a devolução foi liquidada no PSP
          format: date-time
    InformacaoAdicionalResponseDTO:
      title: Informação Adicional
      maximum: 50
      required:
        - nome
        - valor
      type: object
      properties:
        nome:
          title: Nome
          maxLength: 50
          type: string
          description: Nome do campo
          example: Informação Adicional
        valor:
          title: Valor
          maxLength: 200
          type: string
          description: Dados do campo
          example: Valor da Informação Adicional
      description: >-
        Cada respectiva informação adicional contida na lista (nome e valor)
        deve ser apresentada ao pagador
    PayloadLocationResponseDTO:
      title: Location do Payload
      required:
        - criacao
        - id
        - location
        - tipoCob
      type: object
      properties:
        id:
          title: Id da location
          type: integer
          description: Identificador da location a ser informada na criação da cobrança
          format: int64
          readOnly: true
        location:
          title: Localização do payload
          maxLength: 77
          type: string
          description: Localização do Payload a ser informada na criação da cobrança
          readOnly: true
          example: pix.example.com/qr/v2/2353c790eefb11eaadc10242ac120002
        tipoCob:
          title: Tipo da cobrança
          type: string
          enum:
            - cob
            - cobv
        criacao:
          title: Data de Criação
          type: string
          description: Data e hora em que a location foi criada. Respeita RFC 3339
          format: date-time
          readOnly: true
      description: Identificador da localização do payload
    PessoaFisicaResponseDTO:
      title: Pessoa Física
      required:
        - cpf
        - nome
      type: object
      properties:
        cpf:
          title: CPF
          pattern: ^\d{11}$
          type: string
          description: CPF do usuário
        nome:
          title: Nome
          maxLength: 200
          type: string
          description: Nome do usuário
    PessoaJuridicaResponseDTO:
      title: Pessoa Jurídica
      required:
        - cnpj
        - nome
      type: object
      properties:
        cnpj:
          title: CNPJ
          pattern: ^\d{14}$
          type: string
          description: CNPJ do usuário
        nome:
          title: Nome
          maxLength: 200
          type: string
          description: Nome do usuário
    PessoaResponseDTO:
      title: Devedor
      type: object
      description: >-
        Os campos aninhados sob o objeto devedor são opcionais e identificam o
        devedor, ou seja, a pessoa ou a instituição a quem a cobrança está
        endereçada. Não identifica, necessariamente, quem irá efetivamente
        realizar o pagamento. Um CPF pode ser o devedor de uma cobrança, mas
        pode acontecer de outro CPF realizar, efetivamente, o pagamento do
        documento. Não é permitido que o campo devedor.cpf e campo devedor.cnpj
        estejam preenchidos ao mesmo tempo. Se o campo devedor.cnpj está
        preenchido, então o campo devedor.cpf não pode estar preenchido, e
        vice-versa. Se o campo devedor.nome está preenchido, então deve existir
        ou um devedor.cpf ou um campo devedor.cnpj preenchido
      oneOf:
        - $ref: '#/components/schemas/PessoaFisicaResponseDTO'
        - $ref: '#/components/schemas/PessoaJuridicaResponseDTO'
    PixResponseDTO:
      title: Dados do Pix recebido
      required:
        - endToEndId
        - horario
        - valor
      type: object
      properties:
        endToEndId:
          title: Id fim a fim da transação
          maxLength: 32
          minLength: 32
          pattern: ^[a-zA-Z0-9]{32}$
          type: string
          description: EndToEndIdentification que transita na PACS002, PACS004 e PACS008
        txid:
          title: Id da Transação
          pattern: ^[a-zA-Z0-9]{1,35}$
          type: string
          description: >-
            # Identificador da transação

            O campo txid determina o identificador da transação. O objetivo
            desse campo é ser um elemento que possibilite ao PSP do recebedor
            apresentar ao usuário recebedor a funcionalidade de conciliação de
            pagamentos.


            Na PACS.008, é referenciado como TransactionIdentification <txId> ou
            idConciliacaoRecebedor.


            Em termos de fluxo de funcionamento, o txid é lido pelo aplicativo
            do PSP do pagador e, depois de confirmado o pagamento, é enviado
            para o SPI via PACS.008. Uma PACS.008 também é enviada ao PSP do
            recebedor, contendo, além de todas as informações usuais do
            pagamento, o txid. Ao perceber um recebimento dotado de txid, o PSP
            do recebedor está apto a se comunicar com o usuário recebedor,
            informando que um pagamento específico foi liquidado.


            O txid é criado exclusivamente pelo usuário recebedor e está sob sua
            responsabilidade. O txid, no contexto de representação de uma
            cobrança, é único por CPF/CNPJ do usuário recebedor. Cabe ao PSP
            recebedor validar essa regra na API Pix
        valor:
          title: Valor do Pix
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor do Pix
        chave:
          title: Chave DICT do recebedor
          maxLength: 77
          type: string
          description: >-
            # Formato do campo chave

            * O campo chave determina a chave Pix registrada no DICT que será
            utilizada para a cobrança. Essa chave será lida pelo aplicativo do
            PSP do pagador para consulta ao DICT, que retornará a informação que
            identificará o recebedor da cobrança

            * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP

            * O formato das chaves pode ser encontrado na seção "Formatação das
            chaves do DICT no BR Code" do [Manual de Padrões para iniciação do
            Pix](https://www.bcb.gov.br/estabilidadefinanceira/pix)
        horario:
          title: Horário
          type: string
          description: Horário em que o Pix foi processado no PSP
          format: date-time
        infoPagador:
          title: Informação livre do pagador
          maxLength: 140
          type: string
        devolucoes:
          title: Devoluções
          type: array
          items:
            $ref: '#/components/schemas/DevolucaoResponseDTO'
    ValorResponseDTO:
      title: Valor
      required:
        - original
      type: object
      properties:
        original:
          title: Valor
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor original da cobrança
        modalidadeAlteracao:
          title: Modalidade de alteração
          maximum: 1
          minimum: 0
          type: integer
          description: >-
            Trata-se de um campo que determina se o valor final do documento
            pode ser alterado pelo pagador. Na ausência desse campo, assume-se
            que não se pode alterar o valor do documento de cobrança, ou seja,
            assume-se o valor 0. Se o campo estiver presente e com valor 1,
            então está determinado que o valor final da cobrança pode ter seu
            valor alterado pelo pagador.
          format: int32
      description: Valores monetários referentes à cobrança
    CalendarioAtualizarRequestDTO:
      title: Calendário
      type: object
      properties:
        expiracao:
          title: Tempo de vida da cobrança, especificado em segundos
          minimum: 1
          type: integer
          description: >-
            Tempo de vida da cobrança, especificado em segundos a partir da data
            de criação (Calendario.criacao)
          format: int32
          example: 3600
          default: 86400
      description: >-
        Os campos aninhados sob o identificador calendário organizam informações
        a respeito de controle de tempo da cobrança
    CobrancaArrecadacaoImediataAtualizarRequestDTO:
      title: Cobrança de arrecadação imediata revisada
      type: object
      properties:
        codigoDeBarras:
          title: Código de barras
          pattern: ^\d{44}$
          type: string
          description: Código de barras do boleto de arrecadação
          example: '00000111112222233333444445555566666777778888'
        calendario:
          $ref: '#/components/schemas/CalendarioAtualizarRequestDTO'
        devedor:
          $ref: '#/components/schemas/PessoaAtualizarRequestDTO'
        loc:
          $ref: '#/components/schemas/PayloadLocationCobrancaAtualizarRequestDTO'
        valor:
          $ref: '#/components/schemas/ValorAtualizarRequestDTO'
        chave:
          maxLength: 77
          type: string
          description: Chave DICT do recebedor
          example: 7d9f0335-bbbb-4054-8af4-0dbd61d36906
        solicitacaoPagador:
          title: Solicitação ao Pagador
          maxLength: 140
          type: string
          description: Solicitação ao pagador
          example: Serviço realizado
        status:
          type: string
          description: Status da cobrança
          example: REMOVIDA_PELO_USUARIO_RECEBEDOR
          enum:
            - REMOVIDA_PELO_USUARIO_RECEBEDOR
        infoAdicionais:
          type: array
          description: >-
            Cada respectiva informação adicional contida na lista (nome e valor)
            deve ser apresentada ao pagador
          items:
            $ref: '#/components/schemas/InformacaoAdicionalRequestDTO'
      description: >-
        Dados enviados para revisão da cobrança de arrecadação imediata via API
        Pix
    PayloadLocationCobrancaAtualizarRequestDTO:
      title: Location do Payload
      required:
        - id
      type: object
      properties:
        id:
          type: integer
          description: Identificador da localização do payload
          format: int64
          example: 1
      description: Identificador da localização do payload
    PessoaAtualizarRequestDTO:
      title: Pessoa
      type: object
      oneOf:
        - $ref: '#/components/schemas/PessoaFisicaRequestDTO'
        - $ref: '#/components/schemas/PessoaJuridicaRequestDTO'
    ValorAtualizarRequestDTO:
      title: Valor
      required:
        - original
      type: object
      properties:
        original:
          title: Valor
          pattern: ^\d{1,10}\.\d{2}$
          type: string
          description: Valor original da cobrança
          example: '37.55'
        modalidadeAlteracao:
          title: Modalidade de Alteração
          maximum: 1
          minimum: 0
          type: integer
          description: >-
            Trata-se de um campo que determina se o valor final do documento
            pode ser alterado pelo pagador. Na ausência desse campo, assume-se
            que não se pode alterar o valor do documento de cobrança, ou seja,
            assume-se o valor 0. Se o campo estiver presente e com valor 1,
            então está determinado que o valor final da cobrança pode ter seu
            valor alterado pelo pagador.
          format: int32
          example: 0
          default: 0
      description: Valores monetários referentes à cobrança
    WebhookResponseDTO:
      title: Webhook
      required:
        - chave
        - criacao
        - webhookUrl
      type: object
      properties:
        webhookUrl:
          type: string
          format: uri
          example: ' https://pix.example.com/api/webhook/'
        chave:
          title: Chave DICT do recebedor
          maxLength: 77
          type: string
          description: |-
            # Formato do campo chave

                        * O campo chave determina a chave Pix registrada no DICT que será utilizada para a cobrança.Essa chave será lida pelo aplicativo do PSP do pagador para consulta ao DICT, que retornará a informação que identificará o recebedor da cobrança.
                        * Os tipos de chave podem ser: telefone, e-mail, cpf/cnpj ou EVP.
                        * O formato das chaves pode ser encontrado na seção "Formatação das chaves do DICT no BR Code" do [Manual de Padrões para iniciação do Pix] (https://www.bcb.gov.br/estabilidadefinanceira/pagamentosinstantaneos)
        criacao:
          title: Data de Criação
          type: string
          description: Data e hora em que o webhook foi cadastrado. Respeita RFC 3339
          format: date-time
          example: '2020-04-01T00:00:00Z'
    PaginacaoResponseDTO:
      title: Paginação
      required:
        - itensPorPagina
        - paginaAtual
        - quantidadeDePaginas
        - quantidadeTotalDeItens
      type: object
      properties:
        paginaAtual:
          title: Página atual
          minimum: 0
          type: integer
          description: Número da página recuperada
          format: int32
        itensPorPagina:
          title: Itens por página
          minimum: 1
          type: integer
          description: Quantidade de registros retornado na página
          format: int32
        quantidadeDePaginas:
          title: Quantidade de páginas
          minimum: 1
          type: integer
          description: Quantidade de páginas disponíveis para consulta
          format: int32
        quantidadeTotalDeItens:
          title: Quantidade total de itens
          minimum: 0
          type: integer
          description: >-
            Quantidade total de itens disponíveis de acordo com os parâmetros
            informados
          format: int64
    WebhookPesquisaPaginadaFiltrosResponseDTO:
      title: Parâmetros de Consulta de Webhooks
      required:
        - fim
        - inicio
        - paginacao
      type: object
      properties:
        inicio:
          title: Data de Início
          type: string
          description: Data inicial utilizada na consulta. Respeita RFC 3339
          format: date-time
          example: '2020-04-01T00:00:00Z'
        fim:
          title: Data de Fim
          type: string
          description: Data de fim utilizada na consulta. Respeita RFC 3339
          format: date-time
          example: '2020-04-01T17:00:00Z'
        paginacao:
          $ref: '#/components/schemas/PaginacaoResponseDTO'
      description: Parâmetros utilizados para a realização de uma consulta de Webhooks
    WebhookPesquisaPaginadaResultadoResponseDTO:
      title: Webhooks
      required:
        - parametros
        - webhooks
      type: object
      properties:
        parametros:
          $ref: '#/components/schemas/WebhookPesquisaPaginadaFiltrosResponseDTO'
        webhooks:
          title: Lista de webhooks
          type: array
          items:
            $ref: '#/components/schemas/WebhookResponseDTO'
    PixPesquisaPaginadaFiltrosResponseDTO:
      title: Parâmetros de Consulta Pix
      required:
        - fim
        - inicio
        - paginacao
      type: object
      properties:
        inicio:
          title: Data de Início
          type: string
          description: Data inicial utilizada na consulta. Respeita RFC 3339
          format: date-time
          example: '2020-04-01T00:00:00Z'
        fim:
          title: Data de Fim
          type: string
          description: Data de fim utilizada na consulta. Respeita RFC 3339
          format: date-time
          example: '2020-04-01T17:00:00Z'
        txid:
          title: Id da Transação
          pattern: ^[a-zA-Z0-9]{1,35}$
          type: string
          description: >-
            # Identificador da transação

            O campo txid determina o identificador da transação. O objetivo
            desse campo é ser um elemento que possibilite ao PSP do recebedor
            apresentar ao usuário recebedor a funcionalidade de conciliação de
            pagamentos.


            Na PACS.008, é referenciado como TransactionIdentification <txId> ou
            idConciliacaoRecebedor.


            Em termos de fluxo de funcionamento, o txid é lido pelo aplicativo
            do PSP do pagador e, depois de confirmado o pagamento, é enviado
            para o SPI via PACS.008. Uma PACS.008 também é enviada ao PSP do
            recebedor, contendo, além de todas as informações usuais do
            pagamento, o txid. Ao perceber um recebimento dotado de txid, o PSP
            do recebedor está apto a se comunicar com o usuário recebedor,
            informando que um pagamento específico foi liquidado.


            O txid é criado exclusivamente pelo usuário recebedor e está sob sua
            responsabilidade. O txid, no contexto de representação de uma
            cobrança, é único por CPF/CNPJ do usuário recebedor. Cabe ao PSP
            recebedor validar essa regra na API PIX
        txIdPresente:
          type: boolean
          description: Filtro pela existência de txid
        devolucaoPresente:
          type: boolean
          description: Filtro pela existência de devolução
        cpf:
          title: CPF
          pattern: ^\d{11}$
          type: string
          description: >-
            Filtro pelo CPF do pagador. Não pode ser utilizado ao mesmo tempo
            que o CNPJ
        cnpj:
          title: CNPJ
          pattern: ^\d{14}$
          type: string
          description: >-
            Filtro pelo CNPJ do pagador. Não pode ser utilizado ao mesmo tempo
            que o CPF
        paginacao:
          $ref: '#/components/schemas/PaginacaoResponseDTO'
      description: Parâmetros utilizados para a realização de uma consulta de Pix
    PixPesquisaPaginadaResultadoResponseDTO:
      title: Pix Consultados
      required:
        - parametros
        - pix
      type: object
      properties:
        parametros:
          $ref: '#/components/schemas/PixPesquisaPaginadaFiltrosResponseDTO'
        pix:
          title: Lista de Pix recebidos
          type: array
          items:
            $ref: '#/components/schemas/PixResponseDTO'
    DevolucaoRequestDTO:
      title: Devolução solicitada
      required:
        - valor
      type: object
      properties:
        valor:
          title: Valor a devolver
          type: string
          description: "Valor solicitado para devolução. A soma dos valores de todas as devolucões não podem ultrapassar o valor total do Pix original"
          pattern: ^\d{1,10}\.\d{2}$
          example: "1.95"
        natureza:
          title: Natureza da Devolução Solicitada
          type: string
          description: "Indica qual é a natureza da devolução solicitada. Uma solicitação de devolução pelo usuário recebedor pode ser relacionada a um Pix comum (com código: ```MD06``` da pacs.004), ou a um Pix de Saque ou Troco (com códigos possíveis: ```MD06``` e ```SL02``` da pacs.004). Na ausência deste campo a natureza deve ser interpretada como sendo de um Pix comum (```ORIGINAL```).\r\n\r\nAs naturezas são assim definidas:\r\n\r\n* ```ORIGINAL```: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix comum ou ao valor da compra em um Pix Troco (```MD06```);\r\n* ```RETIRADA```: quando a devolução é solicitada pelo usuário recebedor e se refere a um Pix Saque ou ao valor do troco em um Pix Troco (```SL02```).\r\n\r\nOs valores de devoluções são sempre limitados aos valores máximos a seguir:\n\n\r\n* Pix comum: o valor da devolução é limitado ao valor do próprio Pix (a natureza nesse caso deve ser: ORIGINAL);\r\n* Pix Saque: o valor da devolução é limitado ao valor da retirada (a natureza nesse caso deve ser: RETIRADA); e\r\n* Pix Troco: o valor da devolução é limitado ao valor relativo à compra ou ao troco:\r\n  + Quando a devolução for referente à compra, o valor limita-se ao valor da compra (a natureza nesse caso deve ser ORIGINAL); e\r\n  - Quando a devolução for referente ao troco, o valor limita-se ao valor do troco (a natureza nesse caso deve ser RETIRADA)"
          enum:
            - ORIGINAL
            - RETIRADA
        descricao:
          title: Mensagem ao pagador relativa à devolução.
          maxLength: 140
          type: string
          example: "Texto exemplo para descrição"
          description: >-
            O campo descricao, opcional, determina um texto a ser apresentado ao
            pagador contendo informações sobre a devolução. Esse texto será
            preenchido, na pacs.004, pelo PSP do recebedor, no campo
            RemittanceInformation. O tamanho do campo na pacs.004 está limitado
            a 140 caracteres.
  securitySchemes:
    oauth-hmg:
      type: oauth2
      description: Credenciais de Acesso
      name: Credenciais de Acesso
      scheme: bearer
      bearerFormat: JWT
      flows:
        clientCredentials:
          tokenUrl: >-
            https://sso-prd.apps.banestes.b.br/auth/realms/dev-portal/protocol/openid-connect/token
