> ## Documentation Index
> Fetch the complete documentation index at: https://docs-platform.services-valid.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Retornos via API ou webhook

O fluxo de validação de identidade é composto por etapas independentes que podem ser habilitadas ou desabilitadas conforme a configuração da plataforma. O resultado final da transação é determinado pela consolidação dos resultados obtidos em cada etapa executada.

# Recebimento dos Dados da Solicitação

### Step: `requestData`

Contém os dados enviados para iniciar o processo de validação.

### Retorno via API ou webhook

| Campo       | Tipo   | Descrição                                             |
| :---------- | :----- | :---------------------------------------------------- |
| appRedirect | string | URL de redirecionamento após a conclusão do processo. |
| webhookUrl  | string | URL para recebimento dos eventos do fluxo.            |
| cellphone   | string | Telefone informado pelo usuário.                      |
| email       | string | E-mail informado pelo usuário.                        |
| cpf         | string | Documento utilizado para identificação do titular     |

***

# 2. Validação MFA (Multi-Factor Authentication)

### Step: `mfaResponse`

Responsável pela autenticação do usuário por meio de SMS, e-mail ou outro canal configurado.

### Dados do Usuário

| Campo     | Tipo   | Descrição                  |
| :-------- | :----- | :------------------------- |
| name      | string | Nome identificado.         |
| cellphone | string | Telefone validado.         |
| email     | string | E-mail validado.           |
| status    | string | Resultado da autenticação. |

### Substep: `validation`

Representa o envio do token OTP.

#### Retorno

| Campo          | Tipo     | Descrição                           |
| :------------- | :------- | :---------------------------------- |
| token          | string   | Código OTP gerado.                  |
| channel        | string   | Canal utilizado (sms, email, etc.). |
| tokenCreatedAt | datetime | Data e hora da geração do token.    |
| sendStatus     | string   | Status do envio.                    |
| sentAt         | datetime | Data e hora do envio.               |

### Substep: `authenticated`

Resultado da validação do token OTP.

#### Retorno

| Campo   | Tipo    | Descrição                  |
| :------ | :------ | :------------------------- |
| channel | string  | Canal utilizado.           |
| result  | boolean | Resultado da autenticação. |

***

# 3. Validação de Prova de Vida (Liveness)

### Step: `livenessResponse`

Executa a validação biométrica por meio da captura de uma selfie.

### Retorno

| Campo          | Tipo          | Descrição                                           |
| :------------- | :------------ | :-------------------------------------------------- |
| selfieImage    | string/base64 | Imagem capturada.                                   |
| processingTime | number        | Tempo de processamento em milissegundos.            |
| sessionId      | string        | Identificador da sessão.                            |
| captureId      | string        | Identificador da captura.                           |
| verified       | boolean       | Resultado da prova de vida.                         |
| faceDb         | object        | Resultado da consulta facial em base de referência. |
| status         | string        | Status da validação.                                |
| name           | string        | Nome associado à biometria.                         |

### `faceDb`

Consulta da biometria em bases de comparação.

#### Retorno

| Campo  | Tipo    | Descrição                                        |
| :----- | :------ | :----------------------------------------------- |
| match  | boolean | Indica se foi encontrada correspondência facial. |
| score  | number  | Grau de similaridade encontrado.                 |
| status | string  | Resultado da consulta.                           |

> Os campos retornados podem variar conforme a configuração da integração realizada na plataforma.

***

# 4. Upload dos Documentos

### Step: `uploadResponse`

Responsável pelo armazenamento e processamento dos documentos enviados.

### Retorno

| Campo  | Tipo   | Descrição                      |
| :----- | :----- | :----------------------------- |
| files  | array  | Lista de arquivos processados. |
| status | string | Resultado do upload.           |
| name   | string | Nome associado aos documentos. |

### Substep: `files`

Retorno individual para cada documento enviado.

#### Retorno

| Campo    | Tipo   | Descrição                          |
| :------- | :----- | :--------------------------------- |
| fileName | string | Nome do arquivo.                   |
| fileType | string | Tipo do documento.                 |
| url      | string | Localização do arquivo armazenado. |
| status   | string | Resultado do processamento.        |

***

# 5. Validação Biométrica (ID Check)

### Step: `idCheckResponse`

Responsável pela validação biométrica do titular por meio da comparação dos dados cadastrais informados com bases de validação de identidade.

### Retorno

| Campo           | Tipo          | Descrição                          |
| :-------------- | :------------ | :--------------------------------- |
| requestId       | string (UUID) | Identificador único da requisição. |
| cpf             | string        | CPF validado.                      |
| status          | string        | Resultado da validação biométrica. |
| confidenceLevel | string        | Nível de confiança da validação.   |

### Possíveis Níveis de Confiança

| Valor  | Descrição                                      |
| :----- | :--------------------------------------------- |
| HIGH   | Alta confiança na correspondência biométrica.  |
| MEDIUM | Confiança moderada.                            |
| LOW    | Baixa confiança na correspondência biométrica. |

# 6. Análise Documento ID

### Step: `fraudResponse`

Executa validações documentais e análises antifraude.

### Retorno

| Campo          | Tipo    | Descrição                                |
| :------------- | :------ | :--------------------------------------- |
| name           | string  | Nome identificado na Receita Federal.    |
| status         | string  | Resultado da análise.                    |
| score          | number  | Score de confiança.                      |
| hardStop       | boolean | Indica bloqueio automático da transação. |
| docType        | string  | Tipo documental identificado.            |
| docFamily      | string  | Família ou categoria do documento.       |
| penalties      | array   | Penalidades aplicadas durante a análise. |
| faceMatch      | object  | Comparação entre selfie e documento.     |
| faceDb         | object  | Consulta facial em base externa.         |
| ocr            | object  | Resultado da leitura documental.         |
| processingMode | string  | Modo de processamento utilizado.         |
| message        | string  | Mensagem explicativa do resultado.       |

### Substep: `faceMatch`

Compara a selfie enviada com a fotografia extraída do documento.

> Disponível apenas quando o serviço estiver habilitado na plataforma.

#### Retorno

| Campo  | Tipo    | Descrição                        |
| :----- | :------ | :------------------------------- |
| match  | boolean | Resultado da comparação facial.  |
| score  | number  | Grau de similaridade encontrado. |
| status | string  | Resultado da análise.            |

### Substep: `ocr`

Extração automática dos dados do documento.

#### Exemplo de Retorno

| Campo          | Tipo   | Descrição                     |
| :------------- | :----- | :---------------------------- |
| name           | string | Nome extraído.                |
| cpf            | string | CPF extraído.                 |
| birthDate      | date   | Data de nascimento.           |
| documentNumber | string | Número do documento.          |
| issueDate      | date   | Data de emissão.              |
| rawText        | string | Texto bruto extraído via OCR. |

> Os campos retornados podem variar de acordo com o tipo documental processado.

***

# 7. Resultado Consolidado

### Step: `finalResponse`

Representa o resultado consolidado da transação após a execução de todas as etapas configuradas no fluxo.

A aprovação ou reprovação da transação é determinada pela combinação dos resultados obtidos em cada etapa executada. Caso uma etapa crítica retorne reprovação, a transação será automaticamente reprovada.

### Retorno

| Campo     | Tipo     | Descrição                           |
| :-------- | :------- | :---------------------------------- |
| status    | string   | Resultado consolidado da transação. |
| name      | string   | Nome validado.                      |
| createdAt | datetime | Data e hora de execução.            |

# Status da Transação

O status da transação representa o estado consolidado de todo o fluxo de validação.

O badge exibido na interface segue a mesma lógica utilizada na tela de listagem. O ícone de relógio deve ser utilizado para representar estados que dependem de ação do usuário ou processamento em andamento.

| Status     | Descrição                                                                                                                       |
| :--------- | :------------------------------------------------------------------------------------------------------------------------------ |
| INICIATED  | A transação foi criada e está em andamento. Alguns steps podem já ter sido executados, enquanto outros ainda aguardam execução. |
| PROCESSING | A transação está sendo processada pelos serviços da plataforma.                                                                 |
| PENDING    | A transação encontra-se em análise ou aguardando uma ação externa para prosseguir.                                              |
| APPROVED   | Todas as etapas obrigatórias foram concluídas com sucesso.                                                                      |
| REJECTED   | Pelo menos uma etapa crítica foi reprovada.                                                                                     |
| ERROR      | Ocorreu uma falha técnica durante a execução de algum step, impedindo a conclusão normal do fluxo.                              |
| CANCELED   | A transação foi encerrada antes da conclusão do processo.                                                                       |

### Regras de Consolidação

A transação será considerada:

* **APPROVED** quando todas as etapas obrigatórias forem aprovadas.
* **REJECTED** quando qualquer etapa crítica retornar reprovação.
* **ERROR** quando ocorrer uma falha técnica que impeça a continuidade do fluxo.
* **CANCELED** quando houver interrupção voluntária ou administrativa da transação.
* **PROCESSING** enquanto houver etapas em execução.
* **PENDING** quando houver dependência de ação externa ou análise complementar.
