> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Validar CSV

> Pré-checagem: validar cabeçalhos do CSV contra mapeamento salvo — pela API de importação em lote da gu1 para alto volume, com exemplos para validate csv.

## Endpoint

```
POST https://api.gu1.ai/batch-import/validate-csv
```

## Visão geral

**Content-Type:** `multipart/form-data`.

**Resposta:** JSON com `ok`. HTTP **200** mesmo em falha — verificar **`ok`**.

Para mapeamentos com **`target === user_event`**, a API também valida **cada linha de dados** após cabeçalhos OK (mapeamento, enums, identificadores obrigatórios). Outros targets continuam validando só cabeçalhos.

## Autenticação

```bash theme={null}
Authorization: Bearer SUA_API_KEY
```

## Campos do formulário

| Campo       | Obrigatório | Descrição |
| ----------- | ----------- | --------- |
| `file`      | Sim         | CSV       |
| `mappingId` | Sim         | UUID      |

## Sucesso — só cabeçalhos (transaction, entity\_\*)

```json theme={null}
{
  "ok": true,
  "target": "transaction"
}
```

## Sucesso — eventos de usuário (todas as linhas válidas)

```json theme={null}
{
  "ok": true,
  "target": "user_event",
  "validRowCount": 42,
  "invalidRowCount": 0
}
```

## Falha de linhas — eventos de usuário

Quando uma ou mais linhas falham validação de mapeamento:

```json theme={null}
{
  "ok": false,
  "code": "ROW_VALIDATION",
  "message": "Some rows failed mapping validation",
  "validRowCount": 40,
  "invalidRowCount": 2,
  "rowErrors": [
    {
      "code": "UNMAPPED_EVENT_TYPE",
      "row": 5,
      "field": "eventType",
      "value": "CIERRE_SESION_INACTIVIDAD"
    }
  ]
}
```

Use este preflight antes do import. Com **`batchErrorHandling: continue_collect_errors`** em [Importar eventos](/pt/api-reference/bulk-imports/import-user-events), linhas inválidas são ignoradas e registradas no CSV de falhas do job; com **`rollback_all`**, o import retorna **`400`**.

Ver também: [Importações em lote](/pt/api-reference/bulk-imports/overview).
