Contacts

/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 :

  • Vérifier qu’un numéro de téléphone figurant dans votre base de données appartient à un compte WhatsApp valide. Vous devez vérifier que le status d’un·e utilisateur·ice est valid avant de lui envoyer un message.
  • Obtenir l’ID WhatsApp associé à un numéro de téléphone. Les ID WhatsApp sont nécessaires pour envoyer des messages et des notifications aux utilisateur·ices.

À 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.

Avant de commencer

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.

Limites

  • Utilisez ce point de terminaison pour vérifier qu’un numéro de téléphone figurant dans la base de données d’une entreprise appartient bien à un compte WhatsApp valide.
  • Le nombre d’appels ne doit pas dépasser le nombre de messages que ce numéro de téléphone envoie.

Mise en application

Si une entreprise utilise ce point de terminaison de manière détournée, voici les actions qui seront entreprises :

  • Tous les admins figurant dans Business Manager recevront un premier avertissement par e-mail si une utilisation à mauvais escient est suspectée.
  • L’entreprise aura sept jours après la réception de cet avertissement pour modifier son comportement.
  • Si après ce délai de sept jours, les appels n’ont pas été ajustés, le numéro de téléphone sera définitivement désactivé.

Recommandations

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.

Création

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.

Exemple

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 statusvalid. 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.

Paramètres

Les paramètres suivants sont acceptés pour les appels POST au point de terminaison /v1/contacts :

Nom Description

blocking

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 :no_wait (par défaut), wait

contacts

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 (+) suivi de l’indicatif pays. Pour plus d’informations, consultez la section Formats des numéros de téléphone ci-dessous.

force_check

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 force_check sur true, le cache sera contourné pour garantir une vérification.


Valeurs possibles :false (par défaut), true

Arêtes

Les arêtes ci-dessous sont connectées à ce nœud :

ArêteDescription

/{user-whatsapp-id}/identity

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.

Blocage

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ètreDescription

no_wait

Le traitement des numéros de téléphone est asynchrone.


La réponse peut inclure des numéros dont le status est défini sur processing. Dans ce cas, nous vous recommandons de procéder comme suit :

  1. La réponse contient des numéros marqués comme processing.
  2. Envoyez une nouvelle requête de vérification des contacts incluant les numéros dont le statut est processing.
  3. Si le traitement est effectué lors de cette nouvelle requête, les numéros affichent un statut correct (valide ou non valide).
  4. Si certains numéros sont encore marqués comme processing, reprenez l’étape 2 jusqu’à obtenir une réponse pour chaque numéro.

wait

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.

Formats des numéros de téléphone

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éphoneNuméro de téléphone traduit

"+1-631-555-1002"

"+16315551002"

"6315551002"

"+916315551002"

"1-631-555-1002"

"+9116315551002"

"+1 (516) 283-7151"

"+15162837151"

"+54 9 11 5612-1008"

"+5491156121008"

Champs renvoyés

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

input

La valeur que vous avez envoyée dans le champ contacts de la requête.

status

version 2.41 et précédentes

Statut de l’utilisateur·ice.


Valeurs possibles :

  • processing : l’entrée est toujours en cours de traitement.
  • valid : un utilisateur ou une utilisatrice WhatsApp valide.
  • invalid : un utilisateur ou une utilisatrice WhatsApp non valide.
  • failed : une erreur s’est produite lors du traitement de cette vérification

status

Version 2.43 et suivantes

L’état de l’utilisateur·ice.


Valeurs possibles :

  • processing : l’entrée est toujours en cours de traitement
  • valid : la vérification du contact est terminée et l’envoi du message peut avoir lieu.
  • failed : une erreur s’est produite lors du traitement de cette vérification

wa_id

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 status est valid.

wa_id

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.

Blocage des contacts

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.

Exemple

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."
        }
    ]
}

Paramètres

Les paramètres suivants sont acceptés pour les appels POST à /v1/contacts/{phone_number}/block :

ParamètreDescription

reason

Facultatif.

Motif de blocage libre. Sera utilisé pour bloquer un autre compte WhatsApp. Nombre maximal de caractères : 60.

phone_number

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.

Déblocage des contacts

Passez cet appel pour débloquer un contact

Exemple

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"
        }
    ]
}

Paramètres

Les paramètres suivants sont acceptés pour les appels POST à /v1/contacts/{phone_number}/unblock :

ParamètreDescription

phone_number

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.

Liste d’éléments bloqués

Il s’agit de la façon dont vous obtenez une liste des contacts bloqués.

Exemple

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
   }
}

Paramètres

Les paramètres suivants sont acceptés pour les appels GET à /v1/contacts/blocklist :

ParamètreDescription

limit

Facultatif.

La plage acceptée est [0 ; 200]. Valeur par défaut : 100.

offset

Facultatif.

Valeur par défaut : 0.

Signalement

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.

Exemple

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."
        }
    ]
}

Paramètres

Les paramètres suivants sont acceptés pour les appels POST à /v1/contacts/{phone_number}/report :

ParamètreDescription

reason

Facultatif.

Motif de blocage libre. Sera utilisé pour bloquer un autre compte WhatsApp. Nombre maximal de caractères : 60.

block

Facultatif.

La valeur par défaut est False.

Indique si vous souhaitez également bloquer le contact, ou seulement le signaler.

message_id

Facultatif.

ID du message à signaler. Si cet ID n’est pas spécifié, les 5 derniers messages seront envoyés à WhatsApp.

phone_number

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.