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

# Inicio rápido

> Verifica correos, teléfonos y consulta CPF con la API v1 — síncrono (hasta 10) o batch asíncrono.

<Tip>
  De **registro limpio a la primera verificación** en pocos pasos. El correo usa **`validations:email`**; el teléfono usa **`validations:phone`**; CPF usa **`validations:cpf`**. El cobro sigue el modo o SKU — [Modos y cobro](/es/validations-api/como-funciona/modos-e-cobranca).
</Tip>

## En resumen

* **Correo** — comprueba si la dirección existe antes de enviar campaña o transaccional.
* **Teléfono** — comprueba formato y, en modo completo, si **tiene WhatsApp**.
* **CPF** — modo **rápido** (formato) o **completo** (base oficial del gobierno vía asociación).
* **Hasta 10** en la API síncrona o panel; **lotes grandes** vía batch asíncrono.

## Antes de empezar

| Item               | Correo                                            | Teléfono            | CPF               |
| ------------------ | ------------------------------------------------- | ------------------- | ----------------- |
| Ámbito en la clave | `validations:email`                               | `validations:phone` | `validations:cpf` |
| Créditos o PAYG    | Sí                                                | Sí                  | Sí                |
| Autenticación      | `Authorization: Bearer sk_live_...` o `x-api-key` | Igual               | Igual             |

URL base: `https://api.notifique.dev`.

***

## Correo — verificación inmediata (hasta 10)

Mandas la lista y recibes el resultado en la misma respuesta — ideal en el registro o antes de importar una hoja pequeña.

```http theme={null}
POST /v1/validations/email
Content-Type: application/json
Authorization: Bearer sk_live_xxxxx
```

**Modo rápida** — formato, dominio desechable y MX (más barato):

```json theme={null}
{
  "emails": ["cliente@example.com", "bounce@dominio-invalido.xyz"],
  "mode": "quick"
}
```

**Modo completa** — incluye verificación de bandeja (más profunda):

```json theme={null}
{
  "emails": ["cliente@example.com"],
  "mode": "full"
}
```

Respuesta **200**:

```json theme={null}
{
  "success": true,
  "data": {
    "mode": "quick",
    "total_credits_charged": 1,
    "results": [
      {
        "email": "cliente@example.com",
        "status": "valid",
        "reason": null,
        "disposable": false,
        "mx_found": true,
        "catch_all": false,
        "suggested_spelling": null,
        "credits_charged": 1
      },
      {
        "email": "bounce@dominio-invalido.xyz",
        "status": "invalid",
        "reason": "MX record not found",
        "disposable": false,
        "mx_found": false,
        "catch_all": null,
        "suggested_spelling": null,
        "credits_charged": 0
      }
    ]
  }
}
```

### Correo — lote grande (hasta 10.000)

Para listas grandes, el procesamiento corre en segundo plano — consultas el progreso después.

```http theme={null}
POST /v1/validations/email/batch
```

```json theme={null}
{
  "emails": ["a@example.com", "b@example.com"],
  "mode": "full"
}
```

Respuesta **200** (job en cola):

```json theme={null}
{
  "success": true,
  "data": {
    "job_id": "job_email_abc123",
    "status": "queued",
    "total": 2,
    "mode": "full"
  }
}
```

Consulta el progreso:

```http theme={null}
GET /v1/validations/email/batch/{jobId}
```

***

## Teléfono — verificación inmediata (hasta 10)

Misma idea: mandas hasta 10 números y recibes el resultado en la respuesta.

```http theme={null}
POST /v1/validations/phone
Content-Type: application/json
Authorization: Bearer sk_live_xxxxx
```

**Modo rápida** — formato internacional y tipo de línea:

```json theme={null}
{
  "phones": ["+5511999999999", "+14155552671"],
  "mode": "quick"
}
```

**Modo completa** — incluye verificación de WhatsApp:

```json theme={null}
{
  "phones": ["+5511999999999"],
  "mode": "full"
}
```

Respuesta **200**:

```json theme={null}
{
  "success": true,
  "data": {
    "mode": "full",
    "total_credits_charged": 5,
    "results": [
      {
        "phone": "+5511999999999",
        "status": "valid",
        "phone_valid": true,
        "line_type": "mobile",
        "country_code": "BR",
        "whatsapp_registered": true,
        "reason": null,
        "credits_charged": 5
      }
    ]
  }
}
```

En modo `quick`, `whatsapp_registered` viene `null` (WhatsApp no se verifica).

### Teléfono — lote grande (500 a 10.000)

```http theme={null}
POST /v1/validations/phone/batch
```

```json theme={null}
{
  "phones": ["+5511999999999", "+5511888888888"],
  "mode": "full"
}
```

<Warning>
  El batch de teléfono exige **mínimo 500** números por job. Para listas menores, usa el panel o la ruta síncrona.
</Warning>

Estado del job:

```http theme={null}
GET /v1/validations/phone/batch/{jobId}
```

***

## CPF — consulta inmediata (hasta 10)

Envía pares **CPF + fecha de nacimiento** y recibe el resultado en la misma respuesta.

```http theme={null}
POST /v1/validations/cpf
Content-Type: application/json
Authorization: Bearer sk_live_xxxxx
```

Authorization: Bearer sk\_live\_xxxxx

````

**Modo rápido** — valida dígitos del CPF y formato de la fecha (más barato):

```json
{
  "items": [
    { "cpf": "12345678909", "birthDate": "1990-01-01" }
  ],
  "mode": "quick"
}
````

Respuesta **200** (válido localmente):

```json theme={null}
{
  "success": true,
  "data": {
    "mode": "quick",
    "totalCreditsCharged": 1,
    "results": [
      {
        "cpf": "12345678909",
        "birthDate": "1990-01-01",
        "status": "valid",
        "resultCode": 8,
        "reason": null,
        "name": null,
        "socialName": null,
        "registrationStatus": null,
        "registeredBirthDate": null,
        "deceasedIndicator": null,
        "creditsCharged": 1
      }
    ]
  }
}
```

**Modo completo** — consulta en la base oficial del gobierno (vía alianza). Envía **varios pares en la misma solicitud** — cada ítem devuelve su propio `status`:

```json theme={null}
{
  "items": [
    { "cpf": "12345678909", "birthDate": "1990-01-01" },
    { "cpf": "11144477735", "birthDate": "2015-06-10" }
  ],
  "mode": "full"
}
```

Respuesta **200** (adulto **encontrado** + menor **bloqueado** en la misma respuesta):

```json theme={null}
{
  "success": true,
  "data": {
    "mode": "full",
    "totalCreditsCharged": 1800,
    "results": [
      {
        "cpf": "12345678909",
        "birthDate": "1990-01-01",
        "status": "found",
        "resultCode": 1,
        "reason": null,
        "name": "Maria da Silva",
        "socialName": null,
        "registrationStatus": { "code": "0", "description": "Regular" },
        "registeredBirthDate": "1990-01-01",
        "deceasedIndicator": null,
        "creditsCharged": 900
      },
      {
        "cpf": "11144477735",
        "birthDate": "2015-06-10",
        "status": "minorBlocked",
        "resultCode": 3,
        "reason": "Query blocked for minor data protected by LGPD.",
        "name": null,
        "socialName": null,
        "registrationStatus": null,
        "registeredBirthDate": null,
        "deceasedIndicator": null,
        "creditsCharged": 900
      }
    ]
  }
}
```

<Note>
  Otros estados posibles en el mismo array: `notFound`, `invalid` (sin cobro). Ver [Consulta de CPF](/es/validations-api/como-funciona/introducao-cpf).
</Note>

Ejemplo aislado — **no encontrado** (aún cobra la consulta en modo completo):

```json theme={null}
{
  "success": true,
  "data": {
    "mode": "full",
    "totalCreditsCharged": 900,
    "results": [
      {
        "cpf": "98765432100",
        "birthDate": "1985-03-15",
        "status": "notFound",
        "resultCode": 2,
        "reason": "CPF not found.",
        "name": null,
        "socialName": null,
        "registrationStatus": null,
        "registeredBirthDate": null,
        "deceasedIndicator": null,
        "creditsCharged": 900
      }
    ]
  }
}
```

### CPF — lote grande (hasta 10.000)

```http theme={null}
POST /v1/validations/cpf/batch
```

```json theme={null}
{
  "items": [
    { "cpf": "12345678909", "birthDate": "1990-01-01" },
    { "cpf": "98765432100", "birthDate": "1985-03-15" }
  ]
}
```

Respuesta **200** (job en cola):

```json theme={null}
{
  "success": true,
  "data": {
    "jobId": "job_cpf_abc123",
    "status": "queued",
    "total": 2
  }
}
```

Consulta el progreso:

```http theme={null}
GET /v1/validations/cpf/batch/{jobId}
```

<Info>
  A diferencia del batch de teléfono, **no hay mínimo de 500** — cualquier lote de 1 a 10.000 ítems es aceptado.
</Info>

***

## Panel (sin código)

| Add-on   | Ruta en el panel                     | Límite              |
| -------- | ------------------------------------ | ------------------- |
| Correo   | **Add-ons → Validación de correo**   | 10 por verificación |
| Teléfono | **Add-ons → Validación de teléfono** | 10 por verificación |
| CPF      | **Add-ons → Consulta de CPF**        | 10 por verificación |

Pega la lista, elige **Rápida** o **Completa** y mira los resultados a la derecha.

***

## Próximos pasos

* [Validación de correo](/es/validations-api/como-funciona/introducao)
* [Validación de teléfono](/es/validations-api/como-funciona/introducao-telefone)
* [Consulta de CPF](/es/validations-api/como-funciona/introducao-cpf)
* [Modos y cobro](/es/validations-api/como-funciona/modos-e-cobranca)
* [Ámbitos de la API Key](/es/validations-api/como-funciona/escopos-da-api-key)
