Whatixo.Documentation English Ouvrir Whatixo
Documentation / API Whatixo

Contacts

Lisez et alimentez votre CRM depuis vos outils : formulaire de site, logiciel de caisse, ERP… Les contacts créés ici apparaissent dans Contacts.

Lister les contacts

POSThttps://api.whatixo.com/api/whatsapp/contacts
ChampTypeDescription
tagoptionnelstringNe renvoie que les contacts dont les tags contiennent cette valeur.
searchoptionnelstringRecherche dans le nom ou le numéro.
limitoptionnelintegerNombre de contacts par page (1 à 1 000). Sans limit, tous les contacts sont renvoyés.
offsetoptionnelintegerNombre de contacts à sauter (pagination). Défaut : 0.
curl -X POST https://api.whatixo.com/api/whatsapp/contacts \
  -H "x-api-key: $WHATIXO_API_KEY" -H "Content-Type: application/json" \
  -d '{"tag":"vip","limit":100,"offset":0}'
Réponse 200JSON
{
  "success": true,
  "count": 2,
  "total": 214,
  "offset": 0,
  "hasMore": true,
  "contacts": [
    {
      "id": "c5f1…",
      "phone": "243812345601",
      "name": "Aline Mukendi",
      "tags": "clients,vip",
      "attributes": { "ville": "Kinshasa" },
      "leadTemperature": "HOT",
      "messagesReceived": 12,
      "messagesRead": 10,
      "linksClicked": 3,
      "lastActivityAt": "2026-11-03T16:30:00.000Z",
      "createdAt": "2026-10-02T09:12:00.000Z"
    }
  ]
}

total, offset et hasMore ne sont présents que si vous passez limit.

Lire un contact

POSThttps://api.whatixo.com/api/whatsapp/contacts/info
ChampTypeDescription
phonerequisstringNuméro international du contact.
curl -X POST https://api.whatixo.com/api/whatsapp/contacts/info \
  -H "x-api-key: $WHATIXO_API_KEY" -H "Content-Type: application/json" \
  -d '{"phone":"243812345601"}'

Réponse : {"success":true,"contact":{…}}, ou 404 si le contact n’existe pas.

Créer ou mettre à jour un contact

POSThttps://api.whatixo.com/api/whatsapp/contacts/upsert

Si un contact avec ce numéro existe, il est mis à jour ; sinon il est créé. Idéal pour synchroniser un formulaire ou une boutique.

ChampTypeDescription
phonerequisstringNuméro international (6 à 20 chiffres).
nameoptionnelstringNom affiché (120 caractères max).
tagsoptionnelstring | string[]"clients,vip" ou ["clients","vip"]. Remplace les tags existants. Un tag peut démarrer une séquence ; le retirer l’arrête.
attributesoptionnelobjectDonnées libres : {"ville":"Goma","commande":"1042"}.
curl -X POST https://api.whatixo.com/api/whatsapp/contacts/upsert \
  -H "x-api-key: $WHATIXO_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "phone": "243812345601",
    "name": "Aline Mukendi",
    "tags": ["clients", "newsletter"],
    "attributes": { "ville": "Kinshasa", "source": "site-web" }
  }'

Réponse : {"success":true,"contact":{…}}. Si la limite de contacts de votre forfait est atteinte : 402 {"code":"PLAN_LIMIT","feature":"crm"}.

Vérifier des numéros

POSThttps://api.whatixo.com/api/whatsapp/contacts/check

Indique si des numéros possèdent un compte WhatsApp, avant d’envoyer.

ChampTypeDescription
deviceIdrequisstringNuméro connecté utilisé pour la vérification.
phonesrequisstring[]Liste de numéros internationaux.
RequêteJSON
{ "deviceId": "8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90", "phones": ["243812345601", "243000000000"] }
Réponse 200JSON
{
  "success": true,
  "results": [
    { "phone": "243812345601", "exists": true, "jid": "243812345601@s.whatsapp.net" },
    { "phone": "243000000000", "exists": false }
  ]
}

Vérifiez par lots raisonnables (quelques dizaines de numéros par appel) : des vérifications massives peuvent paraître suspectes à WhatsApp.

Photo de profil

POSThttps://api.whatixo.com/api/whatsapp/contacts/avatar
RequêteJSON
{ "deviceId": "8f2c1a7e-4b9d-4e21-9a6f-3c5d7e1b2a90", "phone": "243812345601" }
Réponse 200JSON
{ "success": true, "pictureUrl": "https://pps.whatsapp.net/v/t61…" }

Si le contact n’a pas de photo ou la masque, l’API répond 500 avec un message explicite. L’URL renvoyée est temporaire : téléchargez l’image si vous devez la conserver.