WhatsApp API: стоимость сообщения, 24-часовое окно и fallback_template

Обновлено: 27 сентября 2026 · 7 мин чтения

За каждое сообщение-шаблон Meta берёт плату, а обычный текст внутри 24-часового окна бесплатный. Если отправлять одни и те же уведомления в правильном порядке, расходы снижаются в несколько раз.

Шаги

  1. 1

    Цены

    • UTILITY (заказ, доставка, оплата, напоминание): 0.036 AZN
    • AUTHENTICATION (OTP, подтверждение входа): 0.036 AZN
    • MARKETING (кампания, скидка, объявление): 0.165 AZN
    • Свободный текст внутри окна: бесплатно

    Это тариф Meta за сообщение, Clomni доплату не берёт. MARKETING дороже UTILITY в 4,6 раза, поэтому шаблоны о заказе, доставке и напоминаниях создавайте в Meta как UTILITY. Категория влияет и на цену, и на шансы одобрения.

  2. 2

    24-часовое окно

    С момента, когда клиент Вам написал, на 24 часа открывается окно. В это время Вы можете бесплатно отправлять ему любой текст. Если окно закрыто, можно отправить только одобренный шаблон, и каждый шаблон оплачивается отдельно.

    Отправленный Вами шаблон окно не открывает. Окно открывает клиент: когда отвечает или нажимает кнопку быстрого ответа (quick reply) в шаблоне.

  3. 3

    Один запрос с fallback_template

    Передайте в запросе вместе text (текст) и fallback_template (шаблон, который уйдёт, если окно закрыто). Clomni сам проверяет окно:

    • если оно открыто, уходит текст, в ответе sent_as: "session" (бесплатно);
    • если закрыто, уходит шаблон, sent_as: "template" (платно);
    • если fallback_template не передан и окно закрыто, сообщение не отправляется и возвращается 422: платное сообщение без Вашего ведома не уйдёт.

    Структура fallback_template такая же, как у template: name, language, parameters.

    {
      "channel_id": 159,
      "phone_number": "+994 50 123 45 67",
      "text": "Ваша посылка передана курьеру. Её доставят сегодня до 18:00.",
      "fallback_template": {
        "name": "kargo_status",
        "language": "az",
        "parameters": { "body": { "1": "AZ-10422", "2": "у курьера" } }
      }
    }
  4. 4

    Пример с доставкой: 5 уведомлений, 1 оплата

    По одной посылке за день уходит 5 уведомлений: «принята», «прибыла на склад», «прошла таможню», «у курьера», «доставлена». Если отправлять каждое отдельным шаблоном, это 5 оплат. Правильно так:

    • первое уведомление отправьте шаблоном с кнопкой быстрого ответа, например «Отследить посылку» или «Да, сообщайте» (1 оплата);
    • когда клиент нажимает кнопку, открывается 24-часовое окно;
    • остальные уведомления отправляйте обычным текстом: это бесплатно и не требует одобрения;
    • если следующее уведомление придётся на время после 24 часов, API сам перейдёт на fallback_template.
  5. 5

    Расчёт

    1000 посылок, 5 уведомлений в день:

    • каждое уведомление отдельным шаблоном: 180 AZN в день, 5 400 AZN в месяц (30 дней), 65 700 AZN в год;
    • 1 шаблон и 4 бесплатных текста: 36 AZN в день, 1 080 AZN в месяц, 13 140 AZN в год;
    • экономия: 144 AZN в день, 4 320 AZN в месяц, 52 560 AZN в год.

    Расчёт предполагает, что кнопку нажимают все клиенты. На практике нажимают 60-80%, реальная экономия примерно три четверти этой суммы.

    Кампания MARKETING на 10 000 человек стоит 10 000 × 0.165 AZN = 1 650 AZN. Дальнейшая переписка в течение 24 часов с клиентом, который ответил или нажал кнопку, бесплатна.

  6. 6

    Что уходит в каждом случае

    • Клиент писал за последние 24 часа или нажал кнопку шаблона: уходит text, бесплатно.
    • Окно закрыто, fallback есть: уходит fallback_template, 0.036 AZN (utility) или 0.165 AZN (marketing).
    • Окно закрыто, fallback нет: ошибка 422, сообщение не уходит, оплаты нет.
    • Первый контакт: шаблон, 0.036 AZN для OTP, 0.165 AZN для кампании.
  7. 7

    Проверьте окно заранее

    Если готовите много уведомлений, заранее узнайте, у каких номеров окно открыто: для них отправка бесплатна.

    curl -s "https://api.clomni.ai/v1/accounts/{account_id}/whatsapp/messages/window?channel_id=159&phone_number=%2B994501234567" \
      -H "Authorization: Bearer <API_ACARI>"

    Ответ:

    {
      "open": true,
      "last_inbound_at": "2026-08-07T09:15:00Z",
      "expires_at": "2026-08-08T09:15:00Z",
      "conversation_id": 1042
    }

    open: false и last_inbound_at: null означают, что этот номер Вам никогда не писал: первое сообщение должно быть шаблоном.

Документ