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

# Sessions WhatsApp

> Créez, gérez et connectez vos sessions WhatsApp via l'API.

Une **session** représente une connexion WhatsApp liée à un numéro de téléphone. Chaque session dispose d'un `sessionId` (UUID) utilisé dans toutes les requêtes.

***

## Lister

`GET /v1/sessions`

Liste toutes les sessions du compte.

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
[
  {
    "id": "uuid-session-12",
    "sessionName": "Support Team Session",
    "status": "CONNECTED",
    "qrCode": null,
    "phone": "22997000000@s.whatsapp.net",
    "lastError": null,
    "lastSeen": "2026-03-26T15:20:26.000Z"
  }
]
```

***

## Créer

`POST /v1/sessions`

Crée une nouvelle session WhatsApp.

<ParamField body="name" type="string" required>
  Nom de la session
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"name": "Support Team Session"}'
```

```json Réponse 201 theme={null}
{
  "id": "uuid-session-12",
  "sessionName": "Support Team Session",
  "status": "DISCONNECTED",
  "qrCode": null,
  "phone": null,
  "lastError": null,
  "lastSeen": null
}
```

***

## Détails

`GET /v1/sessions/:sessionId`

Retourne les détails d'une session spécifique.

<ParamField path="sessionId" type="string" required>
  UUID de la session
</ParamField>

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12 \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

***

## Modifier

`PATCH /v1/sessions/:sessionId`

Modifie le nom d'une session.

<ParamField path="sessionId" type="string" required>
  UUID de la session
</ParamField>

<ParamField body="sessionName" type="string">
  Nouveau nom de la session
</ParamField>

```bash cURL theme={null}
curl -X PATCH https://api.waaconnect.com/v1/sessions/uuid-session-12 \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"sessionName": "Sales Session Benin"}'
```

***

## Supprimer

`DELETE /v1/sessions/:sessionId`

Supprime définitivement une session et ses données d'authentification.

<ParamField path="sessionId" type="string" required>
  UUID de la session
</ParamField>

```bash cURL theme={null}
curl -X DELETE https://api.waaconnect.com/v1/sessions/uuid-session-12 \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

***

## Statut

`GET /v1/sessions/:sessionId/status`

Récupère le statut de connexion en temps réel (non mis en cache).

**Valeurs possibles de `status`**

| Valeur         | Description                            |
| -------------- | -------------------------------------- |
| `DISCONNECTED` | Session déconnectée                    |
| `CONNECTING`   | Connexion en cours                     |
| `QR_READY`     | QR code disponible, en attente de scan |
| `CONNECTED`    | Session connectée et active            |
| `PAUSED`       | Session en pause manuelle              |

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/status \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{
  "id": "uuid-session-12",
  "sessionName": "Support Team Session",
  "status": "CONNECTED",
  "qrCode": null,
  "phone": "22997000000@s.whatsapp.net",
  "lastError": null,
  "lastSeen": "2026-03-26T15:20:26.000Z"
}
```

***

## Changer le statut

`PATCH /v1/sessions/:sessionId/status`

Change manuellement le statut d'une session.

<ParamField body="status" type="string" required>
  Statut à appliquer : `CONNECTED`, `DISCONNECTED`, `CONNECTING`, `PAUSED`
</ParamField>

```bash cURL theme={null}
curl -X PATCH https://api.waaconnect.com/v1/sessions/uuid-session-12/status \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"status": "PAUSED"}'
```

***

## QR code

`GET /v1/sessions/:sessionId/qrcode`

Récupère le QR code de connexion en base64.

<Note>
  Appelez d'abord `POST /sessions/:sessionId/connect` pour générer le QR code.
</Note>

```bash cURL theme={null}
curl https://api.waaconnect.com/v1/sessions/uuid-session-12/qrcode \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{
  "sessionId": "uuid-session-12",
  "status": "QR_READY",
  "qrCode": "data:image/png;base64,iVBORw0KGgo...",
  "hasQrCode": true
}
```

***

## Connecter

`POST /v1/sessions/:sessionId/connect`

Lance la connexion WhatsApp de la session. Génère un QR code à scanner ou reconnecte automatiquement si des credentials existent.

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/connect \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{
  "id": "uuid-session-12",
  "sessionName": "Support Team Session",
  "status": "CONNECTING",
  "qrCode": null,
  "phone": null,
  "lastError": null,
  "lastSeen": null
}
```

***

## Déconnecter

`POST /v1/sessions/:sessionId/disconnect`

Déconnecte proprement la session sans la supprimer.

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/disconnect \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx"
```

```json Réponse 200 theme={null}
{
  "id": "uuid-session-12",
  "sessionName": "Support Team Session",
  "status": "DISCONNECTED",
  "qrCode": null,
  "phone": "22997000000@s.whatsapp.net",
  "lastError": "Manual disconnect",
  "lastSeen": "2026-05-09T09:56:56.058Z"
}
```

***

## Code de pairing

`POST /v1/sessions/:sessionId/pairing-code`

Génère un code de pairing à 8 chiffres (alternative au QR code).

<ParamField body="phoneNumber" type="string" required>
  Numéro de téléphone sans `+` ni espaces
</ParamField>

```bash cURL theme={null}
curl -X POST https://api.waaconnect.com/v1/sessions/uuid-session-12/pairing-code \
  -H "x-api-key: wac_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"phoneNumber": "22997000000"}'
```

```json Réponse 200 theme={null}
{
  "pairingCode": "ABCD-1234"
}
```
