---
title: "Aprovar reserva (com comparação de tabela)"
method: POST
path: "/v4/comercial/reservas/{idReserva}/aprovacao"
tags: ["Reservas"]
---

# Aprovar reserva (com comparação de tabela)

`POST /v4/comercial/reservas/{idReserva}/aprovacao`

## Request

- Base URL: `https://integracao.cvcrm.com.br/api`
- URL: `https://integracao.cvcrm.com.br/api/v4/comercial/reservas/{idReserva}/aprovacao`
- Auth: HTTP bearer

Aprova a condição de pagamento da reserva, validando os limites de
alçada do usuário (juros, VPL, prosoluto, ato e percentuais pré/pós-obra).
Em caso de violação de regra, retorna `falha` com o código de mensagem
correspondente em `message` (somente gestor).

Quando a reserva não possui tabela de preço, o fluxo padrão retorna
`400` com `message: erro_tabela_nao_existe` ("A tabela escolhida não
existe."). Para aprovar mesmo assim, envie `aprovarSemComparar: true`:
nesse caso a comparação com a tabela é ignorada e a reserva é aprovada
sem comparar (equivalente ao fluxo legado `aprovarReservaSemComparar`),
preservando apenas os gates de permissão de aprovação.

## Path parameters

- `idReserva` integer, required

## Request body

- object
  - `juros` number, float: Quando omitido, usa o valor de juros_cadastro da reserva.
  - `jurosAposEntrega` number, float: Quando omitido ou 0, usa juros_apos_entrega_cadastro da reserva (ou o próprio juros resolvido).
  - `idTabela` integer: Quando omitido, usa o idtabela da reserva.
  - `idTabelaMinima` integer: Quando omitido, busca idtabelaMinima da TabelaDePreco resolvida.
  - `comentario` string, nullable
  - `comentarioExibirImobiliaria` boolean
  - `comentarioExibirCorretor` boolean
  - `aprovarSemComparar` boolean: Quando true, aprova a reserva sem comparar com a tabela de preço, ignorando o erro erro_tabela_nao_existe. Mantém os gates de permissão de aprovação e pula as validações de alçada/comparação de tabela.

## Response `200`

Reserva aprovada

- object
  - `status` string
  - `code` integer
  - `data` object
    - `idReserva` integer

## Other responses

- `400`: Violação de regra de aprovação. `message` contém o código de erro: limite_juros, limite_juros_apos_entrega, limite_juros_todos, porcentagem_mensal_erro, mensagem_solicitacao_distrato, mensagem_comissao_maior_entradas, mensagem_bloquear_programacao_menor, max_vpl_erro, valor_maximo_prosoluto_erro, porcentagem_maxima_prosoluto_erro, min_valor_ato_erro, min_porcentagem_ato_erro, max_valor_ato_erro, max_porcentagem_ato_erro, max_porcentagem_pre_obra_vgv_erro, max_porcentagem_pre_obra_vpl_erro, max_porcentagem_pos_obra_vgv_erro, max_porcentagem_pos_obra_vpl_erro, sem_limite_absoluto[_valor][_porcentagem], sem_limite_vpl, sem_limite_vpl_absoluto, erro_alcada_comprometimento_renda, erro_alcada_porcentagem, erro_alcada_parcelas, erro_alcada_porcentagem_parcelas, erro_alcada_nao_encontrada, erro_tabela_nao_existe. Quando mais de um limite de alçada é violado, os códigos vêm acumulados em `message`, separados por `; `.
- `401`: Não autenticado
- `404`: Reserva inexistente

---

[API](https://skmtc.dev/cvcrm/apis/servi-os-internos-do-construtor-de-vendas.md) - [All operations](https://skmtc.dev/cvcrm/apis/servi-os-internos-do-construtor-de-vendas/llms.txt) - [OpenAPI document](https://skmtc.dev/cvcrm/apis/servi-os-internos-do-construtor-de-vendas/revisions/9f2fd517acbb?raw)
