Sugestão de entrada, como isso funciona?

Antes de continuar:

🚧

Atenção! Importante:

Sugestão de Entrada e Pré-Análise são funcionalidades completamente distintas!

A Pré-Análise ocorre ANTES do processamento de Sugestões de Entrada.
Significa que um CPF, ao ser RECUSADO pelo BANCO na Pré-Análise, NÃO terá suas condições processadas pela funcionalidade de Sugestão de Entrada.

Quando uma chamada ao endpoint de simulação é realizada, nossa API sempre irá criar o registro de cada condição informada no corpo da requisição.
Exemplo:

{
  "simulation": {
    //...
    "conditions": [
      {
        //Esta é uma condição
        "down_payment": 2000000,
        "financed_amount": 8000000,
        "installments": 36
      },
      {
        //Esta é outra condição
        "down_payment": 2000000,
        "financed_amount": 8000000,
        "installments": 48
      }
    ],
    //...
  }
}

No exemplo acima, temos o campo conditions(lista), que está preenchido com 2(duas) condições para parcelas diferentes; Uma condição para 36x e uma para 48x.
Cada uma dessas condições serão persistidas por nossa API e, somente em seguida, irá para a fase de processamento, ou seja, será simulada junto ao banco em questão.

{
  "data": {
    //...
    "conditions": [
      {
        //Esta é a condição que foi criada para 48x
        "process_condition_payload": {"..."
        },
        "available": true,
        "installments": 48,
        "reason": null,
        "include_financial_protection_insurance": true,
        "last_installment_value": 8000,
        "reason_identifier": null,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 1,
        "first_installment_value": 8000,
        "pre_approval_status": 3,
        "down_payment": 2000000,
      },
      {
        //Esta é a condição que foi criada para 36x
        "process_condition_payload": {"..."
        },
        "available": true,
        "installments": 36,
        "reason": null,
        "include_financial_protection_insurance": true,
        "last_installment_value": 10000,
        "reason_identifier": null,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 2,
        "first_installment_value": 10000,
        "pre_approval_status": 3,
        "down_payment": 2000000,
      }
    ]
    //...
  }
}
📘

*O processamento de uma condição pode ser concluído com sucesso ou não.

Para identificar o resultado do processamento, basta olhar para os campos success, available, reason, e error.

O campo reason sempre irá informar, através de um identificador, qual foi o motivo da falha.

Exemplo:
condition.reason pode estar preenchido com "Ocorreu um problema durante o processamento."
condition.reason_identifier: "generic_reason"

🚧

Existem inúmeras razões para uma falha no processamento de uma condição ocorrer:

1 - A API do banco está passando por uma instabilidade.
2 - A API do banco está com problemas de validação de campos.
3 - As suas credenciais bancárias estão inválidas.
4 - Houve um problema no lado do Credere durante o processamento da condição.

📘

Processamento das condições:

O processamento das condições são independentes e paralelos.
Isso significa que a falha no processamento de uma condição, NÃO irá intervir no processamento das demais condições. Independentes de serem para o mesmo banco, ou não.

Sugestão de Entrada

Essa funcionalidade permite que o Credere gere novas condições e envie-a para o banco de acordo com a sugestão de entrada E/OU entrada mínima requisitada pelo banco.

Para ativá-la durante a sua simulação, basta o campo process_bank_suggested_conditions ser enviado como true no corpo da requisição POST /simulations.
Exemplo:

{
  "simulation": {
    //...
    "conditions": ["..."
    ],
    "process_bank_suggested_conditions": true,
    //...
  }
}

Uma vez enviado o campo como verdadeiro(true), as condições informadas por você no objeto "conditions"(original_conditions), irão passar por um processamento extra que irá analisar se existe a necessidade de condições extras serem geradas por nós.

As condições sugeridas serão identificadas pelo campo suggestion_reason e original_condition_id.
O campo original_condition_id será preenchido com o ID da condição original, ou seja, a condição responsável pela geração da sugestão.

📘

O campo suggestion_reason

Pode ser preenchido por dois identificadores:
1 - bank_minimum_down_payment: Quando a condição foi gerada devido ao banco solicitar uma entrada mínima maior do que a entrada informada inicialmente(original_condition.down_payment).

2 - bank_suggested_down_payment: Quando a condição foi gerada devido ao banco sugerir uma entrada que aumentará as suas chances de aprovação E que é maior do que a entrada informada inicialmente(original_condition.down_payment).

👍

Exemplo de caso de uso:

Se você enviar 1.000 como entrada na sua condição original, e o banco retornar para nós uma sugestão de entrada no valor de 4.000, significa que a probabilidade de aprovação será maior, caso o cliente informe 4.000 ou mais como entrada.

Neste caso, nós iremos automaticamente gerar uma condição extra, com todos os campos exatamente iguais à condição original, com exceção do valor de entrada, que será ajustado para 4.000, que foi o valor sugerido para maior probabilidade de aprovação e o campo suggestion_reason será preenchido como bank_suggested_down_payment, para que você possa identificar o que motivou a geração dessa condição extra.

