Звонки, инициированные бизнесом | Документация для разработчиков
Звонки, инициированные бизнесом
Обновлено: 13 ноября 2025 г
Обзор
API для звонков позволяет совершать звонки пользователям WhatsApp из вашего бизнеса.
Пользователь определяет, когда можно принимать звонки, предоставляя права на совершение звонков рабочему номеру телефона .
Диаграмма последовательности вызовов

Примечание:
ACCEPTED обычно приходит после установления соединения. Облачный API отправляет его в основном для аудита событий вызова.Предварительные требования
Прежде чем начать совершать звонки по инициативе компании, убедитесь в следующем:
И наконец, прежде чем позвонить пользователю WhatsApp, вы должны получить его разрешение.
Схема обработки звонков, инициированных бизнесом
Часть 1: Получение разрешения на звонок пользователю WhatsApp
Получить разрешение на совершение звонков от пользователя WhatsApp можно одним из следующих способов:
Отправить сообщение с запросом на разрешение вызова
Вы можете запросить разрешение на звонок, отправив пользователю WhatsApp запрос на разрешение. Отправьте его в виде сообщения в свободной форме во время работы службы поддержки клиентов или используйте шаблон сообщения.
Включите параметр callback_permission_status в настройках вызова.
Если
параметр callback_permission_status включен, пользователь автоматически предоставляет вашей компании разрешение на совершение звонков при обращении к вам.Пользователь WhatsApp предоставил постоянные разрешения
Пользователь также может в любое время предоставить компании постоянные права доступа через свой бизнес-профиль.
Часть 2: Ваша компания инициирует новый звонок пользователю WhatsApp
Теперь, когда у вас есть разрешение пользователя, вы можете инициировать новый звонок нужному пользователю WhatsApp.
Теперь вы можете позвонить на
почту. /calls со следующим телом запроса:ПОЧТАЕсли ошибок нет, вы получите успешный ответ:
{"messaging_product":"WhatsApp","звонки":["идентификатор":"wacid.HBgLMTIxODU1NTI4MjgVAgARGCAyODRQIAFRoA",//Примечание: Ответ с кодом ошибки
138006 указывает на отсутствие у пользователя WhatsApp разрешения на запрос вызова для этого номера компании.Часть 3: Установление соединения с помощью сигнализации веб-перехватчика
После успешного инициирования нового вызова вы получите ответ веб-перехватчика Call Connect, содержащий
ответ SDP от Cloud API. Затем ваша компания применит ответ SDP из этого веб-перехватчика к вашему стеку WebRTC для инициирования медиасоединения.{"вход":[{"изменения":[{"поле":"звонки","ценить":{"звонки":[{"biz_opaque_callback_data":"TRx334DUDFTI4Mj",//После этого вы получаете соответствующий веб-хук статуса, указывающий на то, что вызов
проходит успешно , принят или отклонен :{"вход":[{"изменения":[{"поле":"звонки","ценить":{"статусы":[{"идентификатор":"wacid.HBgLMTIxODU1NTI4MjgVAgARGCAyODRQIAFRoA",//Часть 4: Ваша компания или пользователь WhatsApp завершает звонок
ПОЧТА<PHONE_NUMBER_ID> /звонкиПОЧТА<PHONE_NUMBER_ID> /calls { "messaging_product": "whatsapp", "call_id": "wacid.HBgLMTIxODU1NTI4MjgVAgARGCAyODRQIAFRoA", // Идентификатор вызова WhatsApp "action" : "terminate" }
{"успех":истинный}{"объект":"whatsapp_business_account","вход":[{"идентификатор":"366634483210360",// Идентификатор бизнес-аккаунта WhatsApp, связанный с номером телефона компании"изменения":[{"ценить":{"messaging_product":"WhatsApp","метаданные":{// Идентификационный и отображаемый номер корпоративного телефона, с которого совершается звонок (звонящий)"идентификатор_номера_телефона":"436666719526789","display_phone_number":"13175551399",},"звонки":[{"идентификатор":"wacid.HBgLMTIxODU1NTI4MjgVAgARGCAyODRQIAFRoA","к":"12185552828",// Номер телефона пользователя WhatsApp (звонящий)"от":"13175551399",// Рабочий телефонный номер, с которого совершается звонок (звонящий)"событие":"завершить","направление":"БИЗНЕС_ИНИЦИИРОВАН","временная метка":"1749197480",«статус»:["Неуспешный","Завершенный"],"start_time":"1671644824",// Начало вызова метки времени UNIX"end_time":"1671644944",// Метка времени завершения вызова UNIX"продолжительность":480// Длительность вызова в секундах}]},"поле":"звонки"}]}]}Конечные точки для звонков, инициированных бизнесом
Инициировать звонок
Используйте этот конечный пункт для инициирования звонка пользователю WhatsApp, указав номер телефона и предложение WebRTC-звонка. Существует ограничение в 10000 инициированных новых звонков в течение 24 часов с одного корпоративного номера телефона.
Запрос
синтаксис
ПОЧТА <НОМЕР_ТЕЛЕФОНА_ИДЕНТИФИКАТОР>/звонки | |
Текст запроса
{"messaging_product":"WhatsApp","к":"14085551234","действие":"соединять","сессия":{"sdp_type":"предложение","sdp":«<<RFC 8866 SDP> >"},"biz_opaque_callback_data":"0fS5cePMok"}Параметры тела
|
| ||
|---|---|---|
| | |
| | |
| | |
| | |
Ответ об успехе
{"messaging_product":"WhatsApp","звонки":[{"идентификатор":"wacid.ABGGFjFVU2AfAgo6V",}]}Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
номер телефонаОшибки доступа/авторизацииОшибки проверки формата запроса, например, информация о соединении, SDP, ICEОшибки проверки SDPОшибки ограничения вызовов
Завершить вызов
Используйте эту конечную точку для завершения активного вызова.
в медиатракте присутствует
RTCP BYE Когда пользователь WhatsApp завершает вызов, вам не нужно звонить на эту конечную точку. После успешного завершения вызова вы получите веб-перехватчик завершения вызова .
ЗапросТело синтаксиспараметры
ПОЧТА
<НОМЕР_ТЕЛЕФОНА_ИДЕНТИФИКАТОР>/звонки<PHONE_NUMBER_ID>18274459827Текст запроса
{"messaging_product":"WhatsApp","call_id":"wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh","действие":"завершить"}Параметры тела
call_idНить |
Необходимый
При входящих звонках вы получаете идентификатор вызова от веб-перехватчика Call Connect, когда звонок инициирует пользователь WhatsApp.
“wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh”действиеНить
Необходимый
Значения могут быть
связаны | предварительное принятие | принятие | отклонение | завершение«прекратить»Ответ об успехе
{"messaging_product":"WhatsApp","успех":истинный}Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
идентификатор вызоваНеверный номер телефонаПользователь WhatsApp уже завершил звонокВызов с отклонением уже выполняетсяОшибки доступа/авторизации
Веб-хуки для инициированных бизнес-звонков
внутри
"value" ответа вебхука находится "calls" "calls" содержит метаданные о звонке, которые используются для обработки каждого звонка, совершенного или принятого вашей компанией.Чтобы получать веб-хуки Calling API, подпишитесь на поле веб-хука «calls».
Вызов
подключить веб-перехватчик
Ответ SDPОтвет SDP{"объект":"whatsapp_business_account","вход":[{"идентификатор":"<WHATSAPP_BUSINESS_ACCOUNT_ID> ","изменения":[{"ценить":{"messaging_product":"WhatsApp","метаданные":{"display_phone_number":"16315553601","идентификатор_номера_телефона":"<PHONE_NUMBER_ID> "},"контакты":[{"ва_ид":"16315553602"}],"звонки":[{"идентификатор":"wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh","к":"16315553601","от":"16315553602","событие":"соединять","временная метка":"1671644824","направление":"БИЗНЕС_ИНИЦИИРОВАН","сессия":{"sdp_type":"отвечать","sdp":«<<RFC 8866 SDP> >"}}]},"поле":"звонки"}]}]}Значения веб-перехватчика для "звонки"
| |
| |
| |
| |
| |
| |
| |
| |
веб-перехватчик статуса вызова
Этот веб-перехватчик отправляется при следующих событиях вызова:
Здесь используется структура веб-хуков, аналогичная структуре веб-хуков статуса, применяемых для сообщений Cloud API.
{"объект":"whatsapp_business_account","вход":[{"идентификатор":"<WHATSAPP_BUSINESS_ACCOUNT_ID> ","изменения":[{"ценить":{"messaging_product":"WhatsApp","метаданные":{"display_phone_number":"16315553601","идентификатор_номера_телефона":"<PHONE_NUMBER_ID> ",},"статусы":[{"идентификатор":"wacid.ABGGFjFVU2AfAgo6V","временная метка":"1671644824","тип":"вызов"«статус»:"[ЗВОНОК|ПРИНЯТО|ОТКЛОНЕНО]","recipient_id":"163155536021","biz_opaque_callback_data":"random_string",}]},"поле":"звонки"}]}]}Значения веб-хуков для "статусов"
идентификаторНить
Уникальный идентификатор для вызова
метка времениЦелое число
Временная метка UNIX события веб-перехватчика
recipient_idЦелое число
Номер телефона пользователя WhatsApp, принимающего звонок
статусЦелое число
Текущий статус вызова.
Возможные значения:
ЗВОНОК : Инициированный компанией звонок поступает на абонента.ПРИНЯТО : Звонок, инициированный компанией, принят пользователем.ОТКЛОНЕНО : Звонок, инициированный представителем компании, отклонен пользователем.biz_opaque_callback_dataНить
Произвольная строка, которую ваша компания передает в вызов для отслеживания и регистрации данных.
Возвращается только в том случае, если предоставлено через запросы API Initiate New Call.
Вызов завершения веб-перехватчика
Уведомление через веб-хук отправляется всякий раз, когда вызов завершается по какой-либо причине, например, когда пользователь WhatsApp кладёт трубку или когда компания вызывает
POST-запрос. /вызывает конечную точку с действием завершения или отклонения .{"объект":"whatsapp_business_account","вход":[{"идентификатор":"<WHATSAPP_BUSINESS_ACCOUNT_ID> ","изменения":[{"ценить":{"messaging_product":"WhatsApp","метаданные":{"display_phone_number":"16505553602","идентификатор_номера_телефона":"<PHONE_NUMBER_ID> ",},"звонки":[{"идентификатор":"wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh","к":"16315553601","от":"16315553602","событие":"завершить""направление":"БИЗНЕС_ИНИЦИИРОВАН","biz_opaque_callback_data":"random_string","временная метка":"1671644824",«статус»:[НЕУСПЕШНЫЙЗначения веб-хуков для "вызовов"
идентификаторНить
Уникальный идентификатор для вызова
кЦелое число
Вызываемый номер (звонящий)
отЦелое число
Номер звонящего
событиеЦелое число
Событие вызова, о котором этот веб-перехватчик уведомляет подписчика
метка времениЦелое число
Временная метка UNIX события веб-перехватчика
направлениеНить
Направление совершаемого звонка.
Может содержать либо:
BUSINESS_INITIATED — для звонков, инициированных вашей компанией.USER_INITIATED — для звонков, инициированных пользователем WhatsApp.время началаЦелое число
Временная метка UNIX, указывающая на начало звонка.
Присутствует только тогда, когда на звонок ответил другой абонент.
конец_времениЦелое число
Временная метка UNIX, отражающая момент завершения звонка.
Присутствует только тогда, когда на звонок ответил другой абонент.
продолжительностьЦелое число
Продолжительность разговора в секундах.
Присутствует только тогда, когда на звонок ответил другой абонент.
biz_opaque_callback_dataНить
Произвольная строка, которую ваша компания передает в вызов для отслеживания и регистрации данных.
Возвращается только в том случае, если предоставлено через запрос API Initiate Call или запрос Accept Call.
ошибки.кодЦелое число
Объект
errors присутствует только для неудачных вызовов, если доступна информация об ошибке. Code — это один из кодов ошибок вызова.Обзор SDP и примеры структур
Протокол описания сеанса (SDP) — это текстовый формат, используемый для описания характеристик мультимедийных сеансов, таких как голосовые и видеозвонки, в приложениях для связи в реальном времени. SDP предоставляет стандартизированный способ описания медиапотоков сеанса. Это включает тип медиафайлов, кодеки, протоколы и параметры для установления и управления сеансом.
В контексте WebRTC протокол SDP используется для согласования параметров передачи данных между отправителем и получателем, позволяя им согласовать специфику обмена данными.