> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/docs.facephi-pt-br/api-rest/midapi-v2/daf/iniciar-validacion.md).

# Iniciar validação

Inicia uma validação DAF enviando as `fileKeys` dos assets previamente [enviados ao armazenamento](/docs.facephi-pt-br/api-rest/midapi-v2/daf/subida-de-assets.md). A DAF responde imediatamente com um `transactionId`. O resultado é obtido por meio de [polling](/docs.facephi-pt-br/api-rest/midapi-v2/daf/consultar-estado.md).

{% hint style="info" %}
O diagnóstico final (`APROVADO` / `RECUSADO`), o motivo de rejeição (`rejectionReason`) e os sinais de verificação individuais (`diagnostics[]`) são detalhados na [resposta de resultado](/docs.facephi-pt-br/api-rest/midapi-v2/daf/respuesta-de-resultado.md), que inclui o **catálogo completo de códigos de motivo** (geral e granular).
{% endhint %}

### Endpoint

```
POST /v2/daf/validate
```

### Cabeçalhos

| Nome              | Tipo   | Obrigatório | Descrição                                                                                                                    |
| ----------------- | ------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------- |
| **Authorization** | string | **Sim**     | Token do consumer no formato `Bearer <token>` (ver [Autenticação](/docs.facephi-pt-br/api-rest/midapi-v2/autenticacion.md)). |
| **consumer-id**   | string | **Sim**     | Identificador do consumer.                                                                                                   |
| **operation-id**  | string | **Sim**     | Identificador da operação/sessão de negócio.                                                                                 |

### Corpo da solicitação

**Content-Type:** `application/json`

Cada asset é referenciado por uma chave de função fixa (`document_front`, `document_back`, `face`), junto com seu `type` de storage e seu `fileKey`:

#### Parâmetros

| Parâmetro                | Tipo   | Obrigatório | Descrição                                |
| ------------------------ | ------ | ----------- | ---------------------------------------- |
| `document_front`         | object | **Sim**     | Asset da frente do documento.            |
| `document_front.type`    | string | **Sim**     | Deve ser `TOKEN_FRONT_DOCUMENT`.         |
| `document_front.fileKey` | string | **Sim**     | `fileKey` retornada por `POST /storage`. |
| `document_back`          | object | Não         | Asset do verso do documento.             |
| `document_back.type`     | string | Não         | Deve ser `TOKEN_BACK_DOCUMENT`.          |
| `document_back.fileKey`  | string | Não         | `fileKey` retornada por `POST /storage`. |
| `face`                   | object | Não         | Asset da selfie do titular.              |
| `face.type`              | string | Não         | Deve ser `TOKEN_FACE_IMAGE`.             |
| `face.fileKey`           | string | Não         | `fileKey` retornada por `POST /storage`. |

#### Exemplo de solicitação

```json
{
  "document_front": {
    "type": "TOKEN_FRONT_DOCUMENT",
    "fileKey": "consumerX/op-123"
  },
  "document_back": {
    "type": "TOKEN_BACK_DOCUMENT",
    "fileKey": "consumerX/op-123"
  },
  "face": {
    "type": "TOKEN_FACE_IMAGE",
    "fileKey": "consumerX/op-123"
  }
}
```

### Validações de entrada

* `document_front` é obrigatório, com `type = TOKEN_FRONT_DOCUMENT` e uma `fileKey` resolúvel.
* Se forem incluídos `document_back` ou `face`, seu `type` deve coincidir exatamente com o esperado.
* `consumer-id` e `operation-id` não podem estar vazios.
* Se a solicitação for inválida (bad request), ela é rejeitada com um erro `4xx` e a transação não é criada. Outras falhas ao iniciar o processamento criam a transação com `status = ERROR`.

### Respostas

#### `202` Accepted

#### Parâmetros de resposta

| Parâmetro       | Tipo   | Descrição                                                                |
| --------------- | ------ | ------------------------------------------------------------------------ |
| `transactionId` | string | Identificador único da transação DAF.                                    |
| `status`        | string | `PROCESSED` (aceita corretamente) ou `ERROR` (não foi possível iniciar). |
| `timestamp`     | string | Marca de tempo de criação da transação no formato **ISO 8601**.          |

#### Exemplo de resposta

```json
{
  "transactionId": "1c7d...e9",
  "status": "PROCESSED",
  "timestamp": "2026-06-26T12:00:00.000Z"
}
```

#### `400` Requisição inválida

A solicitação não passa pelas validações de entrada (asset obrigatório ausente, `type` não coincidente, cabeçalho vazio). A transação não é criada.
