--- title: 6.14. Cancelamento e Reembolso url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/6.%20Proposta/6.14.%20Cancelamento%20e%20Reembolso/ --- # 6.14. Cancelamento e Reembolso !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. ## 🔗 Endpoints | Método | URL | |--------|-----| | ![POST](https://img.shields.io/badge/POST-blue) | `/credito/propostas/{idProposta}/cancelamento` | | ![POST](https://img.shields.io/badge/POST-blue) | `/credito/propostas/{idProposta}/cancelamento/reembolso` | --- ## 🧾 Descrição Cancela a proposta ou o contrato em qualquer etapa em que o cancelamento ainda é possível: antes da CCB, depois da CCB e antes do pagamento, ou depois do desembolso, com reembolso. As duas rotas exigem o header `Idempotency-Key`. Ao repetir uma chamada, use a mesma chave. --- ## Pedir o cancelamento ### 📤 Requisição ```json { "motivo": "Arrependimento do cliente" } ``` | Campo | Tipo | Obrigatório | Descrição | |-------|------|-------------|-----------| | motivo | string | Sim | De 3 a 500 caracteres. Fica gravado no contrato, vai no evento `credito.contrato.cancelado` e, quando há CCB, também à instituição financeira | ### 🧭 Caminhos | Caminho | Quando | O que acontece | Resposta | |---|---|---|---| | A. Sem CCB | Status `1`, `9`, `10`, `26`, `27` ou `28`, sem CCB emitida | Cancela na hora (status `7`) e dispara `credito.contrato.cancelado` | `200`, `status: 7` | | B. Com CCB, antes do pagamento | Status `1`, `5`, `6`, `10` ou `30`, com CCB emitida e sem pagamento | Cancela na instituição financeira e, se ela aceitar, aqui (status `7`), com `credito.contrato.cancelado` | `200`, `status: 7`; `422` na recusa; `503` sem resposta | | C. Depois do desembolso | Status `6`, desembolso pago e sem reembolso em andamento | O contrato vai para `12` (em cancelamento) e aguarda o reembolso | `202`, `status: 12` | | Demais | Por exemplo, já cancelada, rejeitada, em cancelamento, em envio ou com a cessão iniciada | Nada muda | `409` | - **Caminho B:** a instituição financeira só aceita o cancelamento até **7 dias** depois do registro e recusa a proposta paga, em remessa de pagamento ou cedida. A recusa volta como `422`, com a mensagem dela, e nada muda. - **Caminho B sem resposta:** se a instituição financeira não responder (indisponibilidade ou tempo esgotado), a rota responde `503` e nada muda. Repita o pedido com a **mesma** chave de idempotência. - **Caminho C:** com cobrança por boleto, é gerado o boleto de reembolso (`statusReembolso: 3`, processando); com cobrança externa, o valor volta pela sua conta (`statusReembolso: 1`, aguardando). O cancelamento termina com a confirmação do reembolso, abaixo. Até lá, não sai evento. O boleto de reembolso não é exposto por esta API. ### ✅ 200 OK (caminhos A e B) ```json { "sucesso": true, "mensagem": "Proposta cancelada com sucesso.", "dados": { "idProposta": 1001, "status": 7 } } ``` ### ✅ 202 Accepted (caminho C) ```json { "sucesso": true, "mensagem": "Cancelamento iniciado: o contrato aguarda o reembolso.", "dados": { "idProposta": 1001, "status": 12, "statusReembolso": 1 } } ``` --- ## Confirmar o reembolso Conclui o cancelamento do caminho C. ### 📤 Requisição ```json { "valorPago": 255.10, "dataPagamento": "2026-10-30" } ``` | Campo | Tipo | Obrigatório | Descrição | |-------|------|-------------|-----------| | valorPago | number | Sim | Valor recebido. Precisa ser maior que zero (`400`) | | dataPagamento | string (date) | Sim | Data do recebimento. Não pode ser futura no horário de Brasília (`422`) | - Só é aceita no status `12`, com o reembolso processando (`3`) ou aguardando (`1`). Nos demais casos, `409`. - O contrato vai para `7` (cancelado), o reembolso fica como recebido, as parcelas em aberto são canceladas e sai `credito.contrato.cancelado`, com o motivo do pedido de cancelamento. ### ✅ 200 OK ```json { "sucesso": true, "mensagem": "Reembolso confirmado: o contrato foi cancelado.", "dados": true } ``` --- ## 🧪 Exemplo de cURL ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/cancelamento" \ -H "Authorization: Bearer {seu_token}" \ -H "GrupoEconomico: {seu_grupo_economico}" \ -H "Idempotency-Key: {uuid}" \ -H "Content-Type: application/json" \ -d '{ "motivo": "Arrependimento do cliente" }' ```