--- title: 6.8. Envio da Proposta url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/6.%20Proposta/6.8.%20Envio%20da%20Proposta/ --- # 6.8. Envio da Proposta !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. ## 🔗 Endpoint | Método | URL | Natureza | |--------|-----|----------| | ![POST](https://img.shields.io/badge/POST-blue) | `/credito/propostas/{idProposta}/envio` | **Assíncrono** | --- ## 🧾 Descrição Registra a proposta na **bancarizadora**. É o ponto de não retorno da jornada: a partir daqui a operação passa a existir na instituição financeira, a CCB é emitida e a formalização começa. Sem corpo. Use **`Idempotency-Key`** — este é o endpoint em que um *retry* sem chave gera **duas operações de crédito** para o mesmo cliente. --- ## ✅ Pré-condições O envio é recusado com `409` se qualquer uma destas não estiver satisfeita: | Pré-condição | Detalhe | |---|---| | **Simulação concluída** | A proposta precisa ter valores calculados | | **Análise aprovada** | Quando a esteira exige análise — ver o quadro abaixo | | **Conta de desembolso resolvida** | Conta do tomador, ou parceiro com conta completa | | **Ficha do tomador completa** | Conforme o tipo de pessoa | | **Documentos enviados** | Todos os itens da lista de documentos exigidos | | **Status permitido** | A proposta não pode estar em falha, finalizada, em análise ou já em envio | Antes de chamar, consulte [6.10. Consultar, Listar e Pendências](6.10.%20Consultar,%20Listar%20e%20Pendências.md): se `pendencias` estiver vazio e `proximaEtapa` for `envio`, o envio passa. --- ## 🔒 A barreira da análise de crédito Quando a esteira tem `enviarParaAnaliseCredito = true`, o envio exige **resultado aprovado**: | Estado da análise | Envio | |---|---| | `6` Aprovado | ✅ permitido | | `7` Aprovado com alteração | ✅ permitido | | `4` Recusado | ❌ `409` | | `11` Pendente | ❌ `409` | | `27` Cancelado | ❌ `409` | | Ainda em `Aguardando motor de crédito` (`13`) | ❌ `409` | | Nunca submetida à análise | ❌ `409` | !!! danger "Não contorne esta barreira" A bancarizadora **não** bloqueia o registro de uma proposta recusada do lado dela. A validação aqui é a única que impede que uma operação reprovada — ou ainda em análise — se transforme em contrato. Se o seu fluxo tenta enviar antes de confirmar a aprovação, você vai receber `409`; trate isso como proteção, não como obstáculo. --- ## 🧪 Exemplo de cURL ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/envio" \ -H "Authorization: Bearer {seu_token}" \ -H "GrupoEconomico: {seu_grupo_economico}" \ -H "Idempotency-Key: c41e8a55-9df2-4b70-8e11-6a2f3d9b4c80" ``` --- ## 📥 Responses ### ✅ 202 Accepted ```json { "sucesso": true, "mensagem": "Proposta em envio para a bancarizadora.", "dados": { "status": "processando", "consultarEm": "/credito/propostas/1001" } } ``` A proposta passa para o status `14` — **Enviando proposta**. ### ❌ 409 Conflict — análise não aprovada ```json { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.10", "status": 409, "errors": [ { "campo": null, "mensagem": "A análise de crédito não está aprovada. Situação atual: Recusado." } ] } ``` ### ❌ 409 Conflict — análise em andamento ```json { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.10", "status": 409, "errors": [ { "campo": null, "mensagem": "A análise de crédito ainda está em processamento. Aguarde o resultado." } ] } ``` ### ❌ 422 Unprocessable Entity — pendências ```json { "type": "https://tools.ietf.org/html/rfc9110#section-15.5.21", "status": 422, "errors": [ { "campo": null, "mensagem": "Comprovante de renda não enviado." }, { "campo": null, "mensagem": "Conta bancária do tomador não informada." } ] } ``` --- ## O que acontece depois do `202` ```mermaid sequenceDiagram participant Você participant VeTrust participant Banco as Bancarizadora Você->>VeTrust: POST /envio VeTrust-->>Você: 202 Accepted (status 14) VeTrust->>Banco: cadastro do tomador VeTrust->>Banco: registro da proposta Banco-->>VeTrust: código da proposta + número da CCB VeTrust-->>Você: webhook credito.proposta.registrada VeTrust->>Banco: envio para assinatura Banco-->>VeTrust: status da formalização (status 5) Banco-->>VeTrust: formalização concluída VeTrust-->>Você: webhook credito.contrato.formalizado (status 6) ``` Depois do envio bem-sucedido, a consulta da proposta passa a trazer `numeroCcb` e `dataGeracaoProposta`, e o status evolui para `5` — **Aguardando assinaturas**. Se o registro falhar, a proposta vai para `9` — **Falha na inclusão da proposta** — com a mensagem da bancarizadora em `erros`, e o evento `credito.proposta.falhou` é disparado. Nesse caso, corrija o que foi apontado e use a [reabertura](6.12.%20Reabertura.md). --- ## ⚠️ Observações - **Após o envio, a proposta não aceita mais alterações** de simulação, tomador, desembolso, avalistas ou garantias. - O **cancelamento** por API só é permitido enquanto a proposta está em *Em digitação*. Depois do envio, o cancelamento é operação de plataforma. - A **formalização é conduzida pela bancarizadora**, que notifica o assinante por e-mail. Não há link de assinatura para embutir na sua jornada — ver [6.9. Assinantes e CCB](6.9.%20Assinantes%20e%20CCB.md).