openapi: 3.0.4
info:
  title: Administração Api
  description: "# API de Gestão de Bancos\r\n\r\nA API de Gestão de Bancos foi desenvolvida para proporcionar controle total sobre as informações dos bancos cadastrados dentro do sistema. Com ela, você pode gerenciar o ciclo de vida dos registros de bancos, desde o cadastro até a alteração e exclusão, além de consultar detalhes específicos.\r\n\r\nSimplificando a administração e a conectividade dos dados de bancos com o poder e a flexibilidade de uma API de alta performance!\r\n\r\nA seguir, detalhamos as principais funcionalidades oferecidas por cada um dos endpoints."
  contact:
    name: rgbtec
    email: support@rgbtec.com.br
  version: v1.0.0
servers:
  - url: http://rgbsys.dyndns.info/ger2025-administracao-api-desenvolvimento
paths:
  /api/v1/administracao/bancos:
    post:
      tags:
        - Bancos
      summary: Cadastrar um novo banco
      description: Cadastra um novo banco na base de dados.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BancoCadastrarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/BancoCadastrarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            aplication/json:
              schema:
                $ref: '#/components/schemas/BancoCadastrarResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
            application/json:
              schema:
                type: array
                items:
                  type: string
            text/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    get:
      tags:
        - Bancos
      summary: Listar bancos
      description: Listar bancos da base de dados.
      parameters:
        - name: codigo
          in: query
          description: Código do banco
          schema:
            type: integer
            format: int16
        - name: nome
          in: query
          description: Nome ou parte do nome do banco
          schema:
            type: string
        - name: pagina
          in: query
          description: Indica o númer da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: null
      responses:
        '200':
          description: OK
          content:
            aplication/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BancoListarResponse'
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/bancos/ativos:
    get:
      tags:
        - Bancos
      summary: Listar bancos ativos
      description: Listar bancos ativos da base de dados.
      parameters:
        - name: codigo
          in: query
          description: Código do banco
          schema:
            type: integer
            format: int16
        - name: nome
          in: query
          description: Nome ou parte do nome do banco
          schema:
            type: string
        - name: pagina
          in: query
          description: Indica o númer da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: null
      responses:
        '200':
          description: OK
          content:
            aplication/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BancoListarAtivosResponse'
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/bancos/{id}:
    get:
      tags:
        - Bancos
      summary: Recuperar banco por id.
      description: Recuperar banco por id.
      parameters:
        - name: id
          in: path
          description: Código do banco
          required: true
          schema:
            type: integer
            format: int16
      responses:
        '200':
          description: OK
          content:
            aplication/json:
              schema:
                $ref: '#/components/schemas/BancoListarResponse'
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/bancos/{codigo}:
    delete:
      tags:
        - Bancos
      summary: Excluir um banco pelo Id
      description: Excluir um banco pelo Id
      parameters:
        - name: codigo
          in: path
          description: Código do banco
          required: true
          schema:
            type: integer
            format: int16
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
            application/json:
              schema:
                type: array
                items:
                  type: string
            text/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
        - Bancos
      summary: Alterar um banco
      description: Alterar banco da base de dados
      parameters:
        - name: codigo
          in: path
          description: Código do banco
          required: true
          schema:
            type: integer
            format: int16
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BancoAlterarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/BancoAlterarRequest'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
            application/json:
              schema:
                type: array
                items:
                  type: string
            text/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/cnaes:
    post:
      tags:
        - Cnaes
      summary: Cadastrar o cnae no sistema
      description: Cnae cadastrado com sucesso
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CnaeCadastrarRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/CnaeCadastrarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CnaeCadastrarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CnaeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
    get:
      tags:
        - Cnaes
      summary: Listar todos os cnaes do sistema
      description: Cnaes listados com sucesso
      parameters:
        - name: descricao
          in: query
          description: Cnae ou parte da descrição
          schema:
            type: string
            default: null
        - name: pagina
          in: query
          description: Indica o número da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CnaeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/cnaes/{id}:
    put:
      tags:
        - Cnaes
      summary: Alterar o cnae no sistema
      description: Cnae alterado com sucesso
      parameters:
        - name: id
          in: path
          description: Id do cnae
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CnaeAlterarRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/CnaeAlterarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CnaeAlterarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    get:
      tags:
        - Cnaes
      summary: Recuperar cnae por id
      description: Cnae recuperado com sucesso
      parameters:
        - name: id
          in: path
          description: Id do cnae
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CnaeResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/cnaes/ativos:
    get:
      tags:
        - Cnaes
      summary: Listar todos os cnaes ativos do sistema
      description: Cnaes ativos listados com sucesso
      parameters:
        - name: descricao
          in: query
          description: Cnae ou parte da descrição
          schema:
            type: string
            default: null
        - name: pagina
          in: query
          description: Indica o número da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CnaeAtivosResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/feriados:
    post:
      tags:
        - Feriados
      summary: Cadastrar um novo feriado
      description: Cadastra um novo feriado na base de dados.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeriadoCadastrarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/FeriadoCadastrarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeriadoCadastrarResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    get:
      tags:
        - Feriados
      summary: Listar feriados
      description: Listar feriados da base de dados.
      parameters:
        - name: dataInicio
          in: query
          description: Data inicial
          schema:
            type: string
            format: date-time
        - name: dataFim
          in: query
          description: Data final
          schema:
            type: string
            format: date-time
        - name: nome
          in: query
          description: Nome ou parte do nome do feriado
          schema:
            type: string
        - name: recorrente
          in: query
          description: Indica se o feriado é recorrente ou não
          schema:
            type: boolean
        - name: pagina
          in: query
          description: Indica o númer da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: null
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FeriadoListarResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/feriados/{id}:
    get:
      tags:
        - Feriados
      summary: Recuperar feriado por id.
      description: Recuperar feriado por id.
      parameters:
        - name: id
          in: path
          description: Identificador único do feriado
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeriadoListarResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    put:
      tags:
        - Feriados
      summary: Alterar um feriado
      description: Alterar feriado da base de dados
      parameters:
        - name: id
          in: path
          description: Identificador único do feriado
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FeriadoAlterarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/FeriadoAlterarRequest'
        required: true
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                type: array
                items:
                  type: string
            application/json:
              schema:
                type: array
                items:
                  type: string
            text/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/integracoes/{id}/imagem:
    patch:
      tags:
        - Integracoes
      summary: Cadastrar imagem que representa a integração
      description: Imagem cadastrada com sucesso
      parameters:
        - name: id
          in: path
          description: Id da integração
          required: true
          schema:
            type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imagem:
                  $ref: '#/components/schemas/IFormFile'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdResponseOflong'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/integracoes/{id}/imagem/{imagemId}:
    patch:
      tags:
        - Integracoes
      summary: Alterar imagem que representa a integração
      description: Imagem alterada com sucesso
      parameters:
        - name: id
          in: path
          description: Id da integração
          required: true
          schema:
            type: string
        - name: imagemId
          in: path
          description: Id da imagem
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                imagem:
                  $ref: '#/components/schemas/IFormFile'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdResponseOflong'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/integracoes:
    post:
      tags:
        - Integracoes
      summary: Cadastrar integração e configuração
      description: Cadastrado com sucesso
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegracaoCadastrarRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/IntegracaoCadastrarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/IntegracaoCadastrarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
    get:
      tags:
        - Integracoes
      summary: Listar todas as integrações do sistema
      description: Lista de integrações
      parameters:
        - name: nome
          in: query
          description: Nome ou parte do nome da integração
          schema:
            type: string
            default: null
        - name: pagina
          in: query
          description: Indica o número da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IntegracaoResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/integracoes/{id}:
    put:
      tags:
        - Integracoes
      summary: Alterar integração e/ou configuração
      description: Alterado com sucesso
      parameters:
        - name: id
          in: path
          description: Id da integração
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegracaoAlterarRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/IntegracaoAlterarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/IntegracaoAlterarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
    get:
      tags:
        - Integracoes
      summary: Listar por Id a integração do sistema
      description: Recuperada a integração
      parameters:
        - name: id
          in: path
          description: Id da integração
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegracaoPorIdResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/municipios:
    get:
      tags:
        - Municipios
      summary: Listar municipios
      description: Listar municipios da base de dados.
      parameters:
        - name: uf
          in: query
          description: Sigla do estado
          schema:
            type: string
        - name: nome
          in: query
          description: Nome ou parte do nome do municipio
          schema:
            type: string
        - name: pagina
          in: query
          description: Indica o númer da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornadas
          schema:
            type: integer
            format: int32
            default: null
      responses:
        '200':
          description: OK
          content:
            aplication/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MunicipioListarResponse'
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/politicas-fiscais:
    post:
      tags:
        - PoliticasFiscais
      summary: Cadastrar uma nova política fiscal
      description: Política fiscal cadastrada com sucesso
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PoliticaFiscalCadastrarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PoliticaFiscalCadastrarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoliticaFiscalResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
    get:
      tags:
        - PoliticasFiscais
      summary: Listar todas as políticas fiscais do sistema
      description: Políticas fiscais listadas com sucesso
      parameters:
        - name: nome
          in: query
          description: Nome ou parte da política fiscal
          schema:
            type: string
            default: null
        - name: pagina
          in: query
          description: Indica o número da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornados
          schema:
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PoliticaFiscalResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
  /api/v1/administracao/politicas-fiscais/{id}:
    put:
      tags:
        - PoliticasFiscais
      summary: Alterar dados da política fiscal
      description: Política fiscal alterada com sucesso
      parameters:
        - name: id
          in: path
          description: Id da política fiscal
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PoliticaFiscalAlterarRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PoliticaFiscalAlterarRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
    get:
      tags:
        - PoliticasFiscais
      summary: Listar por id uma política fiscal do sistema
      description: Política fiscal listada com sucesso
      parameters:
        - name: id
          in: path
          description: Id da política fiscal
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoliticaFiscalResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
  /api/v1/administracao/politicas-fiscais/ativos:
    get:
      tags:
        - PoliticasFiscais
      summary: Listar todas as políticas fiscais ativas do sistema
      description: Políticas fiscais ativas listadas com sucesso
      parameters:
        - name: nome
          in: query
          description: Nome ou parte da política fiscal
          schema:
            type: string
            default: null
        - name: pagina
          in: query
          description: Indica o número da página solicitada
          schema:
            type: integer
            format: int32
            default: null
        - name: registros
          in: query
          description: Indica a quantidade máxima de registros que devem ser retornados
          schema:
            type: integer
            format: int32
            default: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PoliticaFiscalAtivosResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
