--- title: 6.7. Análise de Crédito url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/6.%20Proposta/6.7.%20An%C3%A1lise%20de%20Cr%C3%A9dito/ --- # 6.7. Análise de Crédito !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. ## 🔗 Endpoints | Método | URL | Natureza | |--------|-----|----------| | ![POST](https://img.shields.io/badge/POST-blue) | `/credito/propostas/{idProposta}/analise-credito` | **Assíncrono** | | ![GET](https://img.shields.io/badge/GET-green) | `/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](../8.%20Notificações%20-%20WebHook/8.3.%20Eventos%20de%20Análise%20de%20Crédito.md) (`credito.analise.concluida`) ou pela consulta. !!! info "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](6.8.%20Envio%20da%20Proposta.md). Verifique em [3.2. Parâmetros da Esteira](../3.%20Referências/3.2.%20Parâmetros%20da%20Esteira.md). --- ## Submeter à análise Sem corpo. Use **`Idempotency-Key`**. ### 🧪 Exemplo de cURL ```bash 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` ```json { "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**. ### ❌ 409 Conflict — esteira sem análise ```json { "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 ```json { "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](6.10.%20Consultar,%20Listar%20e%20Pendências.md). --- ## Consultar o resultado ### 🧪 Exemplo de cURL ```bash 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 ```json { "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 ```json { "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 ```json { "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 | ❌ | !!! danger "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](6.8.%20Envio%20da%20Proposta.md). --- ## 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: ```mermaid flowchart TD A[Análise com dados básicos] --> B{Resultado} B -- Aprovado --> C[Seguir para o envio] B -- Recusado --> D{sugerirNovaAnaliseComDados?} D -- Não --> E[Fim: proposta recusada] D -- Sim --> F[Completar a ficha:
complementares, bancários,
avalistas, garantias, documentos] F --> G[Nova submissão ao motor] G --> H{Resultado} H -- Aprovado --> C H -- Recusado --> E ``` Depois da segunda submissão, `novaAnaliseSolicitada` fica `true` e novas tentativas são recusadas. --- ## ⚠️ 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.