Démarrage rapide

Envoyez votre premier message template WhatsApp via l'API Qyvo en moins de cinq minutes.

Ce guide vous mène de zéro à un message template WhatsApp livré en cinq minutes. Vous allez créer un jeton API, appeler /v1/me pour confirmer l'authentification, et déclencher un véritable envoi de template.

Ce qu'il vous faut

  • Un espace de travail Qyvo avec au moins un numéro WhatsApp connecté — inscrivez-vous sur qyvo.io si vous n'en avez pas.
  • Un template WhatsApp approuvé par Meta. Les nouveaux espaces de travail reçoivent un template hello_world approuvé par défaut.
  • Un numéro de téléphone sur lequel vous pouvez recevoir des messages, au format international (p. ex. +14155550123).
  • curl, ou tout client HTTP.

1. Créer un jeton API

Connectez-vous à votre espace de travail et ouvrez Paramètres → Jetons API. Cliquez sur Créer un jeton, nommez-le (p. ex. quickstart), et copiez la valeur.

Le jeton n'est affiché que pendant 90 secondes après création, puis masqué pour toujours. Si vous le perdez, révoquez-le et générez-en un nouveau.

Le jeton est un jeton d'accès personnel Laravel Passport émis avec le scope mcp. Le même jeton fonctionne pour l'API REST et le serveur MCP.

2. Confirmer que le jeton fonctionne

Chaque requête doit inclure Authorization: Bearer <token>. Appelez /v1/me pour vérifier que tout est correctement câblé :

curl https://www.qyvo.io/api/v1/me \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"

Vous devriez recevoir un payload JSON décrivant votre compte et votre espace de travail :

{
  "id": 42,
  "email": "[email protected]",
  "name": "Romain",
  "tenant": {
    "id": "01HZX9...",
    "name": "Acme Co."
  }
}

Un 401 Unauthorized signifie que le jeton est erroné ou révoqué — générez-en un nouveau. Voir Erreurs pour le catalogue complet.

3. Trouver un id de template

Les templates sont référencés par UUID, non par nom. Listez vos templates approuvés :

curl -X POST https://www.qyvo.io/api/v1/actions/list-templates \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{"status": "APPROVED"}'
[
  {
    "id": "01J0AB...",
    "name": "hello_world",
    "category": "UTILITY",
    "status": "APPROVED",
    "languages": ["en"],
    "created_at": "2026-04-15T10:32:00+00:00"
  }
]

Copiez l'id du template que vous souhaitez envoyer.

4. Envoyer votre premier message template

POST /v1/actions/send-template-message avec le téléphone du contact, votre template_id et (si le template a des placeholders) les variables :

curl -X POST https://www.qyvo.io/api/v1/actions/send-template-message \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+14155550123",
    "template_id": "01J0AB...",
    "language": "en"
  }'

Si le template a des variables (p. ex. Hello {{1}}, your order {{2}} is ready), passez-les indexées par nom de placeholder :

curl -X POST https://www.qyvo.io/api/v1/actions/send-template-message \
  -H "Authorization: Bearer YOUR_TOKEN_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+14155550123",
    "template_id": "01J0AB...",
    "language": "en",
    "variables": {
      "1": "Romain",
      "2": "ORD-1042"
    }
  }'

Une réponse réussie contient l'id de message Qyvo, l'id de message Meta sous-jacent, et l'id du contact (le contact est créé automatiquement s'il n'existait pas) :

{
  "id": "01J1Z...",
  "status": "sent",
  "whatsapp_message_id": "wamid.HBgL...",
  "contact_id": "01J1Y..."
}

Si language n'est pas approuvé chez Meta, Qyvo choisit automatiquement n'importe quelle traduction approuvée du template au lieu d'échouer. Pour forcer une langue spécifique, passez-la explicitement — et assurez-vous que cette traduction est approuvée.

5. Voir la livraison

Ouvrez l'Inbox dans votre tableau de bord — vous verrez le message arriver dans la conversation avec ce contact. Les mises à jour de statut (sentdeliveredread) se propagent en temps réel.

Abonnez-vous aux webhooks pour recevoir les mêmes mises à jour de manière programmatique — voir Webhooks.

Étapes suivantes