Ir para o conteúdo

6.7. Análise de Crédito

Especificação — em construção

Os serviços descritos nesta área ainda não estão disponíveis.

🔗 Endpoints

Método URL Natureza
/credito/propostas/{idProposta}/analise-credito Assíncrono
/credito/propostas/{idProposta}/analise-credito Síncrono

🧾 Descrição

Submete a proposta ao motor de crédito e consulta o resultado.

A análise é executada pela bancarizadora e o resultado volta de forma assíncrona. A submissão responde 202; o resultado chega por webhook (credito.analise.concluida) ou pela consulta.

Etapa condicional

Esta etapa existe apenas quando enviarParaAnaliseCredito = true na esteira. Se for false, a submissão é recusada e a proposta vai direto para o envio. Verifique em 3.2. Parâmetros da Esteira.


Submeter à análise

Sem corpo. Use Idempotency-Key.

🧪 Exemplo de cURL

curl -X POST "https://api.vehub.com.br/credito/propostas/1001/analise-credito" \
  -H "Authorization: Bearer {seu_token}" \
  -H "GrupoEconomico: {seu_grupo_economico}" \
  -H "Idempotency-Key: 5b7d9c31-88ea-4d02-b1f6-0a4c7e93d244"

📥 Response — 202 Accepted

{
  "sucesso": true,
  "mensagem": "Análise de crédito submetida.",
  "dados": {
    "status": "processando",
    "consultarEm": "/credito/propostas/1001/analise-credito"
  }
}

A proposta passa para o status 13 — Aguardando motor de crédito.

Repetir o pedido com a proposta já aguardando o motor (13) responde 202 sem reenviar nada ao motor. O mesmo vale no retorno do motor (26, 27 ou 28) quando a análise continua ligada à proposta e não há nova análise a conceder (ver Segunda análise após recusa).

❌ 409 Conflict — esteira sem análise

{
  "type": "https://tools.ietf.org/html/rfc9110#section-15.5.10",
  "status": 409,
  "errors": [
    { "campo": null, "mensagem": "Esta esteira não exige análise de crédito." }
  ]
}

❌ 422 Unprocessable Entity — ficha incompleta

{
  "type": "https://tools.ietf.org/html/rfc9110#section-15.5.21",
  "status": 422,
  "errors": [
    { "campo": null, "mensagem": "A simulação da proposta não foi concluída." }
  ]
}

O que a análise exige antes de ser submetida depende da esteira: na jornada completa, a ficha do tomador e a simulação; na jornada simplificada, apenas os dados básicos do tomador e a simulação. As pendências específicas aparecem em 6.10.

❌ 409 Conflict — estado da proposta

A submissão responde 409, no mesmo formato dos exemplos acima (campo nulo), nestas situações:

Situação Mensagem
O cálculo da simulação ainda está em processamento — por exemplo, logo depois de refazer a simulação O cálculo da simulação ainda está em processamento. Aguarde a conclusão e submeta a proposta à análise de crédito novamente.
O status não é 1 Em digitação, 13 Aguardando motor de crédito nem o retorno do motor (26, 27 ou 28) O status atual do contrato não permite o envio ao motor de crédito.
A proposta já tem a CCB emitida na bancarizadora, em qualquer status A proposta já tem a CCB emitida na bancarizadora e não pode ser submetida de novo à análise de crédito. O tratamento passa a ser operacional.
A proposta recusada voltou à digitação (por exemplo, ao refazer a simulação) e a esteira não oferece nova análise A proposta foi recusada pela análise de crédito e esta esteira não permite nova análise. Crie uma nova proposta.

Com a proposta reprovada pelo motor (28), repetir o pedido numa esteira sem nova análise responde 202 sem reenviar: nada mudou desde a análise.


Consultar o resultado

🧪 Exemplo de cURL

curl -X GET "https://api.vehub.com.br/credito/propostas/1001/analise-credito" \
  -H "Authorization: Bearer {seu_token}" \
  -H "GrupoEconomico: {seu_grupo_economico}"

📥 Response — 200 OK, aprovada

{
  "sucesso": true,
  "mensagem": null,
  "dados": {
    "status": { "id": 6, "nome": "Aprovado" },
    "score": "742",
    "limiteConcedido": "25000.00",
    "motivo": null,
    "dataHoraRetorno": "2026-08-20T13:22:40Z",
    "novaAnaliseSolicitada": false
  }
}

📥 Response — 200 OK, recusada

{
  "sucesso": true,
  "dados": {
    "status": { "id": 4, "nome": "Recusado" },
    "score": "512",
    "limiteConcedido": "0.00",
    "motivo": "Restrição cadastral no sócio",
    "dataHoraRetorno": "2026-08-20T13:22:40Z",
    "novaAnaliseSolicitada": false
  }
}

📥 Response — 200 OK, ainda em análise

{
  "sucesso": true,
  "dados": {
    "status": null,
    "score": null,
    "limiteConcedido": null,
    "motivo": null,
    "dataHoraRetorno": null,
    "novaAnaliseSolicitada": false
  }
}

status nulo significa aguardando o retorno. Continue consultando, ou assine o webhook.

🧾 Detalhamento dos Campos

Campo Tipo Descrição
status object / null Resultado da análise. Nulo enquanto não há retorno
score string / null Pontuação atribuída pelo motor
limiteConcedido string / null Limite de crédito concedido
motivo string / null Motivo da decisão. Preenchido nas recusas
dataHoraRetorno string / null Momento em que o resultado foi recebido, em UTC
novaAnaliseSolicitada boolean true quando esta proposta já usou a segunda chance

Resultados possíveis

Código Descrição Permite enviar a proposta?
6 Aprovado ✅
7 Aprovado com alteração ✅
4 Recusado ❌
11 Pendente ❌
27 Cancelado ❌

Aprovação é pré-requisito do envio

Quando a esteira exige análise, a proposta só pode ser enviada à bancarizadora com resultado aprovado. Tentar enviar com resultado recusado, pendente ou ainda em análise resulta em 409 — ver 6.8. Envio da Proposta.

Refazer a simulação descarta a análise

Quando a esteira exige análise, refazer a simulação depois do retorno do motor descarta a análise da proposta — qualquer resultado, exceto o recusado. A proposta volta a ser tratada como nunca submetida: submeta de novo e aguarde o resultado antes do envio, ou o envio responde 409.


Segunda análise após recusa

Quando a esteira tem sugerirNovaAnaliseComDados = true e a jornada simplificada está ativa, uma proposta recusada admite uma única nova submissão, depois de a ficha ser enriquecida:

Depois da segunda submissão, novaAnaliseSolicitada fica true e novas tentativas são recusadas.

A regra vale em qualquer status em que a proposta aceita a submissão (1 Em digitação e 28 Reprovado pelo motor), inclusive depois de refazer a simulação de uma proposta recusada: refazer o cálculo não devolve a segunda chance. A segunda recusa é negada com a mensagem Esta proposta já passou por uma nova análise com dados complementares. Crie uma nova proposta.


⚠️ Observações

  • Score, limite e motivo são devolvidos integralmente. A credencial pública tem acesso ao resultado completo; cabe a você decidir o que exibir ao usuário final.
  • A consulta responde 200 mesmo quando a proposta foi recusada. Recusa é resultado, não erro — inspecione status.
  • Consulta de bureau e SCR é uma jornada separada, não exposta nesta API.