# Vérifier des numéros

> Index de la documentation : https://wahasend.com/docs/fr/llms.txt · Tout en un fichier : https://wahasend.com/docs/fr.md · URL de base de l'API : https://app.wahasend.com/api/v1

Sachez quels numéros sont sur WhatsApp avant d'écrire. Inclus dans **Notify**, **Developer** et **Connect** (fonction `batch`). Rien n'est envoyé.

<a id="alert-validate"></a>

### Vérifier jusqu'à 500 numéros

`POST /api/v1/alert/validate`

Renvoie les numéros présents sur WhatsApp et les autres, en chiffres. Les identifiants `@lid` comptent comme valides.

- Débloqué par: Notify, Developer, Connect (`batch`)
- Clé de numéro : oui

> Quand **aucun** numéro n'est sur WhatsApp, la réponse est une erreur 400 `NO_VALID_NUMBERS` avec `details.invalidNumbers`, pas une liste `valid` vide.

**Corps de la requête**

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `phones` | string[] | oui | 1 à 500 numéros ou identifiants `@lid`. |
| `containerId` | uuid | non | Lequel de vos numéros WhatsApp utiliser ; il l'emporte toujours. Par défaut : votre numéro par défaut (sinon un numéro connecté), ou un numéro du groupe quand [plusieurs numéros](https://wahasend.com/docs/fr/phone-numbers.md#several-numbers) est activé. Ignoré avec une clé de numéro, qui utilise toujours son numéro. |

**Exemple**

curl:

```bash
curl -X POST https://app.wahasend.com/api/v1/alert/validate \
  -H "X-API-Key: $WAHASEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "phones": [
    "+22212345678",
    "+22287654321"
  ]
}'
```

JavaScript:

```js
const res = await fetch('https://app.wahasend.com/api/v1/alert/validate', {
  method: 'POST',
  headers: { 'X-API-Key': process.env.WAHASEND_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "phones": [
      "+22212345678",
      "+22287654321"
    ]
  }),
});
const data = await res.json();
```

Python:

```python
import os
import requests

r = requests.post(
    "https://app.wahasend.com/api/v1/alert/validate",
    headers={"X-API-Key": os.environ["WAHASEND_API_KEY"]},
    json={
        "phones": [
            "+22212345678",
            "+22287654321",
        ],
    },
)
print(r.json())
```

**Réponse 200**

```json
{
  "success": true,
  "valid": [
    "22212345678"
  ],
  "invalid": [
    "22287654321"
  ],
  "total": 2
}
```

**Erreurs possibles**

- [`VALIDATION_ERROR`](https://wahasend.com/docs/fr/errors.md#validation_error) (400): Validation failed. Check the details for specific field errors.
- [`NO_VALID_NUMBERS`](https://wahasend.com/docs/fr/errors.md#no_valid_numbers) (400): None of these numbers are on WhatsApp.
- [`NUMBER_VALIDATION_UNAVAILABLE`](https://wahasend.com/docs/fr/errors.md#number_validation_unavailable) (503): Numbers cannot be checked right now. Try again shortly.
- [`NO_SESSION_CONFIGURED`](https://wahasend.com/docs/fr/errors.md#no_session_configured) (400): This account has no connected WhatsApp number.

<a id="recipients-validate"></a>

### Vérifier une longue liste (jusqu'à 10 000)

`POST /api/v1/recipients/validate`

Pour les listes de contacts : enlève les doublons, vérifie le format, puis interroge WhatsApp cinq numéros à la fois. Plus lent ; à utiliser avant une campagne.

- Débloqué par: Notify, Developer, Connect (`batch`)
- Clé de numéro : oui

> Un numéro que WhatsApp n'a pas pu vérifier est listé valide avec un `chatId` vide.

**Corps de la requête**

| Champ | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `phones` | string[] | oui | 1 à 10 000 numéros. Espaces, tirets et parenthèses sont retirés. |
| `containerId` | uuid | non | Lequel de vos numéros WhatsApp utiliser ; il l'emporte toujours. Par défaut : votre numéro par défaut (sinon un numéro connecté), ou un numéro du groupe quand [plusieurs numéros](https://wahasend.com/docs/fr/phone-numbers.md#several-numbers) est activé. Ignoré avec une clé de numéro, qui utilise toujours son numéro. |

**Exemple**

curl:

```bash
curl -X POST https://app.wahasend.com/api/v1/recipients/validate \
  -H "X-API-Key: $WAHASEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "phones": [
    "+222 12 34 56 78",
    "+22287654321",
    "12"
  ]
}'
```

JavaScript:

```js
const res = await fetch('https://app.wahasend.com/api/v1/recipients/validate', {
  method: 'POST',
  headers: { 'X-API-Key': process.env.WAHASEND_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    "phones": [
      "+222 12 34 56 78",
      "+22287654321",
      "12"
    ]
  }),
});
const data = await res.json();
```

Python:

```python
import os
import requests

r = requests.post(
    "https://app.wahasend.com/api/v1/recipients/validate",
    headers={"X-API-Key": os.environ["WAHASEND_API_KEY"]},
    json={
        "phones": [
            "+222 12 34 56 78",
            "+22287654321",
            "12",
        ],
    },
)
print(r.json())
```

**Réponse 200**

```json
{
  "success": true,
  "total": 3,
  "valid": 1,
  "invalid": 2,
  "validNumbers": [
    {
      "phone": "+22212345678",
      "chatId": "22212345678@c.us"
    }
  ],
  "invalidNumbers": [
    {
      "phone": "12",
      "reason": "Invalid format",
      "code": "invalid_format"
    },
    {
      "phone": "+22287654321",
      "reason": "Not on WhatsApp",
      "code": "not_on_whatsapp"
    }
  ]
}
```

**Erreurs possibles**

- [`VALIDATION_ERROR`](https://wahasend.com/docs/fr/errors.md#validation_error) (400): Validation failed. Check the details for specific field errors.
- [`NO_SESSION_CONFIGURED`](https://wahasend.com/docs/fr/errors.md#no_session_configured) (400): This account has no connected WhatsApp number.
