Перейти к содержимому
WbizTool

API v2 (бета)

Отписки

Отписка (opt-out) — это человек, который не хочет получать сообщения вашего рабочего пространства. На отписавшийся номер никогда ничего не отправляется: новое сообщение на него отклоняется, а сообщения, поставленные в очередь раньше, вместо отправки завершаются ошибкой Opted out. Это работает для любого способа отправки: API (v1 и v2), панели, кампаний, шаблонных сообщений, напоминаний, Google Sheets и Shopify.

Это тот же список, что на вкладке Отписались страницы Контакты в панели.

ОперацияEndpointОбласть доступа
Отписка номераPOST /api/v2/opt-outscontacts
Список отписокGET /api/v2/opt-outscontacts
Получение отпискиGET /api/v2/opt-outs/{phone}contacts
Возврат подписки номераDELETE /api/v2/opt-outs/{phone}contacts

Ответы STOP добавляются автоматически#

Когда кто-то отвечает на один из ваших номеров для входящих сообщением, состоящим только из слова отписки, он отписывается сам, с source reply и своим сообщением в keyword. Сообщение, состоящее только из START (или Subscribe), возвращает ему подписку.

  • Слова, в любом регистре и со знаками препинания или без них: STOP, Stop all, Unsubscribe, Opt out, Baja, Parar, Sair, Stopp, Abmelden, Arrêt, Désabonner, Basta, Disiscrivi, Стоп, Отписаться, Berhenti, Dur, توقف, إلغاء الاشتراك, עצור, הסר.
  • Считается только сообщение, в котором есть одно это слово: «стоп, не присылайте мне больше прайс-лист» никого не отписывает.
  • На номере, которому отвечают, должны быть включены входящие, потому что только номера для входящих читают входящие сообщения. Ответы старше 7 дней, например прочитанные при добавлении номера для входящих, не считаются.
  • Человеку ничего не отправляется в ответ, и ни один автоответ не отвечает на STOP.

Отписка номера#

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

Тело запроса: JSON (application/json)

Тело запроса

phonestringобязательно

Номер в международном формате с + (+919876543210). Пробелы, дефисы и скобки игнорируются. Подходит и @username в Telegram.

notestringнеобязательно

Причина, для вашей команды, до 200 символов. Показывается на вкладке «Отписались».

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

Ответ: 201 с отпиской. Номер, который уже был отписан, возвращает 200 со своей существующей записью, без изменений.

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

Ошибки#

HTTPКодКогда
400validation_failednote не текст или длиннее 200 символов
422invalid_phonephone отсутствует или не является номером телефона

Список отписок#

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

Все, кто отписался, сначала самые новые, страницами (limit от 1 до 100, по умолчанию 25, и cursor). Добавьте phone, чтобы найти один номер.

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
}

Получение отписки#

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

Номер в адресе — в международном формате без + (919876543210). Возвращает 404 opt_out_not_found, если номер не отписан, так что это быстрая проверка перед отправкой.

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

Возврат подписки номера#

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

С этого момента сообщения на номер снова отправляются. Сообщения, которые уже завершились ошибкой Opted out, остаются с ошибкой. Делайте это, только если человек снова попросил присылать ему ваши сообщения.

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

Номер, который не был отписан, возвращает 404 opt_out_not_found.

Отправка на отписавшийся номер#

  • POST /messages возвращает 422 recipient_opted_out, и ничего не ставится в очередь. В пакете отклоняется весь пакет, а field в ошибке указывает элемент.
  • Сообщение, поставленное в очередь до того, как человек отписался, завершается ошибкой с error Opted out, когда до него доходит черёд, а вебхук получает message.failed.
  • API v1 ставит сообщение в очередь, и оно завершается ошибкой Opted out, что видно в статусе сообщения.
  • Повторить неудачные: … в кампаниях пропускает эти сообщения.

Объект Opt-out#

ПолеТипОписание
recipientstring+ и номер или @username в Telegram
sourcestringreply: человек ответил STOP на номер для входящих. dashboard: добавлен в «Контактах». import: из CSV в «Контактах». api: этот API
keywordstring or nullОтвет, которым человек отписался, в том виде, как он его написал
notestring or nullЗаметка вашей команды
created_atstringКогда человек отписался (ISO 8601, UTC)

Связанные материалы#