Aller au contenu
WbizTool

API v2 (bêta)

Désinscriptions

Une désinscription est une personne qui ne veut pas des messages de votre espace de travail. Rien n'est jamais envoyé à un numéro désinscrit : un nouveau message pour lui est refusé, et les messages mis en file d'attente avant échouent avec l'erreur Opted out au lieu de partir. Cela vaut pour toutes les façons d'envoyer : l'API (v1 et v2), le tableau de bord, les campagnes, les messages modèles, les rappels, Google Sheets et Shopify.

La liste est la même que l'onglet Désinscrits des Contacts dans le tableau de bord.

OpérationEndpointScope
Désinscrire un numéroPOST /api/v2/opt-outscontacts
Lister les désinscriptionsGET /api/v2/opt-outscontacts
Obtenir une désinscriptionGET /api/v2/opt-outs/{phone}contacts
Réinscrire un numéroDELETE /api/v2/opt-outs/{phone}contacts

Les réponses STOP sont ajoutées pour vous#

Quand quelqu'un répond à l'un de vos numéros de boîte de réception par un message qui n'est qu'un mot de désinscription, il est désinscrit automatiquement, avec source reply et son message comme keyword. Un message qui n'est que START (ou Subscribe) le réinscrit.

  • Les mots, en majuscules ou en minuscules, avec ou sans ponctuation : STOP, Stop all, Unsubscribe, Opt out, Baja, Parar, Sair, Stopp, Abmelden, Arrêt, Désabonner, Basta, Disiscrivi, Стоп, Отписаться, Berhenti, Dur, توقف, إلغاء الاشتراك, עצור, הסר.
  • Seul compte un message qui n'est que le mot : « merci d'arrêter de m'envoyer la liste des prix » ne désinscrit personne.
  • Il faut la boîte de réception sur le numéro auquel la personne répond, car seuls les numéros de boîte de réception lisent les messages reçus. Les réponses de plus de 7 jours, comme celles lues à l'ajout d'un numéro de boîte de réception, ne comptent pas.
  • Rien ne lui est renvoyé, et aucune réponse automatique ne répond au STOP.

Désinscrire un numéro#

POSThttps://wbiztool.com/api/v2/opt-outs

Corps: JSON (application/json)

Corps

phonestringobligatoire

Le numéro au format international avec + (+919876543210). Les espaces, tirets et parenthèses sont ignorés. Un @username Telegram fonctionne aussi.

notestringfacultatif

La raison, pour votre équipe, jusqu'à 200 caractères. Affichée sur l'onglet Désinscrits.

curl -X POST https://wbiztool.com/api/v2/opt-outs \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+919876543210", "note": "Asked by email"}'

Réponse : 201 avec la désinscription. Un numéro déjà désinscrit répond 200 avec son entrée existante, inchangée.

{
  "recipient": "+919876543210",
  "source": "api",
  "keyword": null,
  "note": "Asked by email",
  "created_at": "2026-10-26T09:12:03.120Z"
}

Erreurs#

HTTPCodeQuand
400validation_failednote n'est pas du texte ou dépasse 200 caractères
422invalid_phonephone est absent ou n'est pas un numéro de téléphone

Lister les désinscriptions#

GEThttps://wbiztool.com/api/v2/opt-outs

Toutes les personnes désinscrites, les plus récentes d'abord, par pages (limit de 1 à 100, 25 par défaut, et cursor). Ajoutez phone pour chercher un seul numéro.

curl "https://wbiztool.com/api/v2/opt-outs?limit=100" \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "data": [
    { "recipient": "+919876543210", "source": "reply", "keyword": "STOP", "note": null, "created_at": "2026-10-26T09:12:03.120Z" }
  ],
  "next_cursor": null
}

Obtenir une désinscription#

GEThttps://wbiztool.com/api/v2/opt-outs/{phone}

Le numéro figure dans l'adresse au format international sans + (919876543210). Répond 404 opt_out_not_found quand le numéro ne s'est pas désinscrit : c'est donc une vérification rapide avant d'envoyer.

curl https://wbiztool.com/api/v2/opt-outs/919876543210 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Réinscrire un numéro#

DELETEhttps://wbiztool.com/api/v2/opt-outs/{phone}

Les messages vers le numéro repartent à partir de maintenant. Les messages déjà en échec avec Opted out restent en échec. Ne le faites que lorsque la personne a de nouveau demandé vos messages.

curl -X DELETE https://wbiztool.com/api/v2/opt-outs/919876543210 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "recipient": "+919876543210", "deleted": true }

Un numéro qui n'était pas désinscrit répond 404 opt_out_not_found.

Envoyer à un numéro désinscrit#

  • POST /messages répond 422 recipient_opted_out, et rien n'est mis en file d'attente. Dans un lot, tout le lot est refusé et le field de l'erreur indique l'entrée.
  • Un message mis en file d'attente avant la désinscription de la personne échoue avec error Opted out quand vient son tour, et un webhook reçoit message.failed.
  • L'API v1 met le message en file d'attente et il échoue avec Opted out, comme vous le verrez dans le statut du message.
  • Renvoyer … messages en échec des campagnes ignore ces messages.

L'objet Désinscription#

ChampTypeDescription
recipientstring+ et le numéro, ou un @username Telegram
sourcestringreply : la personne a répondu STOP à un numéro de boîte de réception. dashboard : ajoutée depuis Contacts. import : depuis un CSV dans Contacts. api : cette API
keywordstring or nullLa réponse qui l'a désinscrite, telle qu'elle l'a écrite
notestring or nullLa note de votre équipe
created_atstringDate de la désinscription (ISO 8601, UTC)

Voir aussi#