openapi: 3.0.3
info:
  title: API's Conta Azul Pro
  version: v2
  description: API para gerenciamento de dados do ERP Conta Azul Pro
servers:
  - url: https://api-public.contaazul.com
    description: Servidor de produção
security:
  - JWT: []
tags:
  - name: Autenticação
  - name: Cobranças
  - name: Contratos
  - name: Centro de Custo
  - name: Categorias
  - name: Conta Financeira
  - name: Financeiro
  - name: Produto
  - name: Cadastro de Pessoas
  - name: Protocolo
  - name: Venda
  - name: Serviço
paths:
  /auth/token:
    post:
      summary: Gera Access Token
      description: Gera um access token para autenticação na API.
      operationId: getAccessToken
      servers:
        - url: https://auth.contaazul.com
      tags:
        - Autenticação
      security:
        - Basic: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grant_type:
                  type: string
                  example: authorization_code
                  description: >-
                    Tipo de concessão (Para a primeira geração a partir de um
                    code utilizar `authorization_code`. Para renovar um Access
                    Token a partir de um Refresh Token utilizar
                    `refresh_token`).
                client_id:
                  type: string
                  example: 1234567890abcdef1234567890abcdef
                  description: ID do cliente.
                client_secret:
                  type: string
                  example: 1234567890abcdef1234567890abcdef
                  description: Segredo do cliente.
                redirect_uri:
                  type: string
                  example: https://example.com/callback
                  description: URI de redirecionamento.
                code:
                  type: string
                  example: 1234567890abcdef1234567890abcdef
                  description: Código de autorização gerado.
                scope:
                  type: string
                  example: email openid phone profile
                  description: Escopo de acesso.
                refresh_token:
                  type: string
                  example: 1234567890abcdef1234567890abcdef
                  description: Token de atualização.
      responses:
        '200':
          description: Token gerado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                    example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                    description: Token de acesso.
                  token_type:
                    type: string
                    example: Bearer
                    description: Tipo de token.
                  expires_in:
                    type: integer
                    example: 3600
                    description: Tempo de expiração do token em segundos.
                  refresh_token:
                    type: string
                    example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                    description: Token de atualização.
        '400':
          description: Requisição inválida
        '401':
          description: Não autorizado
  /v1/financeiro/eventos-financeiros/parcelas/{parcela_id}/baixa:
    post:
      summary: Criação de Baixa
      description: Criação de baixa dado uma parcela.
      parameters:
        - name: parcela_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - data_pagamento
                - conta_financeira
                - composicao_valor
              properties:
                data_pagamento:
                  type: string
                  format: date
                  example: '2023-10-01'
                  description: Data do pagamento.
                composicao_valor:
                  type: object
                  required:
                    - valor_bruto
                  properties:
                    multa:
                      type: number
                      format: double
                      example: 0
                      description: O valor da multa, deve ser maior ou igual a zero.
                    juros:
                      type: number
                      format: double
                      example: 0
                      description: O valor dos juros, deve ser maior ou igual a zero.
                    valor_bruto:
                      type: number
                      format: double
                      example: 1000
                      description: >-
                        O valor bruto, deve ser informado e maior ou igual a
                        zero.
                    desconto:
                      type: number
                      format: double
                      example: 0
                      description: O valor do desconto, deve ser maior ou igual a zero.
                    taxa:
                      type: number
                      format: double
                      example: 0
                      description: O valor da taxa, deve ser maior ou igual a zero.
                conta_financeira:
                  type: string
                  format: uuid
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  description: Identificador único da conta financeira.
                metodo_pagamento:
                  type: string
                  example: CARTAO_CREDITO
                  description: Método de pagamento.
                  enum:
                    - DINHEIRO
                    - CARTAO_CREDITO
                    - BOLETO_BANCARIO
                    - CARTAO_CREDITO_VIA_LINK
                    - CHEQUE
                    - CARTAO_DEBITO
                    - TRANSFERENCIA_BANCARIA
                    - OUTRO
                    - CARTEIRA_DIGITAL
                    - CASHBACK
                    - CREDITO_LOJA
                    - CREDITO_VIRTUA
                    - DEPOSITO_BANCARIO
                observacao:
                  type: string
                  example: 'Payment for invoice #1234'
                  description: Observação.
                nsu:
                  type: string
                  example: '1234567890'
                  description: Número sequencial único.
      responses:
        '200':
          description: Baixa criado
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único gerado automaticamente após a criação.
                  versao:
                    type: integer
                    format: int64
                    example: 1
                    description: Versão da baixa.
                  data_pagamento:
                    type: string
                    format: date
                    example: '2023-10-01'
                    description: Data do pagamento.
                  composicao_valor:
                    type: object
                    required:
                      - valor_bruto
                    properties:
                      multa:
                        type: number
                        format: double
                        example: 0
                        description: O valor da multa, deve ser maior ou igual a zero.
                      juros:
                        type: number
                        format: double
                        example: 0
                        description: O valor dos juros, deve ser maior ou igual a zero.
                      valor_bruto:
                        type: number
                        format: double
                        example: 1000
                        description: >-
                          O valor bruto, deve ser informado e maior ou igual a
                          zero.
                      desconto:
                        type: number
                        format: double
                        example: 0
                        description: O valor do desconto, deve ser maior ou igual a zero.
                      taxa:
                        type: number
                        format: double
                        example: 0
                        description: O valor da taxa, deve ser maior ou igual a zero.
                  conta_financeira:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da conta financeira.
                  metodo_pagamento:
                    type: string
                    example: CARTAO_CREDITO
                    description: Método de pagamento.
                    enum:
                      - DINHEIRO
                      - CARTAO_CREDITO
                      - BOLETO_BANCARIO
                      - CARTAO_CREDITO_VIA_LINK
                      - CHEQUE
                      - CARTAO_DEBITO
                      - TRANSFERENCIA_BANCARIA
                      - OUTRO
                      - CARTEIRA_DIGITAL
                      - CASHBACK
                      - CREDITO_LOJA
                      - CREDITO_VIRTUA
                      - DEPOSITO_BANCARIO
                  observacao:
                    type: string
                    example: 'Payment for invoice #1234'
                    description: Observação.
                  nsu:
                    type: string
                    example: '1234567890'
                    description: Número sequencial único.
      tags:
        - Financeiro
    get:
      summary: Lista de Baixas
      description: Listagem de baixas dado o UUID da parcela.
      parameters:
        - name: parcela_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      responses:
        '200':
          description: Lista de baixas
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      description: Identificador único da baixa.
                    versao:
                      type: integer
                      format: int64
                      example: 1
                      description: Versão da baixa.
                    data_pagamento:
                      type: string
                      format: date
                      example: '2023-10-01'
                      description: Data do pagamento.
                    valor_composicao:
                      type: object
                      required:
                        - valor_bruto
                      properties:
                        multa:
                          type: number
                          format: double
                          example: 0
                          description: O valor da multa, deve ser maior ou igual a zero.
                        juros:
                          type: number
                          format: double
                          example: 0
                          description: O valor dos juros, deve ser maior ou igual a zero.
                        valor_bruto:
                          type: number
                          format: double
                          example: 1000
                          description: >-
                            O valor bruto, deve ser informado e maior ou igual a
                            zero.
                        desconto:
                          type: number
                          format: double
                          example: 0
                          description: O valor do desconto, deve ser maior ou igual a zero.
                        taxa:
                          type: number
                          format: double
                          example: 0
                          description: O valor da taxa, deve ser maior ou igual a zero.
                    conta_financeira:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      description: Identificador único da conta financeira.
                    id_reconciliacao:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      description: Identificador único da reconciliação.
                    id_parcela:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      description: Identificador único da parcela.
                    id_solicitacao_cobranca:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      description: Identificador único da solicitação de cobrança.
                    observacao:
                      type: string
                      example: 'Payment for invoice #1234'
                      description: Observação.
                    metodo_pagamento:
                      type: string
                      example: CARTAO_CREDITO
                      description: Método de pagamento.
                      enum:
                        - DINHEIRO
                        - CARTAO_CREDITO
                        - BOLETO_BANCARIO
                        - CARTAO_CREDITO_VIA_LINK
                        - CHEQUE
                        - CARTAO_DEBITO
                        - TRANSFERENCIA_BANCARIA
                        - OUTRO
                        - CARTEIRA_DIGITAL
                        - CASHBACK
                        - CREDITO_LOJA
                        - CREDITO_VIRTUA
                        - DEPOSITO_BANCARIO
                        - PIX_PAGAMENTO_INSTANTANEO
                        - PROGRAMA_FIDELIDADE
                        - SEM_PAGAMENTO
                        - VALE_ALIMENTACAO
                        - VALE_COMBUSTIVEL
                        - VALE_PRESENTE
                        - VALE_REFEICAO
                        - PIX_COBRANCA
                        - DEBITO_AUTOMATICO
                    origem:
                      type: string
                      example: SALDO_CONTA_BANCARIA
                      description: Origem.
                      enum:
                        - LANCAMENTO_FINANCEIRO
                        - DAS
                        - FOLHA
                        - TRANSFERENCIA
                        - SALDO_CONTA_BANCARIA
                        - VENDA
                        - COMPRA
                        - VENDA_AGENDADA
                        - COMPRA_AGENDADA
                        - IMPORTACAO_DOCUMENTO
                        - IMPOSTO_RETIDO
                        - SIC
                        - NOTA_COMPRA
                        - ANTECIPACAO
                        - RENEGOCIACAO
                        - HONORARIOS_CONTABEIS
                    id_recibo_digital:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      description: Identificador único do recibo digital.
                    tipo_evento_financeiro:
                      type: string
                      example: RECEITA
                      description: Tipo de evento financeiro.
                      enum:
                        - RECEITA
                        - DESPESA
                    nsu:
                      type: string
                      example: '1234567890'
                      description: Número sequencial único.
                    id_referencia:
                      type: string
                      example: REF1234
                      description: Identificador único da referência.
                    atualizado_em:
                      type: string
                      format: date-time
                      example: '2023-10-01T12:00:00Z'
                      description: Data de atualização.
                    anexos:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                          referencia:
                            type: string
                            example: REF1234
                          nome:
                            type: string
                            example: Nome anexo
                          descricao:
                            type: string
                            example: Descrição anexo
                          tipo:
                            type: string
                            example: RECIBO_DIGITAL
                            enum:
                              - RECIBO_DIGITAL
                              - RECIBO
                          tipo_conteudo:
                            type: string
                            example: FILE
                            enum:
                              - FILE
                              - URL
                          url:
                            type: string
                            example: https://example.com/attachment.pdf
      tags:
        - Financeiro
  /v1/financeiro/eventos-financeiros/parcelas/baixa/{baixa_id}:
    patch:
      summary: Atualização de Baixa.
      description: Atualiza uma baixa.
      parameters:
        - name: baixa_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - versao
              properties:
                versao:
                  type: integer
                  format: int64
                  example: 1
                  description: >-
                    Deve ser enviado a versão atual do registro. Este valor será
                    incrementado após sucesso na atualização.
                data_pagamento:
                  type: string
                  format: date
                  example: '2023-10-01'
                  description: Data do pagamento.
                composicao_valor:
                  type: object
                  required:
                    - valor_bruto
                  properties:
                    multa:
                      type: number
                      format: double
                      example: 0
                      description: O valor da multa, deve ser maior ou igual a zero.
                    juros:
                      type: number
                      format: double
                      example: 0
                      description: O valor dos juros, deve ser maior ou igual a zero.
                    valor_bruto:
                      type: number
                      format: double
                      example: 1000
                      description: >-
                        O valor bruto, deve ser informado e maior ou igual a
                        zero.
                    desconto:
                      type: number
                      format: double
                      example: 0
                      description: O valor do desconto, deve ser maior ou igual a zero.
                    taxa:
                      type: number
                      format: double
                      example: 0
                      description: O valor da taxa, deve ser maior ou igual a zero.
                conta_financeira:
                  type: string
                  format: uuid
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  description: Identificador único da conta financeira.
                metodo_pagamento:
                  type: string
                  example: CARTAO_CREDITO
                  description: Método de pagamento.
                  enum:
                    - DINHEIRO
                    - CARTAO_CREDITO
                    - BOLETO_BANCARIO
                    - CARTAO_CREDITO_VIA_LINK
                    - CHEQUE
                    - CARTAO_DEBITO
                    - TRANSFERENCIA_BANCARIA
                    - OUTRO
                    - CARTEIRA_DIGITAL
                    - CASHBACK
                    - CREDITO_LOJA
                    - CREDITO_VIRTUA
                    - DEPOSITO_BANCARIO
                observacao:
                  type: string
                  example: 'Payment for invoice #1234'
                  description: Observação.
                nsu:
                  type: string
                  example: '1234567890'
                  description: Número sequencial único.
      responses:
        '200':
          description: Baixa atualizada
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único gerado automaticamente após a criação.
                  versao:
                    type: integer
                    format: int64
                    example: 1
                    description: Versão da baixa.
                  data_pagamento:
                    type: string
                    format: date
                    example: '2023-10-01'
                    description: Data do pagamento.
                  composicao_valor:
                    type: object
                    required:
                      - valor_bruto
                    properties:
                      multa:
                        type: number
                        format: double
                        example: 0
                        description: O valor da multa, deve ser maior ou igual a zero.
                      juros:
                        type: number
                        format: double
                        example: 0
                        description: O valor dos juros, deve ser maior ou igual a zero.
                      valor_bruto:
                        type: number
                        format: double
                        example: 1000
                        description: >-
                          O valor bruto, deve ser informado e maior ou igual a
                          zero.
                      desconto:
                        type: number
                        format: double
                        example: 0
                        description: O valor do desconto, deve ser maior ou igual a zero.
                      taxa:
                        type: number
                        format: double
                        example: 0
                        description: O valor da taxa, deve ser maior ou igual a zero.
                  conta_financeira:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da conta financeira.
                  metodo_pagamento:
                    type: string
                    example: CARTAO_CREDITO
                    description: Método de pagamento.
                    enum:
                      - DINHEIRO
                      - CARTAO_CREDITO
                      - BOLETO_BANCARIO
                      - CARTAO_CREDITO_VIA_LINK
                      - CHEQUE
                      - CARTAO_DEBITO
                      - TRANSFERENCIA_BANCARIA
                      - OUTRO
                      - CARTEIRA_DIGITAL
                      - CASHBACK
                      - CREDITO_LOJA
                      - CREDITO_VIRTUA
                      - DEPOSITO_BANCARIO
                  observacao:
                    type: string
                    example: 'Payment for invoice #1234'
                    description: Observação.
                  nsu:
                    type: string
                    example: '1234567890'
                    description: Número sequencial único.
      tags:
        - Financeiro
    delete:
      summary: Remoção de Baixa
      description: Remove uma baixa pelo UUID.
      parameters:
        - name: baixa_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      responses:
        '200':
          description: Baixa removida com sucesso!
        '404':
          description: Baixa não encontrado.
      tags:
        - Financeiro
    get:
      summary: Busca de Baixa
      description: Busca um baixa pelo UUID.
      parameters:
        - name: baixa_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      responses:
        '200':
          description: Detalhes do baixa
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da baixa.
                  versao:
                    type: integer
                    format: int64
                    example: 1
                    description: Versão da baixa.
                  data_pagamento:
                    type: string
                    format: date
                    example: '2023-10-01'
                    description: Data do pagamento.
                  valor_composicao:
                    type: object
                    required:
                      - valor_bruto
                    properties:
                      multa:
                        type: number
                        format: double
                        example: 0
                        description: O valor da multa, deve ser maior ou igual a zero.
                      juros:
                        type: number
                        format: double
                        example: 0
                        description: O valor dos juros, deve ser maior ou igual a zero.
                      valor_bruto:
                        type: number
                        format: double
                        example: 1000
                        description: >-
                          O valor bruto, deve ser informado e maior ou igual a
                          zero.
                      desconto:
                        type: number
                        format: double
                        example: 0
                        description: O valor do desconto, deve ser maior ou igual a zero.
                      taxa:
                        type: number
                        format: double
                        example: 0
                        description: O valor da taxa, deve ser maior ou igual a zero.
                  conta_financeira:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da conta financeira.
                  id_reconciliacao:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da reconciliação.
                  id_parcela:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da parcela.
                  id_solicitacao_cobranca:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da solicitação de cobrança.
                  observacao:
                    type: string
                    example: 'Payment for invoice #1234'
                    description: Observação.
                  metodo_pagamento:
                    type: string
                    example: CARTAO_CREDITO
                    description: Método de pagamento.
                    enum:
                      - DINHEIRO
                      - CARTAO_CREDITO
                      - BOLETO_BANCARIO
                      - CARTAO_CREDITO_VIA_LINK
                      - CHEQUE
                      - CARTAO_DEBITO
                      - TRANSFERENCIA_BANCARIA
                      - OUTRO
                      - CARTEIRA_DIGITAL
                      - CASHBACK
                      - CREDITO_LOJA
                      - CREDITO_VIRTUA
                      - DEPOSITO_BANCARIO
                      - PIX_PAGAMENTO_INSTANTANEO
                      - PROGRAMA_FIDELIDADE
                      - SEM_PAGAMENTO
                      - VALE_ALIMENTACAO
                      - VALE_COMBUSTIVEL
                      - VALE_PRESENTE
                      - VALE_REFEICAO
                      - PIX_COBRANCA
                      - DEBITO_AUTOMATICO
                  origem:
                    type: string
                    example: SALDO_CONTA_BANCARIA
                    description: Origem.
                    enum:
                      - LANCAMENTO_FINANCEIRO
                      - DAS
                      - FOLHA
                      - TRANSFERENCIA
                      - SALDO_CONTA_BANCARIA
                      - VENDA
                      - COMPRA
                      - VENDA_AGENDADA
                      - COMPRA_AGENDADA
                      - IMPORTACAO_DOCUMENTO
                      - IMPOSTO_RETIDO
                      - SIC
                      - NOTA_COMPRA
                      - ANTECIPACAO
                      - RENEGOCIACAO
                      - HONORARIOS_CONTABEIS
                  id_recibo_digital:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único do recibo digital.
                  tipo_evento_financeiro:
                    type: string
                    example: RECEITA
                    description: Tipo de evento financeiro.
                    enum:
                      - RECEITA
                      - DESPESA
                  nsu:
                    type: string
                    example: '1234567890'
                    description: Número sequencial único.
                  id_referencia:
                    type: string
                    example: REF1234
                    description: Identificador único da referência.
                  atualizado_em:
                    type: string
                    format: date-time
                    example: '2023-10-01T12:00:00Z'
                    description: Data de atualização.
                  anexos:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        referencia:
                          type: string
                          example: REF1234
                        nome:
                          type: string
                          example: Nome anexo
                        descricao:
                          type: string
                          example: Descrição anexo
                        tipo:
                          type: string
                          example: RECIBO_DIGITAL
                          enum:
                            - RECIBO_DIGITAL
                            - RECIBO
                        tipo_conteudo:
                          type: string
                          example: FILE
                          enum:
                            - FILE
                            - URL
                        url:
                          type: string
                          example: https://example.com/attachment.pdf
        '404':
          description: Baixa não encontrada.
      tags:
        - Financeiro
  /v1/financeiro/eventos-financeiros/receitas/cobranca/{id_cobranca}:
    get:
      summary: Buscar cobrança por ID
      description: Retorna os detalhes de uma cobrança específica pelo ID.
      parameters:
        - name: id_cobranca
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identificador único da cobrança.
      responses:
        '200':
          description: Cobrança encontrada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da cobrança.
                  url:
                    type: string
                    example: http://www.exemplo.com.br
                    description: Url da cobrança.
                  status:
                    type: string
                    example: AGUARDANDO_CONFIRMACAO
                    enum:
                      - AGUARDANDO_CONFIRMACAO
                      - EM_CANCELAMENTO
                      - REGISTRADO
                      - QUITADO
                      - CANCELADO
                      - INVALIDO
                      - EXPIRADO
                      - FALHA_EMISSAO
                      - FALHA_CANCELAR
                      - REMESSA_GERADO
                      - REMESSA_PENDENTE
                      - PAGO
                      - EXTORNADO
                    description: Status da cobrança.
        '404':
          description: Cobrança não encontrada
      tags:
        - Cobranças
    delete:
      summary: Cancelar cobrança por ID
      description: Cancela uma cobrança específica pelo ID.
      parameters:
        - name: id_cobranca
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Identificador único da cobrança.
      responses:
        '200':
          description: Cobrança cancelada com sucesso
        '404':
          description: Cobrança não encontrada
      tags:
        - Cobranças
  /v1/financeiro/eventos-financeiros/receitas/gerar-cobranca:
    post:
      summary: Geração de cobrança
      description: Gera uma cobrança
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - conta_bancaria
                - descricao_fatura
                - id_parcela
                - data_vencimento
                - tipo
                - atributos
              properties:
                conta_bancaria:
                  type: string
                  format: uuid
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  description: Identificador único para a conta bancária.
                descricao_fatura:
                  type: string
                  example: 'Payment for invoice #1234'
                  description: Descrição da fatura.
                id_parcela:
                  type: string
                  format: uuid
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  description: Identificador único para a parcela.
                data_vencimento:
                  type: string
                  format: date
                  example: '2023-10-10'
                  description: Data de vencimento da cobrança.
                tipo:
                  type: string
                  example: LINK_PAGAMENTO
                  description: Tipo da cobrança.
                  enum:
                    - LINK_PAGAMENTO
                    - PIX_COBRANCA
                    - BOLETO
                atributos:
                  type: object
                  properties:
                    desconto_antecipado:
                      type: object
                      required:
                        - dias_antes_vencer
                      properties:
                        valor:
                          type: number
                          format: double
                          example: 10
                          description: Valor do desconto antecipado.
                        percentual:
                          type: number
                          format: double
                          example: 10
                          description: Percentual do desconto antecipado.
                        dias_antes_vencer:
                          type: integer
                          example: 10
                          description: >-
                            Dias antes do vencimento para aplicar o desconto
                            antecipado.
      responses:
        '200':
          description: Cobrança gerada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da cobrança.
                  url:
                    type: string
                    example: http://www.exemplo.com.br
                    description: Url da cobrança.
                  status:
                    type: string
                    example: AGUARDANDO_CONFIRMACAO
                    enum:
                      - AGUARDANDO_CONFIRMACAO
                      - EM_CANCELAMENTO
                      - REGISTRADO
                      - QUITADO
                      - CANCELADO
                      - INVALIDO
                      - EXPIRADO
                      - FALHA_EMISSAO
                      - FALHA_CANCELAR
                      - REMESSA_GERADO
                      - REMESSA_PENDENTE
                      - PAGO
                      - EXTORNADO
                    description: Status da cobrança.
      tags:
        - Cobranças
  /v1/contratos:
    post:
      summary: Cria um novo contrato
      description: Cria um novo contrato com base nos dados fornecidos.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id_cliente
                - itens
                - condicao_pagamento
                - termos
              properties:
                id_cliente:
                  type: string
                  format: uuid
                  description: ID do cliente
                  example: 123e4567-e89b-12d3-a456-426614174000
                data_emissao:
                  type: string
                  format: date
                  description: Data de emissão
                  example: '2021-01-01'
                id_categoria:
                  type: string
                  format: uuid
                  description: ID da categoria
                  example: 123e4567-e89b-12d3-a456-426614174000
                id_centro_custo:
                  type: string
                  format: uuid
                  description: ID do centro de custo
                  example: 123e4567-e89b-12d3-a456-426614174000
                id_vendedor:
                  type: string
                  format: uuid
                  description: ID do vendedor
                  example: 123e4567-e89b-12d3-a456-426614174000
                observacoes:
                  type: string
                  description: Observações do pagamento
                observacoes_pagamento:
                  type: string
                  description: Observações complementares da nota fiscal
                  example: Pagamento à vista
                termos:
                  type: object
                  required:
                    - tipo_frequencia
                    - tipo_expiracao
                    - data_inicio
                    - data_fim
                    - numero
                  properties:
                    tipo_frequencia:
                      type: string
                      enum:
                        - MENSAL
                        - ANUAL
                    tipo_expiracao:
                      type: string
                      enum:
                        - DATA
                        - NUNCA
                    data_inicio:
                      type: string
                      format: date
                      description: Data de início
                      example: '2021-01-01'
                    data_fim:
                      type: string
                      format: date
                      description: Data de fim
                      example: '2021-12-31'
                    intervalo_frequencia:
                      type: integer
                      description: Intervalo de frequência deve ser sempre maior igual a 1
                      example: 1
                    dia_emissao_venda:
                      type: integer
                      description: Dia de emissão do contrato
                      example: 1
                    numero:
                      type: integer
                      description: O número do contrato deve ser único.
                      example: 1
                composicao_de_valor:
                  type: object
                  properties:
                    frete:
                      type: number
                      format: double
                      description: Valor do frete
                      example: 10
                    desconto:
                      type: object
                      required:
                        - tipo
                        - valor
                      properties:
                        tipo:
                          type: string
                          description: Tipo de desconto
                          enum:
                            - PORCENTAGEM
                            - VALOR
                        valor:
                          type: number
                          format: double
                          description: Valor do desconto
                          example: 10
                condicao_pagamento:
                  type: object
                  required:
                    - dia_vencimento
                    - primeira_data_vencimento
                  properties:
                    tipo_pagamento:
                      type: string
                      description: Tipo de pagamento
                      enum:
                        - BOLETO_BANCARIO
                        - CARTAO_CREDITO
                        - CARTAO_DEBITO
                        - CARTEIRA_DIGITAL
                        - CASHBACK
                        - CHEQUE
                        - CREDITO_LOJA
                        - CREDITO_VIRTUAL
                        - DEPOSITO_BANCARIO
                        - DINHEIRO
                        - OUTRO
                        - DEBITO_AUTOMATICO
                        - CARTAO_CREDITO_VIA_LINK
                        - PIX_PAGAMENTO_INSTANTANEO
                        - PIX_COBRANCA
                        - PROGRAMA_FIDELIDADE
                        - SEM_PAGAMENTO
                        - TRANSFERENCIA_BANCARIA
                        - VALE_ALIMENTACAO
                        - VALE_COMBUSTIVEL
                        - VALE_PRESENTE
                        - VALE_REFEICAO
                      example: BOLETO
                    id_conta_financeira:
                      type: string
                      format: uuid
                      description: ID da conta financeira
                      example: 123e4567-e89b-12d3-a456-426614174000
                    dia_vencimento:
                      type: integer
                      description: Dia de vencimento
                      example: 10
                    primeira_data_vencimento:
                      type: string
                      format: date
                      description: Primeira data de vencimento
                      example: '2021-01-10'
                itens:
                  type: array
                  items:
                    type: object
                    required:
                      - id
                      - quantidade
                      - valor
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: ID do item
                        example: 123e4567-e89b-12d3-a456-426614174000
                      quantidade:
                        type: integer
                        description: Quantidade do produto
                        example: 10
                      descricao:
                        type: string
                        description: Descrição do produto
                        example: Produto 1
                      valor:
                        type: number
                        format: double
                        description: Valor unitário do item
                        example: 100
                      valor_custo:
                        type: number
                        format: double
                        description: Valor de custo do item
                        example: 100
      responses:
        '200':
          description: Contrato criado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: ID do contrato
                    example: 123e4567-e89b-12d3-a456-426614174000
                  id_legado:
                    type: integer
                    format: int64
                    description: ID legado
                    example: 1234
                  id_venda:
                    type: string
                    format: uuid
                    description: ID da venda
                    example: 6bac0a7f-0422-48a9-86ea-0b1f0a6f9db9
        '500':
          description: Erro interno do servidor
      tags:
        - Contratos
  /v1/centro-de-custo:
    summary: Endpoint de Centros de Custo
    get:
      summary: Procura e retorna os centros de custos
      description: >-
        Procura e retorna os centros de custos que atendam às condições do
        filtro aplicado
      parameters:
        - in: query
          name: pagina
          description: Número da página
          schema:
            type: number
          required: true
        - in: query
          name: tamanho_pagina
          description: Tamanho da página
          schema:
            type: number
          required: true
        - in: query
          name: busca
          description: Busca por nome ou código
          schema:
            type: string
          required: false
        - in: query
          name: filtro_rapido
          description: Filtro rápido para itens ativos, inativos ou todos.
          schema:
            type: string
            enum:
              - ATIVO
              - INATIVO
              - TODOS
          required: false
        - in: query
          name: campo_ordenado_ascendente
          schema:
            type: string
          required: false
        - in: query
          name: campo_ordenado_descendente
          schema:
            type: string
          required: false
      responses:
        '200':
          description: Lista de centros de custo
          content:
            application/json:
              schema:
                type: object
                properties:
                  itens_totais:
                    type: integer
                    example: 6
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        codigo:
                          type: string
                          nullable: true
                          example: codigo_inserido_pelo_usuario
                        nome:
                          type: string
                          example: Centro de custo do Robinho
                        ativo:
                          type: boolean
                          example: true
                  totais:
                    type: object
                    properties:
                      ativo:
                        type: integer
                        example: 6
                      inativo:
                        type: integer
                        example: 0
                      todos:
                        type: integer
                        example: 6
      tags:
        - Centro de Custo
    post:
      summary: Cria um novo centro de custo
      description: >-
        Cria um novo centro de custo e retorna os detalhes do centro de custo
        criado.
      requestBody:
        description: Dados do centro de custo a ser criado
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - nome
              properties:
                codigo:
                  type: string
                  nullable: true
                  example: codigo_inserido_pelo_usuario
                nome:
                  type: string
                  example: Centro de custo do Robinho
      responses:
        '200':
          description: Centro de custo criado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  codigo:
                    type: string
                    nullable: true
                    example: codigo_inserido_pelo_usuario
                  nome:
                    type: string
                    example: Centro de custo do Robinho
                  ativo:
                    type: boolean
                    example: true
        '400':
          description: Requisição inválida
        '500':
          description: Erro interno do servidor
      tags:
        - Centro de Custo
  /v1/financeiro/eventos-financeiros/{id_evento}/parcelas:
    summary: Endpoint de parcelas por evento
    get:
      summary: Busca as parcelas de acordo com o id do evento
      description: Retorna as parcelas de acordo com o id do evento informado
      parameters:
        - name: id_evento
          in: path
          description: UUID ou ID legado do evento.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Lista de Parcelas
          content:
            application/json:
              schema:
                type: object
                properties:
                  evento:
                    type: object
                    properties:
                      data_competencia:
                        type: string
                        format: date
                        example: 01/01/2030
                      id:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      condicao_pagamento:
                        type: object
                        properties:
                          quantidade_parcelas:
                            type: integer
                            example: 10
                          montante_fixo:
                            type: boolean
                            example: false
                      referencia:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                          revisao:
                            type: string
                            example: 1
                          origem:
                            type: string
                            example: LANCAMENTO_FINANCEIRO
                            enum:
                              - LANCAMENTO_FINANCEIRO
                              - DAS
                              - FOLHA
                              - TRANSFERENCIA
                              - SALDO_CONTA_BANCARIA
                              - VENDA
                              - COMPRA
                              - VENDA_AGENDADA
                              - COMPRA_AGENDADA
                              - IMPORTACAO_DOCUMENTO
                              - IMPOSTO_RETIDO
                              - SIC
                              - NOTA_COMPRA
                              - ANTECIPACAO
                              - RENEGOCIACAO
                              - HONORARIOS_CONTABEIS
                      agendado:
                        type: boolean
                        example: true
                      tipo:
                        type: string
                        example: RECEITA
                        enum:
                          - RECEITA
                          - DESPESA
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  versao:
                    type: integer
                    format: int64
                  referencia:
                    type: string
                  indice:
                    type: integer
                    format: int32
                    example: 1
                  conciliado:
                    type: boolean
                    example: true
                  status:
                    type: string
                    example: PENDENTE
                    enum:
                      - PENDENTE
                      - QUITADO
                      - CANCELADO
                  valor_pago:
                    type: number
                    format: double
                    example: 10
                  perda:
                    type: object
                    properties:
                      data:
                        type: string
                        format: date
                        example: '2024-07-15'
                      valor:
                        type: number
                        example: 1.99
                  nao_pago:
                    type: number
                    format: double
                    example: 5
                  data_vencimento:
                    type: string
                    format: date
                    example: 01/01/2030
                  data_pagamento_previsto:
                    type: string
                    format: date
                    example: 01/01/2030
                  descricao:
                    type: string
                    example: bla bla bla
                  nota:
                    type: string
                    example: bla bla bla
                  conta_financeira:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        description: Identificador único da conta financeira
                      banco:
                        type: string
                        description: Instituição bancária
                      codigo_banco:
                        type: integer
                        description: Código da instituição bancária
                      nome:
                        type: string
                        description: Nome da conta financeira
                      ativo:
                        type: boolean
                        description: Indica se a conta está ativa
                      tipo:
                        type: string
                        description: Tipo da conta
                        enum:
                          - APLICACAO
                          - CAIXINHA
                          - CONTA_CORRENTE
                          - CARTAO_CREDITO
                          - INVESTIMENTO
                          - OUTROS
                          - MEIOS_RECEBIMENTO
                          - POUPANCA
                          - COBRANCAS_CONTA_AZUL
                          - RECEBA_FACIL_CARTAO
                      conta_padrao:
                        type: boolean
                        description: Indica se é a conta padrão
                      possui_config_boleto_bancario:
                        type: boolean
                        description: >-
                          Indica se a conta possui configuração de boleto
                          bancário
                      agencia:
                        type: string
                        description: Agência da conta
                      numero:
                        type: string
                        description: Número da conta
                  id_conta_financeira:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  valor_composicao:
                    type: object
                    properties:
                      multa:
                        type: number
                        format: double
                        example: 10
                      juros:
                        type: number
                        format: double
                        example: 1
                      valor_bruto:
                        type: number
                        format: double
                        example: 20
                      desconto:
                        type: number
                        format: double
                        example: 0.1
                      taxa:
                        type: number
                        format: double
                        example: 0.03
                      valor_liquido:
                        type: number
                        format: double
                        example: 9
                  metodo_pagamento:
                    type: string
                    example: DEPOSITO_BANCARIO
                    enum:
                      - DINHEIRO
                      - CARTAO_CREDITO
                      - BOLETO_BANCARIO
                      - CARTAO_CREDITO_VIA_LINK
                      - CHEQUE
                      - CARTAO_DEBITO
                      - TRANSFERENCIA_BANCARIA
                      - OUTRO
                      - CARTEIRA_DIGITAL
                      - CASHBACK
                      - CREDITO_LOJA
                      - CREDITO_VIRTUA
                      - DEPOSITO_BANCARIO
                      - PIX_PAGAMENTO_INSTANTANEO
                      - PROGRAMA_FIDELIDADE
                      - SEM_PAGAMENTO
                      - VALE_ALIMENTACAO
                      - VALE_COMBUSTIVEL
                      - VALE_PRESENTE
                      - VALE_REFEICAO
                      - PIX_COBRANCA
                      - DEBITO_AUTOMATICO
                  nsu:
                    type: string
                    example: null
                  baixa_agendada:
                    type: boolean
                    example: false
                  baixas:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          example: 1
                        data_pagamento:
                          type: string
                          format: date
                          example: 01/01/2030
                        valor_composicao:
                          type: object
                          properties:
                            multa:
                              type: number
                              format: double
                              example: 10
                            juros:
                              type: number
                              format: double
                              example: 1
                            valor_bruto:
                              type: number
                              format: double
                              example: 20
                            desconto:
                              type: number
                              format: double
                              example: 0.1
                            taxa:
                              type: number
                              format: double
                              example: 0.03
                            valor_liquido:
                              type: number
                              format: double
                              example: 9
                        conta_financeira:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                              description: Identificador único da conta financeira
                            banco:
                              type: string
                              description: Instituição bancária
                            codigo_banco:
                              type: integer
                              description: Código da instituição bancária
                            nome:
                              type: string
                              description: Nome da conta financeira
                            ativo:
                              type: boolean
                              description: Indica se a conta está ativa
                            tipo:
                              type: string
                              description: Tipo da conta
                              enum:
                                - APLICACAO
                                - CAIXINHA
                                - CONTA_CORRENTE
                                - CARTAO_CREDITO
                                - INVESTIMENTO
                                - OUTROS
                                - MEIOS_RECEBIMENTO
                                - POUPANCA
                                - COBRANCAS_CONTA_AZUL
                                - RECEBA_FACIL_CARTAO
                            conta_padrao:
                              type: boolean
                              description: Indica se é a conta padrão
                            possui_config_boleto_bancario:
                              type: boolean
                              description: >-
                                Indica se a conta possui configuração de boleto
                                bancário
                            agencia:
                              type: string
                              description: Agência da conta
                            numero:
                              type: string
                              description: Número da conta
                        id_reconciliacao:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        id_parcela:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        id_solicitacao_cobranca:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        observacao:
                          type: string
                          example: bla
                        metodo_pagamento:
                          type: string
                          example: DEPOSITO_BANCARIO
                          enum:
                            - DINHEIRO
                            - CARTAO_CREDITO
                            - BOLETO_BANCARIO
                            - CARTAO_CREDITO_VIA_LINK
                            - CHEQUE
                            - CARTAO_DEBITO
                            - TRANSFERENCIA_BANCARIA
                            - OUTRO
                            - CARTEIRA_DIGITAL
                            - CASHBACK
                            - CREDITO_LOJA
                            - CREDITO_VIRTUA
                            - DEPOSITO_BANCARIO
                            - PIX_PAGAMENTO_INSTANTANEO
                            - PROGRAMA_FIDELIDADE
                            - SEM_PAGAMENTO
                            - VALE_ALIMENTACAO
                            - VALE_COMBUSTIVEL
                            - VALE_PRESENTE
                            - VALE_REFEICAO
                            - PIX_COBRANCA
                            - DEBITO_AUTOMATICO
                        origem:
                          type: string
                          example: LANCAMENTO_FINANCEIRO
                          enum:
                            - LANCAMENTO_FINANCEIRO
                            - DAS
                            - FOLHA
                            - TRANSFERENCIA
                            - SALDO_CONTA_BANCARIA
                            - VENDA
                            - COMPRA
                            - VENDA_AGENDADA
                            - COMPRA_AGENDADA
                            - IMPORTACAO_DOCUMENTO
                            - IMPOSTO_RETIDO
                            - SIC
                            - NOTA_COMPRA
                            - ANTECIPACAO
                            - RENEGOCIACAO
                            - HONORARIOS_CONTABEIS
                        id_recibo_digital:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        tipo_evento_financeiro:
                          type: string
                          example: RECEITA
                        nsu:
                          type: string
                          example: null
                        id_referencia:
                          type: string
                          example: null
                        atualizado_em:
                          type: string
                          format: date-time
                          example: 01/01/2030
                        anexos:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                              referencia:
                                type: string
                                example: bla
                              nome:
                                type: string
                                example: bla
                              descricao:
                                type: string
                                example: bla
                              tipo:
                                type: string
                                example: RECIBO_DIGITAL
                                enum:
                                  - RECIBO_DIGITAL
                                  - RECIBO
                              tipo_conteudo:
                                type: string
                                example: FILE
                                enum:
                                  - FILE
                                  - URL
                              url:
                                type: string
                                example: www.example.com
                  anexos:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          format: int64
                          example: 1
                        descricao:
                          type: string
                          example: bla bla
                        nome:
                          type: string
                          example: nome
                        url:
                          type: string
                          example: www.exemplo.com
                        tipo_conteudo:
                          type: string
                          example: URL
                        referencia:
                          type: string
                          example: alguma referencia
                        tipo_anexo:
                          type: string
                          example: BOLETO_BANCARIO
                          enum:
                            - BOLETO_BANCARIO_RFB
                            - BOLETO_BANCARIO
                            - RECIBO
                            - FATURA
                            - OUTROS
                            - RECIBO_DIGITAL
                        id_parcela:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  solicitacoes_cobrancas:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          format: int64
                        status_solicitacao_cobranca:
                          type: string
                          example: AGUARDANDO_CONFIRMACAO
                          enum:
                            - AGUARDANDO_CONFIRMACAO
                            - EM_CANCELAMENTO
                            - REGISTRADO
                            - QUITADO
                            - CANCELADO
                            - INVALIDO
                            - EXPIRADO
                            - FALHA_EMISSAO
                            - FALHA_CANCELAR
                            - REMESSA_GERADO
                            - REMESSA_PENDENTE
                            - PAGO
                            - EXTORNADO
                        valor_composicao:
                          type: object
                          properties:
                            multa:
                              type: number
                              format: double
                              example: 10
                            juros:
                              type: number
                              format: double
                              example: 1
                            valor_bruto:
                              type: number
                              format: double
                              example: 20
                            desconto:
                              type: number
                              format: double
                              example: 0.1
                            taxa:
                              type: number
                              format: double
                              example: 0.03
                            valor_liquido:
                              type: number
                              format: double
                              example: 9
                        data_vencimento:
                          type: string
                          format: date
                        data_quitacao:
                          type: string
                          format: date
                          example: 01/01/2030
                        tipo_solicitacao_cobranca:
                          type: string
                          example: BOLETO
                          enum:
                            - BOLETO
                            - LINK_PAGAMENTO
                            - BOLETO_REGISTRADO
                            - PIX_COBRANCA
                        id_cliente:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        id_referencia:
                          type: string
                          example: id_referencia
                        url:
                          type: string
                          example: www.exemple.com
                        detalhe_erro:
                          type: string
                          example: bla bla
                        conta_financeira:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                              description: Identificador único da conta financeira
                            banco:
                              type: string
                              description: Instituição bancária
                            codigo_banco:
                              type: integer
                              description: Código da instituição bancária
                            nome:
                              type: string
                              description: Nome da conta financeira
                            ativo:
                              type: boolean
                              description: Indica se a conta está ativa
                            tipo:
                              type: string
                              description: Tipo da conta
                              enum:
                                - APLICACAO
                                - CAIXINHA
                                - CONTA_CORRENTE
                                - CARTAO_CREDITO
                                - INVESTIMENTO
                                - OUTROS
                                - MEIOS_RECEBIMENTO
                                - POUPANCA
                                - COBRANCAS_CONTA_AZUL
                                - RECEBA_FACIL_CARTAO
                            conta_padrao:
                              type: boolean
                              description: Indica se é a conta padrão
                            possui_config_boleto_bancario:
                              type: boolean
                              description: >-
                                Indica se a conta possui configuração de boleto
                                bancário
                            agencia:
                              type: string
                              description: Agência da conta
                            numero:
                              type: string
                              description: Número da conta
                        notificacao_cobranca:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                            solicitacao_cobranca_ids:
                              type: array
                              items:
                                type: string
                                format: uuid
                            versao:
                              type: integer
                              format: int64
                            enviado_em:
                              type: string
                              format: date
                              example: 01/01/2030
                            aberto_em:
                              type: string
                              format: date
                              example: 01/01/2030
                            itens_notificacao_cobranca:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                                  versao:
                                    type: integer
                                    format: int64
                                    example: 1
                                  email:
                                    type: string
                                    example: fulano@email.com
                                  sms:
                                    type: string
                                    example: bla bla bla
                                  whatsapp:
                                    type: string
                                    example: bla bla bla
                                  status_entrega:
                                    type: string
                                    example: ENVIADO
                                    enum:
                                      - ENVIADO
                                      - INVALIDO
                            assunto:
                              type: string
                              example: bla bla bla
                            corpo:
                              type: string
                              example: bla bla bla
                            respondido_para:
                              type: string
                              example: fulano@email.com
                            agendado:
                              type: boolean
                              example: false
                            auto_notificacao:
                              type: boolean
                              example: false
                            envio_instantaneo:
                              type: boolean
                              example: false
                        confirmado_em:
                          type: string
                          format: date
                          example: 01/01/2030
                        descricao:
                          type: string
                          example: bla bla bla
                        referencia_externa:
                          type: string
                          example: bla bla bla
                        recuperado:
                          type: boolean
                          example: false
                        combinado:
                          type: boolean
                          example: false
                        atributos_personalizados:
                          type: string
                  id_ultima_solicitacao_pagamento:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  id_boleto_bancario_autorizado:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  fatura:
                    type: object
                    properties:
                      numero:
                        type: integer
                        format: int64
                        example: 123
                      rps:
                        type: integer
                        format: int64
                        example: 1
                      tipo_fatura:
                        type: string
                        example: NFE
                        enum:
                          - NFE
                          - NFSE
                          - NFCE
                  valor_total_liquido:
                    type: number
                    format: double
                    example: 10
                  id_ultimo_solicitacao_cobranca:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      tags:
        - Financeiro
  /v1/categorias:
    summary: Endpoint de Categorias
    get:
      summary: Procura e retorna as categorias
      description: >-
        Procura e retorna as categorias que atendam às condições do filtro
        aplicado
      parameters:
        - in: query
          name: pagina
          description: Número da página
          schema:
            type: number
          required: true
        - in: query
          name: tamanho_pagina
          description: Tamanho da página
          schema:
            type: number
          required: true
        - in: query
          name: campo_ordenado_ascendente
          schema:
            type: string
          required: false
        - in: query
          name: campo_ordenado_descendente
          schema:
            type: string
          required: false
        - in: query
          name: busca
          schema:
            type: string
          required: false
        - in: query
          name: tipo
          schema:
            type: string
            enum:
              - RECEITA
              - DESPESA
          required: false
        - in: query
          name: apenas_filhos
          schema:
            type: boolean
          required: false
        - in: query
          name: nome
          schema:
            type: string
          required: false
        - in: query
          name: permite_apenas_filhos
          schema:
            type: boolean
          required: true
      responses:
        '200':
          description: Operação realizada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  versao:
                    type: integer
                    example: 0
                  nome:
                    type: string
                    example: Nome da Categoria
                  categoria_pai:
                    type: string
                    nullable: true
                    example: 3d39b8d2-8b16-42d6-abd8-6cfd9d2e06c4
                  tipo:
                    type: string
                    example: RECEITA
                  entrada_dre:
                    type: string
                    example: DESPESAS_ADMINISTRATIVAS
                  considera_custo_dre:
                    type: boolean
                    example: true
      tags:
        - Categorias
  /v1/conta-financeira:
    summary: Endpoint de Contas Financeiras
    get:
      summary: Buscar contas financeiras
      description: >-
        Procura e retorna as contas financeiras que atendam às condições do
        filtro aplicado
      parameters:
        - name: pagina
          in: query
          description: Número da página
          required: false
          schema:
            type: integer
            default: 1
        - name: tamanho_pagina
          in: query
          description: Tamanho da página
          required: false
          schema:
            type: integer
            default: 10
        - name: tipos
          in: query
          description: Lista de tipos de conta
          required: false
          schema:
            type: array
            items:
              type: string
              enum:
                - APLICACAO
                - CAIXINHA
                - CONTA_CORRENTE
                - CARTAO_CREDITO
                - INVESTIMENTO
                - OUTROS
                - MEIOS_RECEBIMENTO
                - POUPANCA
                - COBRANCAS_CONTA_AZUL
                - RECEBA_FACIL_CARTAO
        - name: nome
          in: query
          description: Nome da conta
          required: false
          schema:
            type: string
        - name: apenas_ativo
          in: query
          description: Filtrar apenas contas ativas
          required: false
          schema:
            type: boolean
        - name: esconde_conta_digital
          in: query
          description: Esconder contas digitais
          required: false
          schema:
            type: boolean
        - name: mostrar_caixinha
          in: query
          description: Mostrar contas de caixinha
          required: false
          schema:
            type: boolean
      responses:
        '200':
          description: Operação realizada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da conta financeira
                  banco:
                    type: string
                    description: Instituição bancária
                  codigo_banco:
                    type: integer
                    description: Código da instituição bancária
                  nome:
                    type: string
                    description: Nome da conta financeira
                  ativo:
                    type: boolean
                    description: Indica se a conta está ativa
                  tipo:
                    type: string
                    description: Tipo da conta
                    enum:
                      - APLICACAO
                      - CAIXINHA
                      - CONTA_CORRENTE
                      - CARTAO_CREDITO
                      - INVESTIMENTO
                      - OUTROS
                      - MEIOS_RECEBIMENTO
                      - POUPANCA
                      - COBRANCAS_CONTA_AZUL
                      - RECEBA_FACIL_CARTAO
                  conta_padrao:
                    type: boolean
                    description: Indica se é a conta padrão
                  possui_config_boleto_bancario:
                    type: boolean
                    description: Indica se a conta possui configuração de boleto bancário
                  agencia:
                    type: string
                    description: Agência da conta
                  numero:
                    type: string
                    description: Número da conta
      tags:
        - Conta Financeira
  /v1/financeiro/eventos-financeiros/contas-a-receber:
    post:
      summary: Cria evento financeiro de conta a receber
      description: >-
        Realização a criação do evento financeiro de conta a receber e retorna o
        protocolo da operação
      tags:
        - Financeiro
      requestBody:
        description: Dados do evento financeiro de contas a receber
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - data_competencia
                - valor
                - observacao
                - descricao
                - contato
                - conta_financeira
                - condicao_pagamento
              properties:
                data_competencia:
                  type: string
                  format: date
                  description: Data da compentência do evento financeiro é obrigatório.
                valor:
                  type: number
                  format: decimal
                  description: Valor do evento financeiro é obrigatório.
                observacao:
                  type: string
                  example: Observação do evento financeiro
                  description: Observação do evento financeiro é obrigatório.
                descricao:
                  type: string
                  example: Descriação do evento financeiro
                  description: Descrição do evento financeiro é obrigatório.
                contato:
                  type: string
                  format: uuid
                  description: Identificador do contato é obrigatório.
                conta_financeira:
                  type: string
                  format: uuid
                  description: Identificador da Conta Financeira é obrigatório.
                rateio:
                  type: array
                  items:
                    type: object
                    required:
                      - id_categoria
                      - valor
                    properties:
                      id_categoria:
                        type: string
                        format: uuid
                        description: Identificador único da categoria é obrigatório.
                      valor:
                        type: number
                        format: decimal
                        description: Valor atribuído à categoria no rateio é obrigatório.
                      rateio_centro_custo:
                        type: array
                        items:
                          type: object
                          properties:
                            id_centro_custo:
                              type: string
                              format: uuid
                              description: Identificador único do centro de custo
                            valor:
                              type: number
                              format: decimal
                              description: Valor atribuído ao centro de custo no rateio
                        description: Lista de rateios por centro de custo
                condicao_pagamento:
                  type: object
                  required:
                    - parcelas
                  properties:
                    parcelas:
                      type: array
                      items:
                        type: object
                        required:
                          - descricao
                          - data_vencimento
                          - nota
                          - conta_financeira
                          - detalhe_valor
                        properties:
                          descricao:
                            type: string
                            example: Descrição da parcela
                            description: A descrição da parcela é obrigatória.
                          data_vencimento:
                            type: string
                            format: date
                            description: A data de vencimento da parcela é obrigatória.
                          nota:
                            type: string
                            example: Nota adicional sobre a parcela
                            description: Nota adicional sobre a parcela é obrigatória.
                          conta_financeira:
                            type: string
                            format: uuid
                            description: >-
                              Identificador da conta financeira associada à
                              parcela é obrigatória.
                          detalhe_valor:
                            type: object
                            required:
                              - valor_bruto
                            properties:
                              multa:
                                type: number
                                example: 100.25
                                description: Valor da multa.
                              juros:
                                type: number
                                example: 1.5
                                description: Valor dos juros.
                              valor_bruto:
                                type: number
                                example: 275.99
                                description: Valor bruto da parcela é obrigatório.
                              valor_liquido:
                                type: number
                                example: 250.33
                                description: Valor líquido da parcela.
                              desconto:
                                type: number
                                example: 2.1
                                description: Valor do desconto.
                              taxa:
                                type: number
                                example: 4.4
                                description: Valor da taxa.
                      description: Lista de parcelas da condição de pagamento
      responses:
        '202':
          description: Evento financeiro de conta a receber criado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  protocolId:
                    type: string
                    format: uuid
                    description: Identificador do protocolo
                  status:
                    type: string
                    description: Status do protocolo
                    enum:
                      - PENDING
                      - SUCCESS
                      - ERROR
                  createdAt:
                    type: string
                    format: date-time
                    description: Data de criação do protocolo
  /v1/financeiro/eventos-financeiros/contas-a-receber/buscar:
    summary: Endpoint de Contas a Receber
    post:
      summary: Procura de acordo com o filtro e retorna as contas a receber
      description: >-
        Procura e retorna as contas a receber que atendam às condições dos
        filtros aplicados
      parameters:
        - in: query
          name: pagina
          schema:
            type: number
          required: true
        - in: query
          name: tamanho_pagina
          schema:
            type: number
          required: true
        - in: query
          name: campo_ordenado_ascendente
          schema:
            type: string
          required: false
        - in: query
          name: campo_ordenado_descendente
          schema:
            type: string
          required: false
      requestBody:
        description: Filtros para busca de contas a receber
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - data_vencimento_de
                - data_vencimento_ate
              properties:
                descricao:
                  type: string
                  example: Conta do ...
                  description: Descrição da conta.
                data_vencimento_de:
                  type: string
                  example: '2024-05-01'
                  description: >-
                    Data de vencimento inicial da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_vencimento_ate:
                  type: string
                  example: '2024-05-31'
                  description: >-
                    Data de vencimento final da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_competencia_de:
                  type: string
                  example: '2024-05-31'
                  description: Data de competência inicial da busca.
                data_competencia_ate:
                  type: string
                  example: '2024-05-31'
                  description: Data de competência final da busca.
                data_pagamento_de:
                  type: string
                  example: '2024-05-31'
                  description: Data de pagamento inicial da busca.
                data_pagamento_ate:
                  type: string
                  example: '2024-05-31'
                  description: Data de pagamento final da busca.
                data_criacao_de:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de criação inicial da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_criacao_ate:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de criação final da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_alteracao_de:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de alteração inicial da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_alteracao_ate:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de alteração final da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                valor_de:
                  type: number
                  example: 14.5
                  description: Valor mínimo da busca.
                valor_ate:
                  type: number
                  example: 278.5
                  description: Valor máximo da busca.
                status:
                  type: array
                  description: Status da conta.
                  items:
                    type: string
                ids_contas_financeiras:
                  type: array
                  description: UUIDs das contas financeiras.
                  items:
                    type: string
                ids_categorias:
                  type: array
                  description: UUIDs das categorias.
                  items:
                    type: string
                ids_centros_de_custo:
                  type: array
                  description: UUIDs dos centros de custo.
                  items:
                    type: string
                metodos_pagamento:
                  type: array
                  description: Métodos de pagamento.
                  items:
                    type: string
                referencias:
                  type: array
                  description: Referências.
                  items:
                    type: string
      responses:
        '200':
          description: Lista de Contas a Receber
          content:
            application/json:
              schema:
                type: object
                properties:
                  itens_totais:
                    type: integer
                    example: 6
                  itens:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: c6a28b6e-efe4-11ee-8ef8-8b86c5251537
                        descricao:
                          type: string
                          example: Descrição...
                        data_vencimento:
                          type: string
                          example: '2027-08-15'
                        status:
                          type: string
                          example: OVERDUE
                        total:
                          type: number
                          example: 781201.79
                        nao_pago:
                          type: number
                          example: 213023.79
                        pago:
                          type: number
                          example: 0
                        data_criacao:
                          type: string
                          format: date-time
                          example: '2027-08-15T14:30:00Z'
                        data_alteracao:
                          type: string
                          format: date-time
                          example: '2027-08-15T14:30:00Z'
                  totais:
                    type: object
                    properties:
                      ativo:
                        type: integer
                        example: 6
                      inativo:
                        type: integer
                        example: 0
                      todos:
                        type: integer
                        example: 6
      tags:
        - Financeiro
  /v1/financeiro/eventos-financeiros/contas-a-pagar:
    post:
      summary: Cria evento financeiro de conta a pagar
      description: >-
        Realização a criação do evento financeiro de conta a pagar e retorna o
        protocolo da operação
      tags:
        - Financeiro
      requestBody:
        description: Dados do evento financeiro de contas a pagar
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - data_competencia
                - valor
                - observacao
                - descricao
                - contato
                - conta_financeira
                - condicao_pagamento
              properties:
                data_competencia:
                  type: string
                  format: date
                  description: Data da compentência do evento financeiro é obrigatório.
                valor:
                  type: number
                  format: decimal
                  description: Valor do evento financeiro é obrigatório.
                observacao:
                  type: string
                  example: Observação do evento financeiro
                  description: Observação do evento financeiro é obrigatório.
                descricao:
                  type: string
                  example: Descriação do evento financeiro
                  description: Descrição do evento financeiro é obrigatório.
                contato:
                  type: string
                  format: uuid
                  description: Identificador do contato é obrigatório.
                conta_financeira:
                  type: string
                  format: uuid
                  description: Identificador da Conta Financeira é obrigatório.
                rateio:
                  type: array
                  items:
                    type: object
                    required:
                      - id_categoria
                      - valor
                    properties:
                      id_categoria:
                        type: string
                        format: uuid
                        description: Identificador único da categoria é obrigatório.
                      valor:
                        type: number
                        format: decimal
                        description: Valor atribuído à categoria no rateio é obrigatório.
                      rateio_centro_custo:
                        type: array
                        items:
                          type: object
                          properties:
                            id_centro_custo:
                              type: string
                              format: uuid
                              description: Identificador único do centro de custo
                            valor:
                              type: number
                              format: decimal
                              description: Valor atribuído ao centro de custo no rateio
                        description: Lista de rateios por centro de custo
                condicao_pagamento:
                  type: object
                  required:
                    - parcelas
                  properties:
                    parcelas:
                      type: array
                      items:
                        type: object
                        required:
                          - descricao
                          - data_vencimento
                          - nota
                          - conta_financeira
                          - detalhe_valor
                        properties:
                          descricao:
                            type: string
                            example: Descrição da parcela
                            description: A descrição da parcela é obrigatória.
                          data_vencimento:
                            type: string
                            format: date
                            description: A data de vencimento da parcela é obrigatória.
                          nota:
                            type: string
                            example: Nota adicional sobre a parcela
                            description: Nota adicional sobre a parcela é obrigatória.
                          conta_financeira:
                            type: string
                            format: uuid
                            description: >-
                              Identificador da conta financeira associada à
                              parcela é obrigatória.
                          detalhe_valor:
                            type: object
                            required:
                              - valor_bruto
                            properties:
                              multa:
                                type: number
                                example: 100.25
                                description: Valor da multa.
                              juros:
                                type: number
                                example: 1.5
                                description: Valor dos juros.
                              valor_bruto:
                                type: number
                                example: 275.99
                                description: Valor bruto da parcela é obrigatório.
                              valor_liquido:
                                type: number
                                example: 250.33
                                description: Valor líquido da parcela.
                              desconto:
                                type: number
                                example: 2.1
                                description: Valor do desconto.
                              taxa:
                                type: number
                                example: 4.4
                                description: Valor da taxa.
                      description: Lista de parcelas da condição de pagamento
      responses:
        '202':
          description: Evento financeiro de conta a pagar criado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  protocolId:
                    type: string
                    format: uuid
                    description: Identificador do protocolo
                  status:
                    type: string
                    description: Status do protocolo
                    enum:
                      - PENDING
                      - SUCCESS
                      - ERROR
                  createdAt:
                    type: string
                    format: date-time
                    description: Data de criação do protocolo
  /v1/financeiro/eventos-financeiros/contas-a-pagar/buscar:
    summary: Endpoint de Contas a Pagar
    post:
      summary: Procura de acordo com o filtro e retorna as contas a pagar
      description: >-
        Procura e retorna as contas a pagar que atendam às condições dos filtros
        aplicados
      parameters:
        - in: query
          name: pagina
          schema:
            type: number
          required: true
        - in: query
          name: tamanho_pagina
          schema:
            type: number
          required: true
        - in: query
          name: campo_ordenado_ascendente
          schema:
            type: string
          required: false
        - in: query
          name: campo_ordenado_descendente
          schema:
            type: string
          required: false
      requestBody:
        description: Filtros para busca de contas a receber
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - data_vencimento_de
                - data_vencimento_ate
              properties:
                descricao:
                  type: string
                  example: Conta do ...
                  description: Descrição da conta.
                data_vencimento_de:
                  type: string
                  example: '2024-05-01'
                  description: >-
                    Data de vencimento inicial da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_vencimento_ate:
                  type: string
                  example: '2024-05-31'
                  description: >-
                    Data de vencimento final da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_competencia_de:
                  type: string
                  example: '2024-05-31'
                  description: Data de competência inicial da busca.
                data_competencia_ate:
                  type: string
                  example: '2024-05-31'
                  description: Data de competência final da busca.
                data_pagamento_de:
                  type: string
                  example: '2024-05-31'
                  description: Data de pagamento inicial da busca.
                data_pagamento_ate:
                  type: string
                  example: '2024-05-31'
                  description: Data de pagamento final da busca.
                data_criacao_de:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de criação inicial da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_criacao_ate:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de criação final da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_alteracao_de:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de alteração inicial da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                data_alteracao_ate:
                  type: string
                  format: date-time
                  example: '2024-10-22T14:30:00Z'
                  description: >-
                    Data de alteração final da busca (Um intervalo de data é
                    obrigatório entre vencimento, criação ou alteração).
                valor_de:
                  type: number
                  example: 14.5
                  description: Valor mínimo da busca.
                valor_ate:
                  type: number
                  example: 278.5
                  description: Valor máximo da busca.
                status:
                  type: array
                  description: Status da conta.
                  items:
                    type: string
                ids_contas_financeiras:
                  type: array
                  description: UUIDs das contas financeiras.
                  items:
                    type: string
                ids_categorias:
                  type: array
                  description: UUIDs das categorias.
                  items:
                    type: string
                ids_centros_de_custo:
                  type: array
                  description: UUIDs dos centros de custo.
                  items:
                    type: string
                metodos_pagamento:
                  type: array
                  description: Métodos de pagamento.
                  items:
                    type: string
                referencias:
                  type: array
                  description: Referências.
                  items:
                    type: string
      responses:
        '200':
          description: Lista de Contas a Pagar
          content:
            application/json:
              schema:
                type: object
                properties:
                  itens_totais:
                    type: integer
                    example: 6
                  itens:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: c6a28b6e-efe4-11ee-8ef8-8b86c5251537
                        descricao:
                          type: string
                          example: Descrição...
                        data_vencimento:
                          type: string
                          example: '2027-08-15'
                        status:
                          type: string
                          example: OVERDUE
                        total:
                          type: number
                          example: 781201.79
                        nao_pago:
                          type: number
                          example: 213023.79
                        pago:
                          type: number
                          example: 0
                        data_criacao:
                          type: string
                          format: date-time
                          example: '2027-08-15T14:30:00Z'
                        data_alteracao:
                          type: string
                          format: date-time
                          example: '2027-08-15T14:30:00Z'
                  totais:
                    type: object
                    properties:
                      ativo:
                        type: integer
                        example: 6
                      inativo:
                        type: integer
                        example: 0
                      todos:
                        type: integer
                        example: 6
      tags:
        - Financeiro
  /v1/financeiro/eventos-financeiros/parcelas/{id}:
    summary: Endpoint de atualizacao de parcelas por id
    get:
      summary: Busca parcela por ID
      description: Retorna as informações de uma parcela específica pelo seu ID.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            format: uuid
            example: 9986f173-f531-4660-96ae-04b71c879264
          description: Identificador único da parcela
      responses:
        '200':
          description: Informações da parcela retornadas com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  evento:
                    type: object
                    properties:
                      data_competencia:
                        type: string
                        format: date
                        example: 01/01/2030
                      id:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      condicao_pagamento:
                        type: object
                        properties:
                          quantidade_parcelas:
                            type: integer
                            example: 10
                          montante_fixo:
                            type: boolean
                            example: false
                      referencia:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                          revisao:
                            type: string
                            example: 1
                          origem:
                            type: string
                            example: LANCAMENTO_FINANCEIRO
                            enum:
                              - LANCAMENTO_FINANCEIRO
                              - DAS
                              - FOLHA
                              - TRANSFERENCIA
                              - SALDO_CONTA_BANCARIA
                              - VENDA
                              - COMPRA
                              - VENDA_AGENDADA
                              - COMPRA_AGENDADA
                              - IMPORTACAO_DOCUMENTO
                              - IMPOSTO_RETIDO
                              - SIC
                              - NOTA_COMPRA
                              - ANTECIPACAO
                              - RENEGOCIACAO
                              - HONORARIOS_CONTABEIS
                      agendado:
                        type: boolean
                        example: true
                      tipo:
                        type: string
                        example: RECEITA
                        enum:
                          - RECEITA
                          - DESPESA
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  versao:
                    type: integer
                    format: int64
                  referencia:
                    type: string
                  indice:
                    type: integer
                    format: int32
                    example: 1
                  conciliado:
                    type: boolean
                    example: true
                  status:
                    type: string
                    example: PENDENTE
                    enum:
                      - PENDENTE
                      - QUITADO
                      - CANCELADO
                  valor_pago:
                    type: number
                    format: double
                    example: 10
                  perda:
                    type: object
                    properties:
                      data:
                        type: string
                        format: date
                        example: '2024-07-15'
                      valor:
                        type: number
                        example: 1.99
                  nao_pago:
                    type: number
                    format: double
                    example: 5
                  data_vencimento:
                    type: string
                    format: date
                    example: 01/01/2030
                  data_pagamento_previsto:
                    type: string
                    format: date
                    example: 01/01/2030
                  descricao:
                    type: string
                    example: bla bla bla
                  nota:
                    type: string
                    example: bla bla bla
                  conta_financeira:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        description: Identificador único da conta financeira
                      banco:
                        type: string
                        description: Instituição bancária
                      codigo_banco:
                        type: integer
                        description: Código da instituição bancária
                      nome:
                        type: string
                        description: Nome da conta financeira
                      ativo:
                        type: boolean
                        description: Indica se a conta está ativa
                      tipo:
                        type: string
                        description: Tipo da conta
                        enum:
                          - APLICACAO
                          - CAIXINHA
                          - CONTA_CORRENTE
                          - CARTAO_CREDITO
                          - INVESTIMENTO
                          - OUTROS
                          - MEIOS_RECEBIMENTO
                          - POUPANCA
                          - COBRANCAS_CONTA_AZUL
                          - RECEBA_FACIL_CARTAO
                      conta_padrao:
                        type: boolean
                        description: Indica se é a conta padrão
                      possui_config_boleto_bancario:
                        type: boolean
                        description: >-
                          Indica se a conta possui configuração de boleto
                          bancário
                      agencia:
                        type: string
                        description: Agência da conta
                      numero:
                        type: string
                        description: Número da conta
                  id_conta_financeira:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  valor_composicao:
                    type: object
                    properties:
                      multa:
                        type: number
                        format: double
                        example: 10
                      juros:
                        type: number
                        format: double
                        example: 1
                      valor_bruto:
                        type: number
                        format: double
                        example: 20
                      desconto:
                        type: number
                        format: double
                        example: 0.1
                      taxa:
                        type: number
                        format: double
                        example: 0.03
                      valor_liquido:
                        type: number
                        format: double
                        example: 9
                  metodo_pagamento:
                    type: string
                    example: DEPOSITO_BANCARIO
                    enum:
                      - DINHEIRO
                      - CARTAO_CREDITO
                      - BOLETO_BANCARIO
                      - CARTAO_CREDITO_VIA_LINK
                      - CHEQUE
                      - CARTAO_DEBITO
                      - TRANSFERENCIA_BANCARIA
                      - OUTRO
                      - CARTEIRA_DIGITAL
                      - CASHBACK
                      - CREDITO_LOJA
                      - CREDITO_VIRTUA
                      - DEPOSITO_BANCARIO
                      - PIX_PAGAMENTO_INSTANTANEO
                      - PROGRAMA_FIDELIDADE
                      - SEM_PAGAMENTO
                      - VALE_ALIMENTACAO
                      - VALE_COMBUSTIVEL
                      - VALE_PRESENTE
                      - VALE_REFEICAO
                      - PIX_COBRANCA
                      - DEBITO_AUTOMATICO
                  nsu:
                    type: string
                    example: null
                  baixa_agendada:
                    type: boolean
                    example: false
                  baixas:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          example: 1
                        data_pagamento:
                          type: string
                          format: date
                          example: 01/01/2030
                        valor_composicao:
                          type: object
                          properties:
                            multa:
                              type: number
                              format: double
                              example: 10
                            juros:
                              type: number
                              format: double
                              example: 1
                            valor_bruto:
                              type: number
                              format: double
                              example: 20
                            desconto:
                              type: number
                              format: double
                              example: 0.1
                            taxa:
                              type: number
                              format: double
                              example: 0.03
                            valor_liquido:
                              type: number
                              format: double
                              example: 9
                        conta_financeira:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                              description: Identificador único da conta financeira
                            banco:
                              type: string
                              description: Instituição bancária
                            codigo_banco:
                              type: integer
                              description: Código da instituição bancária
                            nome:
                              type: string
                              description: Nome da conta financeira
                            ativo:
                              type: boolean
                              description: Indica se a conta está ativa
                            tipo:
                              type: string
                              description: Tipo da conta
                              enum:
                                - APLICACAO
                                - CAIXINHA
                                - CONTA_CORRENTE
                                - CARTAO_CREDITO
                                - INVESTIMENTO
                                - OUTROS
                                - MEIOS_RECEBIMENTO
                                - POUPANCA
                                - COBRANCAS_CONTA_AZUL
                                - RECEBA_FACIL_CARTAO
                            conta_padrao:
                              type: boolean
                              description: Indica se é a conta padrão
                            possui_config_boleto_bancario:
                              type: boolean
                              description: >-
                                Indica se a conta possui configuração de boleto
                                bancário
                            agencia:
                              type: string
                              description: Agência da conta
                            numero:
                              type: string
                              description: Número da conta
                        id_reconciliacao:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        id_parcela:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        id_solicitacao_cobranca:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        observacao:
                          type: string
                          example: bla
                        metodo_pagamento:
                          type: string
                          example: DEPOSITO_BANCARIO
                          enum:
                            - DINHEIRO
                            - CARTAO_CREDITO
                            - BOLETO_BANCARIO
                            - CARTAO_CREDITO_VIA_LINK
                            - CHEQUE
                            - CARTAO_DEBITO
                            - TRANSFERENCIA_BANCARIA
                            - OUTRO
                            - CARTEIRA_DIGITAL
                            - CASHBACK
                            - CREDITO_LOJA
                            - CREDITO_VIRTUA
                            - DEPOSITO_BANCARIO
                            - PIX_PAGAMENTO_INSTANTANEO
                            - PROGRAMA_FIDELIDADE
                            - SEM_PAGAMENTO
                            - VALE_ALIMENTACAO
                            - VALE_COMBUSTIVEL
                            - VALE_PRESENTE
                            - VALE_REFEICAO
                            - PIX_COBRANCA
                            - DEBITO_AUTOMATICO
                        origem:
                          type: string
                          example: LANCAMENTO_FINANCEIRO
                          enum:
                            - LANCAMENTO_FINANCEIRO
                            - DAS
                            - FOLHA
                            - TRANSFERENCIA
                            - SALDO_CONTA_BANCARIA
                            - VENDA
                            - COMPRA
                            - VENDA_AGENDADA
                            - COMPRA_AGENDADA
                            - IMPORTACAO_DOCUMENTO
                            - IMPOSTO_RETIDO
                            - SIC
                            - NOTA_COMPRA
                            - ANTECIPACAO
                            - RENEGOCIACAO
                            - HONORARIOS_CONTABEIS
                        id_recibo_digital:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        tipo_evento_financeiro:
                          type: string
                          example: RECEITA
                        nsu:
                          type: string
                          example: null
                        id_referencia:
                          type: string
                          example: null
                        atualizado_em:
                          type: string
                          format: date-time
                          example: 01/01/2030
                        anexos:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                              referencia:
                                type: string
                                example: bla
                              nome:
                                type: string
                                example: bla
                              descricao:
                                type: string
                                example: bla
                              tipo:
                                type: string
                                example: RECIBO_DIGITAL
                                enum:
                                  - RECIBO_DIGITAL
                                  - RECIBO
                              tipo_conteudo:
                                type: string
                                example: FILE
                                enum:
                                  - FILE
                                  - URL
                              url:
                                type: string
                                example: www.example.com
                  anexos:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          format: int64
                          example: 1
                        descricao:
                          type: string
                          example: bla bla
                        nome:
                          type: string
                          example: nome
                        url:
                          type: string
                          example: www.exemplo.com
                        tipo_conteudo:
                          type: string
                          example: URL
                        referencia:
                          type: string
                          example: alguma referencia
                        tipo_anexo:
                          type: string
                          example: BOLETO_BANCARIO
                          enum:
                            - BOLETO_BANCARIO_RFB
                            - BOLETO_BANCARIO
                            - RECIBO
                            - FATURA
                            - OUTROS
                            - RECIBO_DIGITAL
                        id_parcela:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  solicitacoes_cobrancas:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          format: int64
                        status_solicitacao_cobranca:
                          type: string
                          example: AGUARDANDO_CONFIRMACAO
                          enum:
                            - AGUARDANDO_CONFIRMACAO
                            - EM_CANCELAMENTO
                            - REGISTRADO
                            - QUITADO
                            - CANCELADO
                            - INVALIDO
                            - EXPIRADO
                            - FALHA_EMISSAO
                            - FALHA_CANCELAR
                            - REMESSA_GERADO
                            - REMESSA_PENDENTE
                            - PAGO
                            - EXTORNADO
                        valor_composicao:
                          type: object
                          properties:
                            multa:
                              type: number
                              format: double
                              example: 10
                            juros:
                              type: number
                              format: double
                              example: 1
                            valor_bruto:
                              type: number
                              format: double
                              example: 20
                            desconto:
                              type: number
                              format: double
                              example: 0.1
                            taxa:
                              type: number
                              format: double
                              example: 0.03
                            valor_liquido:
                              type: number
                              format: double
                              example: 9
                        data_vencimento:
                          type: string
                          format: date
                        data_quitacao:
                          type: string
                          format: date
                          example: 01/01/2030
                        tipo_solicitacao_cobranca:
                          type: string
                          example: BOLETO
                          enum:
                            - BOLETO
                            - LINK_PAGAMENTO
                            - BOLETO_REGISTRADO
                            - PIX_COBRANCA
                        id_cliente:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        id_referencia:
                          type: string
                          example: id_referencia
                        url:
                          type: string
                          example: www.exemple.com
                        detalhe_erro:
                          type: string
                          example: bla bla
                        conta_financeira:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                              description: Identificador único da conta financeira
                            banco:
                              type: string
                              description: Instituição bancária
                            codigo_banco:
                              type: integer
                              description: Código da instituição bancária
                            nome:
                              type: string
                              description: Nome da conta financeira
                            ativo:
                              type: boolean
                              description: Indica se a conta está ativa
                            tipo:
                              type: string
                              description: Tipo da conta
                              enum:
                                - APLICACAO
                                - CAIXINHA
                                - CONTA_CORRENTE
                                - CARTAO_CREDITO
                                - INVESTIMENTO
                                - OUTROS
                                - MEIOS_RECEBIMENTO
                                - POUPANCA
                                - COBRANCAS_CONTA_AZUL
                                - RECEBA_FACIL_CARTAO
                            conta_padrao:
                              type: boolean
                              description: Indica se é a conta padrão
                            possui_config_boleto_bancario:
                              type: boolean
                              description: >-
                                Indica se a conta possui configuração de boleto
                                bancário
                            agencia:
                              type: string
                              description: Agência da conta
                            numero:
                              type: string
                              description: Número da conta
                        notificacao_cobranca:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                            solicitacao_cobranca_ids:
                              type: array
                              items:
                                type: string
                                format: uuid
                            versao:
                              type: integer
                              format: int64
                            enviado_em:
                              type: string
                              format: date
                              example: 01/01/2030
                            aberto_em:
                              type: string
                              format: date
                              example: 01/01/2030
                            itens_notificacao_cobranca:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                                  versao:
                                    type: integer
                                    format: int64
                                    example: 1
                                  email:
                                    type: string
                                    example: fulano@email.com
                                  sms:
                                    type: string
                                    example: bla bla bla
                                  whatsapp:
                                    type: string
                                    example: bla bla bla
                                  status_entrega:
                                    type: string
                                    example: ENVIADO
                                    enum:
                                      - ENVIADO
                                      - INVALIDO
                            assunto:
                              type: string
                              example: bla bla bla
                            corpo:
                              type: string
                              example: bla bla bla
                            respondido_para:
                              type: string
                              example: fulano@email.com
                            agendado:
                              type: boolean
                              example: false
                            auto_notificacao:
                              type: boolean
                              example: false
                            envio_instantaneo:
                              type: boolean
                              example: false
                        confirmado_em:
                          type: string
                          format: date
                          example: 01/01/2030
                        descricao:
                          type: string
                          example: bla bla bla
                        referencia_externa:
                          type: string
                          example: bla bla bla
                        recuperado:
                          type: boolean
                          example: false
                        combinado:
                          type: boolean
                          example: false
                        atributos_personalizados:
                          type: string
                  id_ultima_solicitacao_pagamento:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  id_boleto_bancario_autorizado:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  fatura:
                    type: object
                    properties:
                      numero:
                        type: integer
                        format: int64
                        example: 123
                      rps:
                        type: integer
                        format: int64
                        example: 1
                      tipo_fatura:
                        type: string
                        example: NFE
                        enum:
                          - NFE
                          - NFSE
                          - NFCE
                  valor_total_liquido:
                    type: number
                    format: double
                    example: 10
                  id_ultimo_solicitacao_cobranca:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      tags:
        - Financeiro
    patch:
      summary: Atualiza as informações de uma parcela
      description: >-
        Atualiza as informações de uma parcela do evento financeiro. - Sempre
        deverá ser enviado o campo VERSÃO com o valor atualizado do registro. -
        Não é necessário o envio do objeto inteiro, apenas os campos que serão
        atualizados.
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            format: uuid
            example: 9986f173-f531-4660-96ae-04b71c879264
      requestBody:
        description: Campos aceitos para atualização da parcela
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - versao
              properties:
                nota:
                  type: string
                  example: Nota da parcela
                descricao:
                  type: string
                  example: Descrição da parcela
                vencimento:
                  type: string
                  format: date
                  example: '2024-07-15'
                composicao_valor:
                  type: object
                  required:
                    - valor_bruto
                  properties:
                    multa:
                      type: number
                      example: 100.25
                      description: Valor da multa.
                    juros:
                      type: number
                      example: 1.5
                      description: Valor dos juros.
                    valor_bruto:
                      type: number
                      example: 275.99
                      description: Valor bruto da parcela é obrigatório.
                    valor_liquido:
                      type: number
                      example: 250.33
                      description: Valor líquido da parcela.
                    desconto:
                      type: number
                      example: 2.1
                      description: Valor do desconto.
                    taxa:
                      type: number
                      example: 4.4
                      description: Valor da taxa.
                versao:
                  type: integer
                  example: 1
                  description: Sempre enviar o valor atual da versão.
                data_pagamento_esperado:
                  type: string
                  format: date
                  example: '2024-07-15'
                metodo_pagamento:
                  type: string
                  example: CARTAO_CREDITO
                  enum:
                    - DINHEIRO
                    - CARTAO_CREDITO
                    - BOLETO_BANCARIO
                    - CARTAO_CREDITO_VIA_LINK
                    - CHEQUE
                    - CARTAO_DEBITO
                    - TRANSFERENCIA_BANCARIA
                    - OUTRO
                    - CARTEIRA_DIGITAL
                    - CASHBACK
                    - CREDITO_LOJA
                    - CREDITO_VIRTUA
                    - DEPOSITO_BANCARIO
                    - PIX_PAGAMENTO_INSTANTANEO
                    - PROGRAMA_FIDELIDADE
                    - SEM_PAGAMENTO
                    - VALE_ALIMENTACAO
                    - VALE_COMBUSTIVEL
                    - VALE_PRESENTE
                    - VALE_REFEICAO
                    - PIX_COBRANCA
                    - DEBITO_AUTOMATICO
                perda:
                  type: object
                  properties:
                    data:
                      type: string
                      format: date
                      example: '2024-07-15'
                    valor:
                      type: number
                      example: 1.99
                nsu:
                  type: string
                  example: 1029384756
                pagamento_agendado:
                  type: boolean
                  example: false
                id_conta_financeira:
                  type: string
                  format: uuid
                  example: e12a84ed-fb5c-4b8c-af56-4448b947337c
      responses:
        '200':
          description: Operação realizada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  nota:
                    type: string
                    example: Nota da parcela
                  descricao:
                    type: string
                    example: Descrição da parcela
                  vencimento:
                    type: string
                    format: date
                    example: '2024-07-15'
                  composicao_valor:
                    type: object
                    required:
                      - valor_bruto
                    properties:
                      multa:
                        type: number
                        example: 100.25
                        description: Valor da multa.
                      juros:
                        type: number
                        example: 1.5
                        description: Valor dos juros.
                      valor_bruto:
                        type: number
                        example: 275.99
                        description: Valor bruto da parcela é obrigatório.
                      valor_liquido:
                        type: number
                        example: 250.33
                        description: Valor líquido da parcela.
                      desconto:
                        type: number
                        example: 2.1
                        description: Valor do desconto.
                      taxa:
                        type: number
                        example: 4.4
                        description: Valor da taxa.
                  versao:
                    type: integer
                    example: 1
                    description: Nova versão da parcela após salva as alterações.
                  data_pagamento_esperado:
                    type: string
                    format: date
                    example: '2024-07-15'
                  metodo_pagamento:
                    type: string
                    example: CARTAO_CREDITO
                    enum:
                      - DINHEIRO
                      - CARTAO_CREDITO
                      - BOLETO_BANCARIO
                      - CARTAO_CREDITO_VIA_LINK
                      - CHEQUE
                      - CARTAO_DEBITO
                      - TRANSFERENCIA_BANCARIA
                      - OUTRO
                      - CARTEIRA_DIGITAL
                      - CASHBACK
                      - CREDITO_LOJA
                      - CREDITO_VIRTUA
                      - DEPOSITO_BANCARIO
                      - PIX_PAGAMENTO_INSTANTANEO
                      - PROGRAMA_FIDELIDADE
                      - SEM_PAGAMENTO
                      - VALE_ALIMENTACAO
                      - VALE_COMBUSTIVEL
                      - VALE_PRESENTE
                      - VALE_REFEICAO
                      - PIX_COBRANCA
                      - DEBITO_AUTOMATICO
                  perda:
                    type: object
                    properties:
                      data:
                        type: string
                        format: date
                        example: '2024-07-15'
                      valor:
                        type: number
                        example: 1.99
                  nsu:
                    type: string
                    example: 1029384756
                  pagamento_agendado:
                    type: boolean
                    example: false
                  conta_financeira:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: 6bac0a7f-0422-48a9-86ea-0b1f0a6f9db9
                      versao:
                        type: integer
                        example: 1
                      nome:
                        type: string
                        example: Nome do banco
                      agencia:
                        type: string
                        example: 1
                      numero:
                        type: string
                        example: 123
                      tipo:
                        type: string
                        example: OUTROS
                        enum:
                          - APLICACAO
                          - CAIXINHA
                          - CONTA_CORRENTE
                          - CARTAO_CREDITO
                          - INVESTIMENTO
                          - OUTROS
                          - MEIOS_RECEBIMENTO
                          - POUPANCA
                          - COBRANCAS_CONTA_AZUL
                          - RECEBA_FACIL_CARTAO
                      banco:
                        type: string
                        example: OUTROS
                        enum:
                          - BANCO_BRASIL
                          - BRADESCO
                          - CAIXA_ECONOMICA
                          - HSBC
                          - ITAU
                          - INTER
                          - ORIGINAL
                          - SANTANDER
                          - BANCOOB
                          - BANESTES
                          - BANPARA
                          - BANRISUL
                          - BCN
                          - BANK_BOSTON
                          - BANCO_BRASILIA
                          - BANCO_NORDESTE
                          - CITIBANK
                          - CREDISAN
                          - NOSSA_CAIXA
                          - MERCANTIL
                          - REAL
                          - SAFRA
                          - SICREDI
                          - SUDAMERIS
                          - UNIBANCO
                          - SICOOB
                          - AILOS
                          - BS2
                          - NUBANK
                          - UNICRED
                          - NEON
                          - C6
                          - CORA
                          - ACESSO
                          - STONE
                          - AGIBANK
                          - ASAAS
                          - TOPAZIO
                          - DAYCOVAL
                          - BANCO_AMAZONIA
                          - BANESE
                          - BTG_PACTUAL
                          - OMNI
                          - GENIAL
                          - CAPITAL
                          - RIBEIRAO_PRETO
                          - PAN
                          - BMG
                          - BNP_PARIBAS_BRASIL
                          - CCR_SAO_MIGUEL_OESTE
                          - CREDISIS
                          - CRESOL
                          - FITBANK
                          - GERENCIANET
                          - GLOBAL_SCM
                          - JP_MORGAN
                          - JUNO
                          - MERCADO_PAGO
                          - MODAL
                          - MONEY_PLUS
                          - NEXT
                          - OTIMO
                          - PAGSEGURO
                          - PICPAY
                          - PJBANK
                          - POLOCRED
                          - RENDIMENTO
                          - UNIPRIME
                          - UNIPRIME_NORTE_PARANA
                          - VORTX_DTVM
                          - BRL_TRUST
                          - IUGU
                          - OUTROS
                          - NAO_BANCO
      tags:
        - Financeiro
  /v1/produto/busca:
    post:
      summary: Obter produtos por filtro
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - status
              properties:
                busca:
                  type: string
                  example: exemplo de busca
                status:
                  type: string
                  enum:
                    - ATIVO
                    - INATIVO
                    - TODOS
                  example: ATIVO
                intervalo_valor_venda:
                  type: object
                  properties:
                    min:
                      type: number
                      format: double
                      example: 10
                    max:
                      type: number
                      format: double
                      example: 100
      parameters:
        - name: pagina
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: tamanho_pagina
          in: query
          required: false
          schema:
            type: integer
            default: 10
        - name: campo_ordenacao
          in: query
          required: false
          schema:
            type: string
            default: NOME
            enum:
              - NOME
              - CODIGO
              - VALOR_VENDA
              - ESTOQUE
        - name: direcao_ordenacao
          in: query
          required: false
          description: Direção da ordenação (ASC para ascendente, DESC para descendente).
          schema:
            type: string
            default: ASC
            enum:
              - ASC
              - DESC
      responses:
        '200':
          description: Resposta bem-sucedida
          content:
            application/json:
              schema:
                type: object
                properties:
                  itens:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 34471cce-67a2-48b8-a526-1120c0704ed3
                        id_legado:
                          type: integer
                          description: ID Legado do produto.
                          example: 12345
                        nome:
                          type: string
                          description: Nome do Produto.
                          example: Produto Exemplo
                        codigo_sku:
                          type: string
                          description: Código SKU.
                          example: SKU123456
                        codigo_ean:
                          type: string
                          description: Código EAN.
                          example: '1234567890123'
                        tipo:
                          type: string
                          description: Tipo do produto.
                          example: VARIACAO
                          enum:
                            - PRODUTO
                            - VARIACAO
                            - KIT_PRODUTOS
                        status:
                          type: string
                          description: Status do produto
                          example: ATIVO
                          enum:
                            - ATIVO
                            - INATIVO
                            - TODOS
                        estoque:
                          type: number
                          format: double
                          description: Estoque.
                          example: 50
                        valor_venda:
                          type: number
                          format: double
                          description: Valor de venda.
                          example: 99.99
                        custo_medio:
                          type: number
                          format: double
                          description: Custo médio.
                          example: 50
                        filhos:
                          type: array
                          description: Lista de produtos filhos.
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                                example: 34471cce-67a2-48b8-a526-1120c0704ed3
                              id_legado:
                                type: integer
                                description: ID Legado do produto.
                                example: 12345
                              nome:
                                type: string
                                description: Nome do Produto.
                                example: Produto Exemplo
                              codigo_sku:
                                type: string
                                description: Código SKU.
                                example: SKU123456
                              codigo_ean:
                                type: string
                                description: Código EAN.
                                example: '1234567890123'
                              tipo:
                                type: string
                                description: Tipo do produto.
                                example: VARIACAO
                                enum:
                                  - PRODUTO
                                  - VARIACAO
                                  - KIT_PRODUTOS
                              status:
                                type: string
                                description: Status do produto
                                example: ATIVO
                                enum:
                                  - ATIVO
                                  - INATIVO
                                  - TODOS
                              estoque:
                                type: number
                                format: double
                                description: Estoque.
                                example: 50
                              valor_venda:
                                type: number
                                format: double
                                description: Valor de venda.
                                example: 99.99
                              custo_medio:
                                type: number
                                format: double
                                description: Custo médio.
                                example: 50
                              filhos:
                                type: array
                                description: >-
                                  Lista de produtos filhos. Neste nível retorna
                                  vazio.
                                items: {}
                              variacao:
                                type: integer
                                description: >-
                                  Quantidade de filhos/variações. Neste nível
                                  retorna 0.
                                example: 0
                              nivel_estoque:
                                type: string
                                description: Nível do estoque
                                example: MINIMO
                                enum:
                                  - MINIMO
                                  - MAXIMO
                                  - PADRAO
                              estoque_minimo:
                                type: number
                                format: double
                                description: Estoque mínimo.
                                example: 10
                              estoque_maximo:
                                type: number
                                format: double
                                description: Estoque máximo.
                                example: 200
                              movimentado:
                                type: boolean
                                description: Indica se o produto foi movimentado
                                example: true
                              id_pai:
                                type: string
                                format: uuid
                                description: ID do produto pai
                                example: null
                              integracao_ecommerce_ativa:
                                type: boolean
                                description: >-
                                  Indica se a integração com o e-commerce está
                                  ativa.
                                example: true
                          example:
                            - id: 123e4567-e89b-12d3-a456-426614174000
                              id_legado: 12345
                              nome: Produto Filho 1
                              codigo_sku: SKU123456
                              codigo_ean: '1234567890123'
                              tipo: PRODUTO
                              status: ATIVO
                              estoque: 20
                              valor_venda: 49.99
                              custo_medio: 25
                              filhos: []
                              variacao: 0
                              nivel_estoque: MINIMO
                              estoque_minimo: 5
                              estoque_maximo: 100
                              movimentado: true
                              id_pai: 34471cce-67a2-48b8-a526-1120c0704ed3
                              integracao_ecommerce_ativa: true
                            - id: 123e4567-e89b-12d3-a456-426614174001
                              id_legado: 12346
                              nome: Produto Filho 2
                              codigo_sku: SKU123457
                              codigo_ean: '1234567890124'
                              tipo: VARIACAO
                              status: INATIVO
                              estoque: 10
                              valor_venda: 29.99
                              custo_medio: 15
                              filhos: []
                              variacao: 0
                              nivel_estoque: MAXIMO
                              estoque_minimo: 2
                              estoque_maximo: 50
                              movimentado: false
                              id_pai: 34471cce-67a2-48b8-a526-1120c0704ed3
                              integracao_ecommerce_ativa: false
                        variacao:
                          type: integer
                          description: Quantidade de filhos/variações.
                          example: 2
                        nivel_estoque:
                          type: string
                          description: Nível do estoque
                          example: MINIMO
                          enum:
                            - MINIMO
                            - MAXIMO
                            - PADRAO
                        estoque_minimo:
                          type: number
                          format: double
                          description: Estoque mínimo.
                          example: 10
                        estoque_maximo:
                          type: number
                          format: double
                          description: Estoque máximo.
                          example: 200
                        movimentado:
                          type: boolean
                          description: Indica se o produto foi movimentado
                          example: true
                        id_pai:
                          type: string
                          format: uuid
                          description: ID do produto pai
                          example: null
                        integracao_ecommerce_ativa:
                          type: boolean
                          description: Indica se a integração com o e-commerce está ativa.
                          example: true
                  itens_totais:
                    type: integer
                    example: 1
      tags:
        - Produto
  /v1/produto:
    post:
      summary: Criar um novo produto
      requestBody:
        description: >-
          Ao cadastrar um novo produto, deve-se observar o formato do produto.
          Caso o formato seja VARIACAO, o item "variação" é obrigatório.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nome:
                  type: string
                  example: Nome do Produto
                codigo_sku:
                  type: string
                  example: SKU12345
                codigo_ean:
                  type: string
                  example: '1234567890123'
                observacao:
                  type: string
                  example: Descrição do produto
                formato:
                  type: string
                  example: VARIACAO
                  enum:
                    - SIMPLES
                    - VARIACAO
                estoque:
                  type: object
                  properties:
                    quantidade:
                      type: integer
                      example: 100
                    localizacao:
                      type: string
                      example: Armazém A
                dimensao:
                  type: object
                  properties:
                    altura:
                      type: number
                      format: double
                      example: 10
                    largura:
                      type: number
                      format: double
                      example: 5
                    profundidade:
                      type: number
                      format: double
                      example: 2
                variacao:
                  type: object
                  required:
                    - tipos
                    - produtos
                  properties:
                    tipos:
                      description: >-
                        O tipo deve conter pelo menos uma opção. Que será
                        utilizada para criar as variações do produto.
                      type: array
                      items:
                        type: object
                        required:
                          - descricao
                          - opcoes
                        properties:
                          descricao:
                            type: string
                            example: Tamanho
                          opcoes:
                            type: array
                            items:
                              type: object
                              required:
                                - id
                                - descricao
                              properties:
                                id:
                                  description: >-
                                    Identificador único da opção de variação é
                                    obrigatório. Cada opção de variação deve ter
                                    um identificador único em cada cadastro de
                                    produto. Ao informar a variação no produto,
                                    o mesmo identificador do elemento
                                    tipos.opcoes deve ser informado em
                                    produtos.opcoes.
                                  type: string
                                  format: uuid
                                  example: 123e4567-e89b-12d3-a456-426614174000
                                descricao:
                                  description: >-
                                    Descrição da opção de variação é
                                    obrigatório.
                                  type: string
                                  example: G
                    produtos:
                      type: array
                      description: >-
                        O produto deve conter pelo menos uma opção. Cada item
                        conterá os dados do produto e as opções de variação.
                      items:
                        type: object
                        required:
                          - nome
                          - codigo
                          - estoque
                          - opcoes
                        properties:
                          nome:
                            type: string
                            example: Produto Variado - Tamanho G
                          codigo:
                            type: string
                            example: PROD123
                          codigo_ean:
                            type: string
                            example: '1234567890123'
                          versao:
                            type: integer
                            example: 1
                          valor_venda:
                            type: number
                            format: double
                            example: 99.99
                          estoque:
                            type: number
                            format: double
                            example: 50
                          opcoes:
                            type: array
                            items:
                              type: object
                              required:
                                - id
                                - descricao
                              properties:
                                id:
                                  description: >-
                                    Identificador único da opção de variação é
                                    obrigatório. Cada opção de variação deve ter
                                    um identificador único em cada cadastro de
                                    produto. Ao informar a variação no produto,
                                    o mesmo identificador do elemento
                                    tipos.opcoes deve ser informado em
                                    produtos.opcoes.
                                  type: string
                                  format: uuid
                                  example: 123e4567-e89b-12d3-a456-426614174000
                                descricao:
                                  description: >-
                                    Descrição da opção de variação é
                                    obrigatório.
                                  type: string
                                  example: G
      responses:
        '200':
          description: Produto criado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  identificador_legado:
                    type: string
                    example: legacy-id-123
                  ativo:
                    type: boolean
                    example: true
                  versao:
                    type: integer
                    example: 1
                  nome:
                    type: string
                    example: Nome do Produto
                  codigo_sku:
                    type: string
                    example: PROD123
                  codigo_ean:
                    type: string
                    example: '1234567890123'
                  observacao:
                    type: string
                    example: Descrição do Produto
                  status:
                    type: string
                    description: Status do produto
                    example: ATIVO
                    enum:
                      - ATIVO
                      - INATIVO
                  formato:
                    type: string
                    example: VARIACAO
                    description: Formato do produto.
                    enum:
                      - SIMPLES
                      - VARIACAO
                  estoque:
                    type: object
                    properties:
                      estoque_total:
                        type: number
                        format: double
                        example: 100
                      valor_venda:
                        type: number
                        format: double
                        example: 99.99
                      custo_medio:
                        type: number
                        format: double
                        example: 50
                      estoque_disponivel:
                        type: number
                        format: double
                        example: 80
                      estoque_minimo:
                        type: number
                        format: double
                        example: 10
                      estoque_maximo:
                        type: number
                        format: double
                        example: 200
                  dimensoes:
                    type: object
                    properties:
                      altura:
                        type: number
                        format: double
                        example: 10
                      largura:
                        type: number
                        format: double
                        example: 5
                      profundidade:
                        type: number
                        format: double
                        example: 2
                  ecommerce:
                    type: object
                    properties:
                      condicao:
                        type: string
                        example: NOVO
                        enum:
                          - NOVO
                          - USADO
                      integracao_ativa:
                        type: boolean
                        example: true
                      descricao_adicional:
                        type: string
                        example: Descrição adicional do produto
                      titulo_seo:
                        type: string
                        example: Título SEO
                      descricao_seo:
                        type: string
                        example: Descrição SEO
                      url_seo:
                        type: string
                        example: url-seo
                  variacao:
                    type: object
                    properties:
                      tipos:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 123e4567-e89b-12d3-a456-426614174000
                            descricao:
                              type: string
                              example: Tamanho
                            opcoes:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    example: 123e4567-e89b-12d3-a456-426614174000
                                  descricao:
                                    type: string
                                    example: G
                      produtos:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 123e4567-e89b-12d3-a456-426614174000
                            nome:
                              type: string
                              example: Produto Variado - Tamanho G
                            codigo:
                              type: string
                              example: PROD123
                            codigo_ean:
                              type: string
                              example: '1234567890123'
                            versao:
                              type: integer
                              example: 1
                            valor_venda:
                              type: number
                              format: double
                              example: 99.99
                            estoque:
                              type: number
                              format: double
                              example: 50
                            opcoes:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    example: 123e4567-e89b-12d3-a456-426614174000
                                  descricao:
                                    type: string
                                    example: G
      tags:
        - Produto
  /v1/produto/{id}:
    put:
      summary: Atualizar um produto existente
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ativo:
                  type: boolean
                  example: true
                versao:
                  type: integer
                  example: 1
                nome:
                  type: string
                  example: Nome do Produto Atualizado
                codigo:
                  type: string
                  example: PROD123
                codigo_ean:
                  type: string
                  example: '1234567890123'
                observacao:
                  type: string
                  example: Descrição do Produto Atualizada
                status:
                  type: string
                  example: ATIVO
                  description: Status do produto
                  enum:
                    - ATIVO
                    - INATIVO
                formato:
                  type: string
                  example: VARIACAO
                  enum:
                    - SIMPLES
                    - VARIACAO
                grupo:
                  type: object
                  properties:
                    id:
                      type: number
                      example: 14689
                    name:
                      type: string
                      example: Categoria de Produto
                    uuid:
                      type: string
                      format: uuid
                      example: 34471cce-67a2-48b8-a526-1120c0704ed3
                estoque:
                  type: object
                  properties:
                    estoque_reservado:
                      type: number
                      format: double
                      example: 0
                    estoque_total:
                      type: number
                      format: double
                      example: 100
                    valor_venda:
                      type: number
                      format: double
                      example: 99.99
                    custo_medio:
                      type: number
                      format: double
                      example: 50
                    estoque_disponivel:
                      type: number
                      format: double
                      example: 75
                fiscal:
                  type: object
                  properties:
                    unidade_medida:
                      type: object
                      properties:
                        id:
                          type: number
                          example: 8161
                        descricao:
                          type: string
                          example: Un
                dimensao:
                  type: object
                  properties:
                    altura:
                      type: number
                      format: double
                      example: 10
                    largura:
                      type: number
                      format: double
                      example: 5
                    profundidade:
                      type: number
                      format: double
                      example: 2
                ecommerce:
                  type: object
                  properties:
                    condicao:
                      type: string
                      example: NOVO
                      enum:
                        - NOVO
                        - USADO
                    integracao_habilitada:
                      type: boolean
                      example: false
                    observacao_adicional:
                      type: string
                      example: Descrição adicional....
                    titulo_seo:
                      type: string
                      example: Produto 1.0
                    descricao:
                      type: string
                      example: Lorem ipsum
                    url_seo:
                      type: string
                      example: produto-x-1-0
      responses:
        '200':
          description: Produto atualizado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  identificador_legado:
                    type: string
                    example: legacy-id-123
                  ativo:
                    type: boolean
                    example: true
                  versao:
                    type: integer
                    example: 1
                  nome:
                    type: string
                    example: Nome do Produto
                  codigo_sku:
                    type: string
                    example: PROD123
                  codigo_ean:
                    type: string
                    example: '1234567890123'
                  observacao:
                    type: string
                    example: Descrição do Produto
                  status:
                    type: string
                    description: Status do produto
                    example: ATIVO
                    enum:
                      - ATIVO
                      - INATIVO
                  formato:
                    type: string
                    example: VARIACAO
                    description: Formato do produto.
                    enum:
                      - SIMPLES
                      - VARIACAO
                  estoque:
                    type: object
                    properties:
                      estoque_total:
                        type: number
                        format: double
                        example: 100
                      valor_venda:
                        type: number
                        format: double
                        example: 99.99
                      custo_medio:
                        type: number
                        format: double
                        example: 50
                      estoque_disponivel:
                        type: number
                        format: double
                        example: 80
                      estoque_minimo:
                        type: number
                        format: double
                        example: 10
                      estoque_maximo:
                        type: number
                        format: double
                        example: 200
                  dimensoes:
                    type: object
                    properties:
                      altura:
                        type: number
                        format: double
                        example: 10
                      largura:
                        type: number
                        format: double
                        example: 5
                      profundidade:
                        type: number
                        format: double
                        example: 2
                  ecommerce:
                    type: object
                    properties:
                      condicao:
                        type: string
                        example: NOVO
                        enum:
                          - NOVO
                          - USADO
                      integracao_ativa:
                        type: boolean
                        example: true
                      descricao_adicional:
                        type: string
                        example: Descrição adicional do produto
                      titulo_seo:
                        type: string
                        example: Título SEO
                      descricao_seo:
                        type: string
                        example: Descrição SEO
                      url_seo:
                        type: string
                        example: url-seo
                  variacao:
                    type: object
                    properties:
                      tipos:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 123e4567-e89b-12d3-a456-426614174000
                            descricao:
                              type: string
                              example: Tamanho
                            opcoes:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    example: 123e4567-e89b-12d3-a456-426614174000
                                  descricao:
                                    type: string
                                    example: G
                      produtos:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              example: 123e4567-e89b-12d3-a456-426614174000
                            nome:
                              type: string
                              example: Produto Variado - Tamanho G
                            codigo:
                              type: string
                              example: PROD123
                            codigo_ean:
                              type: string
                              example: '1234567890123'
                            versao:
                              type: integer
                              example: 1
                            valor_venda:
                              type: number
                              format: double
                              example: 99.99
                            estoque:
                              type: number
                              format: double
                              example: 50
                            opcoes:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    example: 123e4567-e89b-12d3-a456-426614174000
                                  descricao:
                                    type: string
                                    example: G
      tags:
        - Produto
    delete:
      summary: Excluir um produto existente
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '204':
          description: Produto excluído com sucesso
        '404':
          description: Produto não encontrado
      tags:
        - Produto
  /v1/produto/desativar:
    post:
      summary: Desativar produtos
      description: Desativa uma lista de produtos pelo ID.
      operationId: deactivateProducts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                description: Lista de IDs dos produtos a serem desativados.
                type: string
                format: uuid
              example:
                - 123e4567-e89b-12d3-a456-426614174000
                - 34471cce-67a2-48b8-a526-1120c0704ed3
      responses:
        '200':
          description: Produtos desativados com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  todos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    description: Lista de todos os produtos.
                  produtos_desativados:
                    type: array
                    items:
                      type: string
                      format: uuid
                    description: Lista de produtos desativados.
        '400':
          description: Requisição inválida.
        '500':
          description: Erro interno do servidor.
      tags:
        - Produto
  /v1/pessoa:
    get:
      summary: Lista registros de pessoas
      description: >-
        Retorna uma lista de registros de pessoas com base nos filtros
        fornecidos.
      operationId: listPersons
      parameters:
        - name: pagina
          in: query
          required: false
          schema:
            type: integer
            default: 1
          description: Número da página a ser retornada.
        - name: tamanho_pagina
          in: query
          required: false
          schema:
            type: integer
            default: 10
          description: Número de registros por página.
        - name: termo_busca
          in: query
          required: false
          schema:
            type: string
          description: >-
            Termo de busca para filtrar os registros. A busca será feita no
            campo de documento, nome do cliente e nome da empresa.
        - name: documento[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de documentos para filtrar os registros.
        - name: inscricao_estadual[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de inscrições estaduais para filtrar os registros.
        - name: inscricao_municipal[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de inscrições municipais para filtrar os registros.
        - name: pais[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de nome de países para filtrar os registros.
        - name: cidade[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de nomes de cidades para filtrar os registros.
        - name: uf[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de sigla de estados para filtrar os registros.
        - name: codigo_identificador[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
          description: Lista de códigos identificadores para filtrar os registros.
        - name: tipo_pessoa[]
          in: query
          required: false
          schema:
            type: array
            items:
              type: string
            enum:
              - FISICA
              - JURIDICA
              - ESTRANGEIRA
          description: Lista de tipos de pessoa para filtrar os registros.
        - name: data_ativacao_inicio
          in: query
          required: false
          schema:
            type: string
            format: date
            example: '2021-01-31T00:00:00.000Z'
          description: >-
            Data de início da ativação. Também deve ser informada a
            data_ativacao_fim para efetuar a busca.
        - name: data_ativacao_fim
          in: query
          required: false
          schema:
            type: string
            format: date
            example: '2021-01-31T00:00:00.000Z'
          description: >-
            Data de fim da ativação. Também deve ser informada a
            data_ativacao_inicio para efetuar a busca.
        - name: tipo_perfil
          in: query
          description: >-
            Tipo do perfil da pessoa, indicando se é cliente, fornecedor e/ou
            transportadora.
          required: false
          schema:
            type: string
            enum:
              - CLIENTE
              - FORNECEDOR
              - TRANSPORTADORA
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - ATIVO
              - INATIVO
              - TODOS
          description: Status da pessoa para filtrar os registros.
      responses:
        '200':
          description: Operação realizada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da pessoa
                  nome:
                    type: string
                    example: John Doe
                    description: Nome da pessoa
                  documento:
                    type: string
                    example: '12345678901'
                    description: Documento da pessoa
                  inscricao_estadual:
                    type: string
                    example: '12345678901'
                    description: Inscrição estadual da pessoa
                  email:
                    type: string
                    format: email
                    example: email@email.com
                    description: Email da pessoa
                  telefone:
                    type: string
                    example: '12345678901'
                    description: Telefone da pessoa
                  ativo:
                    type: boolean
                    example: true
                    description: Indica se a pessoa está ativa
                  id_legado:
                    type: integer
                    format: int64
                    example: 123
                    description: Identificador legado da pessoa
                  uuid_legado:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador do cadastro legado da pessoa
                  perfis:
                    type: array
                    items:
                      type: string
                    example:
                      - Cliente
                    description: Lista de perfis da pessoa
                  tipo_pessoa:
                    type: string
                    example: FISICA
                    description: Tipo de pessoa
                    enum:
                      - FISICA
                      - JURIDICA
                      - ESTRANGEIRA
                  endereco:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        description: Identificardor único para endereço
                      cep:
                        type: string
                        example: '12345678'
                        description: CEP do endereço
                      logradouro:
                        type: string
                        example: nome da rua
                        description: Logradouro do endereço
                      numero:
                        type: string
                        example: '123'
                        description: Número do endereço
                      complemento:
                        type: string
                        example: apartmento 123
                        description: Complemento do endereço
                      bairro:
                        type: string
                        example: Nome do bairro
                        description: Bairro do endereço
                      id_cidade:
                        type: integer
                        format: int64
                        description: Id da cidade
                      cidade:
                        type: string
                        example: Nome da cidade
                        description: Nome da cidade
                      estado:
                        type: string
                        example: Nome do estado
                        description: Nome do estado
                      pais:
                        type: string
                        example: Nome do país
                        description: Nome do país
      tags:
        - Cadastro de Pessoas
    post:
      summary: Criação de registro de pessoa
      operationId: createPersonRegistration
      requestBody:
        description: Criação de registro de pessoa
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                perfis:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: Identificador unico para perfil
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      tipo_perfil:
                        type: string
                        description: Tipo de perfil
                        enum:
                          - CLIENTE
                          - FORNECEDOR
                          - TRANSPORTADORA
                  description: Lista de perfis
                registros:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: Identificador único do registro
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      indicador_inscricao_estadual:
                        type: string
                        description: Indicador da inscrição estadual
                        example: '12345678901'
                      inscricao_estadual:
                        type: string
                        description: Inscrição Estadual
                        example: '12345678901'
                      inscricao_nacional:
                        type: string
                        description: Inscrição Nacional
                        example: '12345678901'
                      inscricao_suframa:
                        type: string
                        description: Inscrição Suframa
                        example: '12345678901'
                  description: Lista de registros
                outros_contatos:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: Identificador único do contato
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      nome:
                        type: string
                        description: Nome do contato
                        example: John Doe
                      email:
                        type: string
                        description: Endereço de email do contato
                        example: email@email.com
                      telefone_comercial:
                        type: string
                        description: Telefone comercial do contato
                        example: '12345678901'
                      celular:
                        type: string
                        description: Telefone celular do contato
                        example: '12345678901'
                      escritorio:
                        type: string
                        description: Escritório do contato
                        example: Office
                  description: Lista de outros contatos
                enderecos:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        description: Identificardor único para endereço
                      cep:
                        type: string
                        example: '12345678'
                        description: CEP do endereço
                      logradouro:
                        type: string
                        example: nome da rua
                        description: Logradouro do endereço
                      numero:
                        type: string
                        example: '123'
                        description: Número do endereço
                      complemento:
                        type: string
                        example: apartmento 123
                        description: Complemento do endereço
                      bairro:
                        type: string
                        example: Nome do bairro
                        description: Bairro do endereço
                      id_cidade:
                        type: integer
                        format: int64
                        description: Id da cidade
                      cidade:
                        type: string
                        example: Nome da cidade
                        description: Nome da cidade
                      estado:
                        type: string
                        example: Nome do estado
                        description: Nome do estado
                      pais:
                        type: string
                        example: Nome do país
                        description: Nome do país
                  description: Lista de endereços
                duplicar:
                  type: boolean
                  description: Duplicar
                  example: false
                tipo_pessoa:
                  type: string
                  description: Tipo de pessoa
                  enum:
                    - FISICA
                    - JURIDICA
                    - ESTRANGEIRA
                cnpj:
                  type: string
                  description: CNPJ
                  example: '33111512000184'
                cpf:
                  type: string
                  description: CPF
                  example: '12345678900'
                nome:
                  type: string
                  description: Nome
                  example: John Doe
                codigo:
                  type: string
                  description: Código
                  example: '123'
                ativo:
                  type: boolean
                  description: Ativo
                  example: true
                optante_simples:
                  type: boolean
                  description: Optante do simples
                  example: true
                agencia_publica:
                  type: boolean
                  description: Agência pública
                  example: true
                nome_fantasia:
                  type: string
                  description: Nome fantasia
                  example: Company name
                registro_geral:
                  type: string
                  description: Registro geral
                  example: '12345678901'
                data_nascimento:
                  type: string
                  description: Data de nascimento
                  example: '2022-01-01'
                email:
                  type: string
                  description: Endereço de email
                  example: email@email.com
                telefone_comercial:
                  type: string
                  description: Telefone comercial
                  example: '12345678901'
                celular:
                  type: string
                  description: Telefone celular
                  example: '12345678901'
                observacao:
                  type: string
                  description: Observação
                  example: Observation
                id_contato_principal:
                  type: string
                  description: ID do contato principal
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                criado_em:
                  type: string
                  description: Data de criação
                  example: '2022-01-01'
                excluido_em:
                  type: string
                  format: date-time
                  description: Data de exclusão
                  example: '2022-01-01'
                origem:
                  type: string
                  description: Origem
                  example: Origin
                id_origem:
                  type: string
                  format: uuid
                  description: ID de origem
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      responses:
        '200':
          description: Cadastro de pessoa criado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: Identificador único da pessoa
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  perfis:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador unico para perfil
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        tipo_perfil:
                          type: string
                          description: Tipo de perfil
                          enum:
                            - CLIENTE
                            - FORNECEDOR
                            - TRANSPORTADORA
                    description: Lista de perfis
                  registros:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do registro
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        indicador_inscricao_estadual:
                          type: string
                          description: Indicador da inscrição estadual
                          example: '12345678901'
                        inscricao_estadual:
                          type: string
                          description: Inscrição Estadual
                          example: '12345678901'
                        inscricao_nacional:
                          type: string
                          description: Inscrição Nacional
                          example: '12345678901'
                        inscricao_suframa:
                          type: string
                          description: Inscrição Suframa
                          example: '12345678901'
                    description: Lista de registros
                  outros_contatos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do contato
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        nome:
                          type: string
                          description: Nome do contato
                          example: John Doe
                        email:
                          type: string
                          description: Endereço de email do contato
                          example: email@email.com
                        telefone_comercial:
                          type: string
                          description: Telefone comercial do contato
                          example: '12345678901'
                        celular:
                          type: string
                          description: Telefone celular do contato
                          example: '12345678901'
                        escritorio:
                          type: string
                          description: Escritório do contato
                          example: Office
                    description: Lista de outros contatos
                  enderecos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                          description: Identificardor único para endereço
                        cep:
                          type: string
                          example: '12345678'
                          description: CEP do endereço
                        logradouro:
                          type: string
                          example: nome da rua
                          description: Logradouro do endereço
                        numero:
                          type: string
                          example: '123'
                          description: Número do endereço
                        complemento:
                          type: string
                          example: apartmento 123
                          description: Complemento do endereço
                        bairro:
                          type: string
                          example: Nome do bairro
                          description: Bairro do endereço
                        id_cidade:
                          type: integer
                          format: int64
                          description: Id da cidade
                        cidade:
                          type: string
                          example: Nome da cidade
                          description: Nome da cidade
                        estado:
                          type: string
                          example: Nome do estado
                          description: Nome do estado
                        pais:
                          type: string
                          example: Nome do país
                          description: Nome do país
                    description: Lista de endereços
                  tipo_pessoa:
                    type: string
                    description: Tipo de pessoa
                    enum:
                      - FISICA
                      - JURIDICA
                      - ESTRANGEIRA
                  cnpj:
                    type: string
                    description: CNPJ
                    example: '33111512000184'
                  cpf:
                    type: string
                    description: CPF
                    example: '12345678900'
                  nome:
                    type: string
                    description: Nome
                    example: John Doe
                  codigo:
                    type: string
                    description: Código
                    example: '123'
                  ativo:
                    type: boolean
                    description: Ativo
                    example: true
                  optante_simples:
                    type: boolean
                    description: Optante do simples
                    example: true
                  agencia_publica:
                    type: boolean
                    description: Agência pública
                    example: true
                  nome_fantasia:
                    type: string
                    description: Nome fantasia
                    example: Company name
                  registro_geral:
                    type: string
                    description: Registro geral
                    example: '12345678901'
                  data_nascimento:
                    type: string
                    description: Data de nascimento
                    example: '2022-01-01'
                  email:
                    type: string
                    description: Endereço de email
                    example: email@email.com
                  telefone_comercial:
                    type: string
                    description: Telefone comercial
                    example: '12345678901'
                  celular:
                    type: string
                    description: Telefone celular
                    example: '12345678901'
                  observacao:
                    type: string
                    description: Observação
                    example: Observation
                  id_contato_principal:
                    type: string
                    description: ID do contato principal
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  criado_em:
                    type: string
                    description: Data de criação
                    example: '2022-01-01'
                  excluido_em:
                    type: string
                    format: date-time
                    description: Data de exclusão
                    example: '2022-01-01'
                  origem:
                    type: string
                    description: Origem
                    example: Origin
                  id_origem:
                    type: string
                    format: uuid
                    description: ID de origem
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      tags:
        - Cadastro de Pessoas
  /v1/pessoa/{id_cadastro_pessoa}:
    put:
      summary: Atualização de registro de pessoa
      operationId: updatePersonRegistration
      parameters:
        - name: id_cadastro_pessoa
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID do cadastro de pessoa
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                perfis:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: Identificador unico para perfil
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      tipo_perfil:
                        type: string
                        description: Tipo de perfil
                        enum:
                          - CLIENTE
                          - FORNECEDOR
                          - TRANSPORTADORA
                  description: Lista de perfis
                registros:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: Identificador único do registro
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      indicador_inscricao_estadual:
                        type: string
                        description: Indicador da inscrição estadual
                        example: '12345678901'
                      inscricao_estadual:
                        type: string
                        description: Inscrição Estadual
                        example: '12345678901'
                      inscricao_nacional:
                        type: string
                        description: Inscrição Nacional
                        example: '12345678901'
                      inscricao_suframa:
                        type: string
                        description: Inscrição Suframa
                        example: '12345678901'
                  description: Lista de registros
                outros_contatos:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: Identificador único do contato
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      nome:
                        type: string
                        description: Nome do contato
                        example: John Doe
                      email:
                        type: string
                        description: Endereço de email do contato
                        example: email@email.com
                      telefone_comercial:
                        type: string
                        description: Telefone comercial do contato
                        example: '12345678901'
                      celular:
                        type: string
                        description: Telefone celular do contato
                        example: '12345678901'
                      escritorio:
                        type: string
                        description: Escritório do contato
                        example: Office
                  description: Lista de outros contatos
                enderecos:
                  type: array
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        description: Identificardor único para endereço
                      cep:
                        type: string
                        example: '12345678'
                        description: CEP do endereço
                      logradouro:
                        type: string
                        example: nome da rua
                        description: Logradouro do endereço
                      numero:
                        type: string
                        example: '123'
                        description: Número do endereço
                      complemento:
                        type: string
                        example: apartmento 123
                        description: Complemento do endereço
                      bairro:
                        type: string
                        example: Nome do bairro
                        description: Bairro do endereço
                      id_cidade:
                        type: integer
                        format: int64
                        description: Id da cidade
                      cidade:
                        type: string
                        example: Nome da cidade
                        description: Nome da cidade
                      estado:
                        type: string
                        example: Nome do estado
                        description: Nome do estado
                      pais:
                        type: string
                        example: Nome do país
                        description: Nome do país
                  description: Lista de endereços
                duplicar:
                  type: boolean
                  description: Duplicar
                  example: false
                tipo_pessoa:
                  type: string
                  description: Tipo de pessoa
                  enum:
                    - FISICA
                    - JURIDICA
                    - ESTRANGEIRA
                cnpj:
                  type: string
                  description: CNPJ
                  example: '33111512000184'
                cpf:
                  type: string
                  description: CPF
                  example: '12345678900'
                nome:
                  type: string
                  description: Nome
                  example: John Doe
                codigo:
                  type: string
                  description: Código
                  example: '123'
                ativo:
                  type: boolean
                  description: Ativo
                  example: true
                optante_simples:
                  type: boolean
                  description: Optante do simples
                  example: true
                agencia_publica:
                  type: boolean
                  description: Agência pública
                  example: true
                nome_fantasia:
                  type: string
                  description: Nome fantasia
                  example: Company name
                registro_geral:
                  type: string
                  description: Registro geral
                  example: '12345678901'
                data_nascimento:
                  type: string
                  description: Data de nascimento
                  example: '2022-01-01'
                email:
                  type: string
                  description: Endereço de email
                  example: email@email.com
                telefone_comercial:
                  type: string
                  description: Telefone comercial
                  example: '12345678901'
                celular:
                  type: string
                  description: Telefone celular
                  example: '12345678901'
                observacao:
                  type: string
                  description: Observação
                  example: Observation
                id_contato_principal:
                  type: string
                  description: ID do contato principal
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                criado_em:
                  type: string
                  description: Data de criação
                  example: '2022-01-01'
                excluido_em:
                  type: string
                  format: date-time
                  description: Data de exclusão
                  example: '2022-01-01'
                origem:
                  type: string
                  description: Origem
                  example: Origin
                id_origem:
                  type: string
                  format: uuid
                  description: ID de origem
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      responses:
        '200':
          description: Cadastro de pessoa atualizado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: Identificador único da pessoa
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  perfis:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador unico para perfil
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        tipo_perfil:
                          type: string
                          description: Tipo de perfil
                          enum:
                            - CLIENTE
                            - FORNECEDOR
                            - TRANSPORTADORA
                    description: Lista de perfis
                  registros:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do registro
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        indicador_inscricao_estadual:
                          type: string
                          description: Indicador da inscrição estadual
                          example: '12345678901'
                        inscricao_estadual:
                          type: string
                          description: Inscrição Estadual
                          example: '12345678901'
                        inscricao_nacional:
                          type: string
                          description: Inscrição Nacional
                          example: '12345678901'
                        inscricao_suframa:
                          type: string
                          description: Inscrição Suframa
                          example: '12345678901'
                    description: Lista de registros
                  outros_contatos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do contato
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        nome:
                          type: string
                          description: Nome do contato
                          example: John Doe
                        email:
                          type: string
                          description: Endereço de email do contato
                          example: email@email.com
                        telefone_comercial:
                          type: string
                          description: Telefone comercial do contato
                          example: '12345678901'
                        celular:
                          type: string
                          description: Telefone celular do contato
                          example: '12345678901'
                        escritorio:
                          type: string
                          description: Escritório do contato
                          example: Office
                    description: Lista de outros contatos
                  enderecos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                          description: Identificardor único para endereço
                        cep:
                          type: string
                          example: '12345678'
                          description: CEP do endereço
                        logradouro:
                          type: string
                          example: nome da rua
                          description: Logradouro do endereço
                        numero:
                          type: string
                          example: '123'
                          description: Número do endereço
                        complemento:
                          type: string
                          example: apartmento 123
                          description: Complemento do endereço
                        bairro:
                          type: string
                          example: Nome do bairro
                          description: Bairro do endereço
                        id_cidade:
                          type: integer
                          format: int64
                          description: Id da cidade
                        cidade:
                          type: string
                          example: Nome da cidade
                          description: Nome da cidade
                        estado:
                          type: string
                          example: Nome do estado
                          description: Nome do estado
                        pais:
                          type: string
                          example: Nome do país
                          description: Nome do país
                    description: Lista de endereços
                  tipo_pessoa:
                    type: string
                    description: Tipo de pessoa
                    enum:
                      - FISICA
                      - JURIDICA
                      - ESTRANGEIRA
                  cnpj:
                    type: string
                    description: CNPJ
                    example: '33111512000184'
                  cpf:
                    type: string
                    description: CPF
                    example: '12345678900'
                  nome:
                    type: string
                    description: Nome
                    example: John Doe
                  codigo:
                    type: string
                    description: Código
                    example: '123'
                  ativo:
                    type: boolean
                    description: Ativo
                    example: true
                  optante_simples:
                    type: boolean
                    description: Optante do simples
                    example: true
                  agencia_publica:
                    type: boolean
                    description: Agência pública
                    example: true
                  nome_fantasia:
                    type: string
                    description: Nome fantasia
                    example: Company name
                  registro_geral:
                    type: string
                    description: Registro geral
                    example: '12345678901'
                  data_nascimento:
                    type: string
                    description: Data de nascimento
                    example: '2022-01-01'
                  email:
                    type: string
                    description: Endereço de email
                    example: email@email.com
                  telefone_comercial:
                    type: string
                    description: Telefone comercial
                    example: '12345678901'
                  celular:
                    type: string
                    description: Telefone celular
                    example: '12345678901'
                  observacao:
                    type: string
                    description: Observação
                    example: Observation
                  id_contato_principal:
                    type: string
                    description: ID do contato principal
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  criado_em:
                    type: string
                    description: Data de criação
                    example: '2022-01-01'
                  excluido_em:
                    type: string
                    format: date-time
                    description: Data de exclusão
                    example: '2022-01-01'
                  origem:
                    type: string
                    description: Origem
                    example: Origin
                  id_origem:
                    type: string
                    format: uuid
                    description: ID de origem
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
      tags:
        - Cadastro de Pessoas
  /v1/pessoa/exclusao-lote:
    post:
      summary: Remoção do cadastro de pessoa
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uuids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    - 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Cadastro de pessoa removido com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  todos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
                  excluidos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  nao_excluidos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 123e4567-e89b-12d3-a456-426614174000
      tags:
        - Cadastro de Pessoas
  /v1/pessoa/{id_cadastro_pessoa}/resumo:
    get:
      summary: Busca cadastro de pessoa por ID
      description: Retorna um resumo do cadastro de pessoa
      parameters:
        - name: id_cadastro_pessoa
          in: path
          required: true
          schema:
            type: string
            format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  nome:
                    type: string
                    example: John Doe
                  documento:
                    type: string
                    example: 123.456.789-00
                  atrasos_recebimentos:
                    type: number
                    format: double
                    example: 1500.75
                  recebimentos_mes_atual:
                    type: number
                    format: double
                    example: 3000.5
                  atrasos_pagamentos:
                    type: number
                    format: double
                    example: 500.25
                  pagamentos_mes_atual:
                    type: number
                    format: double
                    example: 2000
                  email:
                    type: string
                    example: john.doe@example.com
                  telefone_comercial:
                    type: string
                    example: +55 11 1234-5678
                  celular:
                    type: string
                    example: +55 11 98765-4321
                  criado_em:
                    type: string
                    example: '2023-01-01T12:00:00Z'
                  codigo:
                    type: string
                    example: ABC123
                  perfis:
                    type: array
                    items:
                      type: string
                    example:
                      - Cliente
                      - Fornecedor
                      - Transportadora
                  pessoas_legado:
                    type: array
                    items:
                      type: object
                      properties:
                        id_pessoa_legado:
                          type: integer
                          example: 123
                        uuid_pessoa_legado:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        perfil:
                          type: string
                          example: Admin
                    description: Lista de pessoas legado
                  enderecos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                          description: Identificardor único para endereço
                        cep:
                          type: string
                          example: '12345678'
                          description: CEP do endereço
                        logradouro:
                          type: string
                          example: nome da rua
                          description: Logradouro do endereço
                        numero:
                          type: string
                          example: '123'
                          description: Número do endereço
                        complemento:
                          type: string
                          example: apartmento 123
                          description: Complemento do endereço
                        bairro:
                          type: string
                          example: Nome do bairro
                          description: Bairro do endereço
                        id_cidade:
                          type: integer
                          format: int64
                          description: Id da cidade
                        cidade:
                          type: string
                          example: Nome da cidade
                          description: Nome da cidade
                        estado:
                          type: string
                          example: Nome do estado
                          description: Nome do estado
                        pais:
                          type: string
                          example: Nome do país
                          description: Nome do país
                    description: Lista de endereços
                  observacoes_gerais:
                    type: string
                    example: Nenhuma observação
                  optante_simples_nacional:
                    type: boolean
                    example: true
                  orgao_publico:
                    type: boolean
                    example: false
                  nome_empresa:
                    type: string
                    example: Empresa Exemplo
                  tipo_pessoa:
                    type: string
                    example: Física
                  mensagem_pagamentos_abertos:
                    type: array
                    items:
                      type: object
                      properties:
                        numero:
                          type: integer
                          example: 5
                        total:
                          type: number
                          format: double
                          example: 1000
                    description: Lista de mensagens de pagamentos em aberto
                  lembretes_vencimento:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          example: 123e4567-e89b-12d3-a456-426614174000
                        email_lembrete:
                          type: string
                          example: reminder@example.com
                        status:
                          type: boolean
                          example: true
                    description: Lista de lembretes de vencimento
                  informacoes_adicionais:
                    type: array
                    items:
                      type: object
                      properties:
                        rotulo:
                          type: string
                          example: Informação Adicional
                        valor:
                          type: string
                          example: Valor da Informação
                        tipo:
                          type: string
                          example: Tipo de Informação
                    description: Lista de informações adicionais
                  outros_contatos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do contato
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        nome:
                          type: string
                          description: Nome do contato
                          example: John Doe
                        email:
                          type: string
                          description: Endereço de email do contato
                          example: email@email.com
                        telefone_comercial:
                          type: string
                          description: Telefone comercial do contato
                          example: '12345678901'
                        celular:
                          type: string
                          description: Telefone celular do contato
                          example: '12345678901'
                        escritorio:
                          type: string
                          description: Escritório do contato
                          example: Office
                    description: Lista de outros contatos
                  informacoes_fiscais:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do registro
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        indicador_inscricao_estadual:
                          type: string
                          description: Indicador da inscrição estadual
                          example: '12345678901'
                        inscricao_estadual:
                          type: string
                          description: Inscrição Estadual
                          example: '12345678901'
                        inscricao_nacional:
                          type: string
                          description: Inscrição Nacional
                          example: '12345678901'
                        inscricao_suframa:
                          type: string
                          description: Inscrição Suframa
                          example: '12345678901'
                    description: Lista de informações fiscais
      tags:
        - Cadastro de Pessoas
  /v1/pessoa/desativacao:
    post:
      summary: Inativar um cadastro de pessoa
      description: >-
        Inativa um cadastro de pessoa com base nos dados fornecidos na
        solicitação.
      operationId: inativarCadastroPessoa
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uuids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    - 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Cadastro de pessoa inativado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  todos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
                  ativos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
                  inativos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
        '500':
          description: Erro interno do servidor
      tags:
        - Cadastro de Pessoas
  /v1/pessoa/legado/{uuidLegado}/resumo:
    get:
      summary: Recuperar resumo do cadastro de pessoa a partir do UUID legado
      description: Recupera o resumo do cadastro de uma pessoa utilizando o UUID legado.
      parameters:
        - name: uuidLegado
          in: path
          required: true
          description: UUID legado da pessoa
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Resumo do cadastro da pessoa recuperado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                    description: Identificador único do cadastro de pessoa
                    example: 123e4567-e89b-12d3-a456-426614174000
                  nome:
                    type: string
                    description: Nome da pessoa
                    example: John Doe
                  documento:
                    type: string
                    description: Documento da pessoa
                    example: '12345678901'
                  atrasos_recebimentos:
                    type: number
                    format: double
                    description: Atrasos em recebimentos
                    example: 1500.75
                  recebimentos_mes_atual:
                    type: number
                    format: double
                    description: Recebimentos no mês atual
                    example: 3000.5
                  atrasos_pagamentos:
                    type: number
                    format: double
                    description: Atrasos em pagamentos
                    example: 500.25
                  pagamentos_mes_atual:
                    type: number
                    format: double
                    description: Pagamentos do mês atual
                    example: 3000
                  email:
                    type: string
                    format: email
                    description: Email da pessoa
                    example: john.doe@example.com
                  telefone_comercial:
                    type: string
                    description: Telefone comercial
                    example: +55 11 1234-5678
                  celular:
                    type: string
                    description: Telefone celular
                    example: +55 11 9876-5432
                  criado_em:
                    type: string
                    format: date-time
                    description: Data de criação do cadastro
                    example: '2023-01-01T12:00:00Z'
                  codigo:
                    type: string
                    description: Código do cadastro
                    example: '123'
                  perfis:
                    type: array
                    items:
                      type: string
                    description: Lista de perfis da pessoa
                    example:
                      - Cliente
                      - Fornecedor
                  pessoas_legado:
                    type: array
                    items:
                      type: object
                      properties:
                        id_pessoa_legado:
                          type: integer
                          example: 123
                        uuid_pessoa_legado:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        perfil:
                          type: string
                          example: Admin
                    description: Lista de pessoas legado
                  endereco:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                        example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        description: Identificardor único para endereço
                      cep:
                        type: string
                        example: '12345678'
                        description: CEP do endereço
                      logradouro:
                        type: string
                        example: nome da rua
                        description: Logradouro do endereço
                      numero:
                        type: string
                        example: '123'
                        description: Número do endereço
                      complemento:
                        type: string
                        example: apartmento 123
                        description: Complemento do endereço
                      bairro:
                        type: string
                        example: Nome do bairro
                        description: Bairro do endereço
                      id_cidade:
                        type: integer
                        format: int64
                        description: Id da cidade
                      cidade:
                        type: string
                        example: Nome da cidade
                        description: Nome da cidade
                      estado:
                        type: string
                        example: Nome do estado
                        description: Nome do estado
                      pais:
                        type: string
                        example: Nome do país
                        description: Nome do país
                  observacoes_gerais:
                    type: string
                    description: Observações gerais
                    example: Nenhuma observação
                  optante_simples_nacional:
                    type: boolean
                    description: Indica se a pessoa é optante do Simples Nacional
                    example: true
                  orgao_publico:
                    type: boolean
                    description: Indica se a pessoa é um órgão público
                    example: false
                  nome_empresa:
                    type: string
                    description: Nome da empresa
                    example: Empresa Exemplo
                  tipo_pessoa:
                    type: string
                    description: Tipo de pessoa
                    example: Física
                  mensagem_pagamentos_abertos:
                    type: object
                    properties:
                      numero:
                        type: integer
                        example: 5
                      total:
                        type: number
                        format: double
                        example: 1000
                  lembretes_vencimento:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          example: 123e4567-e89b-12d3-a456-426614174000
                        email_lembrete:
                          type: string
                          example: reminder@example.com
                        status:
                          type: boolean
                          example: true
                    description: Lembretes de vencimento
                  informacoes_adicionais:
                    type: array
                    items:
                      type: object
                      properties:
                        rotulo:
                          type: string
                          example: Informação Adicional
                        valor:
                          type: string
                          example: Valor da Informação
                        tipo:
                          type: string
                          example: Tipo de Informação
                    description: Informações adicionais
                  outros_contatos:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do contato
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        nome:
                          type: string
                          description: Nome do contato
                          example: John Doe
                        email:
                          type: string
                          description: Endereço de email do contato
                          example: email@email.com
                        telefone_comercial:
                          type: string
                          description: Telefone comercial do contato
                          example: '12345678901'
                        celular:
                          type: string
                          description: Telefone celular do contato
                          example: '12345678901'
                        escritorio:
                          type: string
                          description: Escritório do contato
                          example: Office
                    description: Outros contatos
                  informacoes_fiscais:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                          description: Identificador único do registro
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        indicador_inscricao_estadual:
                          type: string
                          description: Indicador da inscrição estadual
                          example: '12345678901'
                        inscricao_estadual:
                          type: string
                          description: Inscrição Estadual
                          example: '12345678901'
                        inscricao_nacional:
                          type: string
                          description: Inscrição Nacional
                          example: '12345678901'
                        inscricao_suframa:
                          type: string
                          description: Inscrição Suframa
                          example: '12345678901'
                    description: Informações fiscais
        '400':
          description: Requisição inválida
        '404':
          description: Pessoa não encontrada
        '500':
          description: Erro interno do servidor
      tags:
        - Cadastro de Pessoas
  /v1/pessoa/ativacao:
    post:
      summary: Ativar Cadastro de Pessoa
      description: >-
        Ativa o cadastro de uma ou mais pessoas com base nos critérios
        fornecidos.
      requestBody:
        description: Critérios para ativação de cadastro de pessoa
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                uuids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  example:
                    - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    - 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Cadastro de pessoa ativado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  todos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
                  ativos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
                  inativos:
                    type: array
                    items:
                      type: string
                      format: uuid
                    example:
                      - 35473eec-4e74-11ee-b500-9f61de8a8b8b
                      - 123e4567-e89b-12d3-a456-426614174000
        '500':
          description: Erro interno do servidor
      tags:
        - Cadastro de Pessoas
  /v1/protocolo/{id}:
    get:
      summary: Busca protocolo por ID
      description: Retorna o protocolo correspondente ao ID fornecido
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Protocolo encontrado
          content:
            application/json:
              schema:
                type: object
                properties:
                  protocolId:
                    type: string
                    format: uuid
                    description: Identificador do protocolo
                  message:
                    type: string
                    description: Mensagem do protocolo
                  status:
                    type: string
                    description: Status do protocolo
                    enum:
                      - PENDING
                      - SUCCESS
                      - ERROR
        '404':
          description: Protocolo não encontrado
      tags:
        - Protocolo
  /v1/venda/{id}:
    get:
      summary: Obter venda por ID
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: O legacy ID ou UUID da venda a ser obtida
      responses:
        '200':
          description: Venda obtida com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  cliente:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                      tipo_pessoa:
                        type: string
                        description: Tipo de pessoa
                        example: Física
                      documento:
                        type: string
                        description: Documento
                        example: '12345678901'
                      nome:
                        type: string
                        description: Nome
                        example: João da Silva
                  evento_financeiro:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                  notificacao:
                    type: object
                    properties:
                      id_referencia:
                        type: string
                        description: ID de referência da notificação
                      enviado_para:
                        type: string
                        description: Enviado para
                      enviado_em:
                        type: string
                        format: date-time
                        description: Data e hora de envio
                      aberto_em:
                        type: string
                        format: date-time
                        description: Data e hora de abertura
                      status:
                        type: string
                        enum:
                          - ENVIADO
                          - LIDO
                  natureza_operacao:
                    type: object
                    properties:
                      uuid:
                        type: string
                        format: uuid
                      tipo_operacao:
                        type: string
                        enum:
                          - VENDA
                          - REMESSA
                          - COMPRA
                          - DEVOLUCAO
                        example: VENDA
                      template_operacao:
                        type: string
                        enum:
                          - VENDA_MERCADORIAS
                          - VENDA_SUFRAMA
                          - VENDA_ENTREGA_FUTURA
                          - VENDA_CONSIGNADA
                          - VENDA_NAO_CONTRIBUINTE
                          - VENDA_EXPORTACAO
                          - VENDA_ORDEM
                          - VENDA_INDUSTRIALIZACAO
                          - PRESTACAO_SERVICO
                      label:
                        type: string
                        description: Label
                        example: Venda a Não Contribuinte
                      mudanca_financeira:
                        type: boolean
                      mudanca_estoque:
                        type: string
                        enum:
                          - ENTRADA_ESTOQUE
                          - SAIDA_ESTOQUE
                          - NAO_ALTERA_ESTOQUE
                  venda:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: ID da negociação
                      status:
                        type: string
                        enum:
                          - REVISAO_PENDENTE
                          - EM_ORCAMENTO
                          - ORCAMENTO_ACEITO
                          - ORCAMENTO_RECUSADO
                          - VENDA
                          - CONTRATO
                          - CANCELADO
                          - PREVISAO
                          - INCOMPLETA
                      id_legado:
                        type: integer
                      tipo_negociacao:
                        type: string
                        enum:
                          - VENDA
                          - COMPRA
                      numero:
                        type: integer
                      id_categoria:
                        type: string
                        format: uuid
                      data_compromisso:
                        format: date
                        example: '2023-12-31'
                      configuracao_de_desconto:
                        type: object
                        properties:
                          tipo_desconto:
                            type: string
                            enum:
                              - PORCENTAGEM
                              - VALOR
                          taxa_desconto:
                            type: number
                            format: double
                      composicao_valor:
                        type: object
                        properties:
                          valor_bruto:
                            type: number
                            format: double
                          desconto:
                            type: number
                            format: double
                          frete:
                            type: number
                            format: double
                          impostos:
                            type: number
                            format: double
                          impostos_deduzidos:
                            type: number
                            format: double
                          seguro:
                            type: number
                            format: double
                          despesas_incidentais:
                            type: number
                            format: double
                          valor_liquido:
                            type: number
                            format: double
                      condicao_pagamento:
                        type: object
                        properties:
                          tipo_pagamento:
                            type: string
                            enum:
                              - BOLETO_BANCARIO
                              - CARTAO_CREDITO
                              - CARTAO_DEBITO
                              - CARTEIRA_DIGITAL
                              - CASHBACK
                              - CHEQUE
                              - CREDITO_LOJA
                              - CREDITO_VIRTUAL
                              - DEPOSITO_BANCARIO
                              - DINHEIRO
                              - OUTRO
                              - DEBITO_AUTOMATICO
                              - LINK_PAGAMENTO
                              - PAGAMENTO_INSTANTANEO
                              - COBRANCA_PIX
                              - PROGRAMA_FIDELIDADE
                              - SEM_PAGAMENTO
                              - TRANSFERENCIA_BANCARIA
                              - VALE_ALIMENTACAO
                              - VALE_COMBUSTIVEL
                              - VALE_PRESENTE
                              - VALE_REFEICAO
                          id_conta_financeira:
                            type: string
                            format: uuid
                          pagamento_a_vista:
                            type: boolean
                          parcelas:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: ID da parcela
                                numero:
                                  type: integer
                                  example: 1
                                  description: Número da parcela
                                data_vencimento:
                                  format: date
                                  example: '2023-12-31'
                                  description: Data de vencimento
                                valor:
                                  type: number
                                  format: double
                                  description: Valor da parcela
                                  example: 26.99
                                descricao:
                                  type: string
                                  example: Parcela 1
                                  description: Descrição da parcela
                          observacoes_pagamento:
                            type: string
                            description: Observações sobre o pagamento
                            example: ''
                          opcao_condicao_pagamento:
                            type: string
                            description: Opção de condição de pagamento
                            example: À vista
                          nsu:
                            type: string
                          pagamento_cartao:
                            type: object
                            properties:
                              tipo_bandeira:
                                type: string
                                enum:
                                  - VISA
                                  - MASTERCARD
                                  - AMERICAN_EXPRESS
                                  - SOROCRED
                                  - DINERS_CLUB
                                  - ELO
                                  - HIPERCARD
                                  - AURA
                                  - CABAL
                                  - ALELO
                                  - BANES_CARD
                                  - CALCARDS
                                  - CREDZ
                                  - DISCOVER
                                  - GOODCARD
                                  - GREENCARD
                                  - HIPER
                                  - JCB
                                  - MAIS
                                  - MAXVAN
                                  - POLICARD
                                  - REDECOMPRAS
                                  - SODEXO
                                  - VALECARD
                                  - VEROCHEQUE
                                  - VR
                                  - TICKET
                                  - OUTROS
                              codigo_transacao:
                                type: string
                              id_adquirente:
                                type: integer
                                format: int64
                      total_itens:
                        type: object
                        properties:
                          contagem_produtos:
                            type: integer
                            format: int64
                          contagem_servicos:
                            type: integer
                            format: int64
                          contagem_nao_conciliados:
                            type: integer
                            format: int64
                      observacoes:
                        type: string
                      id_cliente:
                        type: string
                        format: uuid
                      versao:
                        type: integer
                      tipo_pendencia:
                        type: object
                        properties:
                          nome:
                            enum:
                              - NENHUMA
                              - RESERVA_DE_ESTOQUE
                              - CONCILIACAO_ITENS
                              - PROCESSAMENTO_RESERVA_DE_ESTOQUE
                              - ESPERANDO_CONFIRMACAO
                              - AGUARDANDO_GERACAO_NOTA_FISCAL
                            description: Nome da pendência
                            example: NENHUMA
                          descricao:
                            type: string
                            description: Descrição da pendência
                            example: Nenhuma
                      situacao:
                        type: object
                        properties:
                          nome:
                            enum:
                              - EM_ANDAMENTO
                              - APROVADO
                              - FATURADO
                              - CANCELADO
                              - ORCAMENTO
                              - ORCAMENTO_ACEITO
                              - ORCAMENTO_RECUSADO
                              - CONTRATO
                              - VENDA
                            description: Nome da situação
                            example: APROVADO
                          descricao:
                            type: string
                            description: Descrição da situação
                            example: Aprovado
                          ativado:
                            type: boolean
                            description: Ativado ou não
                      id_natureza_operacao:
                        type: string
                        format: uuid
                      id_centro_custo:
                        type: string
                        format: uuid
        '404':
          description: Venda não encontrada
      tags:
        - Venda
    put:
      summary: Edição de venda por ID
      operationId: editSale
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: O UUID da venda a ser editada
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - versao
                - id_cliente
                - numero
                - situacao
                - data_venda
                - itens
                - condicao_pagamento
              properties:
                id_cliente:
                  type: string
                  format: uuid
                  example: 550e8400-e29b-41d4-a716-446655440000
                  description: UUID do cliente
                numero:
                  type: integer
                  example: 1
                  description: Número da venda
                data_venda:
                  type: string
                  format: date
                  example: '2023-12-31'
                  description: Data da venda
                situacao:
                  type: string
                  description: Situação da venda
                  enum:
                    - EM_ANDAMENTO
                    - APROVADO
                    - FATURADO
                    - CANCELADO
                    - PROPOSTA_EM_ANDAMENTO
                    - PROPOSTA_APROVADA
                    - PROPOSTA_RECUSADA
                    - CONTRATO
                    - VENDA
                observacoes:
                  type: string
                  example: Cliente solicitou entrega rápida
                  description: Observações sobre a venda
                observacoes_pagamento:
                  type: string
                  example: Pagamento realizado em 3 parcelas
                  description: Observações sobre o pagamento
                id_natureza_operacao:
                  type: string
                  format: uuid
                  example: 550e8400-e29b-41d4-a716-446655440000
                  description: ID da natureza da operação
                versao:
                  type: integer
                  example: 1
                  description: Versão da venda é obrigatório na edição.
                itens:
                  type: object
                  required:
                    - id
                    - quantidade
                    - valor
                  properties:
                    descricao:
                      type: string
                      example: Produto A
                      description: Descrição do item da venda
                    quantidade:
                      type: number
                      format: double
                      example: 2
                      description: Quantidade do item da venda
                    valor:
                      type: number
                      format: double
                      example: 50
                      description: Valor do item da venda
                    id:
                      type: string
                      format: uuid
                      example: 550e8400-e29b-41d4-a716-446655440000
                      description: ID do item da venda
                    valor_custo:
                      type: number
                      format: double
                      example: 40
                      description: Valor de custo do item da venda.
                composicao_de_valor:
                  type: object
                  properties:
                    frete:
                      type: number
                      format: double
                      example: 100
                      description: Valor de frete.
                    desconto:
                      type: object
                      required:
                        - tipo
                        - valor
                      properties:
                        tipo:
                          type: string
                          description: Tipo de desconto
                          enum:
                            - PORCENTAGEM
                            - VALOR
                        valor:
                          type: number
                          format: double
                          description: Valor do desconto
                          example: 5
                condicao_pagamento:
                  type: object
                  required:
                    - opcao_condicao_pagamento
                    - parcelas
                  properties:
                    tipo_pagamento:
                      type: string
                      description: Forma de pagamento
                      enum:
                        - BOLETO_BANCARIO
                        - CARTAO_CREDITO
                        - CARTAO_DEBITO
                        - CARTEIRA_DIGITAL
                        - CASHBACK
                        - CHEQUE
                        - CREDITO_LOJA
                        - CREDITO_VIRTUAL
                        - DEPOSITO_BANCARIO
                        - DINHEIRO
                        - OUTRO
                        - DEBITO_AUTOMATICO
                        - CARTAO_CREDITO_VIA_LINK
                        - PIX_PAGAMENTO_INSTANTANEO
                        - PIX_COBRANCA
                        - PROGRAMA_FIDELIDADE
                        - SEM_PAGAMENTO
                        - TRANSFERENCIA_BANCARIA
                        - VALE_ALIMENTACAO
                        - VALE_COMBUSTIVEL
                        - VALE_PRESENTE
                        - VALE_REFEICAO
                      example: CARTAO_CREDITO
                    id_conta_financeira:
                      type: string
                      format: uuid
                      example: 550e8400-e29b-41d4-a716-446655440000
                      description: ID da conta financeira
                    opcao_condicao_pagamento:
                      type: string
                      example: À vista
                      description: >-
                        Deve ser em um dos três formatos: - 1º: Ex: À vista. -
                        2º: Ex1: 30, 60, 90. Ex2: 15, 30, 45. - 3º: Ex1: 3x.
                        Ex2: 12x
                    nsu:
                      type: string
                      example: '1234567890'
                      description: NSU
                    parcelas:
                      type: array
                      items:
                        type: object
                        required:
                          - data_vencimento
                          - valor
                        properties:
                          data_vencimento:
                            type: string
                            format: date
                            example: '2023-12-31'
                            description: Data de vencimento
                          valor:
                            type: number
                            format: double
                            example: 100
                            description: Valor da parcela
                          descricao:
                            type: string
                            example: Parcela 1
                            description: Descrição da parcela
      responses:
        '200':
          description: Venda editada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                    description: UUID da venda editada
                  id_legado:
                    type: integer
                    example: 123456
                    description: ID legado
        '500':
          description: Erro interno do servidor
      tags:
        - Venda
  /v1/venda/busca:
    post:
      summary: Listar vendas por filtros
      parameters:
        - name: pagina
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: tamanho_pagina
          in: query
          required: false
          schema:
            type: integer
            default: 10
        - name: campo_ordenado_ascendente
          in: query
          required: false
          description: >-
            Se este campo for utilizado, o parâmetro campo_ordenado_descendente
            será desconsiderado. É possível ordenar por numero da venda, pelo
            nome do cliente, pelo total da venda ou pela data da venda.
          schema:
            type: string
        - name: campo_ordenado_descendente
          in: query
          required: false
          description: >-
            Para utilizar este campo, é necessário não utilizar o
            campo_ordenado_ascendente. É possível ordenar por numero da venda,
            pelo nome do cliente, pelo total da venda ou pela data da venda.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                termo_busca:
                  type: string
                  description: >-
                    Termo para busca das vendas por nome, email do cliente ou
                    número da venda.
                periodo:
                  type: object
                  properties:
                    data_inicio:
                      type: string
                      format: date
                      description: Data de início da criação da venda
                    data_fim:
                      type: string
                      format: date
                      description: Data final da criação da venda
                ids_donos:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: IDs dos donos
                ids_clientes:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: IDs dos clientes
                ids_natureza_operacao:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    IDs da natureza da operação. Possíveis valores IN_PROCESS,
                    APPROVED, INVOICED, CANCELED, PROPOSAL, PROPOSAL_ACCEPTED,
                    PROPOSAL_REFUSED, SCHEDULED, COMMITED
                situacoes:
                  type: array
                  items:
                    type: string
                    description: Tipo de situação
                  description: Situações
                tipos:
                  type: array
                  items:
                    type: string
                    description: Tipo de venda
                  description: Tipos de venda
                origens:
                  type: array
                  items:
                    type: string
                  description: Origens
                numeros:
                  type: array
                  items:
                    type: integer
                  description: Números
                ids_categorias:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: IDs das categorias
                ids_produtos:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: IDs dos produtos
                pendente:
                  type: boolean
                  description: Pendente
                totais:
                  type: string
                  description: >-
                    Tipo de total de venda. Possíveis valores WAITING_APPROVED,
                    APPROVED, CANCELED e ALL
                ids_legado_donos:
                  type: array
                  items:
                    type: integer
                  description: IDs legados dos donos
                ids_legado_clientes:
                  type: array
                  items:
                    type: integer
                  description: IDs legados das categorias
                ids_legado_produtos:
                  type: array
                  items:
                    type: integer
                  description: IDs legados dos produtos
                ids_legado_categorias:
                  type: array
                  items:
                    type: integer
                  description: IDs legados dos clientes
      responses:
        '200':
          description: Lista de vendas obtida com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  totais:
                    type: object
                    description: >-
                      Valores das de vendas com status Aprovado, Cancelado,
                      Esperando aprovação e Total
                    properties:
                      total:
                        type: number
                        format: double
                        description: Valor total obtido de todas as vendas
                      aprovado:
                        type: number
                        format: double
                        description: Valor obtido das vendas aprovadas
                      cancelado:
                        type: number
                        format: double
                        description: Valor obtido das vendas canceladas
                      esperando_aprovacao:
                        type: number
                        format: double
                        description: Valor obtido das vendas esperando aprovação
                  quantidades:
                    type: object
                    description: >-
                      Quantidades de vendas com status Aprovado, Cancelado,
                      Esperando aprovação e Total
                    properties:
                      total:
                        type: number
                        format: double
                        description: Quantidade total de vendas realizadas
                      aprovado:
                        type: number
                        format: double
                        description: Quantidade de vendas aprovadas
                      cancelado:
                        type: number
                        format: double
                        description: Quantidade de vendas canceladas
                      esperando_aprovacao:
                        type: number
                        format: double
                        description: Quantidade de vendas esperando aprovação
                  total_itens:
                    type: integer
                    description: Total de itens
                  itens:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: ID da venda
                        total:
                          type: number
                          format: double
                          description: Total da venda
                        id_legado:
                          type: integer
                          description: ID legado da venda
                        data:
                          type: string
                          description: Data da venda
                        tipo:
                          type: string
                          description: Tipo da venda
                        itens:
                          type: string
                          description: Tipo de itens
                        condicao_pagamento:
                          type: boolean
                          description: Condição de pagamento
                        numero:
                          type: integer
                          description: Número da venda
                        cliente:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                              description: ID do cliente
                            nome:
                              type: string
                              description: Nome do cliente
                            email:
                              type: string
                              description: Email do cliente
                            telefone:
                              type: string
                              description: Telefone do cliente
                            endereco:
                              type: string
                              description: Endereço do cliente
                            cidade:
                              type: string
                              description: Cidade do cliente
                            estado:
                              type: string
                              description: Estado do cliente
                            pais:
                              type: string
                              description: País do cliente
                            cep:
                              type: string
                              description: CEP do cliente
                        situacao:
                          type: object
                          properties:
                            status:
                              type: string
                              description: Status da situação
                            descricao:
                              type: string
                              description: Descrição da situação
                            data:
                              type: string
                              description: Data da situação
                        versao:
                          type: integer
                          description: Versão da venda
                        status_email:
                          type: object
                          properties:
                            status:
                              type: string
                              description: Status
                            enviado_em:
                              type: string
                              format: date
                              description: Data de envio
      tags:
        - Venda
  /v1/venda:
    post:
      summary: Criar uma nova venda
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id_cliente
                - numero
                - situacao
                - data_venda
                - itens
                - condicao_pagamento
              properties:
                id_cliente:
                  type: string
                  format: uuid
                  description: ID do cliente
                numero:
                  type: integer
                  format: int64
                  description: Número da venda
                situacao:
                  type: string
                  description: Situação da venda
                  enum:
                    - EM_ANDAMENTO
                    - APROVADO
                    - FATURADO
                data_venda:
                  type: string
                  format: date
                  description: Data da venda
                id_categoria:
                  type: string
                  format: uuid
                  description: ID da categoria
                id_centro_custo:
                  type: string
                  format: uuid
                  description: ID do centro de custo
                observacoes:
                  type: string
                  description: Observações sobre a venda
                observacoes_pagamento:
                  type: string
                  description: Observações sobre o pagamento
                itens:
                  type: array
                  items:
                    type: object
                    required:
                      - id
                      - quantidade
                      - valor
                    properties:
                      descricao:
                        type: string
                        example: Produto A
                        description: Descrição do item da venda
                      quantidade:
                        type: number
                        format: double
                        example: 2
                        description: Quantidade do item da venda
                      valor:
                        type: number
                        format: double
                        example: 50
                        description: Valor do item da venda
                      id:
                        type: string
                        format: uuid
                        example: 550e8400-e29b-41d4-a716-446655440000
                        description: ID do item da venda
                      valor_custo:
                        type: number
                        format: double
                        example: 40
                        description: Valor de custo do item da venda.
                composicao_de_valor:
                  type: object
                  properties:
                    frete:
                      type: number
                      format: double
                      example: 100
                      description: Valor de frete.
                    desconto:
                      type: object
                      required:
                        - tipo
                        - valor
                      properties:
                        tipo:
                          type: string
                          description: Tipo de desconto
                          enum:
                            - PORCENTAGEM
                            - VALOR
                        valor:
                          type: number
                          format: double
                          description: Valor do desconto
                          example: 5
                condicao_pagamento:
                  type: object
                  required:
                    - opcao_condicao_pagamento
                    - parcelas
                  properties:
                    tipo_pagamento:
                      type: string
                      description: Forma de pagamento
                      enum:
                        - BOLETO_BANCARIO
                        - CARTAO_CREDITO
                        - CARTAO_DEBITO
                        - CARTEIRA_DIGITAL
                        - CASHBACK
                        - CHEQUE
                        - CREDITO_LOJA
                        - CREDITO_VIRTUAL
                        - DEPOSITO_BANCARIO
                        - DINHEIRO
                        - OUTRO
                        - DEBITO_AUTOMATICO
                        - CARTAO_CREDITO_VIA_LINK
                        - PIX_PAGAMENTO_INSTANTANEO
                        - PIX_COBRANCA
                        - PROGRAMA_FIDELIDADE
                        - SEM_PAGAMENTO
                        - TRANSFERENCIA_BANCARIA
                        - VALE_ALIMENTACAO
                        - VALE_COMBUSTIVEL
                        - VALE_PRESENTE
                        - VALE_REFEICAO
                      example: CARTAO_CREDITO
                    id_conta_financeira:
                      type: string
                      format: uuid
                      example: 550e8400-e29b-41d4-a716-446655440000
                      description: ID da conta financeira
                    opcao_condicao_pagamento:
                      type: string
                      example: À vista
                      description: >-
                        Deve ser em um dos três formatos: - 1º: Ex: À vista. -
                        2º: Ex1: 30, 60, 90. Ex2: 15, 30, 45. - 3º: Ex1: 3x.
                        Ex2: 12x
                    nsu:
                      type: string
                      example: '1234567890'
                      description: NSU
                    parcelas:
                      type: array
                      items:
                        type: object
                        required:
                          - data_vencimento
                          - valor
                        properties:
                          data_vencimento:
                            type: string
                            format: date
                            example: '2023-12-31'
                            description: Data de vencimento
                          valor:
                            type: number
                            format: double
                            example: 100
                            description: Valor da parcela
                          descricao:
                            type: string
                            example: Parcela 1
                            description: Descrição da parcela
      responses:
        '200':
          description: Venda criada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: ID único da venda
                    example: 123e4567-e89b-12d3-a456-426614174000
                  id_legado:
                    type: integer
                    format: int64
                    description: ID legado necessário para a venda
                    example: 123456
                  id_cliente:
                    type: string
                    format: uuid
                    description: ID do cliente associado à venda
                    example: 123e4567-e89b-12d3-a456-426614174001
                  numero:
                    type: integer
                    format: int64
                    description: Número da venda
                    example: 1001
                  origem:
                    type: string
                    description: Origem da venda
                    example: Online
                  id_categoria:
                    type: string
                    format: uuid
                    description: ID da categoria da venda
                    example: 123e4567-e89b-12d3-a456-426614174002
                  data_venda:
                    type: string
                    format: date-time
                    description: Data da venda
                    example: '2023-10-01T12:00:00Z'
                  situacao:
                    type: object
                    properties:
                      nome:
                        type: string
                        description: Nome da situação
                        example: Situação Exemplo
                      descricao:
                        type: string
                        description: Descrição da situação
                        example: Descrição da situação exemplo
                  pendencia:
                    type: object
                    properties:
                      nome:
                        type: string
                        description: Nome da pendência
                        example: AGUARDANDO_CONFIRMACAO
                      descricao:
                        type: string
                        description: Descrição da pendência
                        example: Aguardando confirmação
                  valor_composicao:
                    type: object
                    properties:
                      valor_bruto:
                        type: number
                        format: double
                        description: Valor bruto da venda
                        example: 100
                      desconto:
                        type: object
                        required:
                          - tipo
                          - valor
                        properties:
                          tipo:
                            type: string
                            description: Tipo de desconto
                            enum:
                              - PORCENTAGEM
                              - VALOR
                          valor:
                            type: number
                            format: double
                            description: Valor do desconto
                            example: 5
                      frete:
                        type: number
                        format: double
                        description: Valor do frete
                        example: 10
                      valor_liquido:
                        type: number
                        format: double
                        description: Valor líquido da venda
                        example: 90
                  condicao_pagamento:
                    type: object
                    properties:
                      id_legado:
                        type: integer
                        format: int64
                        example: 123456789
                        description: ID legado da condição de pagamento
                      tipo_pagamento:
                        type: string
                        example: CARTAO_CREDITO
                        description: Tipo de pagamento
                        enum:
                          - BOLETO_BANCARIO
                          - CARTAO_CREDITO
                          - CARTAO_DEBITO
                          - CARTEIRA_DIGITAL
                          - CASHBACK
                          - CHEQUE
                          - CREDITO_LOJA
                          - CREDITO_VIRTUAL
                          - DEPOSITO_BANCARIO
                          - DINHEIRO
                          - OUTRO
                          - DEBITO_AUTOMATICO
                          - CARTAO_CREDITO_VIA_LINK
                          - PIX_PAGAMENTO_INSTANTANEO
                          - PIX_COBRANCA
                          - PROGRAMA_FIDELIDADE
                          - SEM_PAGAMENTO
                          - TRANSFERENCIA_BANCARIA
                          - VALE_ALIMENTACAO
                          - VALE_COMBUSTIVEL
                          - VALE_PRESENTE
                          - VALE_REFEICAO
                      id_conta_financeira:
                        type: string
                        format: uuid
                        example: 550e8400-e29b-41d4-a716-446655440000
                        description: ID da conta financeira
                      opcao_condicao_pagamento:
                        type: string
                        example: Parcelado
                        description: Opção de condição de pagamento
                      parcelas:
                        type: array
                        items:
                          type: object
                          properties:
                            data_vencimento:
                              type: string
                              format: date
                              example: '2023-12-31'
                              description: Data de vencimento
                            valor:
                              type: number
                              format: double
                              example: 100
                              description: Valor da parcela
                            descricao:
                              type: string
                              example: Parcela 1
                              description: Descrição da parcela
                            numero:
                              type: integer
                              example: 1
                              description: Número da parcela
                      observacoes_pagamento:
                        type: string
                        example: Pagamento realizado em 3 parcelas
                        description: Observações sobre o pagamento
                      nsu:
                        type: string
                        example: '1234567890'
                        description: NSU
                      troco_total:
                        type: number
                        format: double
                        example: 10.5
                        description: Troco total
                  observacoes:
                    type: string
                    description: Observações sobre a venda
                    example: Cliente solicitou entrega rápida
                  id_vendedor:
                    type: string
                    format: uuid
                    description: ID do vendedor responsável pela venda
                    example: 123e4567-e89b-12d3-a456-426614174003
                  versao:
                    type: integer
                    format: int64
                    description: Versão da venda
                    example: 1
        '400':
          description: Requisição inválida
        '500':
          description: Erro interno do servidor
      tags:
        - Venda
  /v1/venda/{id}/imprimir:
    get:
      summary: Imprime o PDF de uma venda
      description: Gera e retorna um PDF da venda especificada pelo ID
      parameters:
        - in: path
          name: id
          required: true
          schema:
            oneOf:
              - type: string
                format: uuid
              - type: integer
          description: ID da venda a ser impressa, pode ser passado id Long ou uuid
      responses:
        '200':
          description: PDF da venda gerado com sucesso
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '404':
          description: Venda não encontrada
        '500':
          description: Erro interno do servidor
      tags:
        - Venda
  /v1/venda/exclusao-lote:
    post:
      summary: Exclusão de vendas em lote
      description: >-
        Exclui vendas em lote(maximo de 10 por vez) especificadas pelos UUIDs
        fornecidos
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ids:
                  type: array
                  items:
                    type: string
                    format: uuid
                  minItems: 1
                  maxItems: 10
                  description: Lista de UUIDs das vendas a serem excluídas
              required:
                - ids
              example:
                ids:
                  - 123e4567-e89b-12d3-a456-426614174000
                  - 123e4567-e89b-12d3-a456-426614174001
      responses:
        '200':
          description: Vendas excluídas com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  atualizados:
                    type: integer
                    description: Indica quantidade excluída
                    example: 1
                  ignorados:
                    type: integer
                    description: Indica quantidade ignorada
                    example: 1
        '500':
          description: Erro interno do servidor
      tags:
        - Venda
  /v1/venda/{id_venda}/itens:
    get:
      summary: Retorna os itens de uma venda paginados
      description: >-
        Retorna os itens de uma venda especificada pelo UUID, com suporte a
        paginação e ordenação
      parameters:
        - in: path
          name: id_venda
          required: true
          schema:
            type: string
            format: uuid
          description: UUID da venda
        - in: query
          name: pagina
          schema:
            type: integer
            default: 1
          description: Número da página
        - in: query
          name: tamanho_pagina
          schema:
            type: integer
            default: 10
          description: Tamanho da página
      responses:
        '200':
          description: Itens da venda retornados com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  itens:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                          description: UUID do item vendido
                        id_item:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174001
                          description: UUID do item
                        nome:
                          type: string
                          example: Produto 1
                          description: Nome do item vendido
                        descricao:
                          type: string
                          example: Descrição do produto 1
                          description: Descrição do item vendido
                        tipo:
                          type: string
                          enum:
                            - PRODUTO
                            - SERVICO
                            - ATIVOS_IMOBILIZADOS
                            - FINANCEIRO
                            - KIT_PRODUTOS
                          description: Tipo do item vendido
                        quantidade:
                          type: number
                          example: 1
                          description: Quantidade do item vendido
                        valor:
                          type: number
                          example: 100
                          description: Valor unitário do item vendido
                  itens_totais:
                    type: integer
                  totais:
                    type: object
                    properties:
                      quantidade_produtos:
                        type: integer
                        example: 1
                        description: Quantidade total de produtos vendidos
                      quantidade_servicos:
                        type: integer
                        example: 1
                        description: Quantidade total de serviços vendidos
                      quantidade_nao_conciliados:
                        type: integer
                        example: 1
                        description: Quantidade total de itens não conciliados
        '404':
          description: Venda não encontrada
        '500':
          description: Erro interno do servidor
      tags:
        - Venda
  /v1/servico:
    get:
      summary: Obter lista de serviços
      parameters:
        - name: pagina
          in: query
          required: false
          schema:
            type: integer
            default: 1
        - name: tamanho_pagina
          in: query
          required: false
          schema:
            type: integer
            default: 10
        - name: busca_textual
          in: query
          required: false
          description: Busca textual por nome, código ou descrição do serviço
          schema:
            type: string
      responses:
        '200':
          description: Resposta bem-sucedida
          content:
            application/json:
              schema:
                type: object
                properties:
                  itens_totais:
                    type: integer
                    example: 100
                  itens:
                    type: array
                    items:
                      type: object
                      required:
                        - descricao
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        id_servico:
                          type: integer
                          example: 1
                        nome:
                          type: string
                          example: Serviço de Consultoria
                        codigo:
                          type: string
                          example: CONSULT01
                        descricao:
                          type: string
                          example: Serviço de consultoria empresarial
                        preco:
                          type: number
                          format: double
                          example: 1500
                        custo:
                          type: number
                          format: double
                          example: 1000
                        status:
                          type: string
                          example: DISABLED
                        tipo_servico:
                          type: string
                          example: PROVIDED
      tags:
        - Serviço
    post:
      summary: Criação de serviço
      description: Criação um serviço
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - descricao
              properties:
                id:
                  type: string
                  format: uuid
                  example: 123e4567-e89b-12d3-a456-426614174000
                id_servico:
                  type: integer
                  example: 1
                nome:
                  type: string
                  example: Serviço de Consultoria
                codigo:
                  type: string
                  example: CONSULT01
                descricao:
                  type: string
                  example: Serviço de consultoria empresarial
                preco:
                  type: number
                  format: double
                  example: 1500
                custo:
                  type: number
                  format: double
                  example: 1000
                status:
                  type: string
                  example: DISABLED
                tipo_servico:
                  type: string
                  example: PROVIDED
      responses:
        '200':
          description: Serviço criado com sucesso
          content:
            application/json:
              schema:
                type: object
                required:
                  - descricao
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  id_servico:
                    type: integer
                    example: 1
                  nome:
                    type: string
                    example: Serviço de Consultoria
                  codigo:
                    type: string
                    example: CONSULT01
                  descricao:
                    type: string
                    example: Serviço de consultoria empresarial
                  preco:
                    type: number
                    format: double
                    example: 1500
                  custo:
                    type: number
                    format: double
                    example: 1000
                  status:
                    type: string
                    example: DISABLED
                  tipo_servico:
                    type: string
                    example: PROVIDED
        '400':
          description: Requisição inválida
      tags:
        - Serviço
  /v1/servico/{uuid}:
    get:
      summary: Obter serviço por UUID
      description: Busca os dados de um serviço pelo seu UUID
      parameters:
        - name: uuid
          in: path
          required: true
          description: O UUID do serviço a ser recuperado
          schema:
            type: string
      responses:
        '200':
          description: Serviço encontrado com sucesso
          content:
            application/json:
              schema:
                type: object
                required:
                  - descricao
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  id_servico:
                    type: integer
                    example: 1
                  nome:
                    type: string
                    example: Serviço de Consultoria
                  codigo:
                    type: string
                    example: CONSULT01
                  descricao:
                    type: string
                    example: Serviço de consultoria empresarial
                  preco:
                    type: number
                    format: double
                    example: 1500
                  custo:
                    type: number
                    format: double
                    example: 1000
                  status:
                    type: string
                    example: DISABLED
                  tipo_servico:
                    type: string
                    example: PROVIDED
        '404':
          description: Servico não encontrado
      tags:
        - Serviço
  /v1/servico/exclusao-lote:
    delete:
      summary: Exclusão em lote de serviços
      description: Exclui serviços em lote dado uma lista de UUIDs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
      responses:
        '200':
          description: Serviços excluídos com sucesso
        '400':
          description: Requisição inválida
      tags:
        - Serviço
components:
  securitySchemes:
    JWT:
      type: apiKey
      description: |
        Para autenticação, utilize o token JWT no cabeçalho da requisição.
        Exemplo: `Authorization: {token}`
      name: Authorization
      in: header
    Basic:
      type: basic
  schemas:
    BaixaCriacaoRequestDTO:
      type: object
      required:
        - data_pagamento
        - conta_financeira
        - composicao_valor
      properties:
        data_pagamento:
          type: string
          format: date
          example: '2023-10-01'
          description: Data do pagamento.
        composicao_valor:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              format: double
              example: 0
              description: O valor da multa, deve ser maior ou igual a zero.
            juros:
              type: number
              format: double
              example: 0
              description: O valor dos juros, deve ser maior ou igual a zero.
            valor_bruto:
              type: number
              format: double
              example: 1000
              description: O valor bruto, deve ser informado e maior ou igual a zero.
            desconto:
              type: number
              format: double
              example: 0
              description: O valor do desconto, deve ser maior ou igual a zero.
            taxa:
              type: number
              format: double
              example: 0
              description: O valor da taxa, deve ser maior ou igual a zero.
        conta_financeira:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da conta financeira.
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          description: Método de pagamento.
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
        observacao:
          type: string
          example: 'Payment for invoice #1234'
          description: Observação.
        nsu:
          type: string
          example: '1234567890'
          description: Número sequencial único.
    BaixaCriacaoResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único gerado automaticamente após a criação.
        versao:
          type: integer
          format: int64
          example: 1
          description: Versão da baixa.
        data_pagamento:
          type: string
          format: date
          example: '2023-10-01'
          description: Data do pagamento.
        composicao_valor:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              format: double
              example: 0
              description: O valor da multa, deve ser maior ou igual a zero.
            juros:
              type: number
              format: double
              example: 0
              description: O valor dos juros, deve ser maior ou igual a zero.
            valor_bruto:
              type: number
              format: double
              example: 1000
              description: O valor bruto, deve ser informado e maior ou igual a zero.
            desconto:
              type: number
              format: double
              example: 0
              description: O valor do desconto, deve ser maior ou igual a zero.
            taxa:
              type: number
              format: double
              example: 0
              description: O valor da taxa, deve ser maior ou igual a zero.
        conta_financeira:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da conta financeira.
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          description: Método de pagamento.
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
        observacao:
          type: string
          example: 'Payment for invoice #1234'
          description: Observação.
        nsu:
          type: string
          example: '1234567890'
          description: Número sequencial único.
    BaixaAtualizacaoDTO:
      type: object
      required:
        - versao
      properties:
        versao:
          type: integer
          format: int64
          example: 1
          description: >-
            Deve ser enviado a versão atual do registro. Este valor será
            incrementado após sucesso na atualização.
        data_pagamento:
          type: string
          format: date
          example: '2023-10-01'
          description: Data do pagamento.
        composicao_valor:
          type: object
          properties:
            multa:
              type: number
              format: double
              example: 0
              description: O valor da multa, deve ser maior ou igual a zero.
            juros:
              type: number
              format: double
              example: 0
              description: O valor dos juros, deve ser maior ou igual a zero.
            valor_bruto:
              type: number
              format: double
              example: 1000
              description: O valor bruto, deve ser informado e maior ou igual a zero.
            desconto:
              type: number
              format: double
              example: 0
              description: O valor do desconto, deve ser maior ou igual a zero.
            taxa:
              type: number
              format: double
              example: 0
              description: O valor da taxa, deve ser maior ou igual a zero.
        conta_financeira:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da conta financeira.
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          description: Método de pagamento.
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
        observacao:
          type: string
          example: 'Payment for invoice #1234'
          description: Observação.
        nsu:
          type: string
          example: '1234567890'
          description: Número sequencial único.
    BaixaResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da baixa.
        versao:
          type: integer
          format: int64
          example: 1
          description: Versão da baixa.
        data_pagamento:
          type: string
          format: date
          example: '2023-10-01'
          description: Data do pagamento.
        valor_composicao:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              format: double
              example: 0
              description: O valor da multa, deve ser maior ou igual a zero.
            juros:
              type: number
              format: double
              example: 0
              description: O valor dos juros, deve ser maior ou igual a zero.
            valor_bruto:
              type: number
              format: double
              example: 1000
              description: O valor bruto, deve ser informado e maior ou igual a zero.
            desconto:
              type: number
              format: double
              example: 0
              description: O valor do desconto, deve ser maior ou igual a zero.
            taxa:
              type: number
              format: double
              example: 0
              description: O valor da taxa, deve ser maior ou igual a zero.
        conta_financeira:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da conta financeira.
        id_reconciliacao:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da reconciliação.
        id_parcela:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da parcela.
        id_solicitacao_cobranca:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da solicitação de cobrança.
        observacao:
          type: string
          example: 'Payment for invoice #1234'
          description: Observação.
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          description: Método de pagamento.
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
            - PIX_PAGAMENTO_INSTANTANEO
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
            - PIX_COBRANCA
            - DEBITO_AUTOMATICO
        origem:
          type: string
          example: SALDO_CONTA_BANCARIA
          description: Origem.
          enum:
            - LANCAMENTO_FINANCEIRO
            - DAS
            - FOLHA
            - TRANSFERENCIA
            - SALDO_CONTA_BANCARIA
            - VENDA
            - COMPRA
            - VENDA_AGENDADA
            - COMPRA_AGENDADA
            - IMPORTACAO_DOCUMENTO
            - IMPOSTO_RETIDO
            - SIC
            - NOTA_COMPRA
            - ANTECIPACAO
            - RENEGOCIACAO
            - HONORARIOS_CONTABEIS
        id_recibo_digital:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único do recibo digital.
        tipo_evento_financeiro:
          type: string
          example: RECEITA
          description: Tipo de evento financeiro.
          enum:
            - RECEITA
            - DESPESA
        nsu:
          type: string
          example: '1234567890'
          description: Número sequencial único.
        id_referencia:
          type: string
          example: REF1234
          description: Identificador único da referência.
        atualizado_em:
          type: string
          format: date-time
          example: '2023-10-01T12:00:00Z'
          description: Data de atualização.
        anexos:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              referencia:
                type: string
                example: REF1234
              nome:
                type: string
                example: Nome anexo
              descricao:
                type: string
                example: Descrição anexo
              tipo:
                type: string
                example: RECIBO_DIGITAL
                enum:
                  - RECIBO_DIGITAL
                  - RECIBO
              tipo_conteudo:
                type: string
                example: FILE
                enum:
                  - FILE
                  - URL
              url:
                type: string
                example: https://example.com/attachment.pdf
    AnexoBaixaResponseDTO:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        referencia:
          type: string
          example: REF1234
        nome:
          type: string
          example: Nome anexo
        descricao:
          type: string
          example: Descrição anexo
        tipo:
          type: string
          example: RECIBO_DIGITAL
          enum:
            - RECIBO_DIGITAL
            - RECIBO
        tipo_conteudo:
          type: string
          example: FILE
          enum:
            - FILE
            - URL
        url:
          type: string
          example: https://example.com/attachment.pdf
    ValorComposicaoDTO:
      type: object
      required:
        - valor_bruto
      properties:
        multa:
          type: number
          format: double
          example: 0
          description: O valor da multa, deve ser maior ou igual a zero.
        juros:
          type: number
          format: double
          example: 0
          description: O valor dos juros, deve ser maior ou igual a zero.
        valor_bruto:
          type: number
          format: double
          example: 1000
          description: O valor bruto, deve ser informado e maior ou igual a zero.
        desconto:
          type: number
          format: double
          example: 0
          description: O valor do desconto, deve ser maior ou igual a zero.
        taxa:
          type: number
          format: double
          example: 0
          description: O valor da taxa, deve ser maior ou igual a zero.
    ValorComposicaoAtualizacaoDTO:
      type: object
      properties:
        multa:
          type: number
          format: double
          example: 0
          description: O valor da multa, deve ser maior ou igual a zero.
        juros:
          type: number
          format: double
          example: 0
          description: O valor dos juros, deve ser maior ou igual a zero.
        valor_bruto:
          type: number
          format: double
          example: 1000
          description: O valor bruto, deve ser informado e maior ou igual a zero.
        desconto:
          type: number
          format: double
          example: 0
          description: O valor do desconto, deve ser maior ou igual a zero.
        taxa:
          type: number
          format: double
          example: 0
          description: O valor da taxa, deve ser maior ou igual a zero.
    BaixaAtualizacaoRequestDTO:
      type: object
      required:
        - versao
      properties:
        versao:
          type: integer
          format: int64
          example: 1
          description: >-
            Deve ser enviado a versão atual do registro. Este valor será
            incrementado após sucesso na atualização.
        data_pagamento:
          type: string
          format: date
          example: '2023-10-01'
          description: Data do pagamento.
        composicao_valor:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              format: double
              example: 0
              description: O valor da multa, deve ser maior ou igual a zero.
            juros:
              type: number
              format: double
              example: 0
              description: O valor dos juros, deve ser maior ou igual a zero.
            valor_bruto:
              type: number
              format: double
              example: 1000
              description: O valor bruto, deve ser informado e maior ou igual a zero.
            desconto:
              type: number
              format: double
              example: 0
              description: O valor do desconto, deve ser maior ou igual a zero.
            taxa:
              type: number
              format: double
              example: 0
              description: O valor da taxa, deve ser maior ou igual a zero.
        conta_financeira:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da conta financeira.
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          description: Método de pagamento.
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
        observacao:
          type: string
          example: 'Payment for invoice #1234'
          description: Observação.
        nsu:
          type: string
          example: '1234567890'
          description: Número sequencial único.
    GerarCobrancaRequestDto:
      type: object
      required:
        - conta_bancaria
        - descricao_fatura
        - id_parcela
        - data_vencimento
        - tipo
        - atributos
      properties:
        conta_bancaria:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único para a conta bancária.
        descricao_fatura:
          type: string
          example: 'Payment for invoice #1234'
          description: Descrição da fatura.
        id_parcela:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único para a parcela.
        data_vencimento:
          type: string
          format: date
          example: '2023-10-10'
          description: Data de vencimento da cobrança.
        tipo:
          type: string
          example: LINK_PAGAMENTO
          description: Tipo da cobrança.
          enum:
            - LINK_PAGAMENTO
            - PIX_COBRANCA
            - BOLETO
        atributos:
          type: object
          properties:
            desconto_antecipado:
              type: object
              required:
                - dias_antes_vencer
              properties:
                valor:
                  type: number
                  format: double
                  example: 10
                  description: Valor do desconto antecipado.
                percentual:
                  type: number
                  format: double
                  example: 10
                  description: Percentual do desconto antecipado.
                dias_antes_vencer:
                  type: integer
                  example: 10
                  description: Dias antes do vencimento para aplicar o desconto antecipado.
    GerarCobrancaRequestAtributosDto:
      type: object
      properties:
        desconto_antecipado:
          type: object
          required:
            - dias_antes_vencer
          properties:
            valor:
              type: number
              format: double
              example: 10
              description: Valor do desconto antecipado.
            percentual:
              type: number
              format: double
              example: 10
              description: Percentual do desconto antecipado.
            dias_antes_vencer:
              type: integer
              example: 10
              description: Dias antes do vencimento para aplicar o desconto antecipado.
    GerarCobrancaRequestAtributosDescontoAntecipado:
      type: object
      required:
        - dias_antes_vencer
      properties:
        valor:
          type: number
          format: double
          example: 10
          description: Valor do desconto antecipado.
        percentual:
          type: number
          format: double
          example: 10
          description: Percentual do desconto antecipado.
        dias_antes_vencer:
          type: integer
          example: 10
          description: Dias antes do vencimento para aplicar o desconto antecipado.
    GerarCobrancaResponseDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da cobrança.
        url:
          type: string
          example: http://www.exemplo.com.br
          description: Url da cobrança.
        status:
          type: string
          example: AGUARDANDO_CONFIRMACAO
          enum:
            - AGUARDANDO_CONFIRMACAO
            - EM_CANCELAMENTO
            - REGISTRADO
            - QUITADO
            - CANCELADO
            - INVALIDO
            - EXPIRADO
            - FALHA_EMISSAO
            - FALHA_CANCELAR
            - REMESSA_GERADO
            - REMESSA_PENDENTE
            - PAGO
            - EXTORNADO
          description: Status da cobrança.
    ContratoToCreateRequest:
      type: object
      required:
        - id_cliente
        - itens
        - condicao_pagamento
        - termos
      properties:
        id_cliente:
          type: string
          format: uuid
          description: ID do cliente
          example: 123e4567-e89b-12d3-a456-426614174000
        data_emissao:
          type: string
          format: date
          description: Data de emissão
          example: '2021-01-01'
        id_categoria:
          type: string
          format: uuid
          description: ID da categoria
          example: 123e4567-e89b-12d3-a456-426614174000
        id_centro_custo:
          type: string
          format: uuid
          description: ID do centro de custo
          example: 123e4567-e89b-12d3-a456-426614174000
        id_vendedor:
          type: string
          format: uuid
          description: ID do vendedor
          example: 123e4567-e89b-12d3-a456-426614174000
        observacoes:
          type: string
          description: Observações do pagamento
        observacoes_pagamento:
          type: string
          description: Observações complementares da nota fiscal
          example: Pagamento à vista
        termos:
          type: object
          required:
            - tipo_frequencia
            - tipo_expiracao
            - data_inicio
            - data_fim
            - numero
          properties:
            tipo_frequencia:
              type: string
              enum:
                - MENSAL
                - ANUAL
            tipo_expiracao:
              type: string
              enum:
                - DATA
                - NUNCA
            data_inicio:
              type: string
              format: date
              description: Data de início
              example: '2021-01-01'
            data_fim:
              type: string
              format: date
              description: Data de fim
              example: '2021-12-31'
            intervalo_frequencia:
              type: integer
              description: Intervalo de frequência deve ser sempre maior igual a 1
              example: 1
            dia_emissao_venda:
              type: integer
              description: Dia de emissão do contrato
              example: 1
            numero:
              type: integer
              description: O número do contrato deve ser único.
              example: 1
        composicao_de_valor:
          type: object
          properties:
            frete:
              type: number
              format: double
              description: Valor do frete
              example: 10
            desconto:
              type: object
              required:
                - tipo
                - valor
              properties:
                tipo:
                  type: string
                  description: Tipo de desconto
                  enum:
                    - PORCENTAGEM
                    - VALOR
                valor:
                  type: number
                  format: double
                  description: Valor do desconto
                  example: 10
        condicao_pagamento:
          type: object
          required:
            - dia_vencimento
            - primeira_data_vencimento
          properties:
            tipo_pagamento:
              type: string
              description: Tipo de pagamento
              enum:
                - BOLETO_BANCARIO
                - CARTAO_CREDITO
                - CARTAO_DEBITO
                - CARTEIRA_DIGITAL
                - CASHBACK
                - CHEQUE
                - CREDITO_LOJA
                - CREDITO_VIRTUAL
                - DEPOSITO_BANCARIO
                - DINHEIRO
                - OUTRO
                - DEBITO_AUTOMATICO
                - CARTAO_CREDITO_VIA_LINK
                - PIX_PAGAMENTO_INSTANTANEO
                - PIX_COBRANCA
                - PROGRAMA_FIDELIDADE
                - SEM_PAGAMENTO
                - TRANSFERENCIA_BANCARIA
                - VALE_ALIMENTACAO
                - VALE_COMBUSTIVEL
                - VALE_PRESENTE
                - VALE_REFEICAO
              example: BOLETO
            id_conta_financeira:
              type: string
              format: uuid
              description: ID da conta financeira
              example: 123e4567-e89b-12d3-a456-426614174000
            dia_vencimento:
              type: integer
              description: Dia de vencimento
              example: 10
            primeira_data_vencimento:
              type: string
              format: date
              description: Primeira data de vencimento
              example: '2021-01-10'
        itens:
          type: array
          items:
            type: object
            required:
              - id
              - quantidade
              - valor
            properties:
              id:
                type: string
                format: uuid
                description: ID do item
                example: 123e4567-e89b-12d3-a456-426614174000
              quantidade:
                type: integer
                description: Quantidade do produto
                example: 10
              descricao:
                type: string
                description: Descrição do produto
                example: Produto 1
              valor:
                type: number
                format: double
                description: Valor unitário do item
                example: 100
              valor_custo:
                type: number
                format: double
                description: Valor de custo do item
                example: 100
    ComposicaoDeValor:
      type: object
      properties:
        frete:
          type: number
          format: double
          description: Valor do frete
          example: 10
        desconto:
          type: object
          required:
            - tipo
            - valor
          properties:
            tipo:
              type: string
              description: Tipo de desconto
              enum:
                - PORCENTAGEM
                - VALOR
            valor:
              type: number
              format: double
              description: Valor do desconto
              example: 10
    Desconto:
      type: object
      required:
        - tipo
        - valor
      properties:
        tipo:
          type: string
          description: Tipo de desconto
          enum:
            - PORCENTAGEM
            - VALOR
        valor:
          type: number
          format: double
          description: Valor do desconto
          example: 10
    ContratoToCreateResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID do contrato
          example: 123e4567-e89b-12d3-a456-426614174000
        id_legado:
          type: integer
          format: int64
          description: ID legado
          example: 1234
        id_venda:
          type: string
          format: uuid
          description: ID da venda
          example: 6bac0a7f-0422-48a9-86ea-0b1f0a6f9db9
    Termo:
      type: object
      required:
        - tipo_frequencia
        - tipo_expiracao
        - data_inicio
        - data_fim
        - numero
      properties:
        tipo_frequencia:
          type: string
          enum:
            - MENSAL
            - ANUAL
        tipo_expiracao:
          type: string
          enum:
            - DATA
            - NUNCA
        data_inicio:
          type: string
          format: date
          description: Data de início
          example: '2021-01-01'
        data_fim:
          type: string
          format: date
          description: Data de fim
          example: '2021-12-31'
        intervalo_frequencia:
          type: integer
          description: Intervalo de frequência deve ser sempre maior igual a 1
          example: 1
        dia_emissao_venda:
          type: integer
          description: Dia de emissão do contrato
          example: 1
        numero:
          type: integer
          description: O número do contrato deve ser único.
          example: 1
    CondicaoPagamento:
      type: object
      required:
        - dia_vencimento
        - primeira_data_vencimento
      properties:
        tipo_pagamento:
          type: string
          description: Tipo de pagamento
          enum:
            - BOLETO_BANCARIO
            - CARTAO_CREDITO
            - CARTAO_DEBITO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CHEQUE
            - CREDITO_LOJA
            - CREDITO_VIRTUAL
            - DEPOSITO_BANCARIO
            - DINHEIRO
            - OUTRO
            - DEBITO_AUTOMATICO
            - CARTAO_CREDITO_VIA_LINK
            - PIX_PAGAMENTO_INSTANTANEO
            - PIX_COBRANCA
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - TRANSFERENCIA_BANCARIA
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
          example: BOLETO
        id_conta_financeira:
          type: string
          format: uuid
          description: ID da conta financeira
          example: 123e4567-e89b-12d3-a456-426614174000
        dia_vencimento:
          type: integer
          description: Dia de vencimento
          example: 10
        primeira_data_vencimento:
          type: string
          format: date
          description: Primeira data de vencimento
          example: '2021-01-10'
    Item:
      type: object
      required:
        - id
        - quantidade
        - valor
      properties:
        id:
          type: string
          format: uuid
          description: ID do item
          example: 123e4567-e89b-12d3-a456-426614174000
        quantidade:
          type: integer
          description: Quantidade do produto
          example: 10
        descricao:
          type: string
          description: Descrição do produto
          example: Produto 1
        valor:
          type: number
          format: double
          description: Valor unitário do item
          example: 100
        valor_custo:
          type: number
          format: double
          description: Valor de custo do item
          example: 100
    CentroDeCusto:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        codigo:
          type: string
          nullable: true
          example: codigo_inserido_pelo_usuario
        nome:
          type: string
          example: Centro de custo do Robinho
        ativo:
          type: boolean
          example: true
    CriacaoCentroDeCustoRequest:
      type: object
      required:
        - nome
      properties:
        codigo:
          type: string
          nullable: true
          example: codigo_inserido_pelo_usuario
        nome:
          type: string
          example: Centro de custo do Robinho
    Totais:
      type: object
      properties:
        ativo:
          type: integer
          example: 6
        inativo:
          type: integer
          example: 0
        todos:
          type: integer
          example: 6
    CentroDeCustoResponse:
      type: object
      properties:
        itens_totais:
          type: integer
          example: 6
        items:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              codigo:
                type: string
                nullable: true
                example: codigo_inserido_pelo_usuario
              nome:
                type: string
                example: Centro de custo do Robinho
              ativo:
                type: boolean
                example: true
        totais:
          type: object
          properties:
            ativo:
              type: integer
              example: 6
            inativo:
              type: integer
              example: 0
            todos:
              type: integer
              example: 6
    ContasAReceberOuPagarRequest:
      type: object
      required:
        - data_vencimento_de
        - data_vencimento_ate
      properties:
        descricao:
          type: string
          example: Conta do ...
          description: Descrição da conta.
        data_vencimento_de:
          type: string
          example: '2024-05-01'
          description: >-
            Data de vencimento inicial da busca (Um intervalo de data é
            obrigatório entre vencimento, criação ou alteração).
        data_vencimento_ate:
          type: string
          example: '2024-05-31'
          description: >-
            Data de vencimento final da busca (Um intervalo de data é
            obrigatório entre vencimento, criação ou alteração).
        data_competencia_de:
          type: string
          example: '2024-05-31'
          description: Data de competência inicial da busca.
        data_competencia_ate:
          type: string
          example: '2024-05-31'
          description: Data de competência final da busca.
        data_pagamento_de:
          type: string
          example: '2024-05-31'
          description: Data de pagamento inicial da busca.
        data_pagamento_ate:
          type: string
          example: '2024-05-31'
          description: Data de pagamento final da busca.
        data_criacao_de:
          type: string
          format: date-time
          example: '2024-10-22T14:30:00Z'
          description: >-
            Data de criação inicial da busca (Um intervalo de data é obrigatório
            entre vencimento, criação ou alteração).
        data_criacao_ate:
          type: string
          format: date-time
          example: '2024-10-22T14:30:00Z'
          description: >-
            Data de criação final da busca (Um intervalo de data é obrigatório
            entre vencimento, criação ou alteração).
        data_alteracao_de:
          type: string
          format: date-time
          example: '2024-10-22T14:30:00Z'
          description: >-
            Data de alteração inicial da busca (Um intervalo de data é
            obrigatório entre vencimento, criação ou alteração).
        data_alteracao_ate:
          type: string
          format: date-time
          example: '2024-10-22T14:30:00Z'
          description: >-
            Data de alteração final da busca (Um intervalo de data é obrigatório
            entre vencimento, criação ou alteração).
        valor_de:
          type: number
          example: 14.5
          description: Valor mínimo da busca.
        valor_ate:
          type: number
          example: 278.5
          description: Valor máximo da busca.
        status:
          type: array
          description: Status da conta.
          items:
            type: string
        ids_contas_financeiras:
          type: array
          description: UUIDs das contas financeiras.
          items:
            type: string
        ids_categorias:
          type: array
          description: UUIDs das categorias.
          items:
            type: string
        ids_centros_de_custo:
          type: array
          description: UUIDs dos centros de custo.
          items:
            type: string
        metodos_pagamento:
          type: array
          description: Métodos de pagamento.
          items:
            type: string
        referencias:
          type: array
          description: Referências.
          items:
            type: string
    ContasAReceberResponse:
      type: object
      properties:
        itens_totais:
          type: integer
          example: 6
        itens:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: c6a28b6e-efe4-11ee-8ef8-8b86c5251537
              descricao:
                type: string
                example: Descrição...
              data_vencimento:
                type: string
                example: '2027-08-15'
              status:
                type: string
                example: OVERDUE
              total:
                type: number
                example: 781201.79
              nao_pago:
                type: number
                example: 213023.79
              pago:
                type: number
                example: 0
              data_criacao:
                type: string
                format: date-time
                example: '2027-08-15T14:30:00Z'
              data_alteracao:
                type: string
                format: date-time
                example: '2027-08-15T14:30:00Z'
        totais:
          type: object
          properties:
            ativo:
              type: integer
              example: 6
            inativo:
              type: integer
              example: 0
            todos:
              type: integer
              example: 6
    ContasAPagarResponse:
      type: object
      properties:
        itens_totais:
          type: integer
          example: 6
        itens:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                example: c6a28b6e-efe4-11ee-8ef8-8b86c5251537
              descricao:
                type: string
                example: Descrição...
              data_vencimento:
                type: string
                example: '2027-08-15'
              status:
                type: string
                example: OVERDUE
              total:
                type: number
                example: 781201.79
              nao_pago:
                type: number
                example: 213023.79
              pago:
                type: number
                example: 0
              data_criacao:
                type: string
                format: date-time
                example: '2027-08-15T14:30:00Z'
              data_alteracao:
                type: string
                format: date-time
                example: '2027-08-15T14:30:00Z'
        totais:
          type: object
          properties:
            ativo:
              type: integer
              example: 6
            inativo:
              type: integer
              example: 0
            todos:
              type: integer
              example: 6
    ContaAReceberOuContaAPagar:
      type: object
      properties:
        id:
          type: string
          example: c6a28b6e-efe4-11ee-8ef8-8b86c5251537
        descricao:
          type: string
          example: Descrição...
        data_vencimento:
          type: string
          example: '2027-08-15'
        status:
          type: string
          example: OVERDUE
        total:
          type: number
          example: 781201.79
        nao_pago:
          type: number
          example: 213023.79
        pago:
          type: number
          example: 0
        data_criacao:
          type: string
          format: date-time
          example: '2027-08-15T14:30:00Z'
        data_alteracao:
          type: string
          format: date-time
          example: '2027-08-15T14:30:00Z'
    Categoria:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        versao:
          type: integer
          example: 0
        nome:
          type: string
          example: Nome da Categoria
        categoria_pai:
          type: string
          nullable: true
          example: 3d39b8d2-8b16-42d6-abd8-6cfd9d2e06c4
        tipo:
          type: string
          example: RECEITA
        entrada_dre:
          type: string
          example: DESPESAS_ADMINISTRATIVAS
        considera_custo_dre:
          type: boolean
          example: true
    ContaFinanceira:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da conta financeira
        banco:
          type: string
          description: Instituição bancária
        codigo_banco:
          type: integer
          description: Código da instituição bancária
        nome:
          type: string
          description: Nome da conta financeira
        ativo:
          type: boolean
          description: Indica se a conta está ativa
        tipo:
          type: string
          description: Tipo da conta
          enum:
            - APLICACAO
            - CAIXINHA
            - CONTA_CORRENTE
            - CARTAO_CREDITO
            - INVESTIMENTO
            - OUTROS
            - MEIOS_RECEBIMENTO
            - POUPANCA
            - COBRANCAS_CONTA_AZUL
            - RECEBA_FACIL_CARTAO
        conta_padrao:
          type: boolean
          description: Indica se é a conta padrão
        possui_config_boleto_bancario:
          type: boolean
          description: Indica se a conta possui configuração de boleto bancário
        agencia:
          type: string
          description: Agência da conta
        numero:
          type: string
          description: Número da conta
    ParcelaAtualizacaoRequest:
      type: object
      required:
        - versao
      properties:
        nota:
          type: string
          example: Nota da parcela
        descricao:
          type: string
          example: Descrição da parcela
        vencimento:
          type: string
          format: date
          example: '2024-07-15'
        composicao_valor:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              example: 100.25
              description: Valor da multa.
            juros:
              type: number
              example: 1.5
              description: Valor dos juros.
            valor_bruto:
              type: number
              example: 275.99
              description: Valor bruto da parcela é obrigatório.
            valor_liquido:
              type: number
              example: 250.33
              description: Valor líquido da parcela.
            desconto:
              type: number
              example: 2.1
              description: Valor do desconto.
            taxa:
              type: number
              example: 4.4
              description: Valor da taxa.
        versao:
          type: integer
          example: 1
          description: Sempre enviar o valor atual da versão.
        data_pagamento_esperado:
          type: string
          format: date
          example: '2024-07-15'
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
            - PIX_PAGAMENTO_INSTANTANEO
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
            - PIX_COBRANCA
            - DEBITO_AUTOMATICO
        perda:
          type: object
          properties:
            data:
              type: string
              format: date
              example: '2024-07-15'
            valor:
              type: number
              example: 1.99
        nsu:
          type: string
          example: 1029384756
        pagamento_agendado:
          type: boolean
          example: false
        id_conta_financeira:
          type: string
          format: uuid
          example: e12a84ed-fb5c-4b8c-af56-4448b947337c
    ParcelaAtualizacaoResponse:
      type: object
      properties:
        nota:
          type: string
          example: Nota da parcela
        descricao:
          type: string
          example: Descrição da parcela
        vencimento:
          type: string
          format: date
          example: '2024-07-15'
        composicao_valor:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              example: 100.25
              description: Valor da multa.
            juros:
              type: number
              example: 1.5
              description: Valor dos juros.
            valor_bruto:
              type: number
              example: 275.99
              description: Valor bruto da parcela é obrigatório.
            valor_liquido:
              type: number
              example: 250.33
              description: Valor líquido da parcela.
            desconto:
              type: number
              example: 2.1
              description: Valor do desconto.
            taxa:
              type: number
              example: 4.4
              description: Valor da taxa.
        versao:
          type: integer
          example: 1
          description: Nova versão da parcela após salva as alterações.
        data_pagamento_esperado:
          type: string
          format: date
          example: '2024-07-15'
        metodo_pagamento:
          type: string
          example: CARTAO_CREDITO
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
            - PIX_PAGAMENTO_INSTANTANEO
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
            - PIX_COBRANCA
            - DEBITO_AUTOMATICO
        perda:
          type: object
          properties:
            data:
              type: string
              format: date
              example: '2024-07-15'
            valor:
              type: number
              example: 1.99
        nsu:
          type: string
          example: 1029384756
        pagamento_agendado:
          type: boolean
          example: false
        conta_financeira:
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 6bac0a7f-0422-48a9-86ea-0b1f0a6f9db9
            versao:
              type: integer
              example: 1
            nome:
              type: string
              example: Nome do banco
            agencia:
              type: string
              example: 1
            numero:
              type: string
              example: 123
            tipo:
              type: string
              example: OUTROS
              enum:
                - APLICACAO
                - CAIXINHA
                - CONTA_CORRENTE
                - CARTAO_CREDITO
                - INVESTIMENTO
                - OUTROS
                - MEIOS_RECEBIMENTO
                - POUPANCA
                - COBRANCAS_CONTA_AZUL
                - RECEBA_FACIL_CARTAO
            banco:
              type: string
              example: OUTROS
              enum:
                - BANCO_BRASIL
                - BRADESCO
                - CAIXA_ECONOMICA
                - HSBC
                - ITAU
                - INTER
                - ORIGINAL
                - SANTANDER
                - BANCOOB
                - BANESTES
                - BANPARA
                - BANRISUL
                - BCN
                - BANK_BOSTON
                - BANCO_BRASILIA
                - BANCO_NORDESTE
                - CITIBANK
                - CREDISAN
                - NOSSA_CAIXA
                - MERCANTIL
                - REAL
                - SAFRA
                - SICREDI
                - SUDAMERIS
                - UNIBANCO
                - SICOOB
                - AILOS
                - BS2
                - NUBANK
                - UNICRED
                - NEON
                - C6
                - CORA
                - ACESSO
                - STONE
                - AGIBANK
                - ASAAS
                - TOPAZIO
                - DAYCOVAL
                - BANCO_AMAZONIA
                - BANESE
                - BTG_PACTUAL
                - OMNI
                - GENIAL
                - CAPITAL
                - RIBEIRAO_PRETO
                - PAN
                - BMG
                - BNP_PARIBAS_BRASIL
                - CCR_SAO_MIGUEL_OESTE
                - CREDISIS
                - CRESOL
                - FITBANK
                - GERENCIANET
                - GLOBAL_SCM
                - JP_MORGAN
                - JUNO
                - MERCADO_PAGO
                - MODAL
                - MONEY_PLUS
                - NEXT
                - OTIMO
                - PAGSEGURO
                - PICPAY
                - PJBANK
                - POLOCRED
                - RENDIMENTO
                - UNIPRIME
                - UNIPRIME_NORTE_PARANA
                - VORTX_DTVM
                - BRL_TRUST
                - IUGU
                - OUTROS
                - NAO_BANCO
    ParcelaContaFinanceira:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 6bac0a7f-0422-48a9-86ea-0b1f0a6f9db9
        versao:
          type: integer
          example: 1
        nome:
          type: string
          example: Nome do banco
        agencia:
          type: string
          example: 1
        numero:
          type: string
          example: 123
        tipo:
          type: string
          example: OUTROS
          enum:
            - APLICACAO
            - CAIXINHA
            - CONTA_CORRENTE
            - CARTAO_CREDITO
            - INVESTIMENTO
            - OUTROS
            - MEIOS_RECEBIMENTO
            - POUPANCA
            - COBRANCAS_CONTA_AZUL
            - RECEBA_FACIL_CARTAO
        banco:
          type: string
          example: OUTROS
          enum:
            - BANCO_BRASIL
            - BRADESCO
            - CAIXA_ECONOMICA
            - HSBC
            - ITAU
            - INTER
            - ORIGINAL
            - SANTANDER
            - BANCOOB
            - BANESTES
            - BANPARA
            - BANRISUL
            - BCN
            - BANK_BOSTON
            - BANCO_BRASILIA
            - BANCO_NORDESTE
            - CITIBANK
            - CREDISAN
            - NOSSA_CAIXA
            - MERCANTIL
            - REAL
            - SAFRA
            - SICREDI
            - SUDAMERIS
            - UNIBANCO
            - SICOOB
            - AILOS
            - BS2
            - NUBANK
            - UNICRED
            - NEON
            - C6
            - CORA
            - ACESSO
            - STONE
            - AGIBANK
            - ASAAS
            - TOPAZIO
            - DAYCOVAL
            - BANCO_AMAZONIA
            - BANESE
            - BTG_PACTUAL
            - OMNI
            - GENIAL
            - CAPITAL
            - RIBEIRAO_PRETO
            - PAN
            - BMG
            - BNP_PARIBAS_BRASIL
            - CCR_SAO_MIGUEL_OESTE
            - CREDISIS
            - CRESOL
            - FITBANK
            - GERENCIANET
            - GLOBAL_SCM
            - JP_MORGAN
            - JUNO
            - MERCADO_PAGO
            - MODAL
            - MONEY_PLUS
            - NEXT
            - OTIMO
            - PAGSEGURO
            - PICPAY
            - PJBANK
            - POLOCRED
            - RENDIMENTO
            - UNIPRIME
            - UNIPRIME_NORTE_PARANA
            - VORTX_DTVM
            - BRL_TRUST
            - IUGU
            - OUTROS
            - NAO_BANCO
    PerdaFinanceira:
      type: object
      properties:
        data:
          type: string
          format: date
          example: '2024-07-15'
        valor:
          type: number
          example: 1.99
    ComposicaoValor:
      type: object
      required:
        - valor_bruto
      properties:
        multa:
          type: number
          example: 100.25
          description: Valor da multa.
        juros:
          type: number
          example: 1.5
          description: Valor dos juros.
        valor_bruto:
          type: number
          example: 275.99
          description: Valor bruto da parcela é obrigatório.
        valor_liquido:
          type: number
          example: 250.33
          description: Valor líquido da parcela.
        desconto:
          type: number
          example: 2.1
          description: Valor do desconto.
        taxa:
          type: number
          example: 4.4
          description: Valor da taxa.
    EventoFinanceiroRequest:
      type: object
      required:
        - data_competencia
        - valor
        - observacao
        - descricao
        - contato
        - conta_financeira
        - condicao_pagamento
      properties:
        data_competencia:
          type: string
          format: date
          description: Data da compentência do evento financeiro é obrigatório.
        valor:
          type: number
          format: decimal
          description: Valor do evento financeiro é obrigatório.
        observacao:
          type: string
          example: Observação do evento financeiro
          description: Observação do evento financeiro é obrigatório.
        descricao:
          type: string
          example: Descriação do evento financeiro
          description: Descrição do evento financeiro é obrigatório.
        contato:
          type: string
          format: uuid
          description: Identificador do contato é obrigatório.
        conta_financeira:
          type: string
          format: uuid
          description: Identificador da Conta Financeira é obrigatório.
        rateio:
          type: array
          items:
            type: object
            required:
              - id_categoria
              - valor
            properties:
              id_categoria:
                type: string
                format: uuid
                description: Identificador único da categoria é obrigatório.
              valor:
                type: number
                format: decimal
                description: Valor atribuído à categoria no rateio é obrigatório.
              rateio_centro_custo:
                type: array
                items:
                  type: object
                  properties:
                    id_centro_custo:
                      type: string
                      format: uuid
                      description: Identificador único do centro de custo
                    valor:
                      type: number
                      format: decimal
                      description: Valor atribuído ao centro de custo no rateio
                description: Lista de rateios por centro de custo
        condicao_pagamento:
          type: object
          required:
            - parcelas
          properties:
            parcelas:
              type: array
              items:
                type: object
                required:
                  - descricao
                  - data_vencimento
                  - nota
                  - conta_financeira
                  - detalhe_valor
                properties:
                  descricao:
                    type: string
                    example: Descrição da parcela
                    description: A descrição da parcela é obrigatória.
                  data_vencimento:
                    type: string
                    format: date
                    description: A data de vencimento da parcela é obrigatória.
                  nota:
                    type: string
                    example: Nota adicional sobre a parcela
                    description: Nota adicional sobre a parcela é obrigatória.
                  conta_financeira:
                    type: string
                    format: uuid
                    description: >-
                      Identificador da conta financeira associada à parcela é
                      obrigatória.
                  detalhe_valor:
                    type: object
                    required:
                      - valor_bruto
                    properties:
                      multa:
                        type: number
                        example: 100.25
                        description: Valor da multa.
                      juros:
                        type: number
                        example: 1.5
                        description: Valor dos juros.
                      valor_bruto:
                        type: number
                        example: 275.99
                        description: Valor bruto da parcela é obrigatório.
                      valor_liquido:
                        type: number
                        example: 250.33
                        description: Valor líquido da parcela.
                      desconto:
                        type: number
                        example: 2.1
                        description: Valor do desconto.
                      taxa:
                        type: number
                        example: 4.4
                        description: Valor da taxa.
              description: Lista de parcelas da condição de pagamento
    ProtocolResponseDTO:
      type: object
      properties:
        protocolId:
          type: string
          format: uuid
          description: Identificador do protocolo
        status:
          type: string
          description: Status do protocolo
          enum:
            - PENDING
            - SUCCESS
            - ERROR
        createdAt:
          type: string
          format: date-time
          description: Data de criação do protocolo
    CategoriaRateio:
      type: object
      required:
        - id_categoria
        - valor
      properties:
        id_categoria:
          type: string
          format: uuid
          description: Identificador único da categoria é obrigatório.
        valor:
          type: number
          format: decimal
          description: Valor atribuído à categoria no rateio é obrigatório.
        rateio_centro_custo:
          type: array
          items:
            type: object
            properties:
              id_centro_custo:
                type: string
                format: uuid
                description: Identificador único do centro de custo
              valor:
                type: number
                format: decimal
                description: Valor atribuído ao centro de custo no rateio
          description: Lista de rateios por centro de custo
    CentroCustoRateio:
      type: object
      properties:
        id_centro_custo:
          type: string
          format: uuid
          description: Identificador único do centro de custo
        valor:
          type: number
          format: decimal
          description: Valor atribuído ao centro de custo no rateio
    ListaCondicaoPagamento:
      type: object
      required:
        - parcelas
      properties:
        parcelas:
          type: array
          items:
            type: object
            required:
              - descricao
              - data_vencimento
              - nota
              - conta_financeira
              - detalhe_valor
            properties:
              descricao:
                type: string
                example: Descrição da parcela
                description: A descrição da parcela é obrigatória.
              data_vencimento:
                type: string
                format: date
                description: A data de vencimento da parcela é obrigatória.
              nota:
                type: string
                example: Nota adicional sobre a parcela
                description: Nota adicional sobre a parcela é obrigatória.
              conta_financeira:
                type: string
                format: uuid
                description: >-
                  Identificador da conta financeira associada à parcela é
                  obrigatória.
              detalhe_valor:
                type: object
                required:
                  - valor_bruto
                properties:
                  multa:
                    type: number
                    example: 100.25
                    description: Valor da multa.
                  juros:
                    type: number
                    example: 1.5
                    description: Valor dos juros.
                  valor_bruto:
                    type: number
                    example: 275.99
                    description: Valor bruto da parcela é obrigatório.
                  valor_liquido:
                    type: number
                    example: 250.33
                    description: Valor líquido da parcela.
                  desconto:
                    type: number
                    example: 2.1
                    description: Valor do desconto.
                  taxa:
                    type: number
                    example: 4.4
                    description: Valor da taxa.
          description: Lista de parcelas da condição de pagamento
    ParcelaCondicaoPagamento:
      type: object
      required:
        - descricao
        - data_vencimento
        - nota
        - conta_financeira
        - detalhe_valor
      properties:
        descricao:
          type: string
          example: Descrição da parcela
          description: A descrição da parcela é obrigatória.
        data_vencimento:
          type: string
          format: date
          description: A data de vencimento da parcela é obrigatória.
        nota:
          type: string
          example: Nota adicional sobre a parcela
          description: Nota adicional sobre a parcela é obrigatória.
        conta_financeira:
          type: string
          format: uuid
          description: Identificador da conta financeira associada à parcela é obrigatória.
        detalhe_valor:
          type: object
          required:
            - valor_bruto
          properties:
            multa:
              type: number
              example: 100.25
              description: Valor da multa.
            juros:
              type: number
              example: 1.5
              description: Valor dos juros.
            valor_bruto:
              type: number
              example: 275.99
              description: Valor bruto da parcela é obrigatório.
            valor_liquido:
              type: number
              example: 250.33
              description: Valor líquido da parcela.
            desconto:
              type: number
              example: 2.1
              description: Valor do desconto.
            taxa:
              type: number
              example: 4.4
              description: Valor da taxa.
    Parcela:
      type: object
      properties:
        evento:
          type: object
          properties:
            data_competencia:
              type: string
              format: date
              example: 01/01/2030
            id:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
            condicao_pagamento:
              type: object
              properties:
                quantidade_parcelas:
                  type: integer
                  example: 10
                montante_fixo:
                  type: boolean
                  example: false
            referencia:
              type: object
              properties:
                id:
                  type: string
                  format: uuid
                  example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                revisao:
                  type: string
                  example: 1
                origem:
                  type: string
                  example: LANCAMENTO_FINANCEIRO
                  enum:
                    - LANCAMENTO_FINANCEIRO
                    - DAS
                    - FOLHA
                    - TRANSFERENCIA
                    - SALDO_CONTA_BANCARIA
                    - VENDA
                    - COMPRA
                    - VENDA_AGENDADA
                    - COMPRA_AGENDADA
                    - IMPORTACAO_DOCUMENTO
                    - IMPOSTO_RETIDO
                    - SIC
                    - NOTA_COMPRA
                    - ANTECIPACAO
                    - RENEGOCIACAO
                    - HONORARIOS_CONTABEIS
            agendado:
              type: boolean
              example: true
            tipo:
              type: string
              example: RECEITA
              enum:
                - RECEITA
                - DESPESA
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        versao:
          type: integer
          format: int64
        referencia:
          type: string
        indice:
          type: integer
          format: int32
          example: 1
        conciliado:
          type: boolean
          example: true
        status:
          type: string
          example: PENDENTE
          enum:
            - PENDENTE
            - QUITADO
            - CANCELADO
        valor_pago:
          type: number
          format: double
          example: 10
        perda:
          type: object
          properties:
            data:
              type: string
              format: date
              example: '2024-07-15'
            valor:
              type: number
              example: 1.99
        nao_pago:
          type: number
          format: double
          example: 5
        data_vencimento:
          type: string
          format: date
          example: 01/01/2030
        data_pagamento_previsto:
          type: string
          format: date
          example: 01/01/2030
        descricao:
          type: string
          example: bla bla bla
        nota:
          type: string
          example: bla bla bla
        conta_financeira:
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              description: Identificador único da conta financeira
            banco:
              type: string
              description: Instituição bancária
            codigo_banco:
              type: integer
              description: Código da instituição bancária
            nome:
              type: string
              description: Nome da conta financeira
            ativo:
              type: boolean
              description: Indica se a conta está ativa
            tipo:
              type: string
              description: Tipo da conta
              enum:
                - APLICACAO
                - CAIXINHA
                - CONTA_CORRENTE
                - CARTAO_CREDITO
                - INVESTIMENTO
                - OUTROS
                - MEIOS_RECEBIMENTO
                - POUPANCA
                - COBRANCAS_CONTA_AZUL
                - RECEBA_FACIL_CARTAO
            conta_padrao:
              type: boolean
              description: Indica se é a conta padrão
            possui_config_boleto_bancario:
              type: boolean
              description: Indica se a conta possui configuração de boleto bancário
            agencia:
              type: string
              description: Agência da conta
            numero:
              type: string
              description: Número da conta
        id_conta_financeira:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        valor_composicao:
          type: object
          properties:
            multa:
              type: number
              format: double
              example: 10
            juros:
              type: number
              format: double
              example: 1
            valor_bruto:
              type: number
              format: double
              example: 20
            desconto:
              type: number
              format: double
              example: 0.1
            taxa:
              type: number
              format: double
              example: 0.03
            valor_liquido:
              type: number
              format: double
              example: 9
        metodo_pagamento:
          type: string
          example: DEPOSITO_BANCARIO
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
            - PIX_PAGAMENTO_INSTANTANEO
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
            - PIX_COBRANCA
            - DEBITO_AUTOMATICO
        nsu:
          type: string
          example: null
        baixa_agendada:
          type: boolean
          example: false
        baixas:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              versao:
                type: integer
                example: 1
              data_pagamento:
                type: string
                format: date
                example: 01/01/2030
              valor_composicao:
                type: object
                properties:
                  multa:
                    type: number
                    format: double
                    example: 10
                  juros:
                    type: number
                    format: double
                    example: 1
                  valor_bruto:
                    type: number
                    format: double
                    example: 20
                  desconto:
                    type: number
                    format: double
                    example: 0.1
                  taxa:
                    type: number
                    format: double
                    example: 0.03
                  valor_liquido:
                    type: number
                    format: double
                    example: 9
              conta_financeira:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da conta financeira
                  banco:
                    type: string
                    description: Instituição bancária
                  codigo_banco:
                    type: integer
                    description: Código da instituição bancária
                  nome:
                    type: string
                    description: Nome da conta financeira
                  ativo:
                    type: boolean
                    description: Indica se a conta está ativa
                  tipo:
                    type: string
                    description: Tipo da conta
                    enum:
                      - APLICACAO
                      - CAIXINHA
                      - CONTA_CORRENTE
                      - CARTAO_CREDITO
                      - INVESTIMENTO
                      - OUTROS
                      - MEIOS_RECEBIMENTO
                      - POUPANCA
                      - COBRANCAS_CONTA_AZUL
                      - RECEBA_FACIL_CARTAO
                  conta_padrao:
                    type: boolean
                    description: Indica se é a conta padrão
                  possui_config_boleto_bancario:
                    type: boolean
                    description: Indica se a conta possui configuração de boleto bancário
                  agencia:
                    type: string
                    description: Agência da conta
                  numero:
                    type: string
                    description: Número da conta
              id_reconciliacao:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              id_parcela:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              id_solicitacao_cobranca:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              observacao:
                type: string
                example: bla
              metodo_pagamento:
                type: string
                example: DEPOSITO_BANCARIO
                enum:
                  - DINHEIRO
                  - CARTAO_CREDITO
                  - BOLETO_BANCARIO
                  - CARTAO_CREDITO_VIA_LINK
                  - CHEQUE
                  - CARTAO_DEBITO
                  - TRANSFERENCIA_BANCARIA
                  - OUTRO
                  - CARTEIRA_DIGITAL
                  - CASHBACK
                  - CREDITO_LOJA
                  - CREDITO_VIRTUA
                  - DEPOSITO_BANCARIO
                  - PIX_PAGAMENTO_INSTANTANEO
                  - PROGRAMA_FIDELIDADE
                  - SEM_PAGAMENTO
                  - VALE_ALIMENTACAO
                  - VALE_COMBUSTIVEL
                  - VALE_PRESENTE
                  - VALE_REFEICAO
                  - PIX_COBRANCA
                  - DEBITO_AUTOMATICO
              origem:
                type: string
                example: LANCAMENTO_FINANCEIRO
                enum:
                  - LANCAMENTO_FINANCEIRO
                  - DAS
                  - FOLHA
                  - TRANSFERENCIA
                  - SALDO_CONTA_BANCARIA
                  - VENDA
                  - COMPRA
                  - VENDA_AGENDADA
                  - COMPRA_AGENDADA
                  - IMPORTACAO_DOCUMENTO
                  - IMPOSTO_RETIDO
                  - SIC
                  - NOTA_COMPRA
                  - ANTECIPACAO
                  - RENEGOCIACAO
                  - HONORARIOS_CONTABEIS
              id_recibo_digital:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              tipo_evento_financeiro:
                type: string
                example: RECEITA
              nsu:
                type: string
                example: null
              id_referencia:
                type: string
                example: null
              atualizado_em:
                type: string
                format: date-time
                example: 01/01/2030
              anexos:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    referencia:
                      type: string
                      example: bla
                    nome:
                      type: string
                      example: bla
                    descricao:
                      type: string
                      example: bla
                    tipo:
                      type: string
                      example: RECIBO_DIGITAL
                      enum:
                        - RECIBO_DIGITAL
                        - RECIBO
                    tipo_conteudo:
                      type: string
                      example: FILE
                      enum:
                        - FILE
                        - URL
                    url:
                      type: string
                      example: www.example.com
        anexos:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              versao:
                type: integer
                format: int64
                example: 1
              descricao:
                type: string
                example: bla bla
              nome:
                type: string
                example: nome
              url:
                type: string
                example: www.exemplo.com
              tipo_conteudo:
                type: string
                example: URL
              referencia:
                type: string
                example: alguma referencia
              tipo_anexo:
                type: string
                example: BOLETO_BANCARIO
                enum:
                  - BOLETO_BANCARIO_RFB
                  - BOLETO_BANCARIO
                  - RECIBO
                  - FATURA
                  - OUTROS
                  - RECIBO_DIGITAL
              id_parcela:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        solicitacoes_cobrancas:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              versao:
                type: integer
                format: int64
              status_solicitacao_cobranca:
                type: string
                example: AGUARDANDO_CONFIRMACAO
                enum:
                  - AGUARDANDO_CONFIRMACAO
                  - EM_CANCELAMENTO
                  - REGISTRADO
                  - QUITADO
                  - CANCELADO
                  - INVALIDO
                  - EXPIRADO
                  - FALHA_EMISSAO
                  - FALHA_CANCELAR
                  - REMESSA_GERADO
                  - REMESSA_PENDENTE
                  - PAGO
                  - EXTORNADO
              valor_composicao:
                type: object
                properties:
                  multa:
                    type: number
                    format: double
                    example: 10
                  juros:
                    type: number
                    format: double
                    example: 1
                  valor_bruto:
                    type: number
                    format: double
                    example: 20
                  desconto:
                    type: number
                    format: double
                    example: 0.1
                  taxa:
                    type: number
                    format: double
                    example: 0.03
                  valor_liquido:
                    type: number
                    format: double
                    example: 9
              data_vencimento:
                type: string
                format: date
              data_quitacao:
                type: string
                format: date
                example: 01/01/2030
              tipo_solicitacao_cobranca:
                type: string
                example: BOLETO
                enum:
                  - BOLETO
                  - LINK_PAGAMENTO
                  - BOLETO_REGISTRADO
                  - PIX_COBRANCA
              id_cliente:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              id_referencia:
                type: string
                example: id_referencia
              url:
                type: string
                example: www.exemple.com
              detalhe_erro:
                type: string
                example: bla bla
              conta_financeira:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                    description: Identificador único da conta financeira
                  banco:
                    type: string
                    description: Instituição bancária
                  codigo_banco:
                    type: integer
                    description: Código da instituição bancária
                  nome:
                    type: string
                    description: Nome da conta financeira
                  ativo:
                    type: boolean
                    description: Indica se a conta está ativa
                  tipo:
                    type: string
                    description: Tipo da conta
                    enum:
                      - APLICACAO
                      - CAIXINHA
                      - CONTA_CORRENTE
                      - CARTAO_CREDITO
                      - INVESTIMENTO
                      - OUTROS
                      - MEIOS_RECEBIMENTO
                      - POUPANCA
                      - COBRANCAS_CONTA_AZUL
                      - RECEBA_FACIL_CARTAO
                  conta_padrao:
                    type: boolean
                    description: Indica se é a conta padrão
                  possui_config_boleto_bancario:
                    type: boolean
                    description: Indica se a conta possui configuração de boleto bancário
                  agencia:
                    type: string
                    description: Agência da conta
                  numero:
                    type: string
                    description: Número da conta
              notificacao_cobranca:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  solicitacao_cobranca_ids:
                    type: array
                    items:
                      type: string
                      format: uuid
                  versao:
                    type: integer
                    format: int64
                  enviado_em:
                    type: string
                    format: date
                    example: 01/01/2030
                  aberto_em:
                    type: string
                    format: date
                    example: 01/01/2030
                  itens_notificacao_cobranca:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                        versao:
                          type: integer
                          format: int64
                          example: 1
                        email:
                          type: string
                          example: fulano@email.com
                        sms:
                          type: string
                          example: bla bla bla
                        whatsapp:
                          type: string
                          example: bla bla bla
                        status_entrega:
                          type: string
                          example: ENVIADO
                          enum:
                            - ENVIADO
                            - INVALIDO
                  assunto:
                    type: string
                    example: bla bla bla
                  corpo:
                    type: string
                    example: bla bla bla
                  respondido_para:
                    type: string
                    example: fulano@email.com
                  agendado:
                    type: boolean
                    example: false
                  auto_notificacao:
                    type: boolean
                    example: false
                  envio_instantaneo:
                    type: boolean
                    example: false
              confirmado_em:
                type: string
                format: date
                example: 01/01/2030
              descricao:
                type: string
                example: bla bla bla
              referencia_externa:
                type: string
                example: bla bla bla
              recuperado:
                type: boolean
                example: false
              combinado:
                type: boolean
                example: false
              atributos_personalizados:
                type: string
        id_ultima_solicitacao_pagamento:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        id_boleto_bancario_autorizado:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        fatura:
          type: object
          properties:
            numero:
              type: integer
              format: int64
              example: 123
            rps:
              type: integer
              format: int64
              example: 1
            tipo_fatura:
              type: string
              example: NFE
              enum:
                - NFE
                - NFSE
                - NFCE
        valor_total_liquido:
          type: number
          format: double
          example: 10
        id_ultimo_solicitacao_cobranca:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
    Referencia:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        revisao:
          type: string
          example: 1
        origem:
          type: string
          example: LANCAMENTO_FINANCEIRO
          enum:
            - LANCAMENTO_FINANCEIRO
            - DAS
            - FOLHA
            - TRANSFERENCIA
            - SALDO_CONTA_BANCARIA
            - VENDA
            - COMPRA
            - VENDA_AGENDADA
            - COMPRA_AGENDADA
            - IMPORTACAO_DOCUMENTO
            - IMPOSTO_RETIDO
            - SIC
            - NOTA_COMPRA
            - ANTECIPACAO
            - RENEGOCIACAO
            - HONORARIOS_CONTABEIS
    ValorComposicao:
      type: object
      properties:
        multa:
          type: number
          format: double
          example: 10
        juros:
          type: number
          format: double
          example: 1
        valor_bruto:
          type: number
          format: double
          example: 20
        desconto:
          type: number
          format: double
          example: 0.1
        taxa:
          type: number
          format: double
          example: 0.03
        valor_liquido:
          type: number
          format: double
          example: 9
    Baixa:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        versao:
          type: integer
          example: 1
        data_pagamento:
          type: string
          format: date
          example: 01/01/2030
        valor_composicao:
          type: object
          properties:
            multa:
              type: number
              format: double
              example: 10
            juros:
              type: number
              format: double
              example: 1
            valor_bruto:
              type: number
              format: double
              example: 20
            desconto:
              type: number
              format: double
              example: 0.1
            taxa:
              type: number
              format: double
              example: 0.03
            valor_liquido:
              type: number
              format: double
              example: 9
        conta_financeira:
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              description: Identificador único da conta financeira
            banco:
              type: string
              description: Instituição bancária
            codigo_banco:
              type: integer
              description: Código da instituição bancária
            nome:
              type: string
              description: Nome da conta financeira
            ativo:
              type: boolean
              description: Indica se a conta está ativa
            tipo:
              type: string
              description: Tipo da conta
              enum:
                - APLICACAO
                - CAIXINHA
                - CONTA_CORRENTE
                - CARTAO_CREDITO
                - INVESTIMENTO
                - OUTROS
                - MEIOS_RECEBIMENTO
                - POUPANCA
                - COBRANCAS_CONTA_AZUL
                - RECEBA_FACIL_CARTAO
            conta_padrao:
              type: boolean
              description: Indica se é a conta padrão
            possui_config_boleto_bancario:
              type: boolean
              description: Indica se a conta possui configuração de boleto bancário
            agencia:
              type: string
              description: Agência da conta
            numero:
              type: string
              description: Número da conta
        id_reconciliacao:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        id_parcela:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        id_solicitacao_cobranca:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        observacao:
          type: string
          example: bla
        metodo_pagamento:
          type: string
          example: DEPOSITO_BANCARIO
          enum:
            - DINHEIRO
            - CARTAO_CREDITO
            - BOLETO_BANCARIO
            - CARTAO_CREDITO_VIA_LINK
            - CHEQUE
            - CARTAO_DEBITO
            - TRANSFERENCIA_BANCARIA
            - OUTRO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CREDITO_LOJA
            - CREDITO_VIRTUA
            - DEPOSITO_BANCARIO
            - PIX_PAGAMENTO_INSTANTANEO
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
            - PIX_COBRANCA
            - DEBITO_AUTOMATICO
        origem:
          type: string
          example: LANCAMENTO_FINANCEIRO
          enum:
            - LANCAMENTO_FINANCEIRO
            - DAS
            - FOLHA
            - TRANSFERENCIA
            - SALDO_CONTA_BANCARIA
            - VENDA
            - COMPRA
            - VENDA_AGENDADA
            - COMPRA_AGENDADA
            - IMPORTACAO_DOCUMENTO
            - IMPOSTO_RETIDO
            - SIC
            - NOTA_COMPRA
            - ANTECIPACAO
            - RENEGOCIACAO
            - HONORARIOS_CONTABEIS
        id_recibo_digital:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        tipo_evento_financeiro:
          type: string
          example: RECEITA
        nsu:
          type: string
          example: null
        id_referencia:
          type: string
          example: null
        atualizado_em:
          type: string
          format: date-time
          example: 01/01/2030
        anexos:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              referencia:
                type: string
                example: bla
              nome:
                type: string
                example: bla
              descricao:
                type: string
                example: bla
              tipo:
                type: string
                example: RECIBO_DIGITAL
                enum:
                  - RECIBO_DIGITAL
                  - RECIBO
              tipo_conteudo:
                type: string
                example: FILE
                enum:
                  - FILE
                  - URL
              url:
                type: string
                example: www.example.com
    AnexoBaixa:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        referencia:
          type: string
          example: bla
        nome:
          type: string
          example: bla
        descricao:
          type: string
          example: bla
        tipo:
          type: string
          example: RECIBO_DIGITAL
          enum:
            - RECIBO_DIGITAL
            - RECIBO
        tipo_conteudo:
          type: string
          example: FILE
          enum:
            - FILE
            - URL
        url:
          type: string
          example: www.example.com
    AnexoParcela:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        versao:
          type: integer
          format: int64
          example: 1
        descricao:
          type: string
          example: bla bla
        nome:
          type: string
          example: nome
        url:
          type: string
          example: www.exemplo.com
        tipo_conteudo:
          type: string
          example: URL
        referencia:
          type: string
          example: alguma referencia
        tipo_anexo:
          type: string
          example: BOLETO_BANCARIO
          enum:
            - BOLETO_BANCARIO_RFB
            - BOLETO_BANCARIO
            - RECIBO
            - FATURA
            - OUTROS
            - RECIBO_DIGITAL
        id_parcela:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
    SolicitacaoCobranca:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        versao:
          type: integer
          format: int64
        status_solicitacao_cobranca:
          type: string
          example: AGUARDANDO_CONFIRMACAO
          enum:
            - AGUARDANDO_CONFIRMACAO
            - EM_CANCELAMENTO
            - REGISTRADO
            - QUITADO
            - CANCELADO
            - INVALIDO
            - EXPIRADO
            - FALHA_EMISSAO
            - FALHA_CANCELAR
            - REMESSA_GERADO
            - REMESSA_PENDENTE
            - PAGO
            - EXTORNADO
        valor_composicao:
          type: object
          properties:
            multa:
              type: number
              format: double
              example: 10
            juros:
              type: number
              format: double
              example: 1
            valor_bruto:
              type: number
              format: double
              example: 20
            desconto:
              type: number
              format: double
              example: 0.1
            taxa:
              type: number
              format: double
              example: 0.03
            valor_liquido:
              type: number
              format: double
              example: 9
        data_vencimento:
          type: string
          format: date
        data_quitacao:
          type: string
          format: date
          example: 01/01/2030
        tipo_solicitacao_cobranca:
          type: string
          example: BOLETO
          enum:
            - BOLETO
            - LINK_PAGAMENTO
            - BOLETO_REGISTRADO
            - PIX_COBRANCA
        id_cliente:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        id_referencia:
          type: string
          example: id_referencia
        url:
          type: string
          example: www.exemple.com
        detalhe_erro:
          type: string
          example: bla bla
        conta_financeira:
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              description: Identificador único da conta financeira
            banco:
              type: string
              description: Instituição bancária
            codigo_banco:
              type: integer
              description: Código da instituição bancária
            nome:
              type: string
              description: Nome da conta financeira
            ativo:
              type: boolean
              description: Indica se a conta está ativa
            tipo:
              type: string
              description: Tipo da conta
              enum:
                - APLICACAO
                - CAIXINHA
                - CONTA_CORRENTE
                - CARTAO_CREDITO
                - INVESTIMENTO
                - OUTROS
                - MEIOS_RECEBIMENTO
                - POUPANCA
                - COBRANCAS_CONTA_AZUL
                - RECEBA_FACIL_CARTAO
            conta_padrao:
              type: boolean
              description: Indica se é a conta padrão
            possui_config_boleto_bancario:
              type: boolean
              description: Indica se a conta possui configuração de boleto bancário
            agencia:
              type: string
              description: Agência da conta
            numero:
              type: string
              description: Número da conta
        notificacao_cobranca:
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
            solicitacao_cobranca_ids:
              type: array
              items:
                type: string
                format: uuid
            versao:
              type: integer
              format: int64
            enviado_em:
              type: string
              format: date
              example: 01/01/2030
            aberto_em:
              type: string
              format: date
              example: 01/01/2030
            itens_notificacao_cobranca:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                  versao:
                    type: integer
                    format: int64
                    example: 1
                  email:
                    type: string
                    example: fulano@email.com
                  sms:
                    type: string
                    example: bla bla bla
                  whatsapp:
                    type: string
                    example: bla bla bla
                  status_entrega:
                    type: string
                    example: ENVIADO
                    enum:
                      - ENVIADO
                      - INVALIDO
            assunto:
              type: string
              example: bla bla bla
            corpo:
              type: string
              example: bla bla bla
            respondido_para:
              type: string
              example: fulano@email.com
            agendado:
              type: boolean
              example: false
            auto_notificacao:
              type: boolean
              example: false
            envio_instantaneo:
              type: boolean
              example: false
        confirmado_em:
          type: string
          format: date
          example: 01/01/2030
        descricao:
          type: string
          example: bla bla bla
        referencia_externa:
          type: string
          example: bla bla bla
        recuperado:
          type: boolean
          example: false
        combinado:
          type: boolean
          example: false
        atributos_personalizados:
          type: string
    NotificacaoCobranca:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        solicitacao_cobranca_ids:
          type: array
          items:
            type: string
            format: uuid
        versao:
          type: integer
          format: int64
        enviado_em:
          type: string
          format: date
          example: 01/01/2030
        aberto_em:
          type: string
          format: date
          example: 01/01/2030
        itens_notificacao_cobranca:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              versao:
                type: integer
                format: int64
                example: 1
              email:
                type: string
                example: fulano@email.com
              sms:
                type: string
                example: bla bla bla
              whatsapp:
                type: string
                example: bla bla bla
              status_entrega:
                type: string
                example: ENVIADO
                enum:
                  - ENVIADO
                  - INVALIDO
        assunto:
          type: string
          example: bla bla bla
        corpo:
          type: string
          example: bla bla bla
        respondido_para:
          type: string
          example: fulano@email.com
        agendado:
          type: boolean
          example: false
        auto_notificacao:
          type: boolean
          example: false
        envio_instantaneo:
          type: boolean
          example: false
    ItemNotificacaoCobranca:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        versao:
          type: integer
          format: int64
          example: 1
        email:
          type: string
          example: fulano@email.com
        sms:
          type: string
          example: bla bla bla
        whatsapp:
          type: string
          example: bla bla bla
        status_entrega:
          type: string
          example: ENVIADO
          enum:
            - ENVIADO
            - INVALIDO
    Fatura:
      type: object
      properties:
        numero:
          type: integer
          format: int64
          example: 123
        rps:
          type: integer
          format: int64
          example: 1
        tipo_fatura:
          type: string
          example: NFE
          enum:
            - NFE
            - NFSE
            - NFCE
    ListagemDeProdutosPorFiltroRequest:
      type: object
      required:
        - status
      properties:
        busca:
          type: string
          example: exemplo de busca
        status:
          type: string
          enum:
            - ATIVO
            - INATIVO
            - TODOS
          example: ATIVO
        intervalo_valor_venda:
          type: object
          properties:
            min:
              type: number
              format: double
              example: 10
            max:
              type: number
              format: double
              example: 100
    ListagemDeProdutosPorFiltroResponse:
      type: object
      properties:
        itens:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 34471cce-67a2-48b8-a526-1120c0704ed3
              id_legado:
                type: integer
                description: ID Legado do produto.
                example: 12345
              nome:
                type: string
                description: Nome do Produto.
                example: Produto Exemplo
              codigo_sku:
                type: string
                description: Código SKU.
                example: SKU123456
              codigo_ean:
                type: string
                description: Código EAN.
                example: '1234567890123'
              tipo:
                type: string
                description: Tipo do produto.
                example: VARIACAO
                enum:
                  - PRODUTO
                  - VARIACAO
                  - KIT_PRODUTOS
              status:
                type: string
                description: Status do produto
                example: ATIVO
                enum:
                  - ATIVO
                  - INATIVO
                  - TODOS
              estoque:
                type: number
                format: double
                description: Estoque.
                example: 50
              valor_venda:
                type: number
                format: double
                description: Valor de venda.
                example: 99.99
              custo_medio:
                type: number
                format: double
                description: Custo médio.
                example: 50
              filhos:
                type: array
                description: Lista de produtos filhos.
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 34471cce-67a2-48b8-a526-1120c0704ed3
                    id_legado:
                      type: integer
                      description: ID Legado do produto.
                      example: 12345
                    nome:
                      type: string
                      description: Nome do Produto.
                      example: Produto Exemplo
                    codigo_sku:
                      type: string
                      description: Código SKU.
                      example: SKU123456
                    codigo_ean:
                      type: string
                      description: Código EAN.
                      example: '1234567890123'
                    tipo:
                      type: string
                      description: Tipo do produto.
                      example: VARIACAO
                      enum:
                        - PRODUTO
                        - VARIACAO
                        - KIT_PRODUTOS
                    status:
                      type: string
                      description: Status do produto
                      example: ATIVO
                      enum:
                        - ATIVO
                        - INATIVO
                        - TODOS
                    estoque:
                      type: number
                      format: double
                      description: Estoque.
                      example: 50
                    valor_venda:
                      type: number
                      format: double
                      description: Valor de venda.
                      example: 99.99
                    custo_medio:
                      type: number
                      format: double
                      description: Custo médio.
                      example: 50
                    filhos:
                      type: array
                      description: Lista de produtos filhos. Neste nível retorna vazio.
                      items: {}
                    variacao:
                      type: integer
                      description: Quantidade de filhos/variações. Neste nível retorna 0.
                      example: 0
                    nivel_estoque:
                      type: string
                      description: Nível do estoque
                      example: MINIMO
                      enum:
                        - MINIMO
                        - MAXIMO
                        - PADRAO
                    estoque_minimo:
                      type: number
                      format: double
                      description: Estoque mínimo.
                      example: 10
                    estoque_maximo:
                      type: number
                      format: double
                      description: Estoque máximo.
                      example: 200
                    movimentado:
                      type: boolean
                      description: Indica se o produto foi movimentado
                      example: true
                    id_pai:
                      type: string
                      format: uuid
                      description: ID do produto pai
                      example: null
                    integracao_ecommerce_ativa:
                      type: boolean
                      description: Indica se a integração com o e-commerce está ativa.
                      example: true
                example:
                  - id: 123e4567-e89b-12d3-a456-426614174000
                    id_legado: 12345
                    nome: Produto Filho 1
                    codigo_sku: SKU123456
                    codigo_ean: '1234567890123'
                    tipo: PRODUTO
                    status: ATIVO
                    estoque: 20
                    valor_venda: 49.99
                    custo_medio: 25
                    filhos: []
                    variacao: 0
                    nivel_estoque: MINIMO
                    estoque_minimo: 5
                    estoque_maximo: 100
                    movimentado: true
                    id_pai: 34471cce-67a2-48b8-a526-1120c0704ed3
                    integracao_ecommerce_ativa: true
                  - id: 123e4567-e89b-12d3-a456-426614174001
                    id_legado: 12346
                    nome: Produto Filho 2
                    codigo_sku: SKU123457
                    codigo_ean: '1234567890124'
                    tipo: VARIACAO
                    status: INATIVO
                    estoque: 10
                    valor_venda: 29.99
                    custo_medio: 15
                    filhos: []
                    variacao: 0
                    nivel_estoque: MAXIMO
                    estoque_minimo: 2
                    estoque_maximo: 50
                    movimentado: false
                    id_pai: 34471cce-67a2-48b8-a526-1120c0704ed3
                    integracao_ecommerce_ativa: false
              variacao:
                type: integer
                description: Quantidade de filhos/variações.
                example: 2
              nivel_estoque:
                type: string
                description: Nível do estoque
                example: MINIMO
                enum:
                  - MINIMO
                  - MAXIMO
                  - PADRAO
              estoque_minimo:
                type: number
                format: double
                description: Estoque mínimo.
                example: 10
              estoque_maximo:
                type: number
                format: double
                description: Estoque máximo.
                example: 200
              movimentado:
                type: boolean
                description: Indica se o produto foi movimentado
                example: true
              id_pai:
                type: string
                format: uuid
                description: ID do produto pai
                example: null
              integracao_ecommerce_ativa:
                type: boolean
                description: Indica se a integração com o e-commerce está ativa.
                example: true
        itens_totais:
          type: integer
          example: 1
    CriacaoProdutoRequest:
      type: object
      properties:
        nome:
          type: string
          example: Nome do Produto
        codigo_sku:
          type: string
          example: SKU12345
        codigo_ean:
          type: string
          example: '1234567890123'
        observacao:
          type: string
          example: Descrição do produto
        formato:
          type: string
          example: VARIACAO
          enum:
            - SIMPLES
            - VARIACAO
        estoque:
          type: object
          properties:
            quantidade:
              type: integer
              example: 100
            localizacao:
              type: string
              example: Armazém A
        dimensao:
          type: object
          properties:
            altura:
              type: number
              format: double
              example: 10
            largura:
              type: number
              format: double
              example: 5
            profundidade:
              type: number
              format: double
              example: 2
        variacao:
          type: object
          required:
            - tipos
            - produtos
          properties:
            tipos:
              description: >-
                O tipo deve conter pelo menos uma opção. Que será utilizada para
                criar as variações do produto.
              type: array
              items:
                type: object
                required:
                  - descricao
                  - opcoes
                properties:
                  descricao:
                    type: string
                    example: Tamanho
                  opcoes:
                    type: array
                    items:
                      type: object
                      required:
                        - id
                        - descricao
                      properties:
                        id:
                          description: >-
                            Identificador único da opção de variação é
                            obrigatório. Cada opção de variação deve ter um
                            identificador único em cada cadastro de produto. Ao
                            informar a variação no produto, o mesmo
                            identificador do elemento tipos.opcoes deve ser
                            informado em produtos.opcoes.
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        descricao:
                          description: Descrição da opção de variação é obrigatório.
                          type: string
                          example: G
            produtos:
              type: array
              description: >-
                O produto deve conter pelo menos uma opção. Cada item conterá os
                dados do produto e as opções de variação.
              items:
                type: object
                required:
                  - nome
                  - codigo
                  - estoque
                  - opcoes
                properties:
                  nome:
                    type: string
                    example: Produto Variado - Tamanho G
                  codigo:
                    type: string
                    example: PROD123
                  codigo_ean:
                    type: string
                    example: '1234567890123'
                  versao:
                    type: integer
                    example: 1
                  valor_venda:
                    type: number
                    format: double
                    example: 99.99
                  estoque:
                    type: number
                    format: double
                    example: 50
                  opcoes:
                    type: array
                    items:
                      type: object
                      required:
                        - id
                        - descricao
                      properties:
                        id:
                          description: >-
                            Identificador único da opção de variação é
                            obrigatório. Cada opção de variação deve ter um
                            identificador único em cada cadastro de produto. Ao
                            informar a variação no produto, o mesmo
                            identificador do elemento tipos.opcoes deve ser
                            informado em produtos.opcoes.
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        descricao:
                          description: Descrição da opção de variação é obrigatório.
                          type: string
                          example: G
    AtualizacaoProdutoRequest:
      type: object
      properties:
        ativo:
          type: boolean
          example: true
        versao:
          type: integer
          example: 1
        nome:
          type: string
          example: Nome do Produto Atualizado
        codigo:
          type: string
          example: PROD123
        codigo_ean:
          type: string
          example: '1234567890123'
        observacao:
          type: string
          example: Descrição do Produto Atualizada
        status:
          type: string
          example: ATIVO
          description: Status do produto
          enum:
            - ATIVO
            - INATIVO
        formato:
          type: string
          example: VARIACAO
          enum:
            - SIMPLES
            - VARIACAO
        grupo:
          type: object
          properties:
            id:
              type: number
              example: 14689
            name:
              type: string
              example: Categoria de Produto
            uuid:
              type: string
              format: uuid
              example: 34471cce-67a2-48b8-a526-1120c0704ed3
        estoque:
          type: object
          properties:
            estoque_reservado:
              type: number
              format: double
              example: 0
            estoque_total:
              type: number
              format: double
              example: 100
            valor_venda:
              type: number
              format: double
              example: 99.99
            custo_medio:
              type: number
              format: double
              example: 50
            estoque_disponivel:
              type: number
              format: double
              example: 75
        fiscal:
          type: object
          properties:
            unidade_medida:
              type: object
              properties:
                id:
                  type: number
                  example: 8161
                descricao:
                  type: string
                  example: Un
        dimensao:
          type: object
          properties:
            altura:
              type: number
              format: double
              example: 10
            largura:
              type: number
              format: double
              example: 5
            profundidade:
              type: number
              format: double
              example: 2
        ecommerce:
          type: object
          properties:
            condicao:
              type: string
              example: NOVO
              enum:
                - NOVO
                - USADO
            integracao_habilitada:
              type: boolean
              example: false
            observacao_adicional:
              type: string
              example: Descrição adicional....
            titulo_seo:
              type: string
              example: Produto 1.0
            descricao:
              type: string
              example: Lorem ipsum
            url_seo:
              type: string
              example: produto-x-1-0
    ProdutoResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        identificador_legado:
          type: string
          example: legacy-id-123
        ativo:
          type: boolean
          example: true
        versao:
          type: integer
          example: 1
        nome:
          type: string
          example: Nome do Produto
        codigo_sku:
          type: string
          example: PROD123
        codigo_ean:
          type: string
          example: '1234567890123'
        observacao:
          type: string
          example: Descrição do Produto
        status:
          type: string
          description: Status do produto
          example: ATIVO
          enum:
            - ATIVO
            - INATIVO
        formato:
          type: string
          example: VARIACAO
          description: Formato do produto.
          enum:
            - SIMPLES
            - VARIACAO
        estoque:
          type: object
          properties:
            estoque_total:
              type: number
              format: double
              example: 100
            valor_venda:
              type: number
              format: double
              example: 99.99
            custo_medio:
              type: number
              format: double
              example: 50
            estoque_disponivel:
              type: number
              format: double
              example: 80
            estoque_minimo:
              type: number
              format: double
              example: 10
            estoque_maximo:
              type: number
              format: double
              example: 200
        dimensoes:
          type: object
          properties:
            altura:
              type: number
              format: double
              example: 10
            largura:
              type: number
              format: double
              example: 5
            profundidade:
              type: number
              format: double
              example: 2
        ecommerce:
          type: object
          properties:
            condicao:
              type: string
              example: NOVO
              enum:
                - NOVO
                - USADO
            integracao_ativa:
              type: boolean
              example: true
            descricao_adicional:
              type: string
              example: Descrição adicional do produto
            titulo_seo:
              type: string
              example: Título SEO
            descricao_seo:
              type: string
              example: Descrição SEO
            url_seo:
              type: string
              example: url-seo
        variacao:
          type: object
          properties:
            tipos:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  descricao:
                    type: string
                    example: Tamanho
                  opcoes:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        descricao:
                          type: string
                          example: G
            produtos:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    example: 123e4567-e89b-12d3-a456-426614174000
                  nome:
                    type: string
                    example: Produto Variado - Tamanho G
                  codigo:
                    type: string
                    example: PROD123
                  codigo_ean:
                    type: string
                    example: '1234567890123'
                  versao:
                    type: integer
                    example: 1
                  valor_venda:
                    type: number
                    format: double
                    example: 99.99
                  estoque:
                    type: number
                    format: double
                    example: 50
                  opcoes:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          example: 123e4567-e89b-12d3-a456-426614174000
                        descricao:
                          type: string
                          example: G
    ProdutoDesativadoResponse:
      type: object
      properties:
        todos:
          type: array
          items:
            type: string
            format: uuid
          description: Lista de todos os produtos.
        produtos_desativados:
          type: array
          items:
            type: string
            format: uuid
          description: Lista de produtos desativados.
    Categoria1:
      type: object
      properties:
        id:
          type: number
          example: 14689
        name:
          type: string
          example: Categoria de Produto
        uuid:
          type: string
          format: uuid
          example: 34471cce-67a2-48b8-a526-1120c0704ed3
    FiscalAtualizacaoProduto:
      type: object
      properties:
        unidade_medida:
          type: object
          properties:
            id:
              type: number
              example: 8161
            descricao:
              type: string
              example: Un
    EcommerceAtualizacaoProduto:
      type: object
      properties:
        condicao:
          type: string
          example: NOVO
          enum:
            - NOVO
            - USADO
        integracao_habilitada:
          type: boolean
          example: false
        observacao_adicional:
          type: string
          example: Descrição adicional....
        titulo_seo:
          type: string
          example: Produto 1.0
        descricao:
          type: string
          example: Lorem ipsum
        url_seo:
          type: string
          example: produto-x-1-0
    FiltroDeRange:
      type: object
      properties:
        min:
          type: number
          format: double
          example: 10
        max:
          type: number
          format: double
          example: 100
    Estoque:
      type: object
      properties:
        estoque_total:
          type: number
          format: double
          example: 100
        valor_venda:
          type: number
          format: double
          example: 99.99
        custo_medio:
          type: number
          format: double
          example: 50
        estoque_disponivel:
          type: number
          format: double
          example: 80
        estoque_minimo:
          type: number
          format: double
          example: 10
        estoque_maximo:
          type: number
          format: double
          example: 200
    EstoqueCriacaoProduto:
      type: object
      properties:
        quantidade:
          type: integer
          example: 100
        localizacao:
          type: string
          example: Armazém A
    EstoqueAtualizacaoProduto:
      type: object
      properties:
        estoque_reservado:
          type: number
          format: double
          example: 0
        estoque_total:
          type: number
          format: double
          example: 100
        valor_venda:
          type: number
          format: double
          example: 99.99
        custo_medio:
          type: number
          format: double
          example: 50
        estoque_disponivel:
          type: number
          format: double
          example: 75
    Dimensao:
      type: object
      properties:
        altura:
          type: number
          format: double
          example: 10
        largura:
          type: number
          format: double
          example: 5
        profundidade:
          type: number
          format: double
          example: 2
    Ecommerce:
      type: object
      properties:
        condicao:
          type: string
          example: NOVO
          enum:
            - NOVO
            - USADO
        integracao_ativa:
          type: boolean
          example: true
        descricao_adicional:
          type: string
          example: Descrição adicional do produto
        titulo_seo:
          type: string
          example: Título SEO
        descricao_seo:
          type: string
          example: Descrição SEO
        url_seo:
          type: string
          example: url-seo
    VariacaoRequest:
      type: object
      required:
        - tipos
        - produtos
      properties:
        tipos:
          description: >-
            O tipo deve conter pelo menos uma opção. Que será utilizada para
            criar as variações do produto.
          type: array
          items:
            type: object
            required:
              - descricao
              - opcoes
            properties:
              descricao:
                type: string
                example: Tamanho
              opcoes:
                type: array
                items:
                  type: object
                  required:
                    - id
                    - descricao
                  properties:
                    id:
                      description: >-
                        Identificador único da opção de variação é obrigatório.
                        Cada opção de variação deve ter um identificador único
                        em cada cadastro de produto. Ao informar a variação no
                        produto, o mesmo identificador do elemento tipos.opcoes
                        deve ser informado em produtos.opcoes.
                      type: string
                      format: uuid
                      example: 123e4567-e89b-12d3-a456-426614174000
                    descricao:
                      description: Descrição da opção de variação é obrigatório.
                      type: string
                      example: G
        produtos:
          type: array
          description: >-
            O produto deve conter pelo menos uma opção. Cada item conterá os
            dados do produto e as opções de variação.
          items:
            type: object
            required:
              - nome
              - codigo
              - estoque
              - opcoes
            properties:
              nome:
                type: string
                example: Produto Variado - Tamanho G
              codigo:
                type: string
                example: PROD123
              codigo_ean:
                type: string
                example: '1234567890123'
              versao:
                type: integer
                example: 1
              valor_venda:
                type: number
                format: double
                example: 99.99
              estoque:
                type: number
                format: double
                example: 50
              opcoes:
                type: array
                items:
                  type: object
                  required:
                    - id
                    - descricao
                  properties:
                    id:
                      description: >-
                        Identificador único da opção de variação é obrigatório.
                        Cada opção de variação deve ter um identificador único
                        em cada cadastro de produto. Ao informar a variação no
                        produto, o mesmo identificador do elemento tipos.opcoes
                        deve ser informado em produtos.opcoes.
                      type: string
                      format: uuid
                      example: 123e4567-e89b-12d3-a456-426614174000
                    descricao:
                      description: Descrição da opção de variação é obrigatório.
                      type: string
                      example: G
    VariacaoResponse:
      type: object
      properties:
        tipos:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              descricao:
                type: string
                example: Tamanho
              opcoes:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 123e4567-e89b-12d3-a456-426614174000
                    descricao:
                      type: string
                      example: G
        produtos:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              nome:
                type: string
                example: Produto Variado - Tamanho G
              codigo:
                type: string
                example: PROD123
              codigo_ean:
                type: string
                example: '1234567890123'
              versao:
                type: integer
                example: 1
              valor_venda:
                type: number
                format: double
                example: 99.99
              estoque:
                type: number
                format: double
                example: 50
              opcoes:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      example: 123e4567-e89b-12d3-a456-426614174000
                    descricao:
                      type: string
                      example: G
    TipoVariacao:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        descricao:
          type: string
          example: Tamanho
        opcoes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              descricao:
                type: string
                example: G
    ItemVariacao:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        nome:
          type: string
          example: Produto Variado - Tamanho G
        codigo:
          type: string
          example: PROD123
        codigo_ean:
          type: string
          example: '1234567890123'
        versao:
          type: integer
          example: 1
        valor_venda:
          type: number
          format: double
          example: 99.99
        estoque:
          type: number
          format: double
          example: 50
        opcoes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              descricao:
                type: string
                example: G
    TipoVariacaoRequest:
      type: object
      required:
        - descricao
        - opcoes
      properties:
        descricao:
          type: string
          example: Tamanho
        opcoes:
          type: array
          items:
            type: object
            required:
              - id
              - descricao
            properties:
              id:
                description: >-
                  Identificador único da opção de variação é obrigatório. Cada
                  opção de variação deve ter um identificador único em cada
                  cadastro de produto. Ao informar a variação no produto, o
                  mesmo identificador do elemento tipos.opcoes deve ser
                  informado em produtos.opcoes.
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              descricao:
                description: Descrição da opção de variação é obrigatório.
                type: string
                example: G
    ItemVariacaoRequest:
      type: object
      required:
        - nome
        - codigo
        - estoque
        - opcoes
      properties:
        nome:
          type: string
          example: Produto Variado - Tamanho G
        codigo:
          type: string
          example: PROD123
        codigo_ean:
          type: string
          example: '1234567890123'
        versao:
          type: integer
          example: 1
        valor_venda:
          type: number
          format: double
          example: 99.99
        estoque:
          type: number
          format: double
          example: 50
        opcoes:
          type: array
          items:
            type: object
            required:
              - id
              - descricao
            properties:
              id:
                description: >-
                  Identificador único da opção de variação é obrigatório. Cada
                  opção de variação deve ter um identificador único em cada
                  cadastro de produto. Ao informar a variação no produto, o
                  mesmo identificador do elemento tipos.opcoes deve ser
                  informado em produtos.opcoes.
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              descricao:
                description: Descrição da opção de variação é obrigatório.
                type: string
                example: G
    ProductVariationOptionResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        descricao:
          type: string
          example: G
    ProductVariationOptionRequest:
      type: object
      required:
        - id
        - descricao
      properties:
        id:
          description: >-
            Identificador único da opção de variação é obrigatório. Cada opção
            de variação deve ter um identificador único em cada cadastro de
            produto. Ao informar a variação no produto, o mesmo identificador do
            elemento tipos.opcoes deve ser informado em produtos.opcoes.
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        descricao:
          description: Descrição da opção de variação é obrigatório.
          type: string
          example: G
    ProductListResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 34471cce-67a2-48b8-a526-1120c0704ed3
        id_legado:
          type: integer
          description: ID Legado do produto.
          example: 12345
        nome:
          type: string
          description: Nome do Produto.
          example: Produto Exemplo
        codigo_sku:
          type: string
          description: Código SKU.
          example: SKU123456
        codigo_ean:
          type: string
          description: Código EAN.
          example: '1234567890123'
        tipo:
          type: string
          description: Tipo do produto.
          example: VARIACAO
          enum:
            - PRODUTO
            - VARIACAO
            - KIT_PRODUTOS
        status:
          type: string
          description: Status do produto
          example: ATIVO
          enum:
            - ATIVO
            - INATIVO
            - TODOS
        estoque:
          type: number
          format: double
          description: Estoque.
          example: 50
        valor_venda:
          type: number
          format: double
          description: Valor de venda.
          example: 99.99
        custo_medio:
          type: number
          format: double
          description: Custo médio.
          example: 50
        filhos:
          type: array
          description: Lista de produtos filhos.
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 34471cce-67a2-48b8-a526-1120c0704ed3
              id_legado:
                type: integer
                description: ID Legado do produto.
                example: 12345
              nome:
                type: string
                description: Nome do Produto.
                example: Produto Exemplo
              codigo_sku:
                type: string
                description: Código SKU.
                example: SKU123456
              codigo_ean:
                type: string
                description: Código EAN.
                example: '1234567890123'
              tipo:
                type: string
                description: Tipo do produto.
                example: VARIACAO
                enum:
                  - PRODUTO
                  - VARIACAO
                  - KIT_PRODUTOS
              status:
                type: string
                description: Status do produto
                example: ATIVO
                enum:
                  - ATIVO
                  - INATIVO
                  - TODOS
              estoque:
                type: number
                format: double
                description: Estoque.
                example: 50
              valor_venda:
                type: number
                format: double
                description: Valor de venda.
                example: 99.99
              custo_medio:
                type: number
                format: double
                description: Custo médio.
                example: 50
              filhos:
                type: array
                description: Lista de produtos filhos. Neste nível retorna vazio.
                items: {}
              variacao:
                type: integer
                description: Quantidade de filhos/variações. Neste nível retorna 0.
                example: 0
              nivel_estoque:
                type: string
                description: Nível do estoque
                example: MINIMO
                enum:
                  - MINIMO
                  - MAXIMO
                  - PADRAO
              estoque_minimo:
                type: number
                format: double
                description: Estoque mínimo.
                example: 10
              estoque_maximo:
                type: number
                format: double
                description: Estoque máximo.
                example: 200
              movimentado:
                type: boolean
                description: Indica se o produto foi movimentado
                example: true
              id_pai:
                type: string
                format: uuid
                description: ID do produto pai
                example: null
              integracao_ecommerce_ativa:
                type: boolean
                description: Indica se a integração com o e-commerce está ativa.
                example: true
          example:
            - id: 123e4567-e89b-12d3-a456-426614174000
              id_legado: 12345
              nome: Produto Filho 1
              codigo_sku: SKU123456
              codigo_ean: '1234567890123'
              tipo: PRODUTO
              status: ATIVO
              estoque: 20
              valor_venda: 49.99
              custo_medio: 25
              filhos: []
              variacao: 0
              nivel_estoque: MINIMO
              estoque_minimo: 5
              estoque_maximo: 100
              movimentado: true
              id_pai: 34471cce-67a2-48b8-a526-1120c0704ed3
              integracao_ecommerce_ativa: true
            - id: 123e4567-e89b-12d3-a456-426614174001
              id_legado: 12346
              nome: Produto Filho 2
              codigo_sku: SKU123457
              codigo_ean: '1234567890124'
              tipo: VARIACAO
              status: INATIVO
              estoque: 10
              valor_venda: 29.99
              custo_medio: 15
              filhos: []
              variacao: 0
              nivel_estoque: MAXIMO
              estoque_minimo: 2
              estoque_maximo: 50
              movimentado: false
              id_pai: 34471cce-67a2-48b8-a526-1120c0704ed3
              integracao_ecommerce_ativa: false
        variacao:
          type: integer
          description: Quantidade de filhos/variações.
          example: 2
        nivel_estoque:
          type: string
          description: Nível do estoque
          example: MINIMO
          enum:
            - MINIMO
            - MAXIMO
            - PADRAO
        estoque_minimo:
          type: number
          format: double
          description: Estoque mínimo.
          example: 10
        estoque_maximo:
          type: number
          format: double
          description: Estoque máximo.
          example: 200
        movimentado:
          type: boolean
          description: Indica se o produto foi movimentado
          example: true
        id_pai:
          type: string
          format: uuid
          description: ID do produto pai
          example: null
        integracao_ecommerce_ativa:
          type: boolean
          description: Indica se a integração com o e-commerce está ativa.
          example: true
    ProductListChildResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 34471cce-67a2-48b8-a526-1120c0704ed3
        id_legado:
          type: integer
          description: ID Legado do produto.
          example: 12345
        nome:
          type: string
          description: Nome do Produto.
          example: Produto Exemplo
        codigo_sku:
          type: string
          description: Código SKU.
          example: SKU123456
        codigo_ean:
          type: string
          description: Código EAN.
          example: '1234567890123'
        tipo:
          type: string
          description: Tipo do produto.
          example: VARIACAO
          enum:
            - PRODUTO
            - VARIACAO
            - KIT_PRODUTOS
        status:
          type: string
          description: Status do produto
          example: ATIVO
          enum:
            - ATIVO
            - INATIVO
            - TODOS
        estoque:
          type: number
          format: double
          description: Estoque.
          example: 50
        valor_venda:
          type: number
          format: double
          description: Valor de venda.
          example: 99.99
        custo_medio:
          type: number
          format: double
          description: Custo médio.
          example: 50
        filhos:
          type: array
          description: Lista de produtos filhos. Neste nível retorna vazio.
          items: {}
        variacao:
          type: integer
          description: Quantidade de filhos/variações. Neste nível retorna 0.
          example: 0
        nivel_estoque:
          type: string
          description: Nível do estoque
          example: MINIMO
          enum:
            - MINIMO
            - MAXIMO
            - PADRAO
        estoque_minimo:
          type: number
          format: double
          description: Estoque mínimo.
          example: 10
        estoque_maximo:
          type: number
          format: double
          description: Estoque máximo.
          example: 200
        movimentado:
          type: boolean
          description: Indica se o produto foi movimentado
          example: true
        id_pai:
          type: string
          format: uuid
          description: ID do produto pai
          example: null
        integracao_ecommerce_ativa:
          type: boolean
          description: Indica se a integração com o e-commerce está ativa.
          example: true
    Pessoa:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador único da pessoa
        nome:
          type: string
          example: John Doe
          description: Nome da pessoa
        documento:
          type: string
          example: '12345678901'
          description: Documento da pessoa
        inscricao_estadual:
          type: string
          example: '12345678901'
          description: Inscrição estadual da pessoa
        email:
          type: string
          format: email
          example: email@email.com
          description: Email da pessoa
        telefone:
          type: string
          example: '12345678901'
          description: Telefone da pessoa
        ativo:
          type: boolean
          example: true
          description: Indica se a pessoa está ativa
        id_legado:
          type: integer
          format: int64
          example: 123
          description: Identificador legado da pessoa
        uuid_legado:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificador do cadastro legado da pessoa
        perfis:
          type: array
          items:
            type: string
          example:
            - Cliente
          description: Lista de perfis da pessoa
        tipo_pessoa:
          type: string
          example: FISICA
          description: Tipo de pessoa
          enum:
            - FISICA
            - JURIDICA
            - ESTRANGEIRA
        endereco:
          type: object
          properties:
            uuid:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              description: Identificardor único para endereço
            cep:
              type: string
              example: '12345678'
              description: CEP do endereço
            logradouro:
              type: string
              example: nome da rua
              description: Logradouro do endereço
            numero:
              type: string
              example: '123'
              description: Número do endereço
            complemento:
              type: string
              example: apartmento 123
              description: Complemento do endereço
            bairro:
              type: string
              example: Nome do bairro
              description: Bairro do endereço
            id_cidade:
              type: integer
              format: int64
              description: Id da cidade
            cidade:
              type: string
              example: Nome da cidade
              description: Nome da cidade
            estado:
              type: string
              example: Nome do estado
              description: Nome do estado
            pais:
              type: string
              example: Nome do país
              description: Nome do país
    Endereco:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
          description: Identificardor único para endereço
        cep:
          type: string
          example: '12345678'
          description: CEP do endereço
        logradouro:
          type: string
          example: nome da rua
          description: Logradouro do endereço
        numero:
          type: string
          example: '123'
          description: Número do endereço
        complemento:
          type: string
          example: apartmento 123
          description: Complemento do endereço
        bairro:
          type: string
          example: Nome do bairro
          description: Bairro do endereço
        id_cidade:
          type: integer
          format: int64
          description: Id da cidade
        cidade:
          type: string
          example: Nome da cidade
          description: Nome da cidade
        estado:
          type: string
          example: Nome do estado
          description: Nome do estado
        pais:
          type: string
          example: Nome do país
          description: Nome do país
    ResumoCadastroPessoa:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        nome:
          type: string
          example: John Doe
        documento:
          type: string
          example: 123.456.789-00
        atrasos_recebimentos:
          type: number
          format: double
          example: 1500.75
        recebimentos_mes_atual:
          type: number
          format: double
          example: 3000.5
        atrasos_pagamentos:
          type: number
          format: double
          example: 500.25
        pagamentos_mes_atual:
          type: number
          format: double
          example: 2000
        email:
          type: string
          example: john.doe@example.com
        telefone_comercial:
          type: string
          example: +55 11 1234-5678
        celular:
          type: string
          example: +55 11 98765-4321
        criado_em:
          type: string
          example: '2023-01-01T12:00:00Z'
        codigo:
          type: string
          example: ABC123
        perfis:
          type: array
          items:
            type: string
          example:
            - Cliente
            - Fornecedor
            - Transportadora
        pessoas_legado:
          type: array
          items:
            type: object
            properties:
              id_pessoa_legado:
                type: integer
                example: 123
              uuid_pessoa_legado:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              perfil:
                type: string
                example: Admin
          description: Lista de pessoas legado
        enderecos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                description: Identificardor único para endereço
              cep:
                type: string
                example: '12345678'
                description: CEP do endereço
              logradouro:
                type: string
                example: nome da rua
                description: Logradouro do endereço
              numero:
                type: string
                example: '123'
                description: Número do endereço
              complemento:
                type: string
                example: apartmento 123
                description: Complemento do endereço
              bairro:
                type: string
                example: Nome do bairro
                description: Bairro do endereço
              id_cidade:
                type: integer
                format: int64
                description: Id da cidade
              cidade:
                type: string
                example: Nome da cidade
                description: Nome da cidade
              estado:
                type: string
                example: Nome do estado
                description: Nome do estado
              pais:
                type: string
                example: Nome do país
                description: Nome do país
          description: Lista de endereços
        observacoes_gerais:
          type: string
          example: Nenhuma observação
        optante_simples_nacional:
          type: boolean
          example: true
        orgao_publico:
          type: boolean
          example: false
        nome_empresa:
          type: string
          example: Empresa Exemplo
        tipo_pessoa:
          type: string
          example: Física
        mensagem_pagamentos_abertos:
          type: array
          items:
            type: object
            properties:
              numero:
                type: integer
                example: 5
              total:
                type: number
                format: double
                example: 1000
          description: Lista de mensagens de pagamentos em aberto
        lembretes_vencimento:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                example: 123e4567-e89b-12d3-a456-426614174000
              email_lembrete:
                type: string
                example: reminder@example.com
              status:
                type: boolean
                example: true
          description: Lista de lembretes de vencimento
        informacoes_adicionais:
          type: array
          items:
            type: object
            properties:
              rotulo:
                type: string
                example: Informação Adicional
              valor:
                type: string
                example: Valor da Informação
              tipo:
                type: string
                example: Tipo de Informação
          description: Lista de informações adicionais
        outros_contatos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do contato
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              nome:
                type: string
                description: Nome do contato
                example: John Doe
              email:
                type: string
                description: Endereço de email do contato
                example: email@email.com
              telefone_comercial:
                type: string
                description: Telefone comercial do contato
                example: '12345678901'
              celular:
                type: string
                description: Telefone celular do contato
                example: '12345678901'
              escritorio:
                type: string
                description: Escritório do contato
                example: Office
          description: Lista de outros contatos
        informacoes_fiscais:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do registro
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              indicador_inscricao_estadual:
                type: string
                description: Indicador da inscrição estadual
                example: '12345678901'
              inscricao_estadual:
                type: string
                description: Inscrição Estadual
                example: '12345678901'
              inscricao_nacional:
                type: string
                description: Inscrição Nacional
                example: '12345678901'
              inscricao_suframa:
                type: string
                description: Inscrição Suframa
                example: '12345678901'
          description: Lista de informações fiscais
    PessoaLegado:
      type: object
      properties:
        id_pessoa_legado:
          type: integer
          example: 123
        uuid_pessoa_legado:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        perfil:
          type: string
          example: Admin
    MensagemPagamentoAberto:
      type: object
      properties:
        numero:
          type: integer
          example: 5
        total:
          type: number
          format: double
          example: 1000
    LembreteVencimento:
      type: object
      properties:
        uuid:
          type: string
          example: 123e4567-e89b-12d3-a456-426614174000
        email_lembrete:
          type: string
          example: reminder@example.com
        status:
          type: boolean
          example: true
    InformacaoAdicional:
      type: object
      properties:
        rotulo:
          type: string
          example: Informação Adicional
        valor:
          type: string
          example: Valor da Informação
        tipo:
          type: string
          example: Tipo de Informação
    Registro:
      type: object
      properties:
        uuid:
          type: string
          description: Identificador único do registro
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        indicador_inscricao_estadual:
          type: string
          description: Indicador da inscrição estadual
          example: '12345678901'
        inscricao_estadual:
          type: string
          description: Inscrição Estadual
          example: '12345678901'
        inscricao_nacional:
          type: string
          description: Inscrição Nacional
          example: '12345678901'
        inscricao_suframa:
          type: string
          description: Inscrição Suframa
          example: '12345678901'
    OutroContato:
      type: object
      properties:
        uuid:
          type: string
          description: Identificador único do contato
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        nome:
          type: string
          description: Nome do contato
          example: John Doe
        email:
          type: string
          description: Endereço de email do contato
          example: email@email.com
        telefone_comercial:
          type: string
          description: Telefone comercial do contato
          example: '12345678901'
        celular:
          type: string
          description: Telefone celular do contato
          example: '12345678901'
        escritorio:
          type: string
          description: Escritório do contato
          example: Office
    ListaCadastroPessoas:
      type: object
      properties:
        uuids:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 35473eec-4e74-11ee-b500-9f61de8a8b8b
            - 123e4567-e89b-12d3-a456-426614174000
    CadastroPessoasAtivos:
      type: object
      properties:
        todos:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 35473eec-4e74-11ee-b500-9f61de8a8b8b
            - 123e4567-e89b-12d3-a456-426614174000
        ativos:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 35473eec-4e74-11ee-b500-9f61de8a8b8b
            - 123e4567-e89b-12d3-a456-426614174000
        inativos:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 35473eec-4e74-11ee-b500-9f61de8a8b8b
            - 123e4567-e89b-12d3-a456-426614174000
    CadastroPessoaRequest:
      type: object
      properties:
        perfis:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador unico para perfil
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              tipo_perfil:
                type: string
                description: Tipo de perfil
                enum:
                  - CLIENTE
                  - FORNECEDOR
                  - TRANSPORTADORA
          description: Lista de perfis
        registros:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do registro
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              indicador_inscricao_estadual:
                type: string
                description: Indicador da inscrição estadual
                example: '12345678901'
              inscricao_estadual:
                type: string
                description: Inscrição Estadual
                example: '12345678901'
              inscricao_nacional:
                type: string
                description: Inscrição Nacional
                example: '12345678901'
              inscricao_suframa:
                type: string
                description: Inscrição Suframa
                example: '12345678901'
          description: Lista de registros
        outros_contatos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do contato
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              nome:
                type: string
                description: Nome do contato
                example: John Doe
              email:
                type: string
                description: Endereço de email do contato
                example: email@email.com
              telefone_comercial:
                type: string
                description: Telefone comercial do contato
                example: '12345678901'
              celular:
                type: string
                description: Telefone celular do contato
                example: '12345678901'
              escritorio:
                type: string
                description: Escritório do contato
                example: Office
          description: Lista de outros contatos
        enderecos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                description: Identificardor único para endereço
              cep:
                type: string
                example: '12345678'
                description: CEP do endereço
              logradouro:
                type: string
                example: nome da rua
                description: Logradouro do endereço
              numero:
                type: string
                example: '123'
                description: Número do endereço
              complemento:
                type: string
                example: apartmento 123
                description: Complemento do endereço
              bairro:
                type: string
                example: Nome do bairro
                description: Bairro do endereço
              id_cidade:
                type: integer
                format: int64
                description: Id da cidade
              cidade:
                type: string
                example: Nome da cidade
                description: Nome da cidade
              estado:
                type: string
                example: Nome do estado
                description: Nome do estado
              pais:
                type: string
                example: Nome do país
                description: Nome do país
          description: Lista de endereços
        duplicar:
          type: boolean
          description: Duplicar
          example: false
        tipo_pessoa:
          type: string
          description: Tipo de pessoa
          enum:
            - FISICA
            - JURIDICA
            - ESTRANGEIRA
        cnpj:
          type: string
          description: CNPJ
          example: '33111512000184'
        cpf:
          type: string
          description: CPF
          example: '12345678900'
        nome:
          type: string
          description: Nome
          example: John Doe
        codigo:
          type: string
          description: Código
          example: '123'
        ativo:
          type: boolean
          description: Ativo
          example: true
        optante_simples:
          type: boolean
          description: Optante do simples
          example: true
        agencia_publica:
          type: boolean
          description: Agência pública
          example: true
        nome_fantasia:
          type: string
          description: Nome fantasia
          example: Company name
        registro_geral:
          type: string
          description: Registro geral
          example: '12345678901'
        data_nascimento:
          type: string
          description: Data de nascimento
          example: '2022-01-01'
        email:
          type: string
          description: Endereço de email
          example: email@email.com
        telefone_comercial:
          type: string
          description: Telefone comercial
          example: '12345678901'
        celular:
          type: string
          description: Telefone celular
          example: '12345678901'
        observacao:
          type: string
          description: Observação
          example: Observation
        id_contato_principal:
          type: string
          description: ID do contato principal
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        criado_em:
          type: string
          description: Data de criação
          example: '2022-01-01'
        excluido_em:
          type: string
          format: date-time
          description: Data de exclusão
          example: '2022-01-01'
        origem:
          type: string
          description: Origem
          example: Origin
        id_origem:
          type: string
          format: uuid
          description: ID de origem
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
    CadastroPessoaResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: Identificador único da pessoa
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        perfis:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador unico para perfil
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              tipo_perfil:
                type: string
                description: Tipo de perfil
                enum:
                  - CLIENTE
                  - FORNECEDOR
                  - TRANSPORTADORA
          description: Lista de perfis
        registros:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do registro
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              indicador_inscricao_estadual:
                type: string
                description: Indicador da inscrição estadual
                example: '12345678901'
              inscricao_estadual:
                type: string
                description: Inscrição Estadual
                example: '12345678901'
              inscricao_nacional:
                type: string
                description: Inscrição Nacional
                example: '12345678901'
              inscricao_suframa:
                type: string
                description: Inscrição Suframa
                example: '12345678901'
          description: Lista de registros
        outros_contatos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do contato
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              nome:
                type: string
                description: Nome do contato
                example: John Doe
              email:
                type: string
                description: Endereço de email do contato
                example: email@email.com
              telefone_comercial:
                type: string
                description: Telefone comercial do contato
                example: '12345678901'
              celular:
                type: string
                description: Telefone celular do contato
                example: '12345678901'
              escritorio:
                type: string
                description: Escritório do contato
                example: Office
          description: Lista de outros contatos
        enderecos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
                description: Identificardor único para endereço
              cep:
                type: string
                example: '12345678'
                description: CEP do endereço
              logradouro:
                type: string
                example: nome da rua
                description: Logradouro do endereço
              numero:
                type: string
                example: '123'
                description: Número do endereço
              complemento:
                type: string
                example: apartmento 123
                description: Complemento do endereço
              bairro:
                type: string
                example: Nome do bairro
                description: Bairro do endereço
              id_cidade:
                type: integer
                format: int64
                description: Id da cidade
              cidade:
                type: string
                example: Nome da cidade
                description: Nome da cidade
              estado:
                type: string
                example: Nome do estado
                description: Nome do estado
              pais:
                type: string
                example: Nome do país
                description: Nome do país
          description: Lista de endereços
        tipo_pessoa:
          type: string
          description: Tipo de pessoa
          enum:
            - FISICA
            - JURIDICA
            - ESTRANGEIRA
        cnpj:
          type: string
          description: CNPJ
          example: '33111512000184'
        cpf:
          type: string
          description: CPF
          example: '12345678900'
        nome:
          type: string
          description: Nome
          example: John Doe
        codigo:
          type: string
          description: Código
          example: '123'
        ativo:
          type: boolean
          description: Ativo
          example: true
        optante_simples:
          type: boolean
          description: Optante do simples
          example: true
        agencia_publica:
          type: boolean
          description: Agência pública
          example: true
        nome_fantasia:
          type: string
          description: Nome fantasia
          example: Company name
        registro_geral:
          type: string
          description: Registro geral
          example: '12345678901'
        data_nascimento:
          type: string
          description: Data de nascimento
          example: '2022-01-01'
        email:
          type: string
          description: Endereço de email
          example: email@email.com
        telefone_comercial:
          type: string
          description: Telefone comercial
          example: '12345678901'
        celular:
          type: string
          description: Telefone celular
          example: '12345678901'
        observacao:
          type: string
          description: Observação
          example: Observation
        id_contato_principal:
          type: string
          description: ID do contato principal
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        criado_em:
          type: string
          description: Data de criação
          example: '2022-01-01'
        excluido_em:
          type: string
          format: date-time
          description: Data de exclusão
          example: '2022-01-01'
        origem:
          type: string
          description: Origem
          example: Origin
        id_origem:
          type: string
          format: uuid
          description: ID de origem
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
    Perfil:
      type: object
      properties:
        uuid:
          type: string
          description: Identificador unico para perfil
          example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
        tipo_perfil:
          type: string
          description: Tipo de perfil
          enum:
            - CLIENTE
            - FORNECEDOR
            - TRANSPORTADORA
    DeleteCadastroPessoaResponse:
      type: object
      properties:
        todos:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 35473eec-4e74-11ee-b500-9f61de8a8b8b
            - 123e4567-e89b-12d3-a456-426614174000
        excluidos:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 35473eec-4e74-11ee-b500-9f61de8a8b8b
        nao_excluidos:
          type: array
          items:
            type: string
            format: uuid
          example:
            - 123e4567-e89b-12d3-a456-426614174000
    MensagemPagamentosAbertos:
      type: object
      properties:
        numero:
          type: integer
          example: 5
        total:
          type: number
          format: double
          example: 1000
    CadastroPessoaResumoResponse:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
          description: Identificador único do cadastro de pessoa
          example: 123e4567-e89b-12d3-a456-426614174000
        nome:
          type: string
          description: Nome da pessoa
          example: John Doe
        documento:
          type: string
          description: Documento da pessoa
          example: '12345678901'
        atrasos_recebimentos:
          type: number
          format: double
          description: Atrasos em recebimentos
          example: 1500.75
        recebimentos_mes_atual:
          type: number
          format: double
          description: Recebimentos no mês atual
          example: 3000.5
        atrasos_pagamentos:
          type: number
          format: double
          description: Atrasos em pagamentos
          example: 500.25
        pagamentos_mes_atual:
          type: number
          format: double
          description: Pagamentos do mês atual
          example: 3000
        email:
          type: string
          format: email
          description: Email da pessoa
          example: john.doe@example.com
        telefone_comercial:
          type: string
          description: Telefone comercial
          example: +55 11 1234-5678
        celular:
          type: string
          description: Telefone celular
          example: +55 11 9876-5432
        criado_em:
          type: string
          format: date-time
          description: Data de criação do cadastro
          example: '2023-01-01T12:00:00Z'
        codigo:
          type: string
          description: Código do cadastro
          example: '123'
        perfis:
          type: array
          items:
            type: string
          description: Lista de perfis da pessoa
          example:
            - Cliente
            - Fornecedor
        pessoas_legado:
          type: array
          items:
            type: object
            properties:
              id_pessoa_legado:
                type: integer
                example: 123
              uuid_pessoa_legado:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              perfil:
                type: string
                example: Admin
          description: Lista de pessoas legado
        endereco:
          type: object
          properties:
            uuid:
              type: string
              format: uuid
              example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              description: Identificardor único para endereço
            cep:
              type: string
              example: '12345678'
              description: CEP do endereço
            logradouro:
              type: string
              example: nome da rua
              description: Logradouro do endereço
            numero:
              type: string
              example: '123'
              description: Número do endereço
            complemento:
              type: string
              example: apartmento 123
              description: Complemento do endereço
            bairro:
              type: string
              example: Nome do bairro
              description: Bairro do endereço
            id_cidade:
              type: integer
              format: int64
              description: Id da cidade
            cidade:
              type: string
              example: Nome da cidade
              description: Nome da cidade
            estado:
              type: string
              example: Nome do estado
              description: Nome do estado
            pais:
              type: string
              example: Nome do país
              description: Nome do país
        observacoes_gerais:
          type: string
          description: Observações gerais
          example: Nenhuma observação
        optante_simples_nacional:
          type: boolean
          description: Indica se a pessoa é optante do Simples Nacional
          example: true
        orgao_publico:
          type: boolean
          description: Indica se a pessoa é um órgão público
          example: false
        nome_empresa:
          type: string
          description: Nome da empresa
          example: Empresa Exemplo
        tipo_pessoa:
          type: string
          description: Tipo de pessoa
          example: Física
        mensagem_pagamentos_abertos:
          type: object
          properties:
            numero:
              type: integer
              example: 5
            total:
              type: number
              format: double
              example: 1000
        lembretes_vencimento:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                example: 123e4567-e89b-12d3-a456-426614174000
              email_lembrete:
                type: string
                example: reminder@example.com
              status:
                type: boolean
                example: true
          description: Lembretes de vencimento
        informacoes_adicionais:
          type: array
          items:
            type: object
            properties:
              rotulo:
                type: string
                example: Informação Adicional
              valor:
                type: string
                example: Valor da Informação
              tipo:
                type: string
                example: Tipo de Informação
          description: Informações adicionais
        outros_contatos:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do contato
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              nome:
                type: string
                description: Nome do contato
                example: John Doe
              email:
                type: string
                description: Endereço de email do contato
                example: email@email.com
              telefone_comercial:
                type: string
                description: Telefone comercial do contato
                example: '12345678901'
              celular:
                type: string
                description: Telefone celular do contato
                example: '12345678901'
              escritorio:
                type: string
                description: Escritório do contato
                example: Office
          description: Outros contatos
        informacoes_fiscais:
          type: array
          items:
            type: object
            properties:
              uuid:
                type: string
                description: Identificador único do registro
                example: 35473eec-4e74-11ee-b500-9f61de8a8b8b
              indicador_inscricao_estadual:
                type: string
                description: Indicador da inscrição estadual
                example: '12345678901'
              inscricao_estadual:
                type: string
                description: Inscrição Estadual
                example: '12345678901'
              inscricao_nacional:
                type: string
                description: Inscrição Nacional
                example: '12345678901'
              inscricao_suframa:
                type: string
                description: Inscrição Suframa
                example: '12345678901'
          description: Informações fiscais
    ProtocolResponseDTO1:
      type: object
      properties:
        protocolId:
          type: string
          format: uuid
          description: Identificador do protocolo
        message:
          type: string
          description: Mensagem do protocolo
        status:
          type: string
          description: Status do protocolo
          enum:
            - PENDING
            - SUCCESS
            - ERROR
    ExclusaoLote:
      type: object
      properties:
        ids:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 10
          description: Lista de UUIDs das vendas a serem excluídas
      required:
        - ids
      example:
        ids:
          - 123e4567-e89b-12d3-a456-426614174000
          - 123e4567-e89b-12d3-a456-426614174001
    ItensPaginados:
      type: object
      properties:
        itens:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
                description: UUID do item vendido
              id_item:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174001
                description: UUID do item
              nome:
                type: string
                example: Produto 1
                description: Nome do item vendido
              descricao:
                type: string
                example: Descrição do produto 1
                description: Descrição do item vendido
              tipo:
                type: string
                enum:
                  - PRODUTO
                  - SERVICO
                  - ATIVOS_IMOBILIZADOS
                  - FINANCEIRO
                  - KIT_PRODUTOS
                description: Tipo do item vendido
              quantidade:
                type: number
                example: 1
                description: Quantidade do item vendido
              valor:
                type: number
                example: 100
                description: Valor unitário do item vendido
        itens_totais:
          type: integer
        totais:
          type: object
          properties:
            quantidade_produtos:
              type: integer
              example: 1
              description: Quantidade total de produtos vendidos
            quantidade_servicos:
              type: integer
              example: 1
              description: Quantidade total de serviços vendidos
            quantidade_nao_conciliados:
              type: integer
              example: 1
              description: Quantidade total de itens não conciliados
    Item1:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
          description: UUID do item vendido
        id_item:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174001
          description: UUID do item
        nome:
          type: string
          example: Produto 1
          description: Nome do item vendido
        descricao:
          type: string
          example: Descrição do produto 1
          description: Descrição do item vendido
        tipo:
          type: string
          enum:
            - PRODUTO
            - SERVICO
            - ATIVOS_IMOBILIZADOS
            - FINANCEIRO
            - KIT_PRODUTOS
          description: Tipo do item vendido
        quantidade:
          type: number
          example: 1
          description: Quantidade do item vendido
        valor:
          type: number
          example: 100
          description: Valor unitário do item vendido
    Totais1:
      type: object
      properties:
        quantidade_produtos:
          type: integer
          example: 1
          description: Quantidade total de produtos vendidos
        quantidade_servicos:
          type: integer
          example: 1
          description: Quantidade total de serviços vendidos
        quantidade_nao_conciliados:
          type: integer
          example: 1
          description: Quantidade total de itens não conciliados
    ObterVendaResponse:
      type: object
      properties:
        cliente:
          type: object
          properties:
            uuid:
              type: string
              format: uuid
            tipo_pessoa:
              type: string
              description: Tipo de pessoa
              example: Física
            documento:
              type: string
              description: Documento
              example: '12345678901'
            nome:
              type: string
              description: Nome
              example: João da Silva
        evento_financeiro:
          type: object
          properties:
            id:
              type: string
              format: uuid
        notificacao:
          type: object
          properties:
            id_referencia:
              type: string
              description: ID de referência da notificação
            enviado_para:
              type: string
              description: Enviado para
            enviado_em:
              type: string
              format: date-time
              description: Data e hora de envio
            aberto_em:
              type: string
              format: date-time
              description: Data e hora de abertura
            status:
              type: string
              enum:
                - ENVIADO
                - LIDO
        natureza_operacao:
          type: object
          properties:
            uuid:
              type: string
              format: uuid
            tipo_operacao:
              type: string
              enum:
                - VENDA
                - REMESSA
                - COMPRA
                - DEVOLUCAO
              example: VENDA
            template_operacao:
              type: string
              enum:
                - VENDA_MERCADORIAS
                - VENDA_SUFRAMA
                - VENDA_ENTREGA_FUTURA
                - VENDA_CONSIGNADA
                - VENDA_NAO_CONTRIBUINTE
                - VENDA_EXPORTACAO
                - VENDA_ORDEM
                - VENDA_INDUSTRIALIZACAO
                - PRESTACAO_SERVICO
            label:
              type: string
              description: Label
              example: Venda a Não Contribuinte
            mudanca_financeira:
              type: boolean
            mudanca_estoque:
              type: string
              enum:
                - ENTRADA_ESTOQUE
                - SAIDA_ESTOQUE
                - NAO_ALTERA_ESTOQUE
        venda:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: ID da negociação
            status:
              type: string
              enum:
                - REVISAO_PENDENTE
                - EM_ORCAMENTO
                - ORCAMENTO_ACEITO
                - ORCAMENTO_RECUSADO
                - VENDA
                - CONTRATO
                - CANCELADO
                - PREVISAO
                - INCOMPLETA
            id_legado:
              type: integer
            tipo_negociacao:
              type: string
              enum:
                - VENDA
                - COMPRA
            numero:
              type: integer
            id_categoria:
              type: string
              format: uuid
            data_compromisso:
              format: date
              example: '2023-12-31'
            configuracao_de_desconto:
              type: object
              properties:
                tipo_desconto:
                  type: string
                  enum:
                    - PORCENTAGEM
                    - VALOR
                taxa_desconto:
                  type: number
                  format: double
            composicao_valor:
              type: object
              properties:
                valor_bruto:
                  type: number
                  format: double
                desconto:
                  type: number
                  format: double
                frete:
                  type: number
                  format: double
                impostos:
                  type: number
                  format: double
                impostos_deduzidos:
                  type: number
                  format: double
                seguro:
                  type: number
                  format: double
                despesas_incidentais:
                  type: number
                  format: double
                valor_liquido:
                  type: number
                  format: double
            condicao_pagamento:
              type: object
              properties:
                tipo_pagamento:
                  type: string
                  enum:
                    - BOLETO_BANCARIO
                    - CARTAO_CREDITO
                    - CARTAO_DEBITO
                    - CARTEIRA_DIGITAL
                    - CASHBACK
                    - CHEQUE
                    - CREDITO_LOJA
                    - CREDITO_VIRTUAL
                    - DEPOSITO_BANCARIO
                    - DINHEIRO
                    - OUTRO
                    - DEBITO_AUTOMATICO
                    - LINK_PAGAMENTO
                    - PAGAMENTO_INSTANTANEO
                    - COBRANCA_PIX
                    - PROGRAMA_FIDELIDADE
                    - SEM_PAGAMENTO
                    - TRANSFERENCIA_BANCARIA
                    - VALE_ALIMENTACAO
                    - VALE_COMBUSTIVEL
                    - VALE_PRESENTE
                    - VALE_REFEICAO
                id_conta_financeira:
                  type: string
                  format: uuid
                pagamento_a_vista:
                  type: boolean
                parcelas:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: ID da parcela
                      numero:
                        type: integer
                        example: 1
                        description: Número da parcela
                      data_vencimento:
                        format: date
                        example: '2023-12-31'
                        description: Data de vencimento
                      valor:
                        type: number
                        format: double
                        description: Valor da parcela
                        example: 26.99
                      descricao:
                        type: string
                        example: Parcela 1
                        description: Descrição da parcela
                observacoes_pagamento:
                  type: string
                  description: Observações sobre o pagamento
                  example: ''
                opcao_condicao_pagamento:
                  type: string
                  description: Opção de condição de pagamento
                  example: À vista
                nsu:
                  type: string
                pagamento_cartao:
                  type: object
                  properties:
                    tipo_bandeira:
                      type: string
                      enum:
                        - VISA
                        - MASTERCARD
                        - AMERICAN_EXPRESS
                        - SOROCRED
                        - DINERS_CLUB
                        - ELO
                        - HIPERCARD
                        - AURA
                        - CABAL
                        - ALELO
                        - BANES_CARD
                        - CALCARDS
                        - CREDZ
                        - DISCOVER
                        - GOODCARD
                        - GREENCARD
                        - HIPER
                        - JCB
                        - MAIS
                        - MAXVAN
                        - POLICARD
                        - REDECOMPRAS
                        - SODEXO
                        - VALECARD
                        - VEROCHEQUE
                        - VR
                        - TICKET
                        - OUTROS
                    codigo_transacao:
                      type: string
                    id_adquirente:
                      type: integer
                      format: int64
            total_itens:
              type: object
              properties:
                contagem_produtos:
                  type: integer
                  format: int64
                contagem_servicos:
                  type: integer
                  format: int64
                contagem_nao_conciliados:
                  type: integer
                  format: int64
            observacoes:
              type: string
            id_cliente:
              type: string
              format: uuid
            versao:
              type: integer
            tipo_pendencia:
              type: object
              properties:
                nome:
                  enum:
                    - NENHUMA
                    - RESERVA_DE_ESTOQUE
                    - CONCILIACAO_ITENS
                    - PROCESSAMENTO_RESERVA_DE_ESTOQUE
                    - ESPERANDO_CONFIRMACAO
                    - AGUARDANDO_GERACAO_NOTA_FISCAL
                  description: Nome da pendência
                  example: NENHUMA
                descricao:
                  type: string
                  description: Descrição da pendência
                  example: Nenhuma
            situacao:
              type: object
              properties:
                nome:
                  enum:
                    - EM_ANDAMENTO
                    - APROVADO
                    - FATURADO
                    - CANCELADO
                    - ORCAMENTO
                    - ORCAMENTO_ACEITO
                    - ORCAMENTO_RECUSADO
                    - CONTRATO
                    - VENDA
                  description: Nome da situação
                  example: APROVADO
                descricao:
                  type: string
                  description: Descrição da situação
                  example: Aprovado
                ativado:
                  type: boolean
                  description: Ativado ou não
            id_natureza_operacao:
              type: string
              format: uuid
            id_centro_custo:
              type: string
              format: uuid
    FiltroVendasRequest:
      type: object
      properties:
        termo_busca:
          type: string
          description: >-
            Termo para busca das vendas por nome, email do cliente ou número da
            venda.
        periodo:
          type: object
          properties:
            data_inicio:
              type: string
              format: date
              description: Data de início da criação da venda
            data_fim:
              type: string
              format: date
              description: Data final da criação da venda
        ids_donos:
          type: array
          items:
            type: string
            format: uuid
          description: IDs dos donos
        ids_clientes:
          type: array
          items:
            type: string
            format: uuid
          description: IDs dos clientes
        ids_natureza_operacao:
          type: array
          items:
            type: string
            format: uuid
          description: >-
            IDs da natureza da operação. Possíveis valores IN_PROCESS, APPROVED,
            INVOICED, CANCELED, PROPOSAL, PROPOSAL_ACCEPTED, PROPOSAL_REFUSED,
            SCHEDULED, COMMITED
        situacoes:
          type: array
          items:
            type: string
            description: Tipo de situação
          description: Situações
        tipos:
          type: array
          items:
            type: string
            description: Tipo de venda
          description: Tipos de venda
        origens:
          type: array
          items:
            type: string
          description: Origens
        numeros:
          type: array
          items:
            type: integer
          description: Números
        ids_categorias:
          type: array
          items:
            type: string
            format: uuid
          description: IDs das categorias
        ids_produtos:
          type: array
          items:
            type: string
            format: uuid
          description: IDs dos produtos
        pendente:
          type: boolean
          description: Pendente
        totais:
          type: string
          description: >-
            Tipo de total de venda. Possíveis valores WAITING_APPROVED,
            APPROVED, CANCELED e ALL
        ids_legado_donos:
          type: array
          items:
            type: integer
          description: IDs legados dos donos
        ids_legado_clientes:
          type: array
          items:
            type: integer
          description: IDs legados das categorias
        ids_legado_produtos:
          type: array
          items:
            type: integer
          description: IDs legados dos produtos
        ids_legado_categorias:
          type: array
          items:
            type: integer
          description: IDs legados dos clientes
    ListagemVendasResponse:
      type: object
      properties:
        totais:
          type: object
          description: >-
            Valores das de vendas com status Aprovado, Cancelado, Esperando
            aprovação e Total
          properties:
            total:
              type: number
              format: double
              description: Valor total obtido de todas as vendas
            aprovado:
              type: number
              format: double
              description: Valor obtido das vendas aprovadas
            cancelado:
              type: number
              format: double
              description: Valor obtido das vendas canceladas
            esperando_aprovacao:
              type: number
              format: double
              description: Valor obtido das vendas esperando aprovação
        quantidades:
          type: object
          description: >-
            Quantidades de vendas com status Aprovado, Cancelado, Esperando
            aprovação e Total
          properties:
            total:
              type: number
              format: double
              description: Quantidade total de vendas realizadas
            aprovado:
              type: number
              format: double
              description: Quantidade de vendas aprovadas
            cancelado:
              type: number
              format: double
              description: Quantidade de vendas canceladas
            esperando_aprovacao:
              type: number
              format: double
              description: Quantidade de vendas esperando aprovação
        total_itens:
          type: integer
          description: Total de itens
        itens:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: ID da venda
              total:
                type: number
                format: double
                description: Total da venda
              id_legado:
                type: integer
                description: ID legado da venda
              data:
                type: string
                description: Data da venda
              tipo:
                type: string
                description: Tipo da venda
              itens:
                type: string
                description: Tipo de itens
              condicao_pagamento:
                type: boolean
                description: Condição de pagamento
              numero:
                type: integer
                description: Número da venda
              cliente:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: ID do cliente
                  nome:
                    type: string
                    description: Nome do cliente
                  email:
                    type: string
                    description: Email do cliente
                  telefone:
                    type: string
                    description: Telefone do cliente
                  endereco:
                    type: string
                    description: Endereço do cliente
                  cidade:
                    type: string
                    description: Cidade do cliente
                  estado:
                    type: string
                    description: Estado do cliente
                  pais:
                    type: string
                    description: País do cliente
                  cep:
                    type: string
                    description: CEP do cliente
              situacao:
                type: object
                properties:
                  status:
                    type: string
                    description: Status da situação
                  descricao:
                    type: string
                    description: Descrição da situação
                  data:
                    type: string
                    description: Data da situação
              versao:
                type: integer
                description: Versão da venda
              status_email:
                type: object
                properties:
                  status:
                    type: string
                    description: Status
                  enviado_em:
                    type: string
                    format: date
                    description: Data de envio
    TotaisVenda:
      type: object
      description: >-
        Valores das de vendas com status Aprovado, Cancelado, Esperando
        aprovação e Total
      properties:
        total:
          type: number
          format: double
          description: Valor total obtido de todas as vendas
        aprovado:
          type: number
          format: double
          description: Valor obtido das vendas aprovadas
        cancelado:
          type: number
          format: double
          description: Valor obtido das vendas canceladas
        esperando_aprovacao:
          type: number
          format: double
          description: Valor obtido das vendas esperando aprovação
    QuantidadesVenda:
      type: object
      description: >-
        Quantidades de vendas com status Aprovado, Cancelado, Esperando
        aprovação e Total
      properties:
        total:
          type: number
          format: double
          description: Quantidade total de vendas realizadas
        aprovado:
          type: number
          format: double
          description: Quantidade de vendas aprovadas
        cancelado:
          type: number
          format: double
          description: Quantidade de vendas canceladas
        esperando_aprovacao:
          type: number
          format: double
          description: Quantidade de vendas esperando aprovação
    Venda:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID da venda
        total:
          type: number
          format: double
          description: Total da venda
        id_legado:
          type: integer
          description: ID legado da venda
        data:
          type: string
          description: Data da venda
        tipo:
          type: string
          description: Tipo da venda
        itens:
          type: string
          description: Tipo de itens
        condicao_pagamento:
          type: boolean
          description: Condição de pagamento
        numero:
          type: integer
          description: Número da venda
        cliente:
          type: object
          properties:
            id:
              type: string
              format: uuid
              description: ID do cliente
            nome:
              type: string
              description: Nome do cliente
            email:
              type: string
              description: Email do cliente
            telefone:
              type: string
              description: Telefone do cliente
            endereco:
              type: string
              description: Endereço do cliente
            cidade:
              type: string
              description: Cidade do cliente
            estado:
              type: string
              description: Estado do cliente
            pais:
              type: string
              description: País do cliente
            cep:
              type: string
              description: CEP do cliente
        situacao:
          type: object
          properties:
            status:
              type: string
              description: Status da situação
            descricao:
              type: string
              description: Descrição da situação
            data:
              type: string
              description: Data da situação
        versao:
          type: integer
          description: Versão da venda
        status_email:
          type: object
          properties:
            status:
              type: string
              description: Status
            enviado_em:
              type: string
              format: date
              description: Data de envio
    Cliente:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID do cliente
        nome:
          type: string
          description: Nome do cliente
        email:
          type: string
          description: Email do cliente
        telefone:
          type: string
          description: Telefone do cliente
        endereco:
          type: string
          description: Endereço do cliente
        cidade:
          type: string
          description: Cidade do cliente
        estado:
          type: string
          description: Estado do cliente
        pais:
          type: string
          description: País do cliente
        cep:
          type: string
          description: CEP do cliente
    Situacao:
      type: object
      properties:
        status:
          type: string
          description: Status da situação
        descricao:
          type: string
          description: Descrição da situação
        data:
          type: string
          description: Data da situação
    ClientePegarVendaPorId:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        tipo_pessoa:
          type: string
          description: Tipo de pessoa
          example: Física
        documento:
          type: string
          description: Documento
          example: '12345678901'
        nome:
          type: string
          description: Nome
          example: João da Silva
    NaturezaOperacao:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        tipo_operacao:
          type: string
          enum:
            - VENDA
            - REMESSA
            - COMPRA
            - DEVOLUCAO
          example: VENDA
        template_operacao:
          type: string
          enum:
            - VENDA_MERCADORIAS
            - VENDA_SUFRAMA
            - VENDA_ENTREGA_FUTURA
            - VENDA_CONSIGNADA
            - VENDA_NAO_CONTRIBUINTE
            - VENDA_EXPORTACAO
            - VENDA_ORDEM
            - VENDA_INDUSTRIALIZACAO
            - PRESTACAO_SERVICO
        label:
          type: string
          description: Label
          example: Venda a Não Contribuinte
        mudanca_financeira:
          type: boolean
        mudanca_estoque:
          type: string
          enum:
            - ENTRADA_ESTOQUE
            - SAIDA_ESTOQUE
            - NAO_ALTERA_ESTOQUE
    Negociacao:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID da negociação
        status:
          type: string
          enum:
            - REVISAO_PENDENTE
            - EM_ORCAMENTO
            - ORCAMENTO_ACEITO
            - ORCAMENTO_RECUSADO
            - VENDA
            - CONTRATO
            - CANCELADO
            - PREVISAO
            - INCOMPLETA
        id_legado:
          type: integer
        tipo_negociacao:
          type: string
          enum:
            - VENDA
            - COMPRA
        numero:
          type: integer
        id_categoria:
          type: string
          format: uuid
        data_compromisso:
          format: date
          example: '2023-12-31'
        configuracao_de_desconto:
          type: object
          properties:
            tipo_desconto:
              type: string
              enum:
                - PORCENTAGEM
                - VALOR
            taxa_desconto:
              type: number
              format: double
        composicao_valor:
          type: object
          properties:
            valor_bruto:
              type: number
              format: double
            desconto:
              type: number
              format: double
            frete:
              type: number
              format: double
            impostos:
              type: number
              format: double
            impostos_deduzidos:
              type: number
              format: double
            seguro:
              type: number
              format: double
            despesas_incidentais:
              type: number
              format: double
            valor_liquido:
              type: number
              format: double
        condicao_pagamento:
          type: object
          properties:
            tipo_pagamento:
              type: string
              enum:
                - BOLETO_BANCARIO
                - CARTAO_CREDITO
                - CARTAO_DEBITO
                - CARTEIRA_DIGITAL
                - CASHBACK
                - CHEQUE
                - CREDITO_LOJA
                - CREDITO_VIRTUAL
                - DEPOSITO_BANCARIO
                - DINHEIRO
                - OUTRO
                - DEBITO_AUTOMATICO
                - LINK_PAGAMENTO
                - PAGAMENTO_INSTANTANEO
                - COBRANCA_PIX
                - PROGRAMA_FIDELIDADE
                - SEM_PAGAMENTO
                - TRANSFERENCIA_BANCARIA
                - VALE_ALIMENTACAO
                - VALE_COMBUSTIVEL
                - VALE_PRESENTE
                - VALE_REFEICAO
            id_conta_financeira:
              type: string
              format: uuid
            pagamento_a_vista:
              type: boolean
            parcelas:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: ID da parcela
                  numero:
                    type: integer
                    example: 1
                    description: Número da parcela
                  data_vencimento:
                    format: date
                    example: '2023-12-31'
                    description: Data de vencimento
                  valor:
                    type: number
                    format: double
                    description: Valor da parcela
                    example: 26.99
                  descricao:
                    type: string
                    example: Parcela 1
                    description: Descrição da parcela
            observacoes_pagamento:
              type: string
              description: Observações sobre o pagamento
              example: ''
            opcao_condicao_pagamento:
              type: string
              description: Opção de condição de pagamento
              example: À vista
            nsu:
              type: string
            pagamento_cartao:
              type: object
              properties:
                tipo_bandeira:
                  type: string
                  enum:
                    - VISA
                    - MASTERCARD
                    - AMERICAN_EXPRESS
                    - SOROCRED
                    - DINERS_CLUB
                    - ELO
                    - HIPERCARD
                    - AURA
                    - CABAL
                    - ALELO
                    - BANES_CARD
                    - CALCARDS
                    - CREDZ
                    - DISCOVER
                    - GOODCARD
                    - GREENCARD
                    - HIPER
                    - JCB
                    - MAIS
                    - MAXVAN
                    - POLICARD
                    - REDECOMPRAS
                    - SODEXO
                    - VALECARD
                    - VEROCHEQUE
                    - VR
                    - TICKET
                    - OUTROS
                codigo_transacao:
                  type: string
                id_adquirente:
                  type: integer
                  format: int64
        total_itens:
          type: object
          properties:
            contagem_produtos:
              type: integer
              format: int64
            contagem_servicos:
              type: integer
              format: int64
            contagem_nao_conciliados:
              type: integer
              format: int64
        observacoes:
          type: string
        id_cliente:
          type: string
          format: uuid
        versao:
          type: integer
        tipo_pendencia:
          type: object
          properties:
            nome:
              enum:
                - NENHUMA
                - RESERVA_DE_ESTOQUE
                - CONCILIACAO_ITENS
                - PROCESSAMENTO_RESERVA_DE_ESTOQUE
                - ESPERANDO_CONFIRMACAO
                - AGUARDANDO_GERACAO_NOTA_FISCAL
              description: Nome da pendência
              example: NENHUMA
            descricao:
              type: string
              description: Descrição da pendência
              example: Nenhuma
        situacao:
          type: object
          properties:
            nome:
              enum:
                - EM_ANDAMENTO
                - APROVADO
                - FATURADO
                - CANCELADO
                - ORCAMENTO
                - ORCAMENTO_ACEITO
                - ORCAMENTO_RECUSADO
                - CONTRATO
                - VENDA
              description: Nome da situação
              example: APROVADO
            descricao:
              type: string
              description: Descrição da situação
              example: Aprovado
            ativado:
              type: boolean
              description: Ativado ou não
        id_natureza_operacao:
          type: string
          format: uuid
        id_centro_custo:
          type: string
          format: uuid
    Notificacao:
      type: object
      properties:
        id_referencia:
          type: string
          description: ID de referência da notificação
        enviado_para:
          type: string
          description: Enviado para
        enviado_em:
          type: string
          format: date-time
          description: Data e hora de envio
        aberto_em:
          type: string
          format: date-time
          description: Data e hora de abertura
        status:
          type: string
          enum:
            - ENVIADO
            - LIDO
    TipoOperacao:
      type: string
      enum:
        - VENDA
        - REMESSA
        - COMPRA
        - DEVOLUCAO
      example: VENDA
    TemplateNaturezaOperacao:
      type: string
      enum:
        - VENDA_MERCADORIAS
        - VENDA_SUFRAMA
        - VENDA_ENTREGA_FUTURA
        - VENDA_CONSIGNADA
        - VENDA_NAO_CONTRIBUINTE
        - VENDA_EXPORTACAO
        - VENDA_ORDEM
        - VENDA_INDUSTRIALIZACAO
        - PRESTACAO_SERVICO
    MudancaEstoque:
      type: string
      enum:
        - ENTRADA_ESTOQUE
        - SAIDA_ESTOQUE
        - NAO_ALTERA_ESTOQUE
    TipoNegociacao:
      type: string
      enum:
        - VENDA
        - COMPRA
    Status:
      type: string
      enum:
        - REVISAO_PENDENTE
        - EM_ORCAMENTO
        - ORCAMENTO_ACEITO
        - ORCAMENTO_RECUSADO
        - VENDA
        - CONTRATO
        - CANCELADO
        - PREVISAO
        - INCOMPLETA
    ConfiguracaoDesconto:
      type: object
      properties:
        tipo_desconto:
          type: string
          enum:
            - PORCENTAGEM
            - VALOR
        taxa_desconto:
          type: number
          format: double
    ComposicaoValor1:
      type: object
      properties:
        valor_bruto:
          type: number
          format: double
        desconto:
          type: number
          format: double
        frete:
          type: number
          format: double
        impostos:
          type: number
          format: double
        impostos_deduzidos:
          type: number
          format: double
        seguro:
          type: number
          format: double
        despesas_incidentais:
          type: number
          format: double
        valor_liquido:
          type: number
          format: double
    CondicaoPagamento2:
      type: object
      properties:
        tipo_pagamento:
          type: string
          enum:
            - BOLETO_BANCARIO
            - CARTAO_CREDITO
            - CARTAO_DEBITO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CHEQUE
            - CREDITO_LOJA
            - CREDITO_VIRTUAL
            - DEPOSITO_BANCARIO
            - DINHEIRO
            - OUTRO
            - DEBITO_AUTOMATICO
            - LINK_PAGAMENTO
            - PAGAMENTO_INSTANTANEO
            - COBRANCA_PIX
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - TRANSFERENCIA_BANCARIA
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
        id_conta_financeira:
          type: string
          format: uuid
        pagamento_a_vista:
          type: boolean
        parcelas:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
                description: ID da parcela
              numero:
                type: integer
                example: 1
                description: Número da parcela
              data_vencimento:
                format: date
                example: '2023-12-31'
                description: Data de vencimento
              valor:
                type: number
                format: double
                description: Valor da parcela
                example: 26.99
              descricao:
                type: string
                example: Parcela 1
                description: Descrição da parcela
        observacoes_pagamento:
          type: string
          description: Observações sobre o pagamento
          example: ''
        opcao_condicao_pagamento:
          type: string
          description: Opção de condição de pagamento
          example: À vista
        nsu:
          type: string
        pagamento_cartao:
          type: object
          properties:
            tipo_bandeira:
              type: string
              enum:
                - VISA
                - MASTERCARD
                - AMERICAN_EXPRESS
                - SOROCRED
                - DINERS_CLUB
                - ELO
                - HIPERCARD
                - AURA
                - CABAL
                - ALELO
                - BANES_CARD
                - CALCARDS
                - CREDZ
                - DISCOVER
                - GOODCARD
                - GREENCARD
                - HIPER
                - JCB
                - MAIS
                - MAXVAN
                - POLICARD
                - REDECOMPRAS
                - SODEXO
                - VALECARD
                - VEROCHEQUE
                - VR
                - TICKET
                - OUTROS
            codigo_transacao:
              type: string
            id_adquirente:
              type: integer
              format: int64
    ItensTotaisNegociacao:
      type: object
      properties:
        contagem_produtos:
          type: integer
          format: int64
        contagem_servicos:
          type: integer
          format: int64
        contagem_nao_conciliados:
          type: integer
          format: int64
    TipoPendente:
      type: object
      properties:
        nome:
          enum:
            - NENHUMA
            - RESERVA_DE_ESTOQUE
            - CONCILIACAO_ITENS
            - PROCESSAMENTO_RESERVA_DE_ESTOQUE
            - ESPERANDO_CONFIRMACAO
            - AGUARDANDO_GERACAO_NOTA_FISCAL
          description: Nome da pendência
          example: NENHUMA
        descricao:
          type: string
          description: Descrição da pendência
          example: Nenhuma
    SituacaoNegociacao:
      type: object
      properties:
        nome:
          enum:
            - EM_ANDAMENTO
            - APROVADO
            - FATURADO
            - CANCELADO
            - ORCAMENTO
            - ORCAMENTO_ACEITO
            - ORCAMENTO_RECUSADO
            - CONTRATO
            - VENDA
          description: Nome da situação
          example: APROVADO
        descricao:
          type: string
          description: Descrição da situação
          example: Aprovado
        ativado:
          type: boolean
          description: Ativado ou não
    StatusVisualizacaoMensagem:
      type: string
      enum:
        - ENVIADO
        - LIDO
    TipoDesconto:
      type: string
      enum:
        - PORCENTAGEM
        - VALOR
    ParcelaNegociacao:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID da parcela
        numero:
          type: integer
          example: 1
          description: Número da parcela
        data_vencimento:
          format: date
          example: '2023-12-31'
          description: Data de vencimento
        valor:
          type: number
          format: double
          description: Valor da parcela
          example: 26.99
        descricao:
          type: string
          example: Parcela 1
          description: Descrição da parcela
    PagamentoCartao:
      type: object
      properties:
        tipo_bandeira:
          type: string
          enum:
            - VISA
            - MASTERCARD
            - AMERICAN_EXPRESS
            - SOROCRED
            - DINERS_CLUB
            - ELO
            - HIPERCARD
            - AURA
            - CABAL
            - ALELO
            - BANES_CARD
            - CALCARDS
            - CREDZ
            - DISCOVER
            - GOODCARD
            - GREENCARD
            - HIPER
            - JCB
            - MAIS
            - MAXVAN
            - POLICARD
            - REDECOMPRAS
            - SODEXO
            - VALECARD
            - VEROCHEQUE
            - VR
            - TICKET
            - OUTROS
        codigo_transacao:
          type: string
        id_adquirente:
          type: integer
          format: int64
    BandeiraCartao:
      type: string
      enum:
        - VISA
        - MASTERCARD
        - AMERICAN_EXPRESS
        - SOROCRED
        - DINERS_CLUB
        - ELO
        - HIPERCARD
        - AURA
        - CABAL
        - ALELO
        - BANES_CARD
        - CALCARDS
        - CREDZ
        - DISCOVER
        - GOODCARD
        - GREENCARD
        - HIPER
        - JCB
        - MAIS
        - MAXVAN
        - POLICARD
        - REDECOMPRAS
        - SODEXO
        - VALECARD
        - VEROCHEQUE
        - VR
        - TICKET
        - OUTROS
    FormaPagamento:
      type: string
      enum:
        - BOLETO_BANCARIO
        - CARTAO_CREDITO
        - CARTAO_DEBITO
        - CARTEIRA_DIGITAL
        - CASHBACK
        - CHEQUE
        - CREDITO_LOJA
        - CREDITO_VIRTUAL
        - DEPOSITO_BANCARIO
        - DINHEIRO
        - OUTRO
        - DEBITO_AUTOMATICO
        - LINK_PAGAMENTO
        - PAGAMENTO_INSTANTANEO
        - COBRANCA_PIX
        - PROGRAMA_FIDELIDADE
        - SEM_PAGAMENTO
        - TRANSFERENCIA_BANCARIA
        - VALE_ALIMENTACAO
        - VALE_COMBUSTIVEL
        - VALE_PRESENTE
        - VALE_REFEICAO
    CriacaoVendaRequest:
      type: object
      required:
        - id_cliente
        - numero
        - situacao
        - data_venda
        - itens
        - condicao_pagamento
      properties:
        id_cliente:
          type: string
          format: uuid
          description: ID do cliente
        numero:
          type: integer
          format: int64
          description: Número da venda
        situacao:
          type: string
          description: Situação da venda
          enum:
            - EM_ANDAMENTO
            - APROVADO
            - FATURADO
        data_venda:
          type: string
          format: date
          description: Data da venda
        id_categoria:
          type: string
          format: uuid
          description: ID da categoria
        id_centro_custo:
          type: string
          format: uuid
          description: ID do centro de custo
        observacoes:
          type: string
          description: Observações sobre a venda
        observacoes_pagamento:
          type: string
          description: Observações sobre o pagamento
        itens:
          type: array
          items:
            type: object
            required:
              - id
              - quantidade
              - valor
            properties:
              descricao:
                type: string
                example: Produto A
                description: Descrição do item da venda
              quantidade:
                type: number
                format: double
                example: 2
                description: Quantidade do item da venda
              valor:
                type: number
                format: double
                example: 50
                description: Valor do item da venda
              id:
                type: string
                format: uuid
                example: 550e8400-e29b-41d4-a716-446655440000
                description: ID do item da venda
              valor_custo:
                type: number
                format: double
                example: 40
                description: Valor de custo do item da venda.
        composicao_de_valor:
          type: object
          properties:
            frete:
              type: number
              format: double
              example: 100
              description: Valor de frete.
            desconto:
              type: object
              required:
                - tipo
                - valor
              properties:
                tipo:
                  type: string
                  description: Tipo de desconto
                  enum:
                    - PORCENTAGEM
                    - VALOR
                valor:
                  type: number
                  format: double
                  description: Valor do desconto
                  example: 5
        condicao_pagamento:
          type: object
          required:
            - opcao_condicao_pagamento
            - parcelas
          properties:
            tipo_pagamento:
              type: string
              description: Forma de pagamento
              enum:
                - BOLETO_BANCARIO
                - CARTAO_CREDITO
                - CARTAO_DEBITO
                - CARTEIRA_DIGITAL
                - CASHBACK
                - CHEQUE
                - CREDITO_LOJA
                - CREDITO_VIRTUAL
                - DEPOSITO_BANCARIO
                - DINHEIRO
                - OUTRO
                - DEBITO_AUTOMATICO
                - CARTAO_CREDITO_VIA_LINK
                - PIX_PAGAMENTO_INSTANTANEO
                - PIX_COBRANCA
                - PROGRAMA_FIDELIDADE
                - SEM_PAGAMENTO
                - TRANSFERENCIA_BANCARIA
                - VALE_ALIMENTACAO
                - VALE_COMBUSTIVEL
                - VALE_PRESENTE
                - VALE_REFEICAO
              example: CARTAO_CREDITO
            id_conta_financeira:
              type: string
              format: uuid
              example: 550e8400-e29b-41d4-a716-446655440000
              description: ID da conta financeira
            opcao_condicao_pagamento:
              type: string
              example: À vista
              description: >-
                Deve ser em um dos três formatos: - 1º: Ex: À vista. - 2º: Ex1:
                30, 60, 90. Ex2: 15, 30, 45. - 3º: Ex1: 3x. Ex2: 12x
            nsu:
              type: string
              example: '1234567890'
              description: NSU
            parcelas:
              type: array
              items:
                type: object
                required:
                  - data_vencimento
                  - valor
                properties:
                  data_vencimento:
                    type: string
                    format: date
                    example: '2023-12-31'
                    description: Data de vencimento
                  valor:
                    type: number
                    format: double
                    example: 100
                    description: Valor da parcela
                  descricao:
                    type: string
                    example: Parcela 1
                    description: Descrição da parcela
    ItemVendaRequest:
      type: object
      required:
        - id
        - quantidade
        - valor
      properties:
        descricao:
          type: string
          example: Produto A
          description: Descrição do item da venda
        quantidade:
          type: number
          format: double
          example: 2
          description: Quantidade do item da venda
        valor:
          type: number
          format: double
          example: 50
          description: Valor do item da venda
        id:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
          description: ID do item da venda
        valor_custo:
          type: number
          format: double
          example: 40
          description: Valor de custo do item da venda.
    ValorComposicaoRequest:
      type: object
      properties:
        frete:
          type: number
          format: double
          example: 100
          description: Valor de frete.
        desconto:
          type: object
          required:
            - tipo
            - valor
          properties:
            tipo:
              type: string
              description: Tipo de desconto
              enum:
                - PORCENTAGEM
                - VALOR
            valor:
              type: number
              format: double
              description: Valor do desconto
              example: 5
    CondicaoPagamentoRequest:
      type: object
      required:
        - opcao_condicao_pagamento
        - parcelas
      properties:
        tipo_pagamento:
          type: string
          description: Forma de pagamento
          enum:
            - BOLETO_BANCARIO
            - CARTAO_CREDITO
            - CARTAO_DEBITO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CHEQUE
            - CREDITO_LOJA
            - CREDITO_VIRTUAL
            - DEPOSITO_BANCARIO
            - DINHEIRO
            - OUTRO
            - DEBITO_AUTOMATICO
            - CARTAO_CREDITO_VIA_LINK
            - PIX_PAGAMENTO_INSTANTANEO
            - PIX_COBRANCA
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - TRANSFERENCIA_BANCARIA
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
          example: CARTAO_CREDITO
        id_conta_financeira:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
          description: ID da conta financeira
        opcao_condicao_pagamento:
          type: string
          example: À vista
          description: >-
            Deve ser em um dos três formatos: - 1º: Ex: À vista. - 2º: Ex1: 30,
            60, 90. Ex2: 15, 30, 45. - 3º: Ex1: 3x. Ex2: 12x
        nsu:
          type: string
          example: '1234567890'
          description: NSU
        parcelas:
          type: array
          items:
            type: object
            required:
              - data_vencimento
              - valor
            properties:
              data_vencimento:
                type: string
                format: date
                example: '2023-12-31'
                description: Data de vencimento
              valor:
                type: number
                format: double
                example: 100
                description: Valor da parcela
              descricao:
                type: string
                example: Parcela 1
                description: Descrição da parcela
    ParcelaRequest:
      type: object
      required:
        - data_vencimento
        - valor
      properties:
        data_vencimento:
          type: string
          format: date
          example: '2023-12-31'
          description: Data de vencimento
        valor:
          type: number
          format: double
          example: 100
          description: Valor da parcela
        descricao:
          type: string
          example: Parcela 1
          description: Descrição da parcela
    CriacaoVendaResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: ID único da venda
          example: 123e4567-e89b-12d3-a456-426614174000
        id_legado:
          type: integer
          format: int64
          description: ID legado necessário para a venda
          example: 123456
        id_cliente:
          type: string
          format: uuid
          description: ID do cliente associado à venda
          example: 123e4567-e89b-12d3-a456-426614174001
        numero:
          type: integer
          format: int64
          description: Número da venda
          example: 1001
        origem:
          type: string
          description: Origem da venda
          example: Online
        id_categoria:
          type: string
          format: uuid
          description: ID da categoria da venda
          example: 123e4567-e89b-12d3-a456-426614174002
        data_venda:
          type: string
          format: date-time
          description: Data da venda
          example: '2023-10-01T12:00:00Z'
        situacao:
          type: object
          properties:
            nome:
              type: string
              description: Nome da situação
              example: Situação Exemplo
            descricao:
              type: string
              description: Descrição da situação
              example: Descrição da situação exemplo
        pendencia:
          type: object
          properties:
            nome:
              type: string
              description: Nome da pendência
              example: AGUARDANDO_CONFIRMACAO
            descricao:
              type: string
              description: Descrição da pendência
              example: Aguardando confirmação
        valor_composicao:
          type: object
          properties:
            valor_bruto:
              type: number
              format: double
              description: Valor bruto da venda
              example: 100
            desconto:
              type: object
              required:
                - tipo
                - valor
              properties:
                tipo:
                  type: string
                  description: Tipo de desconto
                  enum:
                    - PORCENTAGEM
                    - VALOR
                valor:
                  type: number
                  format: double
                  description: Valor do desconto
                  example: 5
            frete:
              type: number
              format: double
              description: Valor do frete
              example: 10
            valor_liquido:
              type: number
              format: double
              description: Valor líquido da venda
              example: 90
        condicao_pagamento:
          type: object
          properties:
            id_legado:
              type: integer
              format: int64
              example: 123456789
              description: ID legado da condição de pagamento
            tipo_pagamento:
              type: string
              example: CARTAO_CREDITO
              description: Tipo de pagamento
              enum:
                - BOLETO_BANCARIO
                - CARTAO_CREDITO
                - CARTAO_DEBITO
                - CARTEIRA_DIGITAL
                - CASHBACK
                - CHEQUE
                - CREDITO_LOJA
                - CREDITO_VIRTUAL
                - DEPOSITO_BANCARIO
                - DINHEIRO
                - OUTRO
                - DEBITO_AUTOMATICO
                - CARTAO_CREDITO_VIA_LINK
                - PIX_PAGAMENTO_INSTANTANEO
                - PIX_COBRANCA
                - PROGRAMA_FIDELIDADE
                - SEM_PAGAMENTO
                - TRANSFERENCIA_BANCARIA
                - VALE_ALIMENTACAO
                - VALE_COMBUSTIVEL
                - VALE_PRESENTE
                - VALE_REFEICAO
            id_conta_financeira:
              type: string
              format: uuid
              example: 550e8400-e29b-41d4-a716-446655440000
              description: ID da conta financeira
            opcao_condicao_pagamento:
              type: string
              example: Parcelado
              description: Opção de condição de pagamento
            parcelas:
              type: array
              items:
                type: object
                properties:
                  data_vencimento:
                    type: string
                    format: date
                    example: '2023-12-31'
                    description: Data de vencimento
                  valor:
                    type: number
                    format: double
                    example: 100
                    description: Valor da parcela
                  descricao:
                    type: string
                    example: Parcela 1
                    description: Descrição da parcela
                  numero:
                    type: integer
                    example: 1
                    description: Número da parcela
            observacoes_pagamento:
              type: string
              example: Pagamento realizado em 3 parcelas
              description: Observações sobre o pagamento
            nsu:
              type: string
              example: '1234567890'
              description: NSU
            troco_total:
              type: number
              format: double
              example: 10.5
              description: Troco total
        observacoes:
          type: string
          description: Observações sobre a venda
          example: Cliente solicitou entrega rápida
        id_vendedor:
          type: string
          format: uuid
          description: ID do vendedor responsável pela venda
          example: 123e4567-e89b-12d3-a456-426614174003
        versao:
          type: integer
          format: int64
          description: Versão da venda
          example: 1
    SituacaoResponse:
      type: object
      properties:
        nome:
          type: string
          description: Nome da situação
          example: Situação Exemplo
        descricao:
          type: string
          description: Descrição da situação
          example: Descrição da situação exemplo
    TipoPendenciaResponse:
      type: object
      properties:
        nome:
          type: string
          description: Nome da pendência
          example: AGUARDANDO_CONFIRMACAO
        descricao:
          type: string
          description: Descrição da pendência
          example: Aguardando confirmação
    ComposicaoValorResponse:
      type: object
      properties:
        valor_bruto:
          type: number
          format: double
          description: Valor bruto da venda
          example: 100
        desconto:
          type: object
          required:
            - tipo
            - valor
          properties:
            tipo:
              type: string
              description: Tipo de desconto
              enum:
                - PORCENTAGEM
                - VALOR
            valor:
              type: number
              format: double
              description: Valor do desconto
              example: 5
        frete:
          type: number
          format: double
          description: Valor do frete
          example: 10
        valor_liquido:
          type: number
          format: double
          description: Valor líquido da venda
          example: 90
    DiscountMonolithTranslatedDTO:
      type: object
      required:
        - tipo
        - valor
      properties:
        tipo:
          type: string
          description: Tipo de desconto
          enum:
            - PORCENTAGEM
            - VALOR
        valor:
          type: number
          format: double
          description: Valor do desconto
          example: 5
    CondicaoPagamentoResponse:
      type: object
      properties:
        id_legado:
          type: integer
          format: int64
          example: 123456789
          description: ID legado da condição de pagamento
        tipo_pagamento:
          type: string
          example: CARTAO_CREDITO
          description: Tipo de pagamento
          enum:
            - BOLETO_BANCARIO
            - CARTAO_CREDITO
            - CARTAO_DEBITO
            - CARTEIRA_DIGITAL
            - CASHBACK
            - CHEQUE
            - CREDITO_LOJA
            - CREDITO_VIRTUAL
            - DEPOSITO_BANCARIO
            - DINHEIRO
            - OUTRO
            - DEBITO_AUTOMATICO
            - CARTAO_CREDITO_VIA_LINK
            - PIX_PAGAMENTO_INSTANTANEO
            - PIX_COBRANCA
            - PROGRAMA_FIDELIDADE
            - SEM_PAGAMENTO
            - TRANSFERENCIA_BANCARIA
            - VALE_ALIMENTACAO
            - VALE_COMBUSTIVEL
            - VALE_PRESENTE
            - VALE_REFEICAO
        id_conta_financeira:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
          description: ID da conta financeira
        opcao_condicao_pagamento:
          type: string
          example: Parcelado
          description: Opção de condição de pagamento
        parcelas:
          type: array
          items:
            type: object
            properties:
              data_vencimento:
                type: string
                format: date
                example: '2023-12-31'
                description: Data de vencimento
              valor:
                type: number
                format: double
                example: 100
                description: Valor da parcela
              descricao:
                type: string
                example: Parcela 1
                description: Descrição da parcela
              numero:
                type: integer
                example: 1
                description: Número da parcela
        observacoes_pagamento:
          type: string
          example: Pagamento realizado em 3 parcelas
          description: Observações sobre o pagamento
        nsu:
          type: string
          example: '1234567890'
          description: NSU
        troco_total:
          type: number
          format: double
          example: 10.5
          description: Troco total
    ParcelaResponse:
      type: object
      properties:
        data_vencimento:
          type: string
          format: date
          example: '2023-12-31'
          description: Data de vencimento
        valor:
          type: number
          format: double
          example: 100
          description: Valor da parcela
        descricao:
          type: string
          example: Parcela 1
          description: Descrição da parcela
        numero:
          type: integer
          example: 1
          description: Número da parcela
    ExclusaoResponse:
      type: object
      properties:
        atualizados:
          type: integer
          description: Indica quantidade excluída
          example: 1
        ignorados:
          type: integer
          description: Indica quantidade ignorada
          example: 1
    VendaParaEdicaoRequest:
      type: object
      required:
        - versao
        - id_cliente
        - numero
        - situacao
        - data_venda
        - itens
        - condicao_pagamento
      properties:
        id_cliente:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
          description: UUID do cliente
        numero:
          type: integer
          example: 1
          description: Número da venda
        data_venda:
          type: string
          format: date
          example: '2023-12-31'
          description: Data da venda
        situacao:
          type: string
          description: Situação da venda
          enum:
            - EM_ANDAMENTO
            - APROVADO
            - FATURADO
            - CANCELADO
            - PROPOSTA_EM_ANDAMENTO
            - PROPOSTA_APROVADA
            - PROPOSTA_RECUSADA
            - CONTRATO
            - VENDA
        observacoes:
          type: string
          example: Cliente solicitou entrega rápida
          description: Observações sobre a venda
        observacoes_pagamento:
          type: string
          example: Pagamento realizado em 3 parcelas
          description: Observações sobre o pagamento
        id_natureza_operacao:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
          description: ID da natureza da operação
        versao:
          type: integer
          example: 1
          description: Versão da venda é obrigatório na edição.
        itens:
          type: object
          required:
            - id
            - quantidade
            - valor
          properties:
            descricao:
              type: string
              example: Produto A
              description: Descrição do item da venda
            quantidade:
              type: number
              format: double
              example: 2
              description: Quantidade do item da venda
            valor:
              type: number
              format: double
              example: 50
              description: Valor do item da venda
            id:
              type: string
              format: uuid
              example: 550e8400-e29b-41d4-a716-446655440000
              description: ID do item da venda
            valor_custo:
              type: number
              format: double
              example: 40
              description: Valor de custo do item da venda.
        composicao_de_valor:
          type: object
          properties:
            frete:
              type: number
              format: double
              example: 100
              description: Valor de frete.
            desconto:
              type: object
              required:
                - tipo
                - valor
              properties:
                tipo:
                  type: string
                  description: Tipo de desconto
                  enum:
                    - PORCENTAGEM
                    - VALOR
                valor:
                  type: number
                  format: double
                  description: Valor do desconto
                  example: 5
        condicao_pagamento:
          type: object
          required:
            - opcao_condicao_pagamento
            - parcelas
          properties:
            tipo_pagamento:
              type: string
              description: Forma de pagamento
              enum:
                - BOLETO_BANCARIO
                - CARTAO_CREDITO
                - CARTAO_DEBITO
                - CARTEIRA_DIGITAL
                - CASHBACK
                - CHEQUE
                - CREDITO_LOJA
                - CREDITO_VIRTUAL
                - DEPOSITO_BANCARIO
                - DINHEIRO
                - OUTRO
                - DEBITO_AUTOMATICO
                - CARTAO_CREDITO_VIA_LINK
                - PIX_PAGAMENTO_INSTANTANEO
                - PIX_COBRANCA
                - PROGRAMA_FIDELIDADE
                - SEM_PAGAMENTO
                - TRANSFERENCIA_BANCARIA
                - VALE_ALIMENTACAO
                - VALE_COMBUSTIVEL
                - VALE_PRESENTE
                - VALE_REFEICAO
              example: CARTAO_CREDITO
            id_conta_financeira:
              type: string
              format: uuid
              example: 550e8400-e29b-41d4-a716-446655440000
              description: ID da conta financeira
            opcao_condicao_pagamento:
              type: string
              example: À vista
              description: >-
                Deve ser em um dos três formatos: - 1º: Ex: À vista. - 2º: Ex1:
                30, 60, 90. Ex2: 15, 30, 45. - 3º: Ex1: 3x. Ex2: 12x
            nsu:
              type: string
              example: '1234567890'
              description: NSU
            parcelas:
              type: array
              items:
                type: object
                required:
                  - data_vencimento
                  - valor
                properties:
                  data_vencimento:
                    type: string
                    format: date
                    example: '2023-12-31'
                    description: Data de vencimento
                  valor:
                    type: number
                    format: double
                    example: 100
                    description: Valor da parcela
                  descricao:
                    type: string
                    example: Parcela 1
                    description: Descrição da parcela
    VendaEditadaResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
          description: UUID da venda editada
        id_legado:
          type: integer
          example: 123456
          description: ID legado
    Resposta:
      type: object
      properties:
        itens_totais:
          type: integer
          example: 100
        itens:
          type: array
          items:
            type: object
            required:
              - descricao
            properties:
              id:
                type: string
                format: uuid
                example: 123e4567-e89b-12d3-a456-426614174000
              id_servico:
                type: integer
                example: 1
              nome:
                type: string
                example: Serviço de Consultoria
              codigo:
                type: string
                example: CONSULT01
              descricao:
                type: string
                example: Serviço de consultoria empresarial
              preco:
                type: number
                format: double
                example: 1500
              custo:
                type: number
                format: double
                example: 1000
              status:
                type: string
                example: DISABLED
              tipo_servico:
                type: string
                example: PROVIDED
    Servico:
      type: object
      required:
        - descricao
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        id_servico:
          type: integer
          example: 1
        nome:
          type: string
          example: Serviço de Consultoria
        codigo:
          type: string
          example: CONSULT01
        descricao:
          type: string
          example: Serviço de consultoria empresarial
        preco:
          type: number
          format: double
          example: 1500
        custo:
          type: number
          format: double
          example: 1000
        status:
          type: string
          example: DISABLED
        tipo_servico:
          type: string
          example: PROVIDED
    Cidade:
      type: object
      properties:
        rotulo:
          type: string
          example: São Paulo
        estado:
          type: string
          example: SP
        valor:
          type: integer
          example: 3550308
    OperacaoNatureza:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        descricao:
          type: string
          example: Prestação de Serviço
