/v1/contacts
Utilisez le nœud contacts
pour gérer les utilisateur·ices WhatsApp de votre base de données, les valider avant de leur envoyer des messages et vérifier leur identité à l’aide des hachages d’identité.
Avec le nœud contacts
, vous pouvez :
status
d’un·e utilisateur·ice est valid
avant de lui envoyer un message. À partir de la version 2.39.1, le nœud messages
peut être utilisé directement avec un numéro de téléphone, sans avoir à le convertir au préalable en ID WhatsApp via le nœud contacts
.
Dans la version 2.43, nous retravaillons le nœud contacts
afin qu’il ne transmette plus d’informations de statut à propos des numéros de téléphone. Qu’une personne utilise ou non WhatsApp, le système renverra toujours valid
pour status
dans la réponse et un identifiant wa_id.
Vous devez proposer à votre clientèle de s’inscrire aux communications WhatsApp de votre entreprise. Cette procédure est gérée par votre entreprise. Après l’inscription d’un client ou d’une cliente, utilisez le nœud contacts
pour valider le numéro inscrit. Pour plus d’informations, consultez la rubrique Comprendre comment obtenir les inscriptions pour WhatsApp.
Si une entreprise utilise ce point de terminaison de manière détournée, voici les actions qui seront entreprises :
Nous vous recommandons de vérifier votre liste de contacts avant d’envoyer des messages. Cependant, vous n’avez pas besoin de vérifier les contacts pour répondre au message d’un client ou d’une cliente. Vous pouvez répondre immédiatement en utilisant l’ID wa_id
fourni. Cette opération n’entraîne aucun surcoût, car les résultats sont mis en cache.
Avant d’envoyer des messages aux utilisateurs et utilisatrices qui ont choisi d’en recevoir, envoyez une requête POST
au point de terminaison /v1/contacts
pour créer une demande de validation de leur compte WhatsApp. Dans votre appel, incluez la liste des numéros de téléphone à valider.
POST /v1/contacts { "blocking": "wait" | "no_wait", "contacts": [ "16315551000", "+1 631 555 1001", "6315551002", "+1 (631) 555-1004", "1-631-555-1005" ], "force_check": false | true }
Vous recevrez une réponse contenant le status
actuel des numéros demandés et leur ID WhatsApp (wa_id
) :
{ "contacts": [ { "wa_id": "16315551000", "input": "16315551000", "status": "valid" }, { "wa_id": "16315551001", "input": "+1 631 555 1001", "status": "processing" # Only applicable when request is non-blocking }, { "input": "6315551002", "status": "invalid" }, { "input": "+163155588", "status": "failed" } }
Enregistrez les ID WhatsApp des numéros ayant renvoyé un status
valid
. Les utilisatrices et utilisateurs valides sont celles et ceux qui possèdent un compte WhatsApp. Utilisez les ID WhatsApp pour envoyer des messages et des notifications.
Répétez régulièrement ces étapes pour gérer votre liste d’utilisateur·ices valides. Les résultats sont mis en cache dans la base de données du client de l’API On-Premises WhatsApp Business pendant sept jours.
Les paramètres suivants sont acceptés pour les appels POST
au point de terminaison /v1/contacts
:
Nom | Description |
---|---|
| Facultatif. Indique si la requête doit ou non attendre la fin du traitement pour renvoyer une réponse. Pour plus d’informations, consultez la section Blocage ci-dessous. Valeurs possibles : |
| Obligatoire. Ensemble de numéros de téléphone que vous êtes en train de valider. Les numéros de téléphone peuvent être indiqués dans n’importe quel format standard. Le format recommandé pour les numéros de téléphone de contacts inclut le signe plus ( |
| Facultatif. Indique si le cache des contacts doit ou non être vérifié. Les coordonnées sont normalement mises en cache pendant sept jours. En réglant le paramètre Valeurs possibles : |
Les arêtes ci-dessous sont connectées à ce nœud :
Arête | Description |
---|---|
Utilisez cette arête pour gérer les identités des utilisateurs et utilisatrices. Pour plus d’informations, consultez la section Comprendre les modifications d’identité pour WhatsApp Business. |
Le paramètre blocking
offre deux options : no_wait
et wait
. Lorsque le paramètre blocking
n’est pas spécifié dans un appel, l’état par défaut est no_wait
.
Le paramètre blocking
détermine si la requête doit attendre la fin du processus de traitement (synchrone) ou ne pas l’attendre (asynchrone).
Paramètre | Description |
---|---|
| Le traitement des numéros de téléphone est asynchrone. La réponse peut inclure des numéros dont le
|
| Le traitement des numéros est synchrone. Le statut final de l’ensemble des contacts s’affiche après la synchronisation avec le serveur. Ce paramètre met en attente le bloc de requête jusqu’à ce que tous les numéros aient été vérifiés avant de renvoyer les résultats. Cette opération prend parfois du temps. |
Les numéros de téléphone compris dans la requête de contacts
peuvent utiliser n’importe quel format accepté.
En l’absence d’un signe plus (+
) au début du numéro de téléphone, l’indicatif pays est déterminé à l’aide du numéro de téléphone sous lequel votre client de l’API On-Premises WhatsApp Business est enregistré. Les numéros de téléphone associés à un autre indicatif pays n’aboutiront pas.
Par conséquent, nous vous recommandons de spécifier l’indicatif pays avec le numéro de téléphone et d’y adjoindre explicitement le signe plus (+
) en préfixe.
Notez que l’indicatif pays peut être utilisé même si le numéro qui suit le signe +
n’est pas valide. Il est recommandé de valider les numéros de téléphone en amont pour obtenir un comportement prévisible de l’API On-Premises.
Voici quelques exemples décrivant ce comportement, en supposant que le client de l’API On-Premises WhatsApp Business est enregistré sous un numéro de téléphone indien (+91
) :
Numéro de téléphone | Numéro de téléphone traduit |
---|---|
|
|
|
|
|
|
|
|
|
|
La charge utile de la réponse contacts
contient le même tableau de numéros de téléphone que dans la requête envoyée avec les propriétés input
, status
et wa_id
:
Nom | Description |
---|---|
| La valeur que vous avez envoyée dans le champ |
version 2.41 et précédentes | Statut de l’utilisateur·ice. Valeurs possibles :
|
Version 2.43 et suivantes | L’état de l’utilisateur·ice. Valeurs possibles :
|
version 2.41 et précédentes | L’identifiant utilisateur·ice WhatsApp qui peut être utilisé dans d’autres appels. Renvoyé uniquement si le paramètre |
Version 2.43 et suivantes | L’ID WhatsApp renvoyé qui peut ou non être valide. Dans la mesure où rien ne garantit la validité de cette valeur, veuillez éviter de l’utiliser dans les appels suivants. |
En plus du statut processing
, vous devriez voir apparaître un statut HTTP 200 OK
.
Si un modèle de message est envoyé à un numéro de téléphone sans compte WhatsApp, vous recevrez un message d’erreur indiquant un·e utilisateur·ice non valide, ainsi que le code d’erreur 1013
.
Si d’autres erreurs sont présentes dans la réponse, consultez la section Messages d’erreur et de statut.
Le blocage peut être considéré comme une fonctionnalité de protection permettant d’empêcher les personnes malveillantes de poursuivre leurs actions nuisibles. Pour bloquer un contact, ce dernier doit vous avoir envoyé un message au cours des dernières 24 heures.
Envoyez un appel d’API à /v1/contacts/{phone_number}/block
ayant pour motif le blocage d’un autre compte WhatsApp.
POST /v1/contacts/+16315551000/block { "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked" }
En cas de réussite, la réponse est associée au statut HTTP 200
et ne comporte aucun objet errors.
Exemple de réponse en cas d’échec :
{ "errors": [ { "code": 2048, "title": "Not engaged contact", "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs." } ] }
Les paramètres suivants sont acceptés pour les appels POST à /v1/contacts/{phone_number}/block
:
Paramètre | Description |
---|---|
| Facultatif. Motif de blocage libre. Sera utilisé pour bloquer un autre compte WhatsApp. Nombre maximal de caractères : 60. |
| Obligatoire. Les numéros de téléphone peuvent être indiqués dans n’importe quel format standard. Le format recommandé pour l’affichage des numéros de téléphone des contacts comprend le signe Plus (+) suivi de l’indicatif pays. Pour plus d’informations, consultez la section Formats des numéros de téléphone. |
Passez cet appel pour débloquer un contact
Envoyez un appel d’API à /v1/contacts/{phone_number}/unblock
POST /v1/contacts/+16315551000/unblock
En cas de réussite, la réponse est associée au statut HTTP 200
et ne comporte aucun objet errors.
Exemple de réponse en cas d’échec :
{ "errors": [ { "code": 1009, "title": "Parameter value is not valid", "details": "Provided WhatsApp ID is not valid. Please provide a valid WhatsApp ID or a phone number with a country code" } ] }
Les paramètres suivants sont acceptés pour les appels POST à /v1/contacts/{phone_number}/unblock
:
Paramètre | Description |
---|---|
| Obligatoire. Les numéros de téléphone peuvent être indiqués dans n’importe quel format standard. Le format recommandé pour l’affichage des numéros de téléphone des contacts comprend le signe Plus (+) suivi de l’indicatif pays. Pour plus d’informations, consultez la section Formats des numéros de téléphone. |
Il s’agit de la façon dont vous obtenez une liste des contacts bloqués.
Envoyez un appel d’API à /v1/contacts/blocklist
pour recevoir une liste paginée des contacts bloqués.
GET /v1/contacts/blocklist?limit=10&offset=0
Vous recevrez une réponse contenant une page reprenant votre liste d’éléments bloqués, accompagnée d’informations de pagination.
{ "contacts": [ { "wa_id": "16315551000@s.whatsapp.net" } ], "pagination": { "limit": 10, "offset": 0, "total": 1 } }
Les paramètres suivants sont acceptés pour les appels GET à /v1/contacts/blocklist
:
Paramètre | Description |
---|---|
| Facultatif. La plage acceptée est [0 ; 200]. Valeur par défaut : 100. |
| Facultatif. Valeur par défaut : 0. |
Le signalement fournit des indications permettant de se prémunir des personnes malveillantes. Pour signaler un contact, ce dernier doit vous avoir envoyé un message au cours des dernières 24 heures.
Envoyez un appel d’API à /v1/contacts/{phone_number}/report
accompagné d’un motif si vous bloquez un autre compte WhatsApp.
POST /v1/contacts/+16315551000/block { "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked", "block": "true | false optional boolean with default of false", "message_id": "message-id. Optional reported message id" }
En cas de réussite, la réponse est associée au statut HTTP 200
et ne comporte aucun objet errors.
Exemple de réponse en cas d’échec :
{ "errors": [ { "code": 2048, "title": "Not engaged contact", "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs." } ] }
Les paramètres suivants sont acceptés pour les appels POST à /v1/contacts/{phone_number}/report
:
Paramètre | Description |
---|---|
| Facultatif. Motif de blocage libre. Sera utilisé pour bloquer un autre compte WhatsApp. Nombre maximal de caractères : 60. |
| Facultatif. La valeur par défaut est Indique si vous souhaitez également bloquer le contact, ou seulement le signaler. |
| Facultatif. ID du message à signaler. Si cet ID n’est pas spécifié, les 5 derniers messages seront envoyés à WhatsApp. |
| Obligatoire. Les numéros de téléphone peuvent être indiqués dans n’importe quel format standard. Le format recommandé pour l’affichage des numéros de téléphone des contacts comprend le signe Plus (+) suivi de l’indicatif pays. Pour plus d’informations, consultez la section Formats des numéros de téléphone. |