9.1. Roteiro — EP ponta a ponta¶
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¶
1. Autenticar¶
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¶
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¶
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)¶
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¶
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¶
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¶
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¶
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¶
curl "https://api.vehub.com.br/credito/propostas/1001/documentos" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE"
Envie cada item com enviado: false:
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¶
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:
curl "https://api.vehub.com.br/credito/propostas/1001" -H "Authorization: Bearer $TOKEN" -H "GrupoEconomico: $GE"
Com pendencias: [] e proximaEtapa: "envio":
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:
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:
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:
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:
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:
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
-
idEsteiraresolvido 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-Keyem toda criação e todo avanço de estado -
temErroinspecionado em toda consulta de operação assíncrona -
proximaEtapaependenciasusados em vez de sequência fixa - Webhooks assinados, com deduplicação por
idWebhook -
429tratado respeitandoRetry-After - Reabertura implementada para o caso de falha