--- title: 9.1. Roteiro — EP ponta a ponta url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/9.%20Roteiros/9.1.%20Roteiro%20-%20EP%20ponta%20a%20ponta/ --- # 9.1. Roteiro — EP ponta a ponta !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. Roteiro completo de uma operação de **Empréstimo Pessoal**, do primeiro cálculo à quitação. É o caminho mais simples: o desembolso vai sempre para a conta do tomador e não há parceiro envolvido. **Cenário:** pessoa física, R$ 18.000 em 24 parcelas, taxa de 1,99% a.m., esteira com análise de crédito e cobrança interna. --- ## Visão geral ```mermaid flowchart TD A[1. Autenticar] --> B[2. Listar esteiras] B --> C[3. Consultar parâmetros] C --> D[4. Simular avulsa] D --> E{Cliente aceitou?} E -- Não --> D E -- Sim --> F[5. Consultar tomador] F --> G[6. Criar proposta] G --> H[7. Dados bancários] H --> I[8. Simular a proposta] I --> J[9. Documentos] J --> K[10. Análise de crédito] K --> L{Aprovada?} L -- Não --> M[Fim: recusada] L -- Sim --> N[11. Enviar proposta] N --> O[12. Formalização] O --> P[13. Carteira] ``` --- ## 1. Autenticar ```bash export VETRUST_API="https://sandbox.api.vehub.com.br/public/v1" curl -X POST "https://api.vehub.com.br/auth/login" \ -H "Content-Type: application/json" \ -d '{ "client_id": "seu-client-id", "client_secret": "seu-client-secret" }' ``` Guarde o `accessToken` e reaproveite-o até expirar. Nos passos seguintes, `$TOKEN` e `$GE` representam o token e o grupo econômico. --- ## 2. Listar esteiras ```bash curl "https://api.vehub.com.br/credito/esteiras" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` Escolha a esteira com `produto: "ep"`. Suponha `idEsteira = 12`. --- ## 3. Consultar parâmetros ```bash curl "https://api.vehub.com.br/credito/esteiras/12/parametros" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` Anote: faixas de valor, prazo e taxa; `enviarParaAnaliseCredito`; `cobrancaExterna`; `destinatarioDesembolso` (será `null` em EP). Valide a entrada do cliente contra essas faixas antes de simular. --- ## 4. Simular (avulsa, síncrona) ```bash curl -X POST "https://api.vehub.com.br/credito/esteiras/12/simulacao" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Content-Type: application/json" \ -d '{ "tipoPessoa": 1, "tipoSimulacao": 1, "valor": 18000.00, "taxa": 1.99, "quantidadeParcelas": 24, "dataPrimeiroVencimento": "2026-10-10" }' ``` Resultado imediato, com CET, IOF e grade de parcelas. **Nada foi criado** — itere quantas vezes precisar. Só siga quando o cliente aceitar. --- ## 5. Consultar tomador ```bash curl "https://api.vehub.com.br/credito/tomadores/12345678900" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` `200` ⇒ pré-preencha o formulário e confirme com o cliente. `204` ⇒ colete a ficha completa. --- ## 6. Criar proposta ```bash curl -X POST "https://api.vehub.com.br/credito/esteiras/12/propostas" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d @tomador.json ``` Guarde o `idProposta` (`1001`). A partir daqui, consulte a proposta depois de cada passo e siga `proximaEtapa`. --- ## 7. Dados bancários ```bash curl -X PUT "https://api.vehub.com.br/credito/propostas/1001/dados-bancarios" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Content-Type: application/json" \ -d '{ "idBanco": 1, "agencia": "12345", "conta": "9876543", "tipoConta": 2 }' ``` Em EP esta etapa é **sempre obrigatória**. --- ## 8. Simular a proposta ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/simulacao" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "tipoSimulacao": 1, "valor": 18000.00, "taxa": 1.99, "quantidadeParcelas": 24, "dataPrimeiroVencimento": "2026-10-10" }' ``` Responde `202`. Aguarde `credito.simulacao.concluida`, ou consulte `GET /credito/propostas/1001/simulacao` e verifique `dadosFinanceiros` **e `temErro`**. --- ## 9. Documentos ```bash curl "https://api.vehub.com.br/credito/propostas/1001/documentos" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` Envie cada item com `enviado: false`: ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/documentos/92" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -F "arquivo=@comprovante-residencia.pdf" ``` Itens podem já vir `enviado: true` por reaproveitamento — não presuma que a lista começa vazia. --- ## 10. Análise de crédito ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/analise-credito" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Idempotency-Key: $(uuidgen)" ``` Responde `202`. Aguarde `credito.analise.concluida` e verifique `podeEnviarProposta`. **Se recusada:** a jornada termina aqui, salvo se a esteira permitir segunda análise. --- ## 11. Enviar proposta Antes, confirme que não há pendências: ```bash curl "https://api.vehub.com.br/credito/propostas/1001" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` Com `pendencias: []` e `proximaEtapa: "envio"`: ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/envio" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Idempotency-Key: $(uuidgen)" ``` Responde `202`. Aguarde `credito.proposta.registrada` — é onde o **`idContrato`** aparece. --- ## 12. Formalização A bancarizadora notifica o tomador **por e-mail**. Você acompanha: ```bash curl "https://api.vehub.com.br/credito/propostas/1001/assinantes" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` Ao receber `credito.contrato.formalizado`, baixe a CCB: ```bash curl "https://api.vehub.com.br/credito/propostas/1001/ccb" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" --output ccb.pdf ``` --- ## 13. Carteira Carregue o fluxo: ```bash curl "https://api.vehub.com.br/credito/contratos/5001/parcelas" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" ``` Com cobrança interna, gere a cobrança de cada parcela: ```bash curl -X POST "https://api.vehub.com.br/credito/contratos/5001/parcelas/cobrancas" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "idsParcelas": [8801], "dataVencimento": "2026-10-13", "pagamentoViaBoleto": true }' ``` Quando o cliente pagar, informe a liquidação: ```bash curl -X PATCH "https://api.vehub.com.br/credito/contratos/5001/parcelas/8801" \ -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "dataPagamento": "2026-10-13", "valorPagamento": 850.00 }' ``` Na última parcela, `credito.contrato.liquidado` fecha a operação. --- ## ✅ Checklist de integração - [ ] Token reaproveitado, não solicitado a cada chamada - [ ] `idEsteira` resolvido pelo endpoint, não fixo no código - [ ] Entrada validada contra os parâmetros da esteira antes de simular - [ ] Simulação avulsa usada para negociar; proposta criada só após o aceite - [ ] `Idempotency-Key` em toda criação e todo avanço de estado - [ ] `temErro` inspecionado em toda consulta de operação assíncrona - [ ] `proximaEtapa` e `pendencias` usados em vez de sequência fixa - [ ] Webhooks assinados, com deduplicação por `idWebhook` - [ ] `429` tratado respeitando `Retry-After` - [ ] Reabertura implementada para o caso de falha