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

# Démarrage rapide

> Envoyez votre premier SMS en staging, sans rien débiter.

En staging, **rien n’est débité et aucun SMS ne part** : un opérateur simulé accepte l’envoi, puis le dit remis deux secondes plus tard. Les validations, elles, sont celles de la production.

**1. Créez une clé API de staging**

Dans le [dashboard](https://app.dexnotify.com), ouvrez votre projet, puis **Développeurs › Clés API et SDK**. Créez une clé en environnement **staging** avec le préréglage **« Envoi SMS serveur »**. Copiez-la : elle commence par `dxn_stag_` et n’est montrée qu’une fois.

```bash theme={null}
export DEXNOTIFY_CLE='collez ici la clé de staging'
```

**2. Envoyez un SMS**

`DEXCHANGE` est un expéditeur de la plateforme, utilisable sans demande.

```bash curl theme={null}
curl -X POST https://api.dexnotify.com/api/v1/sms/messages \
  -H "x-api-key: $DEXNOTIFY_CLE" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: premier-sms-0001" \
  -d '{"sender":"DEXCHANGE","to":"77 123 45 67","content":"Bonjour depuis le staging"}'
```

```js Node.js theme={null}
const response = await fetch("https://api.dexnotify.com/api/v1/sms/messages", {
  method: "POST",
  headers: {
    "x-api-key": process.env.DEXNOTIFY_CLE,
    "content-type": "application/json",
    "Idempotency-Key": "premier-sms-0001",
  },
  body: JSON.stringify({
    sender: "DEXCHANGE",
    to: "77 123 45 67",
    content: "Bonjour depuis le staging",
  }),
});
console.log(response.status, await response.json());
```

```python Python theme={null}
import os, requests

response = requests.post(
    "https://api.dexnotify.com/api/v1/sms/messages",
    headers={
        "x-api-key": os.environ["DEXNOTIFY_CLE"],
        "Idempotency-Key": "premier-sms-0001",
    },
    json={"sender": "DEXCHANGE", "to": "77 123 45 67", "content": "Bonjour depuis le staging"},
)
print(response.status_code, response.json())
```

La réponse arrive en `202 Accepted`, sans attendre l’opérateur :

```json theme={null}
{
  "id": "6710…",
  "type": "single",
  "status": "queued",
  "sender": "DEXCHANGE",
  "segments": 1,
  "recipientCount": 1,
  "units": { "estimated": 1, "reserved": 0, "consumed": 0, "released": 0, "refunded": 0 },
  "simulated": true,
  "recipients": [
    { "id": "6710…", "phone": "+221771234567", "country": "SN", "status": "pending" }
  ]
}
```

**3. Lisez son statut**

```bash theme={null}
curl https://api.dexnotify.com/api/v1/sms/messages/ID_DE_L_ENVOI \
  -H "x-api-key: $DEXNOTIFY_CLE"
```

Quelques secondes plus tard, le message est `completed` et son destinataire `delivered`.

**4. Jouez un échec**

Envoyez à `+221700000002` : le SMS part, puis l’accusé de réception le dit non remis. Les autres scénarios sont dans [Environnements](https://docs.dexnotify.com/environnements.md#numeros-de-simulation).

## Et ensuite

> [card] [Passer en production](https://docs.dexnotify.com/environnements.md)
>
> Une clé `dxn_prod_`, un solde d’unités, votre nom d’expéditeur.

> [card] [Recevoir les statuts](https://docs.dexnotify.com/webhooks.md)
>
> Les accusés de réception poussés vers votre serveur.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.