Validação Cadastral Async

Essa página detalhe o fluxo de execução da análise cadastral de forma assíncrona

Esta funcionalidade permite realizar a etapa de validação cadastral que hoje é feita de forma síncrona através deste endpoint de forma assíncrona o que nos possibilita um ganho de maior resiliência e controle sobre as validações.

O endpoint responsável por esta funcionalidade pode ser encontrado aqui. Ao submeter os dados da proposta para a validação cadastral assíncrona a resposta será um HTTP status 202 (ACCEPTED) com o corpo da resposta vazio, apenas confirmando que a API de Financiamento recebeu a solicitação e depois disso será necessário uma consulta a endpoint de status para saber quando a validação foi concluída.

Verificando o status da validação cadastral e seus respectivos steps

Após a submissão dos dados para o endpoint de edição, será necessário fazer polling no endpoint de status da proposta para saber se o processo de edição terminou, e qual o seu resultado. Você deve procurar pelo campo steps na resposta deste endpoint.

{     
    "status": "ONGOING",     
    "steps": [
        ...,
        {
            "type": "PERSONAL_DATA_VALIDATION",
            "status": "WAITING_FOR_ANALYSIS"
        }
    ] 
}

O processo de validação cadastral possui quatro steps principais que indicam em qual etapa a validação se encontra.

  • PERSONAL_DATA_VALIDATION::WAITING_FOR_ANALYSIS: Este step indica que aceitamos a requisição para realizar a validação e a mesma se encontra na fila de processamento
    {
        "type": "PERSONAL_DATA_VALIDATION",
        "status": "WAITING_FOR_ANALYSIS",
        "when": "DATA_DE_CRIACAO_DO_STEP"
    }
    
  • PERSONAL_DATA_VALIDATION::APPROVED: Este step indica que a proposta foi aprovada nesta etapa e pode seguir para próxima de acordo com o fluxo implementado.
    {
        "type": "PERSONAL_DATA_VALIDATION",
        "status": "APPROVED",
        "when": "DATA_DE_CRIACAO_DO_STEP"
    }
    
  • PERSONAL_DATA_VALIDATION::REJECTED: Este step indica que a proposta foi rejeitada nesta etapa e portanto não pode seguir.
    {
        "type": "PERSONAL_DATA_VALIDATION",
        "status": "REJECTED",
        "when": "DATA_DE_CRIACAO_DO_STEP"
    }
    
  • PERSONAL_DATA_VALIDATION::ERROR: Este step indica que ocorreu um erro inesperado durante o processo de validação e permite o reenvio da proposta para análise
    {
        "type": "PERSONAL_DATA_VALIDATION",
        "status": "REJECTED",
        "when": "DATA_DE_CRIACAO_DO_STEP"
    }
    

Para ilustração do funcionamento do novo recurso, o diagrama de sequencia abaixo foi desenhado para exemplificar a integração:

943

Fluxo de revisão de análise

Como os dados cadastrais são relativamente fáceis de conter erros de digitação (principalmente para usuários menos proficientes com tecnologia), em casos onde identificamos que o erro de digitação pode ter acontecido, o sistema pode abrir um novo fluxo para que o cliente revise os dados cadastrados e refaça a análise. Para isso, de forma complementar ao estados já mencionados, existe um quinto estado:

  • PERSONAL_DATA_VALIDATION::INVALID_PERSONAL_DATA: Este step indica que a análise finalizou com sucesso e identificamos uma oportunidade para o cliente corrigir dados.
    {
        "type": "PERSONAL_DATA_VALIDATION",
        "status": "INVALID_PERSONAL_DATA",
        "when": "DATA_DE_CRIACAO_DO_STEP"
    }
    

Esse novo estado poderá ser interceptado utilizando a mesma estratégia de polling comentada anteriormente, e quando a proposta estiver nele, será possível submeter a proposta para análise novamente. O diagrama de sequencia abaixo ilustra esse novo fluxo:

1163

Por quê utilizar a validação de forma assíncrona?

Hoje a etapa de validação cadastral depende de diversos aplicações internas da Creditas que realizam varias análises com os dados informados para garantir a segurança de todos os envolvidos no financiamento. Com isso, se qualquer uma das aplicações envolvidas no processo falhas ou até mesmo demorar um pouco mais para realizar alguma análise isso refletira na nossa API em forma de erro. Com a validação assíncrona nos recebemos os dados para realizar a validação e podemos ter o controle de realizar re-tentativas independente de eventual lentidão ou indisponibilidade de algumas das aplicações envolvidas no processo.