> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wincred.digital/llms.txt
> Use this file to discover all available pages before exploring further.

# Ciclo de vida da indicação

> Os status do processo, o que muda em cada um e as 5 regras para uma integração previsível.

Depois do `POST /referrals`, quem conduz o processo é o cliente, no link seguro da Wincred. O seu sistema acompanha essa evolução de forma reativa, pelos [webhooks](https://docs.wincred.digital/api-do-parceiro/webhooks.md) e pela [consulta](https://docs.wincred.digital/api-do-parceiro/consultar.md).

## Os status

| `status` | Significado | Webhook |
| - | - | - |
| `awaiting_client` | Link enviado, termo de autorização ainda não assinado | Nenhum |
| `term_signed` | O cliente assinou o termo de autorização | [`term_signed`](https://docs.wincred.digital/api-do-parceiro/eventos/term-signed) |
| `contract_created` | Proposta escolhida e contrato criado. Vale até antes do desembolso, enquanto o contrato passa por CCB, KYC e averbação | [`contract_created`](https://docs.wincred.digital/api-do-parceiro/eventos/contract-created), pode se repetir |
| `loan_disbursed` | Proposta averbada e valor desembolsado na conta do cliente (conclusão com sucesso) | [`loan_disbursed`](https://docs.wincred.digital/api-do-parceiro/eventos/loan-disbursed) |
| `closed` | Encerrado sem contratação. | [`closed`](https://docs.wincred.digital/api-do-parceiro/eventos/closed), exceto por termo vencido |

O status `closed` pode ocorrer a partir de qualquer status anterior ao desembolso.

## O que você vê em cada status

| `status` | `proposal` | `ccb_number` | `disbursed_at` |
| - | - | - | - |
| `awaiting_client` | ausente | ausente | ausente |
| `term_signed` | ausente | ausente | ausente |
| `contract_created` | `gross_amount`, `installments` | presente | ausente |
| `loan_disbursed` | `gross_amount`, `installments` | presente | presente |
| `closed` | o que havia no momento do encerramento | idem | ausente |

Um campo ausente é omitido da resposta, em vez de vir como `null`.

## As 5 regras

> [accordion] 1. O data do webhook é congelado na gravação, e o GET é a verdade
>
> O `data` de um webhook é a visão do processo no momento em que a notificação foi gravada. Uma retentativa envia o **mesmo corpo**, com o mesmo `event_id`. Como essa visão é montada instantes depois da mudança de status, o `data` pode estar um pouco à frente do `event_type`.
>
> Sempre que precisar do estado real, consulte `GET /referrals/{process_external_id}`. A consulta reflete o processo como ele está agora, mesmo que uma notificação tenha se perdido ou chegado fora de ordem.

> [accordion] 2. O status pode voltar depois de um reset
>
> Caso o contrato seja encerrado em alguma das etapas entre a criação e o desembolso (CCB, KYC ou averbação), o processo é reaberto: o `status` volta para `term_signed` e o cliente escolhe uma nova proposta. Por isso, um `contract_created` pode chegar mais de uma vez, cada um com o seu próprio `event_id`.
>
> Na prática, a sua máquina de estados deve prever esse retorno de status e aceitar um novo `contract_created` para um processo que já passou por essa etapa, em vez de tratar o `status` como uma linha que só avança.

> [accordion] 3. closed por termo vencido aparece no GET, mas não gera webhook
>
> Quando o termo foi assinado, venceu e não houve contrato, o `GET` passa a mostrar `closed`, mas nenhuma notificação é enviada. Se o seu sistema precisa saber que o processo terminou, consulte periodicamente o `GET` dos processos que ficaram parados.

> [accordion] 4. Link vencido sem termo não muda o status
>
> Se o cliente não assinou o termo e o link venceu, o `status` continua `awaiting_client`. Para dar uma nova oportunidade ao cliente, reenvie o CPF em `POST /referrals`: você recebe um link novo para o mesmo processo (`200`, `"created": false`).

> [accordion] 5. Valor e prazo enviados são um pedido, e o cliente pode ajustá-los
>
> O que você envia em `loan_request` é um pedido, não um compromisso. O cliente pode ajustar valor e prazo durante a jornada, e o `proposal` do `GET` e dos webhooks traz a proposta efetivamente escolhida por ele. Esse ajuste de valor, por si só, não gera webhook.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.