Ir para o conteúdo

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
  • 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