> ## Documentation Index
> Fetch the complete documentation index at: https://bmpmoneyplus-sandbox.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 14 - Detailed simulation

Through this endpoint, the partner can simulate the proposal values. The system provides the calculation for the required term and details of all installment amounts, considering the calculation according to the rates applied in this modality and according to the parameters already registered in the system.

***

title: "14 - Detailed Simulation"
openapi: post /Proposta/CalcularGridParcelasSimplificadoPrice
version: 'English'
------------------

Through this endpoint, the partner can simulate the values of the proposal. The system calculates the required term and details of all installments, considering the calculation according to the rates applied in this modality and as per the parameters already registered in the system.

<Expandable title="Messages - Calculate Simplified Installment Grid Price">
  | Category | Operation                            | Action                                | Code  | Detailed Code | Message                                                                                  |
  | -------- | ------------------------------------ | ------------------------------------- | ----- | ------------- | ---------------------------------------------------------------------------------------- |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0016 | V0001         | Produto não configurado para esta integração                                             |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0016 | V0002         | Tipo Pessoa deve ser 1-PF ou 2-PJ                                                        |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0016 | V0003         | Prazo não configurado para o produto                                                     |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0127 | V0001         | Fluxo Irregular: Campo \[NroDiasIntervaloPrazo] deve receber um valor                    |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0127 | V0002         | Preencher o campo \[NroDiasIntervaloPrazo] apenas quando Fluxo Irregular                 |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0001         | O valor solicitado não é válido                                                          |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0002         | Formato de cálculo inválido                                                              |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0003         | É necessário o produto                                                                   |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0004         | Prazo inválido ou não localizado para este Produto x Rede                                |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0005         | Não é possível aprovar a proposta. Produto x Rede x Parcela não possui juros configurado |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0006         | Configuração deve ser enviada para proposta HotMoney                                     |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0007         | Produto Rotativo e HotMoney aceitam apenas formato de cálculo com juros                  |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0196 | V0008         | Formato de Cálculo não informado                                                         |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0017 | V0001         | Produto não configurado para esta integração                                             |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0017 | V0002         | Tipo Pessoa deve ser 1-PF ou 2-PJ                                                        |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0017 | V0003         | Prazo não configurado para o produto                                                     |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0001         | O valor solicitado não é válido                                                          |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0002         | Formato de cálculo não é permitido                                                       |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0003         | Produto não utiliza método SAC                                                           |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0004         | É necessário o produto                                                                   |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0005         | Prazo inválido ou não localizado para este Produto x Rede                                |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0006         | Não é possível aprovar a proposta. Produto x Rede x Parcela não possui juros configurado |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0007         | Taxa deve ser de `{percJuros}`                                                           |
  | Proposta | CalculaGridParcelasSimplificadoPrice | CalcularGridParcelasSimplificadoPrice | C0197 | V0008         | TAC deve ser de `{VlrTAC}`                                                               |
</Expandable>


## OpenAPI

````yaml post /Proposta/CalcularGridParcelasSimplificadoPrice
openapi: 3.0.1
info:
  title: BMPDigitalCore.ApiExterna.Proposta.API
  version: '1.0'
servers:
  - url: https://api.bmpdigital.moneyp.dev.br/
    description: Localhost
security:
  - Bearer: []
paths:
  /Proposta/CalcularGridParcelasSimplificadoPrice:
    post:
      tags:
        - Proposta
      parameters:
        - name: IdempotencyKey
          in: header
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CalculaGridParcelasSimplificadoPriceCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/CalculaGridParcelasSimplificadoPriceCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CalculaGridParcelasSimplificadoPriceCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: >-
                  #/components/schemas/CalculaGridParcelasSimplificadoPriceResponse
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CalculaGridParcelasSimplificadoPriceResponse
            text/json:
              schema:
                $ref: >-
                  #/components/schemas/CalculaGridParcelasSimplificadoPriceResponse
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ResponseBase'
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseBase'
            text/json:
              schema:
                $ref: '#/components/schemas/ResponseBase'