components:
  schemas:
    BancoAlterarRequest:
      required:
        - nome
        - ativo
      type: object
      properties:
        nome:
          type: string
          description: Nome do banco
          nullable: true
        ativo:
          type: boolean
          description: Ativo
    BancoCadastrarRequest:
      required:
        - codigo
        - nome
        - ativo
      type: object
      properties:
        codigo:
          type: integer
          description: Código do banco
          format: int16
        nome:
          type: string
          description: Nome do banco
          nullable: true
        ativo:
          type: boolean
          description: Ativo
    BancoCadastrarResponse:
      required:
        - id
      type: object
      properties:
        id:
          type: integer
          description: id
          format: int16
    BancoListarAtivosResponse:
      required:
        - codigo
        - nome
      type: object
      properties:
        codigo:
          type: integer
          description: codigo
          format: int16
        nome:
          type: string
          description: nome
          nullable: true
    BancoListarResponse:
      required:
        - codigo
        - nome
        - ativo
      type: object
      properties:
        codigo:
          type: integer
          description: codigo
          format: int16
        nome:
          type: string
          description: nome
          nullable: true
        ativo:
          type: boolean
          description: ativo
    CnaeAlterarRequest:
      required:
        - id
        - secao
        - divisao
        - grupo
        - classe
        - subClasse
        - descricao
        - ativo
      type: object
      properties:
        id:
          type: string
          description: Id do cnae
          nullable: true
        secao:
          type: string
          description: Código da seção do cnae
          nullable: true
        divisao:
          type: string
          description: Código da divisão do cnae
          nullable: true
        grupo:
          type: string
          description: Código do grupo do cnae
          nullable: true
        classe:
          type: string
          description: Código da classe do cnae
          nullable: true
        subClasse:
          type: string
          description: Código da subclasse do cnae
          nullable: true
        descricao:
          type: string
          description: Descrição do cnae
          nullable: true
        ativo:
          type: boolean
          description: Indica se o cnae está ativo ou não
    CnaeAtivosResponse:
      required:
        - id
        - secao
        - divisao
        - grupo
        - classe
        - subClasse
        - descricao
      type: object
      properties:
        id:
          type: string
          description: Id único do cnae
          nullable: true
        secao:
          type: string
          description: Seção do cnae
          nullable: true
        divisao:
          type: string
          description: Divisão do cnae
          nullable: true
        grupo:
          type: string
          description: Grupo do cnae
          nullable: true
        classe:
          type: string
          description: Classe do cnae
          nullable: true
        subClasse:
          type: string
          description: SubClasse do cnae
          nullable: true
        descricao:
          type: string
          description: Descrição do cnae
          nullable: true
    CnaeCadastrarRequest:
      required:
        - secao
        - divisao
        - grupo
        - classe
        - subClasse
        - descricao
        - ativo
      type: object
      properties:
        secao:
          type: string
          description: Código da seção do cnae
          nullable: true
        divisao:
          type: string
          description: Código da divisão do cnae
          nullable: true
        grupo:
          type: string
          description: Código do grupo do cnae
          nullable: true
        classe:
          type: string
          description: Código da classe do cnae
          nullable: true
        subClasse:
          type: string
          description: Código da subclasse do cnae
          nullable: true
        descricao:
          type: string
          description: Descrição do cnae
          nullable: true
        ativo:
          type: boolean
          description: Indica se o cnae está ativo ou não
    CnaeResponse:
      required:
        - id
        - secao
        - divisao
        - grupo
        - classe
        - subClasse
        - descricao
        - ativo
      type: object
      properties:
        id:
          type: string
          description: Id único do cnae
          nullable: true
        secao:
          type: string
          description: Seção do cnae
          nullable: true
        divisao:
          type: string
          description: Divisão do cnae
          nullable: true
        grupo:
          type: string
          description: Grupo do cnae
          nullable: true
        classe:
          type: string
          description: Classe do cnae
          nullable: true
        subClasse:
          type: string
          description: SubClasse do cnae
          nullable: true
        descricao:
          type: string
          description: Descrição do cnae
          nullable: true
        ativo:
          type: boolean
          description: Identifica se o cnae está ativo ou não
    FeriadoAlterarRequest:
      required:
        - id
        - data
        - nome
        - recorrente
        - vigencia
      type: object
      properties:
        id:
          type: string
          description: Identificador do feriado
          nullable: true
        data:
          type: string
          description: Data do feriado
          format: date-time
        nome:
          type: string
          description: Nome do feriado
          nullable: true
        recorrente:
          type: boolean
          description: Indica se o feriado é recorrente ou não
        vigencia:
          $ref: '#/components/schemas/VigenciaDataAlterar'
    FeriadoCadastrarRequest:
      required:
        - data
        - nome
        - recorrente
        - vigencia
      type: object
      properties:
        data:
          type: string
          description: Data do feriado
          format: date-time
        nome:
          type: string
          description: Nome do feriado
          nullable: true
        recorrente:
          type: boolean
          description: Indica se o feriado é recorrente ou não
        vigencia:
          $ref: '#/components/schemas/VigenciaData'
    FeriadoCadastrarResponse:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          description: id
          nullable: true
    FeriadoListarResponse:
      required:
        - id
        - data
        - nome
        - recorrente
        - vigencia
      type: object
      properties:
        id:
          type: string
          description: Identificador único do feriado
          nullable: true
        data:
          type: string
          description: Data do feriado
          format: date-time
        nome:
          type: string
          description: Nome do feriado
          nullable: true
        recorrente:
          type: boolean
          description: Indica se o feriado é recorrente
        vigencia:
          $ref: '#/components/schemas/VigenciaResponse'
    IdResponse:
      required:
        - id
      type: object
      properties:
        id:
          type: string
          nullable: true
    IdResponseOflong:
      required:
        - id
      type: object
      properties:
        id:
          type: integer
          format: int64
    IFormFile:
      type: string
      format: binary
    IntegracaoAlterarRequest:
      required:
        - id
        - nome
        - descricao
        - ativo
        - instrucoesAdicionais
        - identificador
        - configuracoes
      type: object
      properties:
        id:
          type: string
          description: Id da integração
          nullable: true
        nome:
          type: string
          description: Nome da integração
          nullable: true
        descricao:
          type: string
          description: Descrição da integração
          nullable: true
        ativo:
          type: boolean
          description: Indica se a integração está ativo ou não
        instrucoesAdicionais:
          type: string
          description: >-
            Texto indicando os passos que devem ser feitos para o funcionamento
            da integração
          nullable: true
        identificador:
          type: string
          description: Identificador para tratamento especial
          nullable: true
        configuracoes:
          type: array
          items:
            $ref: '#/components/schemas/IntegracaoConfiguracaoAlterar'
          description: Nome da integração
          nullable: true
    IntegracaoCadastrarRequest:
      required:
        - nome
        - descricao
        - ativo
        - instrucoesAdicionais
        - identificador
        - configuracoes
      type: object
      properties:
        nome:
          type: string
          description: Nome da integração
          nullable: true
        descricao:
          type: string
          description: Descrição da integração
          nullable: true
        ativo:
          type: boolean
          description: Indica se a integração está ativo ou não
        instrucoesAdicionais:
          type: string
          description: >-
            Texto indicando os passos que devem ser feitos para o funcionamento
            da integração
          nullable: true
        identificador:
          type: string
          description: Identificador para tratamento especial
          nullable: true
        configuracoes:
          type: array
          items:
            $ref: '#/components/schemas/IntegracaoConfiguracaoCadastrar'
          description: Nome da integração
          nullable: true
    IntegracaoConfiguracaoAlterar:
      required:
        - id
        - nome
        - descricao
        - tipo
        - obrigatorio
      type: object
      properties:
        id:
          type: string
          description: Id da configuração
          nullable: true
        nome:
          type: string
          description: Nome da configuração
          nullable: true
        descricao:
          type: string
          description: Descrição da configuração
          nullable: true
        tipo:
          $ref: '#/components/schemas/TipoDadoConfiguracaoEnum'
        obrigatorio:
          type: boolean
          description: Indica se a configuração é obrigatória ou não
    IntegracaoConfiguracaoCadastrar:
      required:
        - nome
        - descricao
        - tipo
        - obrigatorio
      type: object
      properties:
        nome:
          type: string
          description: Nome da configuração
          nullable: true
        descricao:
          type: string
          description: Descrição da configuração
          nullable: true
        tipo:
          $ref: '#/components/schemas/TipoDadoConfiguracaoEnum'
        obrigatorio:
          type: boolean
          description: Indica se a configuração é obrigatória ou não
    IntegracaoConfiguracaoResponse:
      required:
        - id
        - nome
        - descricao
        - tipo
        - obrigatorio
      type: object
      properties:
        id:
          type: string
          description: Id único da entidade GeralIntegracaoConfiguracao
          nullable: true
        nome:
          type: string
          description: Nome da configuração
          nullable: true
        descricao:
          type: string
          description: Descrição da configuração
          nullable: true
        tipo:
          $ref: '#/components/schemas/TipoDadoConfiguracaoEnum'
        obrigatorio:
          type: boolean
          description: Indica se a configuração é obrigatória ou não
    IntegracaoPorIdResponse:
      required:
        - id
        - nome
        - descricao
        - ativo
        - instrucoesAdicionais
        - identificador
        - configuracoes
      type: object
      properties:
        id:
          type: string
          description: Id da integração
          nullable: true
        nome:
          type: string
          description: Nome da integração
          nullable: true
        descricao:
          type: string
          description: Descrição da integração
          nullable: true
        ativo:
          type: boolean
          description: Indica se a integração está ativa ou não
        instrucoesAdicionais:
          type: string
          description: >-
            Texto indicando os passos que devem ser feitos para o funcionamento
            da integração
          nullable: true
        identificador:
          type: string
          description: Identificador para tratamento especial
          nullable: true
        configuracoes:
          type: array
          items:
            $ref: '#/components/schemas/IntegracaoConfiguracaoResponse'
          description: Dados da configuração
          nullable: true
        imagem:
          type: string
          description: Id da imagem que representa a integração
          default: null
          nullable: true
    IntegracaoResponse:
      required:
        - id
        - nome
        - descricao
        - ativo
      type: object
      properties:
        id:
          type: string
          description: Id da integração
          nullable: true
        nome:
          type: string
          description: Nome da integração
          nullable: true
        descricao:
          type: string
          description: Descrição da integração
          nullable: true
        ativo:
          type: boolean
          description: Indica se a integração está ativa ou não
    MunicipioListarResponse:
      required:
        - id
        - nome
        - uf
      type: object
      properties:
        id:
          type: integer
          description: Identificador único do município
          format: int32
        nome:
          type: string
          description: Nome do município
          nullable: true
        uf:
          type: string
          description: Sigla do estado
          nullable: true
    PoliticaFiscalAlterarRequest:
      required:
        - id
        - nome
        - ativo
        - zeraPis
        - zeraConfins
        - zeraCsll
        - zeraIrpj
        - zeraIof
        - zeraTaxaServico
      type: object
      properties:
        id:
          type: string
          description: Id único da entidade GeralPoliticaFiscal
          nullable: true
        nome:
          type: string
          description: Nome da política fiscal
          nullable: true
        ativo:
          type: boolean
          description: Indica se a política fiscal está ativo ou não
        zeraPis:
          type: boolean
          description: Indica se deve ou não zerar o Pis
        zeraConfins:
          type: boolean
          description: Indica se deve ou não zerar o CONFINS
        zeraCsll:
          type: boolean
          description: Indica se deve ou não zerar o CSLL
        zeraIrpj:
          type: boolean
          description: Indica se deve ou não zerar o IRPJ
        zeraIof:
          type: boolean
          description: Indica se deve ou não zerar o IOF
        zeraTaxaServico:
          type: boolean
          description: Indica se deve ou não zerar a taxa de serviço
    PoliticaFiscalAtivosResponse:
      required:
        - id
        - nome
      type: object
      properties:
        id:
          type: string
          description: Id único da entidade GeralPoliticaFiscal
          nullable: true
        nome:
          type: string
          description: Nome da Politica Fiscal
          nullable: true
    PoliticaFiscalCadastrarRequest:
      required:
        - id
        - nome
        - ativo
        - zeraPis
        - zeraConfins
        - zeraCsll
        - zeraIrpj
        - zeraIof
        - zeraTaxaServico
      type: object
      properties:
        id:
          type: string
          description: Id único da entidade GeralPoliticaFiscal
          nullable: true
        nome:
          type: string
          description: Nome da política fiscal
          nullable: true
        ativo:
          type: boolean
          description: Indica se a política fiscal está ativo ou não
        zeraPis:
          type: boolean
          description: Indica se deve ou não zerar o Pis
        zeraConfins:
          type: boolean
          description: Indica se deve ou não zerar o CONFINS
        zeraCsll:
          type: boolean
          description: Indica se deve ou não zerar o CSLL
        zeraIrpj:
          type: boolean
          description: Indica se deve ou não zerar o IRPJ
        zeraIof:
          type: boolean
          description: Indica se deve ou não zerar o IOF
        zeraTaxaServico:
          type: boolean
          description: Indica se deve ou não zerar a taxa de serviço
    PoliticaFiscalResponse:
      required:
        - id
        - nome
        - ativo
        - zeraPis
        - zeraConfins
        - zeraCsll
        - zeraIrpj
        - zeraIof
        - zeraTaxaServico
      type: object
      properties:
        id:
          type: string
          description: Id único da entidade GeralPoliticaFiscal
          nullable: true
        nome:
          type: string
          description: Nome da política fiscal
          nullable: true
        ativo:
          type: boolean
          description: Indica se a política fiscal está ativa ou não
        zeraPis:
          type: boolean
          description: Indica se deve ou não zerar o Pis
        zeraConfins:
          type: boolean
          description: Indica se deve ou não zerar o CONFINS
        zeraCsll:
          type: boolean
          description: Indica se deve ou não zerar o CSLL
        zeraIrpj:
          type: boolean
          description: Indica se deve ou não zerar o IRPJ
        zeraIof:
          type: boolean
          description: Indica se deve ou não zerar o IOF
        zeraTaxaServico:
          type: boolean
          description: Indica se deve ou não zerar a taxa de serviço
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
    TipoDadoConfiguracaoEnum:
      type: integer
      description: Tipo do valor da configuração
    VigenciaData:
      required:
        - inicial
        - final
      type: object
      properties:
        inicial:
          type: string
          description: Data de início da vigência
          format: date-time
        final:
          type: string
          description: Data de fim da vigência
          format: date-time
          nullable: true
      description: Período de vigência do feriado
      nullable: true
    VigenciaDataAlterar:
      required:
        - inicial
        - final
      type: object
      properties:
        inicial:
          type: string
          description: Data de início da vigência
          format: date-time
        final:
          type: string
          description: Data de fim da vigência
          format: date-time
          nullable: true
      description: Período de vigência do feriado
      nullable: true
    VigenciaResponse:
      required:
        - inicial
        - final
      type: object
      properties:
        inicial:
          type: string
          description: Data inicial da vigência do feriado
          format: date-time
        final:
          type: string
          description: Data final da vigência do feriado
          format: date-time
          nullable: true
      description: Vigência do feriado
      nullable: true
  headers:
    Authorization:
      required: true
      schema:
        type: string
        description: Token necessário para autenticação
    x-tenant-id:
      required: true
      schema:
        type: string
        description: ID do locatário para identificação
tags:
  - name: Bancos
    description: "Este conjunto de recursos permite a manipulação e consulta de dados de bancos no sistema:\r\n\r\n                *   **Cadastrar Banco:**\r\n                    *   Crie novos registros de bancos na base de dados.\r\n                *   **Listar Bancos:**\r\n                    *   Obtenha uma lista completa de todos os bancos registrados.\r\n                    *   Consulte bancos com opções de filtragem por código, nome, paginação e quantidade de registros. É possível listar também apenas bancos ativos.\r\n                *   **Consultar Banco por ID:**\r\n                    *   Recupere os detalhes de um banco específico utilizando seu identificador único.\r\n                *   **Alterar Banco:**\r\n                    *   Atualize as informações de um banco existente na base de dados.\r\n                *   **Excluir Banco:**\r\n                    *   Exclua um registro de banco da base de dados utilizando seu identificador único."
  - name: Cnaes
    description: "Estes recursos são dedicados ao gerenciamento das Classificações Nacionais de Atividades Econômicas (CNAEs):\r\n\r\n                    *   **Cadastrar CNAE:**\r\n                        *   Adiciona um novo CNAE ao sistema.\r\n                    *   **Alterar CNAE:**\r\n                        *   Modifica as informações de um CNAE existente.\r\n                    *   **Listar CNAEs:**\r\n                        *   Obtém todos os CNAEs com opções de filtragem por descrição e paginação.\r\n                    *   **Consultar CNAE por ID:**\r\n                        *   Busca um CNAE específico pelo seu identificador único.\r\n                    *   **Listar CNAEs Ativos:**\r\n                        *   Recupera somente os CNAEs que estão ativos no sistema."
  - name: Integrações
    description: "Estes recursos são dedicados ao gerenciamento de integrações e suas configurações:\r\n\r\n                    *   **Cadastrar Integração e Configuração:**\r\n                        *   Cria uma nova integração e suas respectivas configurações.\r\n                    *   **Alterar Integração e/ou Configuração:**\r\n                        *   Modifica uma integração existente e/ou suas configurações.\r\n                    *   **Cadastrar Imagem da Integração:**\r\n                        *   Realiza o upload de uma imagem que representa a integração.\r\n                    *   **Alterar Imagem da Integração:**\r\n                        *   Atualiza a imagem de uma integração existente.\r\n                    *   **Listar Integrações:**\r\n                        *   Recupera todas as integrações com opções de filtragem por nome e paginação.\r\n                    *   **Consultar Integração por ID:**\r\n                        *   Busca uma integração específica pelo seu identificador único."
  - name: Políticas Fiscais
    description: "Estes recursos são dedicados ao gerenciamento de políticas fiscais:\r\n\r\n                    *   **Cadastrar Política Fiscal:**\r\n                        *   Adiciona uma nova política fiscal ao sistema.\r\n                    *   **Alterar Política Fiscal:**\r\n                        *   Atualiza os dados de uma política fiscal existente.\r\n                    *   **Listar Políticas Fiscais:**\r\n                        *   Recupera todas as políticas fiscais com opções de filtragem por nome e paginação.\r\n                    *   **Consultar Política Fiscal por ID:**\r\n                        *   Busca uma política fiscal específica pelo seu identificador único.\r\n                    *   **Listar Políticas Fiscais Ativas:**\r\n                        *   Lista somente as políticas fiscais que estão ativas no sistema."
