--- title: 8.4. Eventos de Proposta e Formalização url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/8.%20Notifica%C3%A7%C3%B5es%20-%20WebHook/8.4.%20Eventos%20de%20Proposta%20e%20Formaliza%C3%A7%C3%A3o/ --- # 8.4. Eventos de Proposta e Formalização !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. Eventos do trecho final da jornada: envio à bancarizadora, registro, formalização e cancelamento. O envelope, os headers, a assinatura HMAC e a política de retry estão em [8.1. Visão Geral](8.1.%20Visão%20Geral.md). --- ## Sequência ```mermaid sequenceDiagram participant Você participant VeTrust participant Banco as Bancarizadora Você->>VeTrust: POST /envio VeTrust-->>Você: credito.proposta.enviada (14) VeTrust->>Banco: registro da proposta Banco-->>VeTrust: código + número da CCB VeTrust-->>Você: credito.proposta.registrada VeTrust->>Banco: envio para assinatura VeTrust-->>Você: credito.assinatura.aguardando (5) Banco-->>VeTrust: formalização concluída VeTrust-->>Você: credito.contrato.formalizado (6) ``` --- ## `credito.proposta.enviada` A proposta entrou em envio. Status `14` — **Enviando proposta**. ```json { "idWebhook": "019e0896-7a8b-7a45-b037-8c014d24a6e9", "tipoEvento": "credito.proposta.enviada", "dataHora": "2026-08-20T14:01:11.204Z", "grupoEconomico": "MeuGrupo", "dados": { "idProposta": 1001, "idEsteira": 12, "produto": "ep" }, "etiquetas": null } ``` --- ## `credito.proposta.registrada` A proposta foi registrada na bancarizadora e a CCB foi numerada. ```json { "idWebhook": "019e0897-9c0d-7b56-c148-9d125e35b7fa", "tipoEvento": "credito.proposta.registrada", "dataHora": "2026-08-20T14:01:48.771Z", "grupoEconomico": "MeuGrupo", "dados": { "idProposta": 1001, "idContrato": 5001, "idEsteira": 12, "produto": "ep", "numeroCcb": "PROP-2026-004821", "dataGeracaoProposta": "2026-08-20T14:01:48Z" }, "etiquetas": null } ``` | Campo | Tipo | Descrição | |-------|------|-----------| | idContrato | integer | **Primeiro momento em que o `idContrato` existe.** Guarde-o: é ele que endereça os serviços de carteira | | numeroCcb | string | Número da Cédula de Crédito Bancário | | dataGeracaoProposta | string | Momento do registro, em UTC | !!! important "A partir daqui a proposta é imutável" Depois deste evento, simulação, tomador, desembolso, avalistas e garantias não aceitam mais alteração, e a [reabertura](../6.%20Proposta/6.12.%20Reabertura.md) deixa de ser possível. --- ## `credito.proposta.falhou` O registro foi recusado. Status `9` — **Falha na inclusão da proposta**. ```json { "idWebhook": "019e0898-be1f-7c67-d259-ae236f46c80b", "tipoEvento": "credito.proposta.falhou", "dataHora": "2026-08-20T14:01:48.771Z", "grupoEconomico": "MeuGrupo", "dados": { "idProposta": 1001, "idEsteira": 12, "produto": "ep", "erros": "Valor da operação acima do limite aprovado para o cliente." }, "etiquetas": null } ``` ### 🧭 O que fazer ao receber Leia `erros`, chame a [reabertura](../6.%20Proposta/6.12.%20Reabertura.md), corrija e envie de novo. Como não há CCB gerada, a reabertura é permitida. --- ## `credito.assinatura.aguardando` A formalização começou. Os assinantes foram notificados **por e-mail** pela bancarizadora. Status `5` — **Aguardando assinaturas**. ```json { "idWebhook": "019e0899-d030-7d78-e36a-bf347057d91c", "tipoEvento": "credito.assinatura.aguardando", "dataHora": "2026-08-20T14:02:15.008Z", "grupoEconomico": "MeuGrupo", "dados": { "idProposta": 1001, "idContrato": 5001, "produto": "ep", "numeroCcb": "PROP-2026-004821", "assinantes": [ { "nome": "João da Silva", "documento": "12345678900", "statusAssinatura": "Pendente" } ] }, "etiquetas": null } ``` > **Não há link de assinatura no payload.** A jornada de assinatura é conduzida pela bancarizadora — > ver [6.9. Assinantes e CCB](../6.%20Proposta/6.9.%20Assinantes%20e%20CCB.md). --- ## `credito.contrato.formalizado` A formalização se concluiu. O contrato está ativo, as parcelas estão geradas e a **CCB está disponível para download**. Status `6` — **Finalizado**. ```json { "idWebhook": "019e089a-f141-7e89-f47b-c0455168ea2d", "tipoEvento": "credito.contrato.formalizado", "dataHora": "2026-08-21T10:14:02.331Z", "grupoEconomico": "MeuGrupo", "dados": { "idProposta": 1001, "idContrato": 5001, "idEsteira": 12, "produto": "ep", "numeroCcb": "PROP-2026-004821", "valorLiquido": 18000.00, "valorBruto": 20400.00, "quantidadeParcelas": 24, "dataPrimeiraParcela": "2026-10-13", "dataUltimaParcela": "2028-09-13" }, "etiquetas": null } ``` ### 🧭 O que fazer ao receber 1. `GET /credito/propostas/{idProposta}/ccb` — agora o PDF está disponível. 2. `GET /credito/contratos/{idContrato}/parcelas` — carregue o fluxo para a sua carteira. 3. Se a esteira tem cobrança interna, avalie gerar as cobranças em [7.4. Cobrança](../7.%20Contratos%20e%20Parcelas/7.4.%20Cobrança.md). --- ## `credito.contrato.cancelado` A operação foi cancelada. Status `7` — **Cancelado**. ```json { "idWebhook": "019e089b-1252-7f9a-058c-d1566279fb3e", "tipoEvento": "credito.contrato.cancelado", "dataHora": "2026-08-22T09:30:44.612Z", "grupoEconomico": "MeuGrupo", "dados": { "idProposta": 1001, "idContrato": 5001, "produto": "ep", "numeroCcb": "PROP-2026-004821", "motivo": "Cancelamento solicitado pelo cliente" }, "etiquetas": null } ``` O cancelamento pode vir de uma ação sua (proposta em digitação), de um operador na plataforma, ou da própria bancarizadora. Consulte o [histórico](../6.%20Proposta/6.11.%20Histórico.md) para saber a origem. --- ## ⚠️ Observações - **A ordem de entrega não é garantida.** `credito.assinatura.aguardando` pode chegar antes de `credito.proposta.registrada`. Use o evento como gatilho e o `GET` do recurso como fonte da verdade. - `idContrato` só existe a partir de `credito.proposta.registrada`. Antes disso, endereço a operação por `idProposta`. - Se você assina apenas um evento desta página, assine **`credito.contrato.formalizado`**: é o que marca a operação como receita e libera a carteira.