Exemplo de resposta da nossa API:

{
  "data": {
    //...
    "conditions": [
      {
        // CONDIÇÃO ORIGINAL
        "process_condition_payload": {"..."
        },
        "available": false,
        "installments": 48,
        "down_payment": 100000, //Valor de entrada oferecido pelo cliente.
        "bank_minimum_down_payment": 200000, //Valor mínimo exigido pelo banco para essa condição.
        "bank_down_payment_suggestion": 400000, //Valor sugerido pelo banco, para maiores chances de aprovação.
        "reason_identifier": "unsupported_down_payment_by_bank", //Identificador do motivo de indisponibilidade da condição.
        "reason": "Valor de entrada não disponível no banco para a condição.", //Mensagem do motivo de indisponibilidade da condição.
        "include_financial_protection_insurance": true,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 1,
        "pre_approval_status": 3
      },
      {
        // CONDIÇÃO GERADA AUTOMATICAMENTE PARA ENTRADA MÍNIMA EXIGIDA PELO BANCO
        "process_condition_payload": {"..."
        },
        "suggestion_reason": "bank_minimum_down_payment", //Identificador do motivo pelo qual esta condição foi gerada. 
        "original_condition_id": 1, //ID da condição original responsável pela geração da sugestão de entrada mínima.
        "available": true,
        "installments": 48,
        "down_payment": 200000, //Automaticamente ajustamos a entrada para o valor mínimo exigido pelo banco.
        "bank_minimum_down_payment": 200000, //Valor mínimo exigido pelo banco para essa condição.
        "bank_down_payment_suggestion": 400000, //Valor sugerido pelo banco, para maiores chances de aprovação.
        "include_financial_protection_insurance": true,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 3,
        "pre_approval_status": 3
      },
      {
        // CONDIÇÃO GERADA AUTOMATICAMENTE PARA ENTRADA SUGERIDA PELO BANCO(Maiores chances de aprovação)
        "process_condition_payload": {"..."
        },
        "suggestion_reason": "bank_suggested_down_payment", //Identificador do motivo pelo qual esta condição foi gerada. 
        "original_condition_id": 1, //ID da condição original responsável pela geração da sugestão de entrada mínima.
        "available": true,
        "installments": 48,
        "down_payment": 400000, //Automaticamente ajustamos a entrada para o valor sugerido pelo banco.
        "bank_minimum_down_payment": 200000, //Valor mínimo exigido pelo banco para essa condição.
        "bank_down_payment_suggestion": 400000, //Valor sugerido pelo banco, para maiores chances de aprovação.
        "include_financial_protection_insurance": true,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 3,
        "pre_approval_status": 3
      },
      {
        //OUTRO EXEMPLO DE CONDIÇÃO ORIGINAL
        "process_condition_payload": {"..."
        },
        "available": false,
        "installments": 36,
        "down_payment": 0, //Valor de entrada oferecido pelo cliente.
        "bank_minimum_down_payment": 500000, //Valor mínimo exigido pelo banco para essa condição.
        "bank_down_payment_suggestion": 1000000, //Valor sugerido pelo banco, para maiores chances de aprovação.
        "reason_identifier": "unsupported_down_payment_by_bank", //Identificador do motivo de indisponibilidade da condição.
        "reason": "Valor de entrada não disponível no banco para a condição.", //Mensagem do motivo de indisponibilidade da condição.
        "include_financial_protection_insurance": true,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 2,
        "pre_approval_status": 3
      },
      {
        // CONDIÇÃO GERADA AUTOMATICAMENTE PARA ENTRADA MÍNIMA EXIGIDA PELO BANCO
        "process_condition_payload": {"..."
        },
        "suggestion_reason": "bank_minimum_down_payment", //Identificador do motivo pelo qual esta condição foi gerada. 
        "original_condition_id": 2, //ID da condição original responsável pela geração da sugestão de entrada mínima.
        "available": true,
        "installments": 36,
        "down_payment": 500000, //Automaticamente ajustamos a entrada para o valor mínimo exigido pelo banco.
        "bank_minimum_down_payment": 500000, //Valor mínimo exigido pelo banco para essa condição.
        "bank_down_payment_suggestion": 1000000, //Valor sugerido pelo banco, para maiores chances de aprovação.
        "include_financial_protection_insurance": true,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 4,
        "pre_approval_status": 3
      },
      {
        // CONDIÇÃO GERADA AUTOMATICAMENTE PARA ENTRADA SUGERIDA PELO BANCO(Maiores chances de aprovação)
        "process_condition_payload": {"..."
        },
        "suggestion_reason": "bank_suggested_down_payment", //Identificador do motivo pelo qual esta condição foi gerada. 
        "original_condition_id": 2, //ID da condição original responsável pela geração da sugestão de entrada mínima.
        "available": true,
        "installments": 36,
        "down_payment": 1000000, //Automaticamente ajustamos a entrada para o valor sugerido pelo banco.
        "bank_minimum_down_payment": 500000, //Valor mínimo exigido pelo banco para essa condição.
        "bank_down_payment_suggestion": 1000000, //Valor sugerido pelo banco, para maiores chances de aprovação.
        "include_financial_protection_insurance": true,
        "credit_condition_return": "5",
        "error": false,
        "credit_condition_code": "EXEMPLO",
        "fixed_installments": true,
        "success": true,
        "id": 5,
        "pre_approval_status": 3
      },
    ],
    "process_bank_suggested_conditions": true,
    //...
  }
}

Quais bancos contemplam essa funcionalidade?

Os bancos contemplados com a POSSIBILIDADE de sugestão são:

BancosSugestão de Entrada MínimaSugestão de Entrada Ideal
ITAÚSimSim
SANTANDERSim (Sempre)Sim (Sempre)
BVSim (Sempre)Sim
PANSim (Sempre)Sim
SAFRASim (Sempre)Não
🚧

Atenção! Importante:

Um banco retornar SEMPRE uma entrada mínima e/ou entrada ideal, NÃO implica que o Credere SEMPRE irá gerar condições extras.

Exemplo: Imagine que a entrada oferecida por você inicialmente, é MAIOR ou IGUAL à entrada ideal e/ou entrada mínima informada pelo banco. Dessa forma, a sua condição inicial já é a melhor condição possível.

A explicação para cada caso de uso ocorrerá nos tópicos seguintes.

Quais são os possíveis comportamentos do Credere?

📘

Glossário:

Nos seguintes passos, quando mencionarmos entrada oferecida pelo cliente entende-se por original_condition.down_payment
(Entrada informada na condição original/inicial, contida no corpo da requisição realizada ao endpoint POST /simulations).

❗️

Casos em que NÃO geramos condições extras:

1 - O banco NÃO retorna uma entrada mínima e NÃO retorna sugestão de entrada.

2 - O banco NÃO retorna uma entrada mínima E retorna sugestão de entrada MENOR ou IGUAL à entrada oferecida pelo cliente

3 - O banco retorna uma entrada mínima MENOR OU IGUAL do que a entrada oferecida pelo cliente e NÃO retorna sugestão de entrada

4 - O banco retorna entrada mínima, sugestão de entrada, os dois valores são MENORES do que a entrada oferecida pelo cliente.

👍

Casos em que geramos apenas condição com a entrada IGUAL à entrada SUGERIDA pelo banco.

1 - O banco NÃO retorna uma entrada mínima e retorna sugestão de entrada MAIOR do que a entrada oferecida pelo cliente.

2 - O banco retorna uma entrada mínima MENOR OU IGUAL do que a entrada oferecida pelo cliente e retorna sugestão de entrada MAIOR que a entrada oferecida pelo cliente

3 - O banco retorna uma entrada mínima e sugestão de entrada iguais e MAIORES que a entrada oferecida pelo cliente

👍

Casos em que geramos apenas condição com a entrada IGUAL à entrada MÍNIMA.

O banco retorna uma entrada mínima MAIOR do que a entrada oferecida pelo cliente e NÃO retorna sugestão de entrada

👍

Casos em que geramos condições com a entrada IGUAL à entrada MÍNIMA e SUGERIDA.

O banco retorna entrada mínima, sugestão de entrada, os dois valores são DIFERENTES e MAIORES do que a entrada oferecida pelo cliente.

🚧

Para verificar em qual desses casos acima a sua condição foi encaixada:

Você deve olhar para os campos bank_down_payment_suggestion e bank_minimum_down_payment da condição original.

Quais bancos podem NÃO fazer uma sugestão?

❗️

ITAÚ:

O banco não retornará sugestões quando a proposta não se enquadrar em nenhuma opção de financiamento do banco.
Dessa forma, qualquer entrada informada precisará passar pela análise da Mesa, impossibilitando a sugestão de entrada mínima e ideal.

❗️

BV:

O banco não retornará sugestão de entrada ideal quando ocorrer um erro sistêmico no banco, durante o processamento da matriz de sugestões.

🚧

Atenção! Importante:

Caso o banco não retorne uma entrada mínima e/ou não retorne uma entrada ideal.
Não serão geradas condições extras para a condição original.

As condições originais serão sempre processadas, independente do banco retornar ou não sugestões de entrada, com os valores informados na chamada da simulação à nossa API.

Como está implementado no próprio frontend do Credere?

📘

Estamos com vocês!

A aplicação frontend do Credere consome a MESMA API que é disponibilizada para os parceiros.

1013

Exibimos as condições que não tiveram uma sugestão de entrada ideal, mas tiveram uma entrada mínima exigida pelo banco, acima da entrada oferecida pelo cliente.

E exibimos também, as entradas sugeridas pelo cliente, junto com a entrada mínima exigida pelo banco, destacada em vermelho.
Dessa forma, nosso lojista consegue distinguir bem a condição inicial e a sugestão do banco.

1018

Exibimos as condições com entradas ideais na categoria de Com grandes chances de aprovação e exibimos a condição original oferecida pelo cliente.
A distinção entre essas condições só é possível graças ao campo suggestion_reason.