---
openapi: 3.0.3
info:
  title: wallet-dados-app API
  version: 1.0.0
servers:
- url: https://wallet-dados-app.api-hml.rota.sp.gov.br
  description: Homologação
paths:
  /servicos:
    get:
      tags:
      - Serviços
      summary: Obtém todos os serviços (legacy).
      description: Retorna a lista completa de todos os serviços cadastrados.
      responses:
        "200":
          description: Lista de recursos.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Servico"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      deprecated: true
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /v2/servicos:
    get:
      tags:
      - Serviços
      summary: Consulta paginada de serviços com filtros.
      description: "Retorna uma lista paginada de serviços, permitindo filtros por\
        \ API, Operação e ID de Aceite."
      parameters:
      - name: page
        in: header
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: header
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: api
        in: header
        description: Filtro parcial pelo campo 'api' do serviço.
        required: false
        schema:
          type: string
      - name: operacao
        in: header
        description: Filtro parcial pelo ID da Operação (mapeado para Servico.idOperacao).
        required: false
        schema:
          type: string
      - name: id-aceite
        in: header
        description: Filtro pelo ID de Aceite do ConfirmaSP (mapeado para Servico.idAceiteConfirma).
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Lista de serviços retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ServicosResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.servicos.read
  /faturas:
    get:
      tags:
      - Faturas
      summary: "Consulta de faturas com filtros aprimorados, incluindo status."
      description: "Retorna uma lista paginada de faturas, permitindo filtros por\
        \ ID do Pedido de Compra, mês, ano e Status da Fatura."
      parameters:
      - name: idPedido
        in: header
        description: UUID do Pedido de Compra associado à fatura.
        required: false
        schema:
          format: uuid
          type: string
      - name: page
        in: header
        description: "Número da página (padrão: 0)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: header
        description: "Quantidade de registros por página (padrão: 10)."
        required: false
        schema:
          default: 10
          type: integer
      - name: mes
        in: header
        description: Filtro pelo mês de referência (1-12).
        required: false
        schema:
          maximum: 12
          minimum: 1
          type: integer
      - name: ano
        in: header
        description: Filtro pelo ano de referência.
        required: false
        schema:
          type: integer
      - name: status
        in: header
        description: "Filtro pelo status da fatura. Valores possíveis: PENDENTE, ENCAMINHADA,\
          \ PAGA, ERRO."
        required: false
        schema:
          enum:
          - PENDENTE
          - ENCAMINHADA
          - PAGA
          - ERRO
          type: string
      responses:
        "200":
          description: Lista de faturas retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FaturasResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.faturas.read
  /wallets/{cpfCidadao}:
    get:
      tags:
      - Consentimento
      summary: "Requisitado ao clicar no ícone de \"Carteira\" antes de abrir a tela\
        \ da carteira, que mostra o valor para disponível para resgate. O app necessita\
        \ chamar para saber se aderiu ou não, e o valor disponível para resgate (exibido\
        \ em tela)."
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário da carteira.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Carteira"
              examples:
                single:
                  value:
                    saldo: 1000
                    valorPendente: 300
                    status: true
        "204":
          description: Carteira não encontrada.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /relatorios:
    get:
      tags:
      - Relatórios
      summary: Consulta paginada de relatórios gerados.
      description: |
        Retorna uma lista paginada de relatórios mensais ou trimestrais, permitindo filtros por período, ano, mês, trimestre e status.
      parameters:
      - name: page
        in: query
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: query
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: periodo
        in: query
        description: Tipo do período do relatório.
        required: false
        schema:
          enum:
          - MENSAL
          - TRIMESTRAL
          type: string
      - name: ano
        in: query
        description: Ano de referência do relatório.
        required: false
        schema:
          type: integer
      - name: mes
        in: query
        description: Mês de referência (obrigatório se período = MENSAL).
        required: false
        schema:
          maximum: 12
          minimum: 1
          type: integer
      - name: trimestre
        in: query
        description: Trimestre de referência (obrigatório se período = TRIMESTRAL).
        required: false
        schema:
          maximum: 4
          minimum: 1
          type: integer
      - name: status
        in: query
        description: Status do relatório.
        required: false
        schema:
          enum:
          - PREVIA
          - RECALCULADO
          - ENCERRADO
          type: string
      responses:
        "200":
          description: Lista de relatórios retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatoriosResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.relatorios.read
    post:
      tags:
      - Relatórios
      summary: Cria um relatório (memória de cálculo) para um período.
      description: |
        Cria uma nova memória de cálculo mensal ou trimestral, salvando o relatório na tabela. Se já existir um relatório para o mesmo período, cria um novo registro com a versão posterior.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RelatorioCriarRequest"
            examples:
              mensal:
                value:
                  periodo: MENSAL
                  ano: 2026
                  mes: 1
              trimestral:
                value:
                  periodo: TRIMESTRAL
                  ano: 2026
                  trimestre: 1
        required: true
      responses:
        "201":
          description: Relatório criado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatorioAcaoResponse"
              examples:
                sucesso:
                  value:
                    id: 11111111-1111-1111-1111-111111111111
                    status: PREVIA
                    versao: 2
                    mensagem: Relatório criado.
        "400":
          $ref: "#/components/responses/Response_400"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.relatorios.create
  /relatorios/{id}:
    get:
      tags:
      - Relatórios
      summary: Recupera um relatório pelo ID.
      description: |
        Retorna o relatório mensal ou trimestral pelo identificador. O formato de retorno pode ser JSON ou XLSX.
      parameters:
      - name: id
        in: path
        description: Identificador único do relatório.
        required: true
        schema:
          format: uuid
          type: string
      - name: formato
        in: query
        description: |
          Define o formato de retorno do relatório. Se não informado, o padrão será JSON.
        required: false
        schema:
          default: json
          enum:
          - json
          - xlsx
          type: string
      responses:
        "200":
          description: Relatório retornado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatorioDetalheDTO"
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                format: binary
                type: string
        "204":
          description: Recurso não encontrado.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Relatório não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.relatorios.read
  /relatorios/{id}/aprovacao:
    post:
      tags:
      - Relatórios
      summary: Aprova um relatório pelo ID.
      description: |
        Aprova o relatório identificado por {id}. Em geral, a aprovação muda o status do relatório para ENCERRADO (ou o status definido pela regra de negócio).
      parameters:
      - name: id
        in: path
        description: Identificador único do relatório.
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RelatorioAprovarRequest"
            examples:
              exemplo:
                value:
                  usuario: jean.rodrigues@apoioprodesp.sp.gov.br
                  observacao: Aprovação do relatório após validação do financeiro.
        required: false
      responses:
        "200":
          description: Relatório aprovado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatorioAcaoResponse"
              examples:
                sucesso:
                  value:
                    id: 11111111-1111-1111-1111-111111111111
                    status: ENCERRADO
                    versao: 1
                    mensagem: Relatório aprovado.
        "400":
          $ref: "#/components/responses/Response_400"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Relatório não encontrado.
        "409":
          description: "Conflito de estado (ex.: relatório já aprovado/encerrado)."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.relatorios.aprovar
  /relatorios/{id}/recalculo:
    post:
      tags:
      - Relatórios
      summary: Recalcula um relatório pelo ID.
      description: |
        Recalcula o relatório identificado por {id}, gerando uma nova versão (versao + 1) e registrando a justificativa para auditoria.
      parameters:
      - name: id
        in: path
        description: Identificador único do relatório.
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RelatorioRecalcularRequest"
            examples:
              exemplo:
                value:
                  justificativa: Ajuste de alíquota vigente e recomposição de totais.
                  usuario: jean.rodrigues@apoioprodesp.sp.gov.br
        required: true
      responses:
        "200":
          description: Relatório recalculado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RelatorioAcaoResponse"
              examples:
                sucesso:
                  value:
                    id: 11111111-1111-1111-1111-111111111111
                    status: RECALCULADO
                    versao: 2
                    mensagem: Relatório recalculado. Nova versão gerada.
        "400":
          $ref: "#/components/responses/Response_400"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Relatório não encontrado.
        "409":
          description: "Conflito de estado (ex.: relatório encerrado e bloqueado para\
            \ recálculo)."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.relatorios.recalcular
  /wallets/{cpfCidadao}/adesoes:
    post:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no ícone de "Habilitar" na tela da carteira para
        aderir ao serviço.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário da carteira.
        required: true
        schema:
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
        "204":
          description: Carteira não encontrada.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /consentimentos/{cpfCidadao}:
    get:
      tags:
      - Consentimento
      summary: Requisitado ao abrir tela de carteira de valores (em qualquer nível).
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GrupoConsentimento"
              examples:
                single:
                  value:
                    creditoPossivel: 180
                    secretarias:
                    - id: 67a0d5e286539116279a4d21
                      descricao: Vida
                      novo: false
                      sistemas:
                      - id: 67a0d7ec86539116279a4d25
                        descricao: Cadastro
                        novo: false
                        servicos:
                        - id: 67a0dae086539116279a4d2c
                          descricao: SP Cadastro
                          novo: false
                          aceites:
                          - id: 67a0f0c186539116279a4d3a
                            resumo: "<style>p, b { line-height: 1.2; } p { margin:\
                              \ 0.5em 0; }</style><p>Autorizo compartilhar as informaç\
                              ões de dados pessoais contidas no meu cadastro na base\
                              \ SP.Cadastro para receber oferta de crédito facilitada\
                              \ dos empresas do governo.</p><br><p><b>Dados que serã\
                              o compartilhados:</b></p><p>&#8226; Nome Completo.</p>\
                              \ <p>&#8226; Score.</p> <p>&#8226; Nome da Mãe.</p>\
                              \ <p>&#8226; Score da Mãe.</p> <p>&#8226; Logradouro.</p>\
                              \ <p>&#8226; Bairro.</p> <p>&#8226; CEP.</p> <p>&#8226;\
                              \ UF.</p> <p>&#8226; Sexo.</p> <p>&#8226; Data de Nascimento.</p>\
                              \ <p>&#8226; email.</p> <p>&#8226; Telefone.</p>"
                            descricao: SP Cadastro
                            decisao:
                              aceiteEmpresas:
                              - cnpj: "47124425000176"
                                nome: Empresa Teste 2
                                aceito: true
                                dataAceite: 2025-02-04T05:46:39.011Z
                                novo: true
        "204":
          description: Consentimento não encontrado.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
    post:
      tags:
      - Consentimento
      summary: Requisitado quando um usuário clicar em qualquer botão gravar
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConsentimentoAtualizacao"
            examples:
              single:
                value:
                - id: 67a0f0c186539116279a4d3a
                  resumo: "<style>p, b { line-height: 1.2; } p { margin: 0.5em 0;\
                    \ }</style><p>Autorizo compartilhar as informações de dados pessoais\
                    \ contidas no meu cadastro na base SP.Cadastro para receber oferta\
                    \ de crédito facilitada dos empresas do governo.</p><br><p><b>Dados\
                    \ que serão compartilhados:</b></p><p>&#8226; Nome Completo.</p>\
                    \ <p>&#8226; Score.</p> <p>&#8226; Nome da Mãe.</p> <p>&#8226;\
                    \ Score da Mãe.</p> <p>&#8226; Logradouro.</p> <p>&#8226; Bairro.</p>\
                    \ <p>&#8226; CEP.</p> <p>&#8226; UF.</p> <p>&#8226; Sexo.</p>\
                    \ <p>&#8226; Data de Nascimento.</p> <p>&#8226; email.</p> <p>&#8226;\
                    \ Telefone.</p>"
                  descricao: SP Cadastro
                  decisao:
                    aceiteEmpresas:
                    - cnpj: "47124425000176"
                      nome: Empresa Teste 2
                      aceito: true
                      dataAceite: 2025-02-04T05:46:39.011Z
                      validade: 2025-05-04T05:46:39.011Z
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /consentimentos/{cpfCidadao}/novos:
    get:
      tags:
      - Consentimento
      summary: Verifica se há novas empresas que ainda não possuem decisão do usuário.
      description: Retorna `true` se houver ao menos uma nova empresa associada a
        algum aceite que o usuário ainda não visualizou ou decidiu.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser consultado.
        required: true
        schema:
          pattern: "^\\d{11}$"
          type: string
      responses:
        "200":
          description: Indica se há novas empresas com aceite pendente.
          content:
            application/json:
              schema:
                type: object
                properties:
                  novasEmpresas:
                    type: boolean
              examples:
                exemploComNovas:
                  summary: Existem novas empresas
                  value:
                    novasEmpresas: true
                exemploSemNovas:
                  summary: Nenhuma nova empresa encontrada
                  value:
                    novasEmpresas: false
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /consentimentos/{cpfCidadao}/simulacoes:
    post:
      tags:
      - Consentimento
      summary: Requisitado quando um usuário clicar em qualquer botão de aceite (marcando
        ou desmarcando)
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConsentimentoAtualizacaoItem"
            examples:
              single:
                value:
                  id: 670436884e62b1fd2673881f
                  tipo: SERVICOS
                  empresas:
                  - id: 20b35db7-d52c-43ca-a4fa-3ad9cc1a4336
                    cnpj: 36.352.242/0001-91
                    nome: JASON DOUGLAS DE OLIVEIRA DESENVOLVIMENTO DE SOFTWARES
                    ativo: true
                  ativo: true
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConsentimentoSimulacaoResponse"
              examples:
                single:
                  value:
                    valorPerdido: -5
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /consentimentos/{cpfCidadao}/termo:
    get:
      tags:
      - Consentimento
      summary: Requisitado quando o usuári oclica no botão do obter termo atualizado.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/pdf:
              schema:
                format: binary
                type: string
        "204":
          description: Termo de consentimento não encontrado.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /verifica-alteracao/consentimentos/{cpfCidadao}:
    get:
      tags:
      - Consentimento
      summary: Verifica se há alteração de consentimentos no Confirma.SP.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser consultado.
        required: true
        schema:
          pattern: "^\\d{11}$"
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: Indica se existe consentimento retornado pelo Confirma.SP.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HasConsentResponse"
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /consentimentos/{api}/{idOperacao}/{cpfTitular}/{cnpjEmpresa}:
    get:
      tags:
      - Consentimento
      summary: Verifica consentimento do cidadão por API e operação (legacy).
      parameters:
      - name: api
        in: path
        description: Nome da API.
        required: true
        schema:
          type: string
      - name: idOperacao
        in: path
        description: Identificador da operação.
        required: true
        schema:
          type: string
      - name: cpfTitular
        in: path
        description: CPF do titular.
        required: true
        schema:
          pattern: "^\\d{3,11}$"
          type: string
      - name: cnpjEmpresa
        in: path
        description: CNPJ da empresa.
        required: true
        schema:
          pattern: "^\\d{7,14}$"
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConsentimentoResposta"
        "204":
          description: Consentimento/decisão não encontrado.
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /v2/consentimento/{api}/{operacao}/{cpf}/{cnpj}:
    get:
      tags:
      - Consentimento
      summary: Verifica consentimento do cidadão por API e operação (v2).
      parameters:
      - name: api
        in: path
        description: Nome da API.
        required: true
        schema:
          type: string
      - name: operacao
        in: path
        description: Identificador da operação.
        required: true
        schema:
          type: string
      - name: cpf
        in: path
        description: CPF do titular.
        required: true
        schema:
          pattern: "^\\d{3,11}$"
          type: string
      - name: cnpj
        in: path
        description: CNPJ da empresa.
        required: true
        schema:
          pattern: "^\\d{7,14}$"
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConsentimentoConsultaV2"
        "204":
          description: API/Operação não cadastrada/encontrada.
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /chaves-pix:
    get:
      tags:
      - Chave Pix
      summary: Buscar chave PIX por ID ou CPF.
      parameters:
      - name: id
        in: header
        description: UUID da chave PIX. Obrigatório se CPF não for informado.
        required: false
        schema:
          format: uuid
          type: string
      - name: cpf
        in: header
        description: CPF associado à chave PIX. Obrigatório se ID não for informado.
        required: false
        schema:
          pattern: "^\\d{11}$"
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChavePix"
        "204":
          description: Chavepix não encontrada.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /chaves-pix/{cpf}:
    post:
      tags:
      - Chave Pix
      summary: Cadastrar a chave PIX.
      parameters:
      - name: cpf
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChavePix"
            examples:
              single:
                value:
                  tipoChave: CELULAR
                  chave: "1199829309"
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /chaves-pix/{id}:
    put:
      tags:
      - Chave Pix
      summary: Atualizar a chave PIX.
      parameters:
      - name: id
        in: path
        description: ID da chave pix.
        required: true
        schema:
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChavePix"
            examples:
              single:
                value:
                  id: 1
                  tipoChave: EMAIL
                  chave: jason.oliveira@apoioprodesp.sp.gov.br
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
    delete:
      tags:
      - Chave Pix
      summary: Excluir a chave PIX.
      parameters:
      - name: id
        in: path
        description: ID da chave pix.
        required: true
        schema:
          format: uuid
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi excluída com sucesso.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /contas-bancarias/{cpfCidadao}:
    get:
      tags:
      - Consentimento
      summary: Requisitado quando o usuário abre a tela de resgate ou tela de Consulta
        dados bancários..
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContaBancaria"
              examples:
                single:
                  value:
                    id: 20b35db7-d52c-43ca-a4fa-3ad9cc1a4336
                    tipoConta: CC
                    banco: 237
                    agencia: 354
                    conta: "1237227"
        "204":
          description: Conta bancária não encontrada.
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
    put:
      tags:
      - Consentimento
      summary: Requisitado quando o usuário clica no botão para atualizar a conta
        bancária.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContaBancaria"
            examples:
              single:
                value:
                  id: 20b35db7-d52c-43ca-a4fa-3ad9cc1a4336
                  tipoConta: CC
                  banco: 237
                  agencia: 354
                  conta: "1237227"
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
    post:
      tags:
      - Consentimento
      summary: Requisitado quando o usuário clica no botão para cadastrar a conta
        bancária.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ContaBancaria"
            examples:
              single:
                value:
                  tipoConta: CC
                  banco: 237
                  agencia: 354
                  conta: "1237227"
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
        "400":
          $ref: "#/components/responses/Response_400"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /resgates/{cpfCidadao}:
    get:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no botão confirmar da tela de Valor para Resgatar.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      - name: valor
        in: query
        description: Valor a ser resgatado.
        required: true
        schema:
          type: number
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Resgate"
              examples:
                single:
                  value:
                    valor: 1000
                    nome: Jason Douglas de Oliveira
                    cpfCidadao: 29300555880
                    tipoResgate: Conta Bancaria
                    tipoConta: CC
                    banco: 237
                    agencia: 354
                    conta: "12317222"
                    dataPrevista: 04/01/2024
        "204":
          description: Restage não encontrado.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
    post:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no botão confirmar transferência da tela de Valor
        para Resgatar.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResgatePost"
        required: true
      responses:
        default:
          description: Erro inesperado
        "201":
          description: A solicitação foi processada com sucesso.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /resgates/{cpfCidadao}/pendentes:
    get:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no botão consultar extrato. Resgates pendentes
        (em processamento).
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ResgateAgendado"
              examples:
                single:
                  value:
                    valor: 1000
                    transacao: "12345678901234567890"
                    dataPrevista: 05/01/2025
        "204":
          description: Resgate pendente não encontrado.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /extratos/{cpfCidadao}:
    get:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no botão consultar extrato.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário a ser recuperado.
        required: true
        schema:
          type: string
      - name: periodo
        in: query
        description: Período dos laçaentos.
        required: true
        schema:
          enum:
          - "7"
          - "15"
          - "30"
          - "90"
          type: string
      - name: tipo
        in: query
        description: Tipo lançamento.
        required: true
        schema:
          enum:
          - TODOS
          - CREDITO
          - RESGATE
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Lancamento"
              examples:
                single:
                  value:
                    id: 20b35db7-d52c-43ca-a4fa-3ad9cc1a4336
                    dataLancamento: 27/12/2024
                    tipoLancamento: Resgate
                    transacao: "12345678901234567890"
                    valor: 1000
                    nomeEmpresa: Banco Bradesco
        "204":
          description: Extrato não encontrado.
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          description: Recurso não encontrado.
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /arquivos/{cpfCidadao}:
    post:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no botão de captura na tela de biometria.
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário.
        required: true
        schema:
          type: string
      requestBody:
        content:
          image/*:
            schema:
              format: binary
              type: string
        required: true
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArquivoLocation"
              examples:
                single:
                  value:
                    location: https://arquivos.api-hml.rota.sp.gov.br/arquivos/21aa8e4a-3543-471d-b053-8ac5b1c0c67b/content
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /verificacoes/{cpfCidadao}:
    post:
      tags:
      - Consentimento
      summary: Requisitado ao clicar no botão de captura na tela de biometria. Retorna
        um true caso encontrado nas bases de identificação
      parameters:
      - name: cpfCidadao
        in: path
        description: CPF do usuário.
        required: true
        schema:
          type: string
      responses:
        default:
          description: Erro inesperado
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            text/plain:
              schema:
                type: boolean
              examples:
                single:
                  value: true
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /controle-cotas/{api}/{idOperacao}/{client-id}:
    get:
      tags:
      - Cotas
      - API Gateway (3scale)
      summary: Consulta a quantidade de acessos disponíveis
      description: |
        Esta operação deverá ser chamada pelo 3scale para consultar a quantidade de acessos disponíveis na cota de acessos contratada pela empresa. Em caso de a quantidade de acessos ser maior do que 0, o acesso deve ser permitido, caso contrário o 3scale  deverá negar o acesso, retornando o cabeçalho "429 - Too Many Requests".
      parameters:
      - name: api
        in: path
        description: |
          Nome da API que está sendo consultada. Trata-se do nome do serviço conforme cadastrado no 3scale como "Product". Utilizar o campo `system_name` do serviço.
        required: true
        schema:
          type: string
      - name: idOperacao
        in: path
        description: |
          ID da operação que está sendo consultada. Trata-se do nome da rota Camel que implementa o endpoint que foi chamado para efetuar a consulta do dado do cidadão. Retornado pelas  operações das APIs estratégicas no cabeçalho `x-nome-operacao` da resposta HTTP.
        required: true
        schema:
          type: string
      - name: client-id
        in: path
        description: |
          Client ID fornecido à empresa para que efetue o acesso à API informada. Deve ser  obtido a partir do `system_name` do 3scale application que efetuou o acesso (a  partir do contexto da policy).
        required: true
        schema:
          type: string
      responses:
        "200":
          description: |
            Foi encontrado registro de cotas de acesso contratados para a API. O número de  acessos disponíveis é retornado e deve ser verificado para permitir ou não o  acesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disponivel:
                    description: |
                      Número de acessos disponível.
                    type: integer
        "204":
          description: |
            Não foi encontrada quota para a operação sendo executada. O retorno  para a solicitação deveria ser um status code 401.
        "500":
          $ref: "#/components/responses/Response_500"
  /controle-cotas/{api}/{idOperacao}/cnpj/{cnpj}:
    get:
      tags:
      - Cotas
      - API Gateway (3scale)
      summary: Consulta a quantidade de acessos disponíveis por CNPJ
      description: |
        Esta operação deverá ser chamada pelo 3scale para consultar a quantidade de acessos disponíveis na cota de acessos contratada pela empresa utilizando o CNPJ. Em caso de a quantidade de acessos ser maior do que 0, o acesso deve ser permitido, caso contrário o 3scale  deverá negar o acesso, retornando o cabeçalho "429 - Too Many Requests".
      parameters:
      - name: api
        in: path
        description: |
          Nome da API que está sendo consultada. Trata-se do nome do serviço conforme cadastrado no 3scale como "Product". Utilizar o campo `system_name` do serviço.
        required: true
        schema:
          type: string
      - name: idOperacao
        in: path
        description: |
          ID da operação que está sendo consultada. Trata-se do nome da rota Camel que implementa o endpoint que foi chamado para efetuar a consulta do dado do cidadão. Retornado pelas  operações das APIs estratégicas no cabeçalho `x-nome-operacao` da resposta HTTP.
        required: true
        schema:
          type: string
      - name: cnpj
        in: path
        description: |
          CNPJ da empresa que está efetuando o acesso à API informada. Deve ser  obtido a partir do contexto da policy e utilizado para consultar as cotas específicas da empresa.
        required: true
        schema:
          pattern: "^[0-9]{14}$"
          type: string
      responses:
        "200":
          description: |
            Foi encontrado registro de cotas de acesso contratados para a API. O número de  acessos disponíveis é retornado e deve ser verificado para permitir ou não o  acesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  disponivel:
                    description: |
                      Número de acessos disponível.
                    type: integer
        "204":
          description: |
            Não foi encontrada quota para a operação sendo executada. O retorno  para a solicitação deveria ser um status code 401.
        "500":
          $ref: "#/components/responses/Response_500"
  /v2/empresas:
    get:
      tags:
      - Empresas
      summary: Consulta paginada de empresas com filtro por CNPJ.
      description: "Retorna uma lista paginada de empresas, permitindo filtros pelo\
        \ CNPJ."
      parameters:
      - name: page
        in: header
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: header
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: cnpj
        in: header
        description: Filtro parcial ou completo pelo CNPJ da empresa.
        required: false
        schema:
          pattern: "^\\d{1,14}$"
          type: string
      responses:
        "200":
          description: Lista de empresas retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EmpresasResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.read
  /empresas:
    get:
      tags:
      - Empresas
      summary: Obtém todas as empresas
      responses:
        "200":
          description: Lista de recursos.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Empresa"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      deprecated: true
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos.read
    post:
      tags:
      - Empresas
      summary: Cadastra uma nova empresa
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmpresaInclusaoAtualizacao"
        required: true
      responses:
        "201":
          description: Recurso cadastrado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Empresa"
        "400":
          $ref: "#/components/responses/Response_400"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.wallets.write
  /v2/pedidos-compra:
    get:
      tags:
      - Pedidos
      summary: Consulta paginada de pedidos de compra (V2).
      description: "Retorna uma lista paginada de todos os registros de pedidos de\
        \ compra, permitindo filtros por empresa, serviço, CNPJ, cliente, portal,\
        \ status, número do pedido e id da cota."
      operationId: findPedidosCompraV2
      parameters:
      - name: page
        in: header
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: header
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: id-empresa
        in: header
        description: Filtro pelo ID da Empresa (UUID).
        required: false
        schema:
          format: uuid
          type: string
      - name: id-servico
        in: header
        description: Filtro pelo ID do Serviço (UUID).
        required: false
        schema:
          format: uuid
          type: string
      - name: cnpj
        in: header
        description: Filtro pelo CNPJ da Empresa (14 dígitos).
        required: false
        schema:
          pattern: "^\\d{14}$"
          type: string
      - name: client-id
        in: header
        description: Filtro parcial pelo Client ID.
        required: false
        schema:
          type: string
      - name: id-portal
        in: header
        description: Filtro pelo ID do Portal de APIs (mapeia para PedidoCompra.idPortal).
        required: false
        schema:
          type: string
      - name: status
        in: header
        description: Filtro pelo status do pedido.
        required: false
        schema:
          enum:
          - ATIVO
          - VENCIDO
          - ENCERRADO
          type: string
      - name: numero-pedido
        in: header
        description: Filtro pelo campo numeroPedido do pedido (mapeia para PedidoCompra.numeroPedido).
        required: false
        schema:
          type: string
      - name: id-cota
        in: header
        description: Filtro pelo campo idCota do pedido (mapeia para PedidoCompra.idCota).
          Usado em conjunto com numero-pedido para identificação de pedidos pré-pagos.
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Lista de pedidos de compra retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PedidoCompraResponseV2"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos.read.v2
  /pedidos-compra:
    get:
      tags:
      - Pedidos
      summary: Obtém todos os pedidos
      responses:
        "200":
          description: Lista de recursos.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PedidoCompra"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      deprecated: true
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos.read
    post:
      tags:
      - Pedidos
      summary: Cadastra uma novo pedido
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PedidoCompraInclusaoAtualizacao"
        required: true
      responses:
        "201":
          description: Recurso cadastrado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PedidoCompra"
        "400":
          $ref: "#/components/responses/Response_401"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          $ref: "#/components/responses/Response_404"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos.create
  /pedidos-compra/vencimento:
    post:
      tags:
      - Pedidos
      summary: Verifica e marca como vencido os pedidos vencidos
      requestBody:
        content:
          application/json:
            schema:
              required:
              - data
              type: object
              properties:
                data:
                  format: date
                  type: string
                  example: 2025-05-13
        required: true
      responses:
        "204":
          description: Vencimentos dos pedidos de compra atualizados.
        "400":
          $ref: "#/components/responses/Response_401"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "404":
          $ref: "#/components/responses/Response_404"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos.create
  /pedidos-compra/{id}:
    get:
      tags:
      - Pedidos
      summary: Obtém pedido por ID
      responses:
        "200":
          description: Recurso encontrado.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PedidoCompra"
        "204":
          $ref: "#/components/responses/Response_204_NotFound"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos.read
    parameters:
    - name: id
      in: path
      required: true
      schema:
        format: uuid
        type: string
  /pedidos-compra/{id}/acessos:
    get:
      tags:
      - Pedidos
      summary: Consulta os acessos de um pedido de compra
      description: "Retorna a lista totalizada de acessos de um pedido de compra especí\
        fico, com suporte a paginação e filtros por mês e ano."
      operationId: getPedidosCompraAcessos
      parameters:
      - name: id
        in: path
        description: ID do pedido de compra
        required: true
        schema:
          format: uuid
          type: string
      - name: page
        in: query
        description: "Número da página (padrão: 0)"
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: query
        description: "Quantidade de registros por página (padrão: 10)"
        required: false
        schema:
          default: 10
          type: integer
      - name: mes
        in: query
        description: Filtro pelo mês do acesso (1-12)
        required: false
        schema:
          maximum: 12
          minimum: 1
          type: integer
      - name: ano
        in: query
        description: Filtro pelo ano do acesso
        required: false
        schema:
          type: integer
      responses:
        "200":
          description: Lista de acessos retornada com sucesso
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AcessosResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.pedidos-compra.read
  /v2/acessos:
    get:
      tags:
      - Acessos
      summary: Consulta paginada e detalhada de acessos.
      description: "Retorna uma lista paginada de todos os registros de acesso, permitindo\
        \ filtros por pedido de compra, cliente, CPF e CNPJ do titular/empresa, data\
        \ (mês/ano) e operação da API."
      parameters:
      - name: page
        in: header
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: header
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: id-pedido
        in: header
        description: Filtro pelo ID do Pedido de Compra associado.
        required: false
        schema:
          format: uuid
          type: string
      - name: numero-pedido
        in: header
        description: Filtro pelo número do Pedido de Compra associado.
        required: false
        schema:
          type: string
      - name: client-id
        in: header
        description: Filtro parcial pelo Client ID.
        required: false
        schema:
          type: string
      - name: data-inicio
        in: header
        description: Filtro pela data/hora do acesso.
        required: false
        schema:
          type: string
      - name: data-fim
        in: header
        description: Filtro pela data/hora do acesso.
        required: false
        schema:
          type: string
      - name: api
        in: header
        description: Filtro parcial pelo nome da API.
        required: false
        schema:
          type: string
      - name: operacao
        in: header
        description: Filtro parcial pelo ID da Operação.
        required: false
        schema:
          type: string
      - name: cpf-titular
        in: header
        description: Filtro pelo CPF do Titular do dado (11 dígitos).
        required: false
        schema:
          pattern: "^\\d{11}$"
          type: string
      - name: cnpj
        in: header
        description: Filtro pelo CNPJ da empresa que realizou o acesso (14 dígitos).
        required: false
        schema:
          pattern: "^\\d{14}$"
          type: string
      responses:
        "200":
          description: Lista de acessos retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AcessosResponseV2"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.acessos.read.v2
  /acessos:
    get:
      tags:
      - Acessos
      summary: Obtém a relação de acessos de APIs
      description: ""
      parameters:
      - name: id-operacao
        in: query
        required: true
        schema:
          format: uuid
          type: string
      - name: client-id
        in: query
        required: true
        schema:
          type: string
      - name: cpf
        in: query
        description: CPF do titular do dado consultado.
        required: true
        schema:
          type: string
      - name: cnpj
        in: query
        description: CNPJ da empresa que realizou o acesso.
        required: true
        schema:
          type: string
      - name: dt-ini
        in: query
        description: Data de início do período de pesquisa.
        required: true
        schema:
          format: date
          type: string
      - name: dt-fim
        in: query
        description: Data de término do período de pesquisa.
        required: true
        schema:
          format: date
          type: string
      - name: offset
        in: query
        description: Indica o registro inicial a ser retornado (primeiro = 0).
        required: true
        schema:
          format: integer
          type: string
      - name: limit
        in: query
        description: Indica o número de registros retornados (1 a 1000).
        required: true
        schema:
          format: integer
          type: string
      responses:
        "200":
          description: Lista de recursos.
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    description: Total de registros encontrados.
                    type: integer
                  data:
                    description: lista com os recursos encontrados.
                    type: array
                    items:
                      $ref: "#/components/schemas/Acesso"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      deprecated: false
      security:
      - IdpSP:
        - api:integrador.wallet-dados.acessos.read
    delete:
      tags:
      - Acessos
      summary: Exclui todos os registros para um pedido compra.
      parameters:
      - name: idPedidoCompra
        in: path
        description: O ID único do registro de Acesso a ser excluído.
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          description: A solicitação foi excluída com sucesso.
        "404":
          $ref: "#/components/responses/Response_404"
        "500":
          $ref: "#/components/responses/Response_500"
  /v2/acessos/servicos:
    get:
      tags:
      - Acessos
      summary: Obtém a lista de serviços únicos acessados por um CPF titular.
      description: |
        Retorna uma lista distinta de serviços (API e Operação) que foram acessados
        pelo CPF informado no cabeçalho `cpf-titular`. Utilizado para listar os
        serviços que o usuário tem permissão histórica de acesso.
      parameters:
      - name: cpf-titular
        in: header
        description: CPF do titular do dado para buscar os serviços acessados.
        required: true
        schema:
          pattern: "^\\d{11}$"
          type: string
      responses:
        "200":
          description: Lista de serviços únicos retornada com sucesso.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AcessoServicoDTO"
        "400":
          description: CPF titular não informado ou inválido.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.acessos.read
  /v2/acessos/consolidado:
    get:
      tags:
      - Acessos
      summary: Consulta consolidada de acessos por dia para um pedido em um mês/ano.
      description: |
        Retorna o total de acessos agrupado por dia do mês para um determinado número de pedido.
        Em caso de pedidos pré-pagos, pode haver mais de um pedido de compra com o mesmo `numeroPedido`
        (com valores diferentes em `idCota`). Os acessos de todos esses pedidos são somados.
      parameters:
      - name: numero-pedido
        in: query
        description: Número do pedido do portal de APIs (campo `numeroPedido` em `PedidoCompra`).
        required: true
        schema:
          type: string
      - name: mes
        in: query
        description: Mês de consulta (1 a 12).
        required: true
        schema:
          maximum: 12
          minimum: 1
          type: integer
      - name: ano
        in: query
        description: Ano de consulta (ex. 2026).
        required: true
        schema:
          type: integer
      responses:
        "200":
          description: Consolidado de acessos por dia retornado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AcessoConsolidadoDiarioResponse"
        "400":
          description: Parâmetros obrigatórios ausentes ou inválidos.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.acessos.read
  /acessos/consolidados:
    get:
      tags:
      - Acessos
      summary: Obtém a relação de acessos de APIs consolidado por mês/ano
      description: |
        Obtém os acessos contabilizados de API consolidado por mês/ano conforme filtros informados.
      parameters:
      - name: client-id
        in: query
        required: true
        schema:
          type: string
      - name: mes
        in: query
        description: Indica o mês de consulta (1 a 12).
        required: true
        schema:
          type: integer
      - name: ano
        in: query
        description: Indica o número de registros retornados (1 a 1000).
        required: true
        schema:
          type: integer
      responses:
        "200":
          description: Lista de recursos.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AcessoConsolidado"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.acessos.consolidados.read
  /v2/aplicacoes:
    get:
      tags:
      - Aplicações
      summary: Consulta paginada de aplicações com filtros.
      description: "Retorna uma lista paginada de aplicações, permitindo filtros por\
        \ ID da Empresa, CNPJ e Client ID."
      parameters:
      - name: page
        in: header
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: header
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: id-empresa
        in: header
        description: Filtro pelo ID da Empresa proprietária.
        required: false
        schema:
          format: uuid
          type: string
      - name: cnpj
        in: header
        description: Filtro parcial pelo CNPJ da Empresa proprietária.
        required: false
        schema:
          type: string
      - name: client-id
        in: header
        description: Filtro parcial pelo Client ID da aplicação.
        required: false
        schema:
          type: string
      responses:
        "200":
          description: Lista de aplicações retornada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AplicacoesResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aplicacoes.read
  /aplicacoes:
    get:
      tags:
      - Aplicações
      summary: Recupera as aplicações cadastradas.
      description: "A requisição deverá passar como parâmetro ou o CNPJ ou o idEmpresa.\
        \ \n"
      parameters:
      - name: cnpj
        in: query
        description: |
          CNPJ da empresa a ser consultada.
        required: false
        schema:
          type: string
      - name: idEmpresa
        in: query
        description: |
          idEmpresa da empresa a ser consultada.
        required: false
        schema:
          type: string
      responses:
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AplicacoesResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      deprecated: true
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aplicacoes.read
    post:
      tags:
      - Aplicações
      summary: Realiza o cadastro de aplicacoes
      description: "<p>Esta operação será chamada pelo Portal de APIs para cadastramento\
        \ da aplicação da empresa cliente, o que resultará na criação das credenciais\
        \ OAuth2 (`client-id` e `client-secret`) associadas a esta aplicação.\n<h2>Atenç\
        ão</h2>\n<p>O `client-secret` será retornado apenas na criação da aplicaçã\
        o. Não será retornado na consulta posterior da aplicação.\n  "
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AplicacoesPost"
        required: true
      responses:
        "201":
          description: Recurso cadastrado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AplicacoesPostResponse"
        "400":
          description: Requisição com informações incorretas. Será descrito no `body`
            os campos incorretos.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aplicacoes.create
  /aplicacoes/{idAplicacao}/secret:
    get:
      tags:
      - Aplicações
      summary: Recupera as secrets de uma aplicação cadastrada.
      description: "A requisição deverá passar como parâmetro path o id da aplicaç\
        ão. \n"
      parameters:
      - name: idAplicacao
        in: path
        description: |
          ID da aplicação a ser consultada.
        required: true
        schema:
          format: uuid
          type: string
      responses:
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AplicacoesSecretResponse"
        "204":
          description: Aplicação não encontrada.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aplicacoes.secret.read
  /aliquotas:
    get:
      tags:
      - Aliquotas
      summary: Recupera todas as alioquotas cadastradas.
      description: |
        A requisição poderá passar como parâmetro o nome ou a dataVigencia.
      parameters:
      - name: page
        in: query
        description: "Número da página (**padrão: 0**)."
        required: false
        schema:
          default: 0
          type: integer
      - name: size
        in: query
        description: "Quantidade de registros por página (**padrão: 10**)."
        required: false
        schema:
          default: 10
          type: integer
      - name: nome
        in: query
        description: |
          Nome do tributo a ser consultado.
        required: false
        schema:
          type: string
      - name: dataVigencia
        in: query
        description: |
          'Filtra alíquotas vigentes na data (YYYY-MM-DD).'
        required: false
        schema:
          type: string
      responses:
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AliquotasPageResponse"
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aliquotas.read
    post:
      tags:
      - Aliquotas
      summary: Cadastra uma nova alíquota.
      description: <p>Esta operação será utilizada pelo Financeiro para cadastramento
        de novas aliquotas que serão utilizadas pelo endpoint de geração de relatórios.
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AliquotasPost"
        required: true
      responses:
        "201":
          description: Recurso cadastrado com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AliquotasResponse"
        "400":
          description: Requisição com informações incorretas. Será descrito no `body`
            os campos incorretos.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aliquotas.upsert
  /aliquotas/{id}:
    get:
      tags:
      - Aliquotas
      summary: Recupera alíquotas pelo ID.
      description: |
        Recupera alíquotas pelo ID.
      parameters:
      - name: id
        in: path
        description: |
          UUID da alíquota a ser consultada.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AliquotasResponse"
        "204":
          description: Alíquota não encontrada.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aliquotas.read
    put:
      tags:
      - Aliquotas
      summary: Atualiza alíquotas pelo ID.
      description: |
        Atualiza alíquotas pelo ID.
      parameters:
      - name: id
        in: path
        description: |
          UUID da alíquota a ser consultada.
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AliquotasPut"
        required: true
      responses:
        "200":
          description: A solicitação foi processada com sucesso.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AliquotasResponse"
        "204":
          description: Alíquota não encontrada.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aliquotas.upsert
    delete:
      tags:
      - Aliquotas
      summary: Deleta alíquotas pelo ID.
      description: |
        Deleta alíquotas pelo ID.
      parameters:
      - name: id
        in: path
        description: |
          UUID da alíquota a ser consultada.
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Recurso excluído com sucesso.
        "204":
          description: Alíquota não encontrada.
        "401":
          $ref: "#/components/responses/Response_401"
        "403":
          $ref: "#/components/responses/Response_403"
        "500":
          $ref: "#/components/responses/Response_500"
      security:
      - IdpSP:
        - api:integrador.wallet-dados.aliquotas.upsert
components:
  schemas:
    AcessoDiarioDTO:
      description: Total de acessos de um dia.
      type: object
      properties:
        dia:
          description: Dia do mês (1 a 31).
          type: integer
        quantidade:
          format: int64
          description: Total de acessos no dia.
          type: integer
    AcessoConsolidadoDiarioResponse:
      description: Resposta da consulta consolidada de acessos por dia para um pedido
        em um mês/ano.
      type: object
      properties:
        ano:
          description: Ano consultado.
          type: integer
        mes:
          description: Mês consultado (1 a 12).
          type: integer
        dias:
          description: Lista de totais de acesso agrupados por dia.
          type: array
          items:
            $ref: "#/components/schemas/AcessoDiarioDTO"
        total:
          format: int64
          description: Total geral de acessos no mês.
          type: integer
    Error:
      type: object
      properties:
        trace:
          description: Trace ID
          type: string
        messages:
          type: array
          items:
            type: object
            properties:
              codigo:
                description: Código
                type: string
                example: string
              mensagem:
                description: Mensagem
                type: string
                example: string
    Carteira:
      type: object
      properties:
        saldo:
          description: Saldo para resgate.
          type: number
        valorPendente:
          description: Valor pendente (quadro vermelho).
          type: number
        status:
          description: (se aderiu ou não).
          type: boolean
    GrupoConsentimento:
      type: object
      properties:
        creditoPossivel:
          description: Crédito possível.
          type: number
        secretarias:
          type: array
          items:
            $ref: "#/components/schemas/SecretariaConfirmaSP"
    ConsentimentoAtualizacao:
      type: array
      items:
        $ref: "#/components/schemas/AceiteConfirmaSP"
    ConsentimentoAtualizacaoItem:
      type: object
      properties:
        id:
          description: Id do consentimento.
          type: string
        empresas:
          description: Empresas do consentimento.
          type: array
          items:
            $ref: "#/components/schemas/Empresa"
        ativo:
          description: (se aderiu ou não). false para excluir
          type: boolean
    EmpresaInclusaoAtualizacao:
      type: object
      properties:
        cnpj:
          description: CNPJ do empresa
          type: string
        nome:
          description: Razao social do empresa
          type: string
    ResgatePost:
      type: object
      properties:
        valor:
          description: valor do resgate
          type: integer
        chavePix:
          description: chave pix do usuario usada para o resgate
          type: integer
        conta:
          $ref: "#/components/schemas/ContaBancaria"
    Empresa:
      type: object
      properties:
        id:
          description: Id do empresa.
          type: string
        cnpj:
          description: CNPJ do empresa
          type: string
        nome:
          description: Razao social do empresa
          type: string
        ativo:
          description: (se aderiu ou não).
          type: boolean
    ConsentimentoSimulacaoResponse:
      type: object
      properties:
        valorPerdido:
          description: Valor "perdido" (atual)
          type: number
    HasConsentResponse:
      type: object
      properties:
        hasConsent:
          description: Indica se o Confirma.SP retornou consentimento.
          type: boolean
    ConsentimentoResposta:
      type: object
      properties:
        consentimento:
          description: Valor do consentimento (aceito ou não).
          type: boolean
    ConsentimentoConsultaV2:
      type: object
      properties:
        exigeConsentimento:
          description: Indica se a API/operação exige consentimento.
          type: boolean
        possuiDecisao:
          description: Indica se existe decisão no Confirma.SP.
          type: boolean
        consentimento:
          description: Valor do consentimento (aceito ou não).
          type: boolean
        hashDecisao:
          description: "Hash da decisão, quando disponível."
          type: string
          nullable: true
        tipoHash:
          description: "Tipo do hash da decisão, quando disponível."
          type: string
          nullable: true
    Consentimento:
      type: object
      properties:
        id:
          description: Id do Consentimento.
          type: string
        descricao:
          description: Descrição do Consentimento.
          type: string
        novo:
          description: se incluiram na ultima carga.
          type: boolean
        ativo:
          description: (se aderiu ou não).
          type: boolean
        empresas:
          description: Empresas do consentimento.
          type: array
          items:
            $ref: "#/components/schemas/Empresa"
    ChavePix:
      type: object
      properties:
        id:
          description: Id do ChavePix.
          type: string
        tipoChaveValidacao:
          description: "Tipo de chave pix(CELULAR, EMAIL, BIOMETRIA)."
          type: string
        chaveValicacao:
          description: "valor da chave pix de validacao (endereço de email, numero\
            \ celular)."
          type: string
        chave:
          description: valor da chave pix.
          type: string
        codigo:
          description: Código recebido pelo canal para os tipos (CELULAR e EMAIL).
          type: string
    ContaBancaria:
      type: object
      properties:
        id:
          description: Id do Conta Bancaria.
          type: string
        tipoConta:
          description: "(\"CC\" = Conta Corrente, \"CP\" = Conta Poupança)."
          type: string
        banco:
          description: Número do Banco.
          type: number
        agencia:
          description: Número da Agência.
          type: number
        conta:
          description: Número da conta.
          type: string
    Resgate:
      type: object
      properties:
        valor:
          description: Valor a ser resgatado.
          type: number
        nome:
          description: Nome do Cidadão.
          type: string
        cpfCidadao:
          description: CPF do Cidadão.
          type: string
        tipoResgate:
          description: Tipo do Resgate (1 - conta bancária/ 2 - chave pix).
          type: number
        tipoConta:
          description: "(\"CC\" = Conta Corrente, \"CP\" = Conta Poupança)."
          type: string
        banco:
          description: Número do Banco.
          type: number
        agencia:
          description: Número da Agência.
          type: number
        conta:
          description: Número da conta.
          type: string
        chavePix:
          description: Número da conta.
          type: string
        dataPrevista:
          format: date
          description: Número da conta.
          type: string
    ResgateAgendado:
      type: object
      properties:
        id:
          description: Id do Resgate.
          type: string
        cpfCidadao:
          description: CPF do Cidadão.
          type: string
        valor:
          description: Valor a ser resgatado.
          type: number
        transacao:
          description: Id da Transação.
          type: string
        dataPrevista:
          format: date
          description: Número da conta.
          type: string
        processado:
          description: Status de processamento.
          type: boolean
    Lancamento:
      type: object
      properties:
        id:
          description: Id do lancamento.
          type: string
        dataLancamento:
          format: date
          description: Data do lancamento.
          type: string
        tipoLancamento:
          description: "Nome do tipo de lançamento (Resgate, Estorno Resgate, Credito\
            \ e Pix Enviado)."
          type: string
        transacao:
          description: Id da Transação.
          type: string
        valor:
          description: Valor.
          type: number
        nomeEmpresa:
          description: Nome do empresa.
          type: string
    ArquivoLocation:
      type: object
      properties:
        location:
          description: URL do arquivo.
          type: string
    SecretariaConfirmaSP:
      type: object
      properties:
        id:
          description: Id da secretaria.
          type: string
        descricao:
          description: Descricao da secretaria.
          type: string
        novo:
          description: Flag indicando se e um novo item.
          type: boolean
        sistemas:
          description: Sistemas da secretaria.
          type: array
          items:
            $ref: "#/components/schemas/SistemaConfirmaSP"
    SistemaConfirmaSP:
      type: object
      properties:
        id:
          description: Id do sistema.
          type: string
        descricao:
          description: Descricao do sistema.
          type: string
        novo:
          description: Flag indicando se e um novo item.
          type: boolean
        servicos:
          description: Servicos do sistemas.
          type: array
          items:
            $ref: "#/components/schemas/ServicoConfirmaSP"
    ServicoConfirmaSP:
      type: object
      properties:
        id:
          description: Id do servico.
          type: string
        descricao:
          description: Descricao do servico.
          type: string
        novo:
          description: Flag indicando se e um novo item.
          type: boolean
        aceites:
          description: Aceites do servico.
          type: array
          items:
            $ref: "#/components/schemas/AceiteConfirmaSP"
    AceiteConfirmaSP:
      type: object
      properties:
        id:
          description: Id do aceite.
          type: string
        resumo:
          description: Resumo do aceite.
          type: string
        descricao:
          description: Descricao do aceite.
          type: string
        decisao:
          $ref: "#/components/schemas/DecisaoConfirmaSP"
    DecisaoConfirmaSP:
      type: object
      properties:
        aceiteEmpresas:
          description: AceiteEmpresas da decisao.
          type: array
          items:
            $ref: "#/components/schemas/AceiteEmpresaConfirmaSP"
    AceiteEmpresaConfirmaSP:
      type: object
      properties:
        cnpj:
          description: CNPJ da empresa.
          type: string
        nome:
          description: Nome da empresa.
          type: string
        aceito:
          description: Flag do aceite da empresa.
          type: string
        dataAceite:
          description: Data do aceite da empresa.
          type: string
        validade:
          format: date
          description: Validade do aceite da empresa.
          type: string
    PedidoCompraInclusaoAtualizacao:
      type: object
      properties:
        idEmpresa:
          format: uuid
          type: string
        idServico:
          format: uuid
          type: string
        clientId:
          type: string
        dataHoraPedido:
          format: date-time
          type: string
        quantidadeRequisicoes:
          type: integer
        precoTotal:
          format: float
          type: number
        idPortalApis:
          description: Identificador do pedido no portal de APIs.
          type: string
        cpfResponsavel:
          description: CPF Comprador Responsavel
          type: string
        numeroPedido:
          description: Número do Resumo do pedido
          type: string
        descricaoPedido:
          description: Descrição
          type: string
        tipoTecnologia:
          description: Tecnologia
          type: string
        contrato:
          type: object
          properties:
            id:
              description: Id Adobe Sign
              type: string
            status:
              description: Status do contrato
              type: string
            metodoPagamento:
              description: Método pagamento
              enum:
              - PIX
              - BOLETO
              - CARTAO_CREDITO
              - CARTAO_DEBITO
              type: string
            modalidade:
              description: Método pagamento
              enum:
              - PRE_PAGO
              - POS_PAGO
              type: string
            dataInicioVigencia:
              format: date-time
              description: Data de inicio da vigencia da cota
              type: string
            dataFimVigencia:
              format: date-time
              description: Data de fim da vigencia da cota
              type: string
    PedidoCompra:
      type: object
      properties:
        id:
          format: uuid
          type: string
        idEmpresa:
          format: uuid
          type: string
        idServico:
          format: uuid
          type: string
        clientId:
          type: string
        dataHoraPedido:
          format: date-time
          type: string
        quantidadeRequisicoes:
          type: integer
        precoTotal:
          format: float
          type: number
        idPortalApis:
          description: Identificador do pedido no portal de APIs.
          type: string
        cpfResponsavel:
          description: CPF Comprador Responsavel
          type: string
        numeroPedido:
          description: Número do Resumo do pedido
          type: string
        descricaoPedido:
          description: Descrição
          type: string
        tipoTecnologia:
          description: Tecnologia
          type: string
        contrato:
          type: object
          properties:
            id:
              description: Id Adobe Sign
              type: string
            status:
              description: Status do contrato
              type: string
            metodoPagamento:
              description: Método pagamento
              enum:
              - PIX
              - BOLETO
              - CARTAO_CREDITO
              - CARTAO_DEBITO
              type: string
            modalidade:
              description: Método pagamento
              enum:
              - PRE_PAGO
              - POS_PAGO
              type: string
            dataInicioVigencia:
              format: date-time
              description: Data de inicio da vigencia da cota
              type: string
            dataFimVigencia:
              format: date-time
              description: Data de fim da vigencia da cota
              type: string
    Acesso:
      type: object
      properties:
        id:
          format: uuid
          type: string
        idOperacao:
          type: string
        clientId:
          type: string
        dataHora:
          format: date-time
          type: string
    AcessoDTO:
      type: object
      properties:
        id:
          format: uuid
          description: ID do acesso
          type: string
        clientId:
          description: ID do cliente que realizou o acesso
          type: string
        api:
          description: API acessada
          type: string
        idOperacao:
          description: Operação executada
          type: string
        cnpj:
          description: "CNPJ do titular, se aplicável"
          type: string
        cpfTitular:
          description: "CPF do titular, se aplicável"
          type: string
        dataHora:
          format: date-time
          description: Data e hora do acesso
          type: string
        pedidoId:
          format: uuid
          description: ID do pedido de compra associado
          type: string
    AcessosResponse:
      type: object
      properties:
        totalElements:
          description: Total de registros encontrados
          type: integer
        page:
          description: Número da página retornada
          type: integer
        size:
          description: Quantidade de registros por página
          type: integer
        content:
          description: Lista de acessos
          type: array
          items:
            $ref: "#/components/schemas/AcessoDTO"
    AcessoConsolidado:
      type: object
      properties:
        api:
          type: string
        operacao:
          type: string
        ano:
          type: integer
        mes:
          type: integer
        quantidade:
          type: integer
    AplicacoesResponse:
      type: object
      properties:
        id:
          format: uuid
          type: string
          example: 395a571e-b0c2-41e0-a98f-8f4cc31c566a
        clientID:
          type: string
          example: empresa.22333444000155.aplicacao-1
        nome:
          type: string
          example: 22333444000155 - Razão Social S/A - Aplicação de testes 1
        descricao:
          type: string
          example: Aplicação criada para testes do portal de API
    AplicacoesSecretResponse:
      type: object
      properties:
        clientID:
          type: string
          example: empresa.22333444000155.aplicacao-1
        clientSecretHomologacao:
          type: string
          example: 99aa0d2c-dd00-49b2-8a3e-34e6e11bc83e
        clientSecretProducao:
          type: string
          example: 4ae3c74a-205c-47aa-b35a-e0b24397a972
    AplicacoesPostResponse:
      type: object
      properties:
        id:
          format: uuid
          type: string
          example: 395a571e-b0c2-41e0-a98f-8f4cc31c566a
        clientID:
          type: string
          example: empresa.22333444000155.aplicacao-1
        clientSecretHomologacao:
          type: string
          example: 99aa0d2c-dd00-49b2-8a3e-34e6e11bc83e
        clientSecretProducao:
          type: string
          example: 4ae3c74a-205c-47aa-b35a-e0b24397a972
        nome:
          type: string
          example: 22333444000155 - Razão Social S/A - Aplicação de testes 1
        descricao:
          type: string
          example: Aplicação criada para testes do portal de API
    AplicacoesPost:
      type: object
      properties:
        cnpj:
          type: string
          example: "22333444000155"
        idEmpresa:
          type: string
          example: 93402-34232432-42342432423423-42234234234
        nomeSistemico:
          pattern: "^[a-zA-Z0-9-_]+$"
          type: string
          example: aplicacao-1
        nome:
          type: string
          example: Aplicação de testes 1
        descricao:
          type: string
          example: Aplicação criada para testes do portal de API
    AliquotasPageResponse:
      type: object
      properties:
        totalElements:
          description: Total de registros encontrados.
          type: integer
        page:
          description: Número da página retornada.
          type: integer
        size:
          description: Quantidade de registros por página.
          type: integer
        content:
          type: array
          items:
            $ref: "#/components/schemas/AliquotasResponse"
    AliquotasResponse:
      type: object
      properties:
        id:
          format: uuid
          type: string
          example: 731e7721-f152-42f4-8ff4-aa00ed920f6f
        nome:
          type: string
          example: Tributo
        valor:
          type: number
          example: 14.25
        dataInicioVigencia:
          format: date
          type: string
          example: 2025-08-15
        dataCriacao:
          format: date-time
          type: string
          example: 2025-08-15T00:00:00
        dataAtualizacao:
          format: date-time
          type: string
          example: 2025-08-15T00:00:00
    AliquotasPost:
      required:
      - nome
      - valor
      - dataInicioVigencia
      type: object
      properties:
        nome:
          type: string
          example: Tributo
        valor:
          type: number
          example: 14.25
        dataInicioVigencia:
          format: date
          type: string
          example: 2025-08-15
    AliquotasPut:
      type: object
      properties:
        nome:
          type: string
          example: Tributo
        valor:
          type: number
          example: 14.25
    FaturasResponse:
      description: Estrutura de resposta paginada para a consulta de faturas.
      type: object
      properties:
        totalElements:
          description: Total de registros de faturas encontrados.
          type: integer
        page:
          description: Número da página retornada.
          type: integer
        size:
          description: Quantidade de registros por página.
          type: integer
        content:
          description: Lista de objetos Fatura.
          type: array
          items:
            $ref: "#/components/schemas/FaturaDTO"
    FaturaDTO:
      description: Representa os dados detalhados de uma fatura.
      type: object
      properties:
        id:
          format: uuid
          description: ID da fatura.
          type: string
        pedidoCompraId:
          format: uuid
          description: ID do Pedido de Compra associado.
          type: string
        mesReferencia:
          description: Mês de referência da fatura.
          type: integer
        anoReferencia:
          description: Ano de referência da fatura.
          type: integer
        qtdeAcessos:
          format: int64
          description: Quantidade de acessos na fatura.
          type: integer
        precoUnitario:
          format: float
          description: Preço unitário do acesso.
          type: number
        valorTotal:
          format: float
          description: Valor total da fatura.
          type: number
        creationDate:
          format: date-time
          description: Data e hora de criação da fatura (ISO 8601).
          type: string
        status:
          description: Status da fatura.
          enum:
          - PENDENTE
          - ENCAMINHADA
          - PAGA
          - ERRO
          type: string
        dataVencimento:
          format: date
          description: Data de vencimento da fatura (YYYY-MM-DD).
          type: string
        numeroPedido:
          description: Número do Resumo do pedido associado.
          type: string
        contrato:
          description: Identificador do contrato.
          type: string
        cpfCnpj:
          description: CPF/CNPJ do titular.
          type: string
        prefixo:
          description: Prefixo.
          type: string
        codigoItem:
          description: Código do item.
          type: string
        dataRefDe:
          format: date-time
          description: Data e hora de início do período de referência (ISO 8601).
          type: string
        dataRefAte:
          format: date-time
          description: Data e hora de fim do período de referência (ISO 8601).
          type: string
        emailNotaFiscal1:
          description: E-mail para nota fiscal 1.
          type: string
        emailNotaFiscal2:
          description: E-mail para nota fiscal 2.
          type: string
    EmpresasResponse:
      description: Estrutura de resposta paginada para a consulta de empresas.
      type: object
      properties:
        totalElements:
          description: Total de registros de empresas encontrados.
          type: integer
        page:
          description: Número da página retornada.
          type: integer
        size:
          description: Quantidade de registros por página.
          type: integer
        content:
          description: Lista de objetos EmpresaDTO.
          type: array
          items:
            $ref: "#/components/schemas/EmpresaDTO"
    EmpresaDTO:
      description: Representa os dados resumidos de uma Empresa na listagem paginada
        (v2).
      type: object
      properties:
        id:
          format: uuid
          description: ID da empresa.
          type: string
        cnpj:
          description: CNPJ da empresa.
          type: string
        nome:
          description: Razão social da empresa.
          type: string
    ServicoDTO:
      description: Representa os dados resumidos de um Serviço na listagem paginada
        (v2).
      type: object
      properties:
        id:
          format: uuid
          description: ID do serviço.
          type: string
        api:
          description: "Nome da API (ex: integrador.wallet-dados)."
          type: string
        idOperacao:
          description: ID da Operação/Rota (mapeado do campo 'operacao' no filtro).
          type: string
        idServicoConfirma:
          description: "ID do serviço no ConfirmaSP, se houver."
          type: string
        idAceiteConfirma:
          description: ID do aceite no ConfirmaSP associado.
          type: string
        relatorio:
          description: "Indicador para relatório, se aplicável."
          type: string
    ServicosResponse:
      description: Estrutura de resposta paginada para a consulta de serviços (v2).
      type: object
      properties:
        totalElements:
          description: Total de registros de serviços encontrados.
          type: integer
        page:
          description: Número da página retornada.
          type: integer
        size:
          description: Quantidade de registros por página.
          type: integer
        content:
          description: Lista de objetos ServicoDTO.
          type: array
          items:
            $ref: "#/components/schemas/ServicoDTO"
    Servico:
      description: "Representa um Serviço completo, incluindo detalhes de API, liquidez\
        \ e configuração."
      type: object
      properties:
        id:
          format: uuid
          description: ID único do Serviço.
          type: string
        api:
          description: "Nome da API (ex: bcadastro)."
          maxLength: 30
          type: string
        idOperacao:
          description: "ID da Operação/Rota (ex: match)."
          maxLength: 50
          type: string
        idServicoConfirma:
          description: ID do serviço no ConfirmaSP.
          maxLength: 50
          type: string
        idAceiteConfirma:
          description: ID do aceite no ConfirmaSP associado.
          maxLength: 50
          type: string
        valorLiquidoApi:
          format: float
          description: Valor líquido da API.
          type: number
        servicoIndex:
          description: Índice de ordenação do serviço.
          type: integer
        scope:
          description: Escopo de acesso necessário (OAuth2).
          type: string
        relatorio:
          description: Indicador de relatório.
          maxLength: 10
          type: string
        creationDate:
          format: date-time
          description: Data e hora de criação do registro.
          type: string
        updateDate:
          format: date-time
          description: Data e hora da última atualização do registro.
          type: string
    AplicacaoDTO:
      description: "Representa os dados resumidos de uma Aplicação na listagem paginada\
        \ (v2), incluindo o CNPJ da Empresa associada."
      type: object
      properties:
        id:
          format: uuid
          description: ID da aplicação.
          type: string
        clientId:
          description: Client ID da aplicação (credencial).
          type: string
        nome:
          description: Nome amigável da aplicação.
          type: string
        nomeSistemico:
          description: Nome sistemico da aplicação.
          type: string
        descricao:
          description: Descrição da aplicação.
          type: string
        idEmpresa:
          format: uuid
          description: ID da Empresa proprietária.
          type: string
        cnpjEmpresa:
          description: CNPJ da Empresa proprietária.
          type: string
    AcessosResponseV2:
      description: Estrutura de resposta paginada para a consulta de acessos (v2).
      type: object
      properties:
        totalElements:
          description: Total de registros encontrados.
          type: integer
        page:
          description: Número da página retornada.
          type: integer
        size:
          description: Quantidade de registros por página.
          type: integer
        content:
          description: Lista de objetos AcessoDTO.
          type: array
          items:
            $ref: "#/components/schemas/AcessoDTO"
    ContratoDTO:
      description: Detalhes do contrato associado ao pedido de compra.
      type: object
      properties:
        id:
          description: Id do Contrato
          type: string
        status:
          description: Status atual do contrato.
          type: string
        metodoPagamento:
          description: Método de pagamento.
          enum:
          - PIX
          - BOLETO
          - CARTAO_CREDITO
          - CARTAO_DEBITO
          type: string
        modalidade:
          description: Modalidade do pedido (pré ou pós-pago).
          enum:
          - PRE_PAGO
          - POS_PAGO
          type: string
        dataInicioVigencia:
          format: date-time
          description: Data de início da vigência da cota (yyyy-MM-dd'T'HH:mm:ss).
          type: string
        dataFimVigencia:
          format: date-time
          description: Data de fim da vigência da cota (yyyy-MM-dd'T'HH:mm:ss).
          type: string
        emailNotaFiscal1:
          description: Primeiro e-mail para envio de nota fiscal.
          type: string
        emailNotaFiscal2:
          description: Segundo e-mail para envio de nota fiscal.
          type: string
    PedidoCompraDTO:
      description: DTO de um Pedido de Compra (versão para listagem V2).
      type: object
      properties:
        id:
          format: uuid
          type: string
        idEmpresa:
          format: uuid
          type: string
        idServico:
          format: uuid
          type: string
        clientId:
          type: string
        dataHoraPedido:
          format: date-time
          type: string
        quantidadeRequisicoes:
          format: int64
          type: integer
        quantidadeDisponivel:
          format: int64
          type: integer
        precoTotal:
          format: float
          type: number
        precoUnitario:
          format: float
          type: number
        idPortalApis:
          description: Identificador do pedido no portal de APIs.
          type: string
        cpfResponsavel:
          description: CPF Comprador Responsavel
          type: string
        numeroPedido:
          description: Número do Resumo do pedido
          type: string
        descricaoPedido:
          description: Descrição
          type: string
        tipoTecnologia:
          description: Tecnologia
          type: string
        contrato:
          $ref: "#/components/schemas/ContratoDTO"
        faixasConsumo:
          description: Faixas de preço/consumo.
          type: array
          items:
            type: object
        codigoItem:
          type: string
        prefixo:
          type: string
    PedidoCompraResponseV2:
      description: Estrutura de resposta paginada para a consulta de Pedidos de Compra
        (V2).
      type: object
      properties:
        totalElements:
          description: Total de registros encontrados.
          type: integer
        page:
          description: Número da página retornada.
          type: integer
        size:
          description: Quantidade de registros por página.
          type: integer
        content:
          description: Lista de objetos PedidoCompraDTO.
          type: array
          items:
            $ref: "#/components/schemas/PedidoCompraDTO"
    AcessoServicoDTO:
      description: Representa um serviço único acessado por um CPF titular.
      type: object
      properties:
        id:
          format: uuid
          description: ID único do serviço (Servico.id).
          type: string
        nomeOperacao:
          description: Nome amigável da operação/serviço (Servico.nomeOperacao).
          type: string
      example:
        id: a1b2c3d4-e5f6-7890-1234-567890abcdef
        nomeOperacao: Consulta Detalhada de Veículo
    RelatoriosResponse:
      type: object
      properties:
        totalElements:
          type: integer
        page:
          type: integer
        size:
          type: integer
        content:
          type: array
          items:
            $ref: "#/components/schemas/RelatorioDTO"
    RelatorioDTO:
      type: object
      properties:
        id:
          format: uuid
          type: string
        periodo:
          enum:
          - MENSAL
          - TRIMESTRAL
          type: string
        ano:
          type: integer
        mes:
          type: integer
          nullable: true
        trimestre:
          type: integer
          nullable: true
        status:
          enum:
          - PREVIA
          - RECALCULADO
          - ENCERRADO
          type: string
        versao:
          type: integer
        dataGeracao:
          format: date-time
          type: string
        dataEncerramento:
          format: date-time
          type: string
          nullable: true
    RelatorioDetalheDTO:
      type: object
      properties:
        id:
          format: uuid
          type: string
        periodo:
          enum:
          - MENSAL
          - TRIMESTRAL
          type: string
        ano:
          type: integer
        mes:
          type: integer
          nullable: true
        trimestre:
          type: integer
          nullable: true
        status:
          enum:
          - PREVIA
          - RECALCULADO
          - ENCERRADO
          type: string
        versao:
          type: integer
        dataGeracao:
          format: date-time
          type: string
        dataEncerramento:
          format: date-time
          type: string
          nullable: true
        contratosVigentes:
          type: array
          items:
            $ref: "#/components/schemas/RelatorioContratosVigentes"
        acessosRealizados:
          type: array
          items:
            $ref: "#/components/schemas/RelatorioAcessosRealizados"
        remuneracaoMensal:
          type: array
          items:
            $ref: "#/components/schemas/RelatorioRemuneracao"
    RelatorioContratosVigentes:
      type: object
      properties:
        usuarioFinal:
          description: Nome ou razão social do usuário final
          type: string
          example: ACME EMPRESAS LTDA
        numero:
          description: Identificador único do contrato
          type: string
          example: CBJCHBCAABAArBdFyuAmqR8d7r_FLsGmdcVOv72COk3w
        api:
          description: Identificação da API
          type: string
          example: Consulta Bloqueio Ativos
        dataInicio:
          format: date
          description: Data de início do contrato
          type: string
        dataTermino:
          format: date
          description: Data de término do contrato
          type: string
        modalidade:
          description: Modalidade de contratação
          enum:
          - MENSAL
          - TRIMESTRAL
          type: string
        status:
          description: Status atual do contrato
          enum:
          - ATIVO
          - VENCIDO
          - ENCERRADO
          type: string
    RelatorioAcessosRealizados:
      type: object
      properties:
        numeroContrato:
          description: Identificador único do contrato
          type: string
          example: CBJCHBCAABAArBdFyuAmqR8d7r_FLsGmdcVOv72COk3w
        usuarioFinal:
          description: Nome ou razão social do usuário final
          type: string
          example: ACME EMPRESAS LTDA
        api:
          description: Identificação da API
          type: string
          example: Consulta Bloqueio Ativos
        quantidade:
          description: Quantidade de consultas realizadas
          type: integer
          example: 73
        precoUnitario:
          description: Valor unitário da consulta no período
          type: number
          example: 1.05
        total:
          description: Valor unitário da consulta no período
          type: number
          example: 76.65
    RelatorioRemuneracao:
      type: object
      properties:
        usuarioFinal:
          description: Nome ou razão social do usuário final
          type: string
          example: ACME EMPRESAS LTDA
        faturamento:
          description: Quantidade de Consultas do Mês X Preço por consulta no período
          type: number
          example: 200000.0
        percentualTributos:
          description: Valor do parâmetro “tributos” vigente no período de apuração
          type: number
          example: 11.25
        tributos:
          description: Tributo calculado de acordo com o parâmetro “tributos” vigente
            no período de apuração
          type: number
          example: 22500.0
        custoFixo:
          description: Custo fixo parametrizado vigente no período de apuração
          type: number
          example: 100000.0
        percentualIncidentes:
          description: Percentual de acordo com os incidentes ocorridos no período
            de apuração
          type: number
          example: 0.0
        gestaoIncidentes:
          description: Valor calculado de acordo com o percentual de incidentes ocorridos
            no período de apuração
          type: number
          example: 0.0
        percentualGerenciamento:
          description: Percentual de gerenciamento Prodesp
          type: number
          example: 5.0
        gerenciamentoProdesp:
          description: Valor calculado com base no percentual de gerenciamento Prodesp
          type: number
          example: 10000.0
        resultadoBruto:
          description: "Resultado Bruto é o faturamento mensal menos tributos, custo\
            \ fixo, gestão de incidentes e gerenciamento Prodesp"
          type: number
          example: 67500.0
        custoIndireto:
          description: "Valor apurado de acordo com o Percentual aplicado no resultado\
            \ bruto, parametrizado vigente no período de apuração."
          type: number
          example: 0.0
        percentualRemuneracaoProdesp:
          description: "Percentual aplicado no resultado bruto, parametrizado vigente\
            \ no período de apuração."
          type: number
          example: 65.0
        remuneracaoProdesp:
          description: "Valor apurado de acordo com o Percentual aplicado no resultado\
            \ bruto, parametrizado vigente no período de apuração."
          type: number
          example: 43875.0
        superavitAntesIrCsll:
          description: Superavit Líquido Antes do IR/CSLL
          type: number
          example: 0.0
        aliquotasIrCsll:
          description: Somatória das alíquotas do IR e CSLL
          type: number
          example: 0.0
        superavitLiquido:
          description: Superávit Líquido do Período (após desconto das alíquotas do
            IR + CSLL)
          type: number
          example: 0.0
    RelatorioAprovarRequest:
      type: object
      properties:
        usuario:
          description: Identificação do usuário para auditoria.
          type: string
          example: jean.rodrigues@apoioprodesp.sp.gov.br
        observacao:
          description: Observação opcional sobre a aprovação.
          type: string
          example: Aprovado após conferência do financeiro.
      additionalProperties: false
    RelatorioRecalcularRequest:
      required:
      - justificativa
      type: object
      properties:
        justificativa:
          description: Justificativa obrigatória para o recálculo.
          minLength: 3
          type: string
          example: Correção por ajuste de parâmetros.
        usuario:
          description: Identificação do usuário para auditoria.
          type: string
          example: jean.rodrigues@apoioprodesp.sp.gov.br
      additionalProperties: false
    RelatorioCriarRequest:
      required:
      - periodo
      - ano
      type: object
      properties:
        periodo:
          description: Período do relatório a ser criado.
          enum:
          - MENSAL
          - TRIMESTRAL
          type: string
        ano:
          description: Ano de referência do relatório.
          type: integer
        mes:
          description: Mês de referência (obrigatório se periodo = MENSAL).
          maximum: 12
          minimum: 1
          type: integer
          nullable: true
        trimestre:
          description: Trimestre de referência (obrigatório se periodo = TRIMESTRAL).
          maximum: 4
          minimum: 1
          type: integer
          nullable: true
      additionalProperties: false
    RelatorioAcaoResponse:
      type: object
      properties:
        id:
          format: uuid
          type: string
        status:
          enum:
          - PREVIA
          - RECALCULADO
          - ENCERRADO
          type: string
        versao:
          type: integer
        mensagem:
          type: string
      additionalProperties: false
  responses:
    Response_200_Update:
      description: Recurso atualizado.
    Response_201:
      description: Novo recurso criado.
    Response_204_NotFound:
      description: O recurso não foi encontrado.
    Response_204_Delete:
      description: O recurso foi excluído.
    Response_400:
      description: Ocorreu um erro de validação com a sua solicitação. Verifique se
        a requisição contém os dados exigidos e tente novamente.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Error"
    Response_401:
      description: Access token não informado ou inválido.
    Response_403:
      description: Access token é invalido ou expirado
    Response_404:
      description: Relacionamento inexistente
    Response_500:
      description: Ocorreu um erro interno. Favor entrar em contato informando o Trace
        ID retornado para permitir a investigação do problema.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Error"
  securitySchemes:
    IdpSP:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://rhsso.idp-hml.sp.gov.br/auth/realms/idpsp/protocol/openid-connect/token
          scopes:
            api:integrador.wallet-dados.wallet.read: Permite ler os serviços da API.
            api:integrador.wallet-dados.wallet.write: Permite ler os serviços da API.
            api:integrador.wallet-dados.wallet.delete: Permite ler os serviços da
              API.
        authorizationCode:
          authorizationUrl: https://rhsso.idp-hml.sp.gov.br/auth/realms/idpsp/protocol/openid-connect/auth
          tokenUrl: https://rhsso.idp-hml.sp.gov.br/auth/realms/idpsp/protocol/openid-connect/token
          scopes:
            api:integrador.wallet-dados.wallet.read: Permite ler os serviços da API.
            api:integrador.wallet-dados.wallet.write: Permite ler os serviços da API.
            api:integrador.wallet-dados.wallet.delete: Permite ler os serviços da
              API.
