Votre premier message
Envoyez un texte WhatsApp, relisez la conversation et affichez les coches bleues chez le client.
Envoyer un texte
curl -X POST https://developers.wasync.app/api/v1/messages \
-H "Authorization: Bearer $WASYNC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"connectionId":"conn_8f3a21","to":"40700000000","text":"Hi from my app 👋"}'{
"messageId": "cmqj3k2ab0001xyz",
"waMessageId": "[email protected]_3EB0A1B2C3",
"status": "sent"
}to contient uniquement des chiffres au format international, sans + — par exemple 40700000000. text ne dépasse pas 4096 caractères. Pour un média, fournissez media à la place de text :
{ filename, mimetype, data (base64, ≤ 16 MB), caption? } — l'un des deux, exactement. Les messages vocaux utilisent mimetype: audio/ogg et un nom de fichier voice-*.ogg. Utilise
whatsapp.send.
Réglez votre délai d'expiration HTTP à 180 secondes minimum
Un envoi qr prend normalement 1 à 7 s, jusqu'à 20 s environ pour les textes longs, et le
mécanisme d'auto-réparation peut durer ~2,5 minutes. Un envoi cloud_api prend environ 1 s. Un envoi lent
n'est pas un échec — un client qui abandonne au bout de 30 s et réessaie envoie le
message deux fois au destinataire. Passez toujours un idempotencyKey (un UUID par envoi logique)
et réessayez avec la même clé.
Deux identifiants — joignez sur le bon
La réponse contient deux identifiants, qui ne sont pas interchangeables.
| Id | Où il apparaît | À utiliser pour |
|---|---|---|
messageId (un cuid) | messageId sur POST, id sur GET, message.id dans les deux webhooks | Le seul identifiant utilisable pour les jointures. Stockez-le à l'envoi, dédupliquez avec lui, rapprochez-y les événements message.status. |
waMessageId | waMessageId (REST), wa_id (webhooks), wa_message_id (envoi de média) | Tickets de support et débogage. Il peut valoir null — ne joignez ni ne dédupliquez jamais dessus. |
Un cas dégradé mérite d'être géré dans votre code : { "messageId": null, "waMessageId": "…", "status": …, "persisted": false } avec un HTTP 200 signifie que le message a été
livré mais n'a pas été enregistré. Ne le renvoyez pas.
Relire la conversation
curl "https://developers.wasync.app/api/v1/messages?connectionId=conn_8f3a21&limit=20" \
-H "Authorization: Bearer $WASYNC_API_KEY"{
"messages": [
{
"id": "cmqj3k2ab0001xyz",
"waMessageId": "[email protected]_3EB0A1B2C3",
"connectionId": "conn_8f3a21",
"direction": "outgoing",
"text": "Hi from my app 👋",
"mediaUrl": null,
"mediaType": null,
"status": "delivered",
"errorMessage": null,
"createdAt": "2026-07-22T10:00:00.000Z"
}
],
"nextCursor": "cmqj3k2ab0001xyz",
"hasMore": true
}Du plus récent au plus ancien, avec pagination par curseur : limit va de 1 à 100 (20 par défaut), et cursor
reçoit le nextCursor de la réponse précédente. Utilise whatsapp.read.
Afficher les coches bleues chez le client
curl -X POST https://developers.wasync.app/api/v1/messages/read \
-H "Authorization: Bearer $WASYNC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"connectionId":"conn_8f3a21","phone":"40700000000"}'Appelez cette route lorsqu'un opérateur ouvre la conversation dans votre interface — sinon
personne n'ouvre jamais le chat dans WhatsApp, les messages du client restent sur les deux
coches grises et la conversation semble ignorée. Le corps est
{ connectionId, phone?, messageId? }, avec au moins l'un de phone /
messageId (le cuid d'un message entrant ; messageId l'emporte si les deux sont
fournis). Elle utilise whatsapp.send, et non whatsapp.read, car elle transmet un accusé de lecture
au client. Idempotente, sans clé, sans limite de débit. Renvoie
{ "ok": true, "marked": 3 }.
Étapes suivantes
- Être averti des messages entrants plutôt que d'interroger l'API en boucle : Webhooks.
- Le construire sans code : n8n ou MCP.
- Générer un client à partir du contrat :
npx @openapitools/openapi-generator-cli generate -i https://developers.wasync.app/openapi.json -g typescript-fetch -o ./wasync-client
Votre premier appel
Listez les connexions accessibles avec votre clé et vérifiez votre capacité avant d'en provisionner une nouvelle.
Produit
L'application WASync dans Bitrix24, documentée fonctionnalité par fonctionnalité. Ces pages sont celles vers lesquelles renvoie la liste « Nouveautés » de l'application ; elles sont tenues à jour à mesure que les fonctionnalités évoluent.