> ## 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.

# Inicia processo de verificação de MFA

> Inicie a verificação de MFA (autenticação multifator) informando o CPF do usuário e, opcionalmente, celular e/ou e-mail para envio do código.

Use `POST /onboarding/api/v1/steps/mfa` para iniciar o processo de verificação de MFA (autenticação multifator). A requisição espera receber o CPF do usuário e, opcionalmente, celular e/ou e-mail para envio do código. Além dessas informações é possível configurar a URL de redirecionamento e os dados do webhook para entrega do resultado.

A API irá iniciar um novo processo de verificação de MFA e retornar o identificador do processo criado, a URL para acompanhar o processo e a data de criação.

## Request Body

<ParamField body="cpf" type="string" required>
  CPF do indivíduo.

  **Exemplo**: `12345678900`
</ParamField>

<ParamField body="appRedirect" type="string" required>
  Caminho de redirecionamento do aplicativo após a conclusão.

  **Exemplo**: `/onboarding/redirect`
</ParamField>

<ParamField body="cellphone" type="string">
  Celular do usuário (10 ou 11 dígitos) para envio do código MFA.

  **Exemplo**: `11991234567`
</ParamField>

<ParamField body="email" type="string">
  E-mail do usuário para envio do código MFA.

  **Exemplo**: `test@test.com`
</ParamField>

<ParamField body="webhookUrl" type="string">
  URL para notificação de webhook com o resultado final.

  **Exemplo**: `https://seusistema.com/webhook`
</ParamField>

<ParamField body="webhookBasicAuth" type="string">
  Credenciais Basic Auth (`usuario:senha`) para autenticação do webhook.

  **Exemplo**: `usuario:senha`
</ParamField>

## Response

Retorna o identificador do processo criado, a URL de acompanhamento e a data de criação.

### Exemplo de sucesso (`200 OK`)

```json theme={"theme":"catppuccin-latte"}
{
  "requestProcessUrl": "https://service.onboarding.comz/steps/resource/mfa/{{requestId}}",
  "requestId": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
  "createdAt": "2023-01-01T12:00:00"
}
```

<ResponseField name="requestProcessUrl" type="string" required>
  URL para a próxima etapa ou visualização do recurso.
</ResponseField>

<ResponseField name="requestId" type="string" required>
  ID único da requisição iniciada.
</ResponseField>

<ResponseField name="createdAt" type="string" required>
  Data e hora de criação da requisição.
</ResponseField>

## Respostas de Erro

A API pode retornar os status `400` (Bad request), `422` (Validation or semantic error) e `500` (Internal server error), seguindo o modelo padrão de erro da aplicação.

<ResponseField name="code" type="string" required>
  Código do erro que categoriza o tipo de erro.

  **Exemplo**: `VALIDATION_ERROR`
</ResponseField>

<ResponseField name="message" type="string" required>
  Mensagem de erro.

  **Exemplo**: `The request is invalid`
</ResponseField>

<ResponseField name="details" type="object[]">
  Lista contendo ou não um erro detalhado.

  * `field` (`string`): caminho do campo incorreto ou inválido. **Exemplo**: `name`
  * `message` (`string`): mensagem de erro do campo. **Exemplo**: `The field cannot be blank`
</ResponseField>
