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

# Confirmar código de verificação MFA

> Valida o código de 6 dígitos enviado via e-mail ou SMS.

Valida o código de 6 dígitos que o signatário recebeu por e-mail ou SMS. Após confirmação bem-sucedida, o signatário está autorizado a assinar.

**Autenticação**: use apenas o `sessionToken` na URL — nenhum header de autenticação é necessário.

## Parâmetros

<ParamField path="sessionToken" type="string" required>
  Token único da sessão do signatário.
</ParamField>

<ParamField body="code" type="string" required>
  Código de 6 dígitos recebido pelo signatário. Deve ser exatamente 6 caracteres numéricos.
</ParamField>

## Respostas

<ResponseField name="verified" type="boolean">
  Confirmação de sucesso (`true`).
</ResponseField>

## Erros

Veja [Autenticação e erros](/plataforma/assinatura-digital/api/erros-e-autenticacao).

* **400**: Código inválido, incompleto (não tem 6 dígitos) ou formato incorreto.
* **404**: Sessão ou código não encontrado.
* **410**: Session token expirado, ou código expirou (válido por 10 minutos).
* **409**: Cinco tentativas de código incorreto esgotadas — solicite um novo código com [`POST .../verification`](/plataforma/assinatura-digital/api/post-sign-session-verification).

<ResponseExample>
  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "verified": true
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 400 Bad Request
  Content-Type: application/json

  {
    "statusCode": 400,
    "message": "Invalid code"
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 410 Gone
  Content-Type: application/json

  {
    "statusCode": 410,
    "message": "Code expired"
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 409 Conflict
  Content-Type: application/json

  {
    "statusCode": 409,
    "message": "Too many invalid attempts"
  }
  ```
</ResponseExample>

## Exemplo

```bash theme={"theme":"catppuccin-latte"}
curl -X POST "https://api.valid.com/signer/v1/sign/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.../verification/confirm" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "123456"
  }'
```

## Importante

* **6 dígitos**: o código sempre tem exatamente 6 números.
* **Tentativas**: máximo 5 tentativas com código incorreto. Na 6ª tentativa errada, a sessão de código é invalidada — solicite um novo código.
* **Validade**: o código expira em 10 minutos. Se expirou, peça um novo em [`POST .../verification`](/plataforma/assinatura-digital/api/post-sign-session-verification).
* **Case-insensitive**: espaços no início/fim são ignorados; apenas os dígitos importam.

## Próximas etapas

Se confirmado com sucesso:

1. O signatário pode agora assinar com [`POST /signer/v1/sign/:sessionToken/sign`](/plataforma/assinatura-digital/api/post-sign).
2. O status de MFA no bloco `requirements` (de [`GET /signer/v1/sign/:sessionToken`](/plataforma/assinatura-digital/api/get-sign-session)) muda para `verified: true`.

## Relacionado

* [`POST .../verification`](/plataforma/assinatura-digital/api/post-sign-session-verification) — enviar código de novo
* [`GET /signer/v1/sign/:sessionToken`](/plataforma/assinatura-digital/api/get-sign-session) — verificar estado da sessão (inclui `requirements`)
* [`POST /signer/v1/sign/:sessionToken/sign`](/plataforma/assinatura-digital/api/post-sign) — assinar após confirmado


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.