Ir para o conteúdo

6.14. Cancelamento e Reembolso

Especificação — em construção

Os serviços descritos nesta área ainda não estão disponíveis.

🔗 Endpoints

Método URL
POST /credito/propostas/{idProposta}/cancelamento
POST /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

{
  "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)

{
  "sucesso": true,
  "mensagem": "Proposta cancelada com sucesso.",
  "dados": {
    "idProposta": 1001,
    "status": 7
  }
}

✅ 202 Accepted (caminho C)

{
  "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

{
  "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

{
  "sucesso": true,
  "mensagem": "Reembolso confirmado: o contrato foi cancelado.",
  "dados": true
}

🧪 Exemplo de cURL

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" }'