# Démarrage avec PHP

Il n’existe pas de SDK PHP VaEmail. Le chemin vérifié est l’API HTTP avec l’extension cURL de PHP.

## Prérequis

- PHP avec cURL et JSON.
- Une clé d’API dans `VAEMAIL_API_KEY`.
- Un domaine d’envoi authentifié.

```bash
export VAEMAIL_API_KEY="<votre clé de test>"
```

## Tutoriel

Le même appel peut être vérifié directement avec cURL :

```bash
curl -X POST https://app.vaemail.fr/api/v1/messages/validate \
  -H "api-key: $VAEMAIL_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"to":"client@example.com","subject":"Votre commande","html":"<p>Confirmée</p>"}'
```

Depuis PHP, utilisez `curl_init`, `CURLOPT_HTTPHEADER` avec `api-key` et `Content-Type: application/json`, puis `CURLOPT_POSTFIELDS` avec `json_encode`. Quand `sendable` est vrai, appelez `POST /api/v1/transactional/send` avec le même JSON et `Idempotency-Key: commande-4711`.

## Comment tester

```bash
curl https://app.vaemail.fr/api/v1/capabilities
curl https://app.vaemail.fr/api/v1/messages/2841 -H "api-key: $VAEMAIL_API_KEY"
```

Remplace `2841` par l’identifiant rendu par l’envoi. Le statut final doit être lu par `GET /api/v1/messages/{id}`.

## Limites

Il n’existe ni paquet Composer ni bibliothèque PHP à installer. La validation n’envoie rien. Une réponse `202` signifie seulement que le message est en file.

## Reprise après erreur

Lis le bloc `error`, en particulier `code` et `retryable`. Après un timeout, reprends la même requête avec la même valeur `Idempotency-Key`. Ne considère pas l’absence de réponse comme un échec d’envoi.