components:
  schemas:
    CalculaGridParcelasSimplificadoPriceCommand:
      type: object
      properties:
        dto:
          $ref: '#/components/schemas/CalculaGridValoresPropostaPriceDTO'
        parametros:
          type: array
          items:
            $ref: '#/components/schemas/ParametroDTO'
          nullable: true
      additionalProperties: false
    CalculaGridParcelasSimplificadoPriceResponse:
      type: object
      properties:
        msg:
          type: string
          nullable: true
        result:
          type: boolean
          writeOnly: true
        hasError:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          nullable: true
        proposta:
          $ref: '#/components/schemas/CalculaGridParcelasSimplificadoPriceDTO'
      additionalProperties: false
    ResponseBase:
      type: object
      properties:
        msg:
          type: string
          nullable: true
        result:
          type: boolean
          writeOnly: true
        hasError:
          type: boolean
        messages:
          type: array
          items:
            $ref: '#/components/schemas/Message'
          nullable: true
      additionalProperties: false
    CalculaGridValoresPropostaPriceDTO:
      required:
        - tipoPessoa
      type: object
      properties:
        vlrSolicitado:
          type: number
          description: Valor solicitado para financiamento
          format: double
        prazo:
          type: integer
          description: Prazo da parcela
          format: int32
        nroDiasAcrescimo:
          type: integer
          description: >-
            Dias de acréscimo para o primeiro pagamento além dos primeiros 30
            dias. O valor padrão é zero
          format: int32
          nullable: true
        percJurosNegociado:
          type: number
          description: >-
            Percentual de juros da proposta. Se não for informado os juros,
            então o sistema utilizará a taxa parametrizada no sistema, para o
            prazo informado
          format: double
          nullable: true
        tipoPessoa:
          type: integer
          description: >-
            Indica o tipo de pessoa se Física ou Jurídica para cálculo do
            Imposto sobre Operações Financeiras (IOF). 1-PF (Pessoa Física) e
            2-PJ Pessoa Jurídica)
          format: int32
        fluxoIrregular:
          type: boolean
          description: >-
            Indica se o fluxo de vencimento das parcelas é irregular ou regular
            (30 dias)
          nullable: true
        vlrOutrasDespesas:
          type: number
          description: Valor de outras despesas da operação
          format: double
          nullable: true
        vlrOutrosServicos:
          type: number
          description: Valor de outros serviços da operação
          format: double
          nullable: true
        vlrSeguro:
          type: number
          description: Valor do Seguro
          format: double
          nullable: true
        vlrProdutoBem:
          type: number
          description: Valor do produto que está sendo adquirido
          format: double
          nullable: true
        vlrEntrada:
          type: number
          description: Valor de entrada
          format: double
          nullable: true
        vlrEntradaTradeIn:
          type: number
          description: Valor de entrada trade in
          format: double
          nullable: true
        vlrEntradaParcelada:
          type: number
          description: Valor de entrada parcelada
          format: double
          nullable: true
        vlrDespesasAF:
          type: number
          description: Valor de despesas AF
          format: double
          nullable: true
        vlrIOF:
          type: number
          description: 'Valor do do Imposto sobre Operações Financeiras '
          format: double
          nullable: true
        vlrTAC:
          type: number
          description: Valor da Taxa abertura de crédito
          format: double
          nullable: true
        vlrAvaliacao:
          type: number
          description: Valor da Taxa de avaliação da operação
          format: double
          nullable: true
        vlrTxAdmMensal:
          type: number
          description: Valor da taxa de administração mensal
          format: double
          nullable: true
        vlrSeguroMensal1:
          type: number
          description: Valor do seguro mensal
          format: double
          nullable: true
        vlrSeguroMensal2:
          type: number
          description: Valor do seguro mensal
          format: double
          nullable: true
        vlrBlindagem:
          type: number
          description: Valor de blindagem
          format: double
          nullable: true
        vlrAcessorios:
          type: number
          description: Valor de acessórios
          format: double
          nullable: true
        nroDiasIntervaloPrazo:
          type: integer
          description: >-
            Indica o intervalo (em dias) entre o vencimento das parcelas da
            proposta
          format: int32
          nullable: true
        vlrVistoria:
          type: number
          description: Valor de vistoria
          format: double
          nullable: true
        vlrCertiDocs:
          type: number
          description: >-
            Valor referente ao custo do serviço de certificação digital, que é
            somado no Valor Financiado (solicitado) da proposta. Tal valor fica
            retido para posteriormente ser repassado para a empresa responsável
            pela certificação digital (CertiDocs), ou para o parceiro,
            dependendo da regra de operação
          format: double
          nullable: true
      additionalProperties: false
    ParametroDTO:
      type: object
      properties:
        nome:
          type: string
          description: Refere-se ao nome do parâmetro.
          nullable: true
        valor:
          type: string
          description: Refere-se ao valor do parâmetro.
          nullable: true
      additionalProperties: false
    Message:
      type: object
      properties:
        messageType:
          $ref: '#/components/schemas/ErrorType'
        code:
          type: string
          nullable: true
        context:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        field:
          type: string
          nullable: true
      additionalProperties: false
    CalculaGridParcelasSimplificadoPriceDTO:
      type: object
      properties:
        valorSolicitado:
          type: number
          format: double
        prazo:
          type: integer
          format: int32
        vlrParcela:
          type: number
          format: double
        vlrTAC:
          type: number
          format: double
        vlrBoleto:
          type: number
          format: double
        vlrSeguro:
          type: number
          format: double
        vlrIOF:
          type: number
          format: double
        percIOF:
          type: number
          format: double
        vlrTotalCredito:
          type: number
          format: double
        vlrTotalDivida:
          type: number
          format: double
        percCETMensal:
          type: number
          format: double
        percCETAnual:
          type: number
          format: double
        percJurosMensal:
          type: number
          format: double
        percJurosAnual:
          type: number
          format: double
        parcelas:
          type: array
          items:
            $ref: '#/components/schemas/ParcelaPriceDTO'
          nullable: true
      additionalProperties: false
    ErrorType:
      enum:
        - 1
        - 2
        - 3
      type: integer
      format: int32
    ParcelaPriceDTO:
      type: object
      properties:
        parcela:
          type: integer
          format: int32
        dias:
          type: integer
          format: int32
        dtVencimento:
          type: string
          format: date-time
        vlrSaldoDevedor:
          type: number
          format: double
        vlrAmortizacao:
          type: number
          format: double
        vlrJuros:
          type: number
          format: double
        vlrPrestacaoTotal:
          type: number
          format: double
        vlrJurosAcumulado:
          type: number
          format: double
        vlrJurosMensal:
          type: number
          format: double
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: apiKey
      description: Informe o token
      name: Authorization
      in: header

````