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

Справочник по API и веб-перехватчикам | Документация для разработчиков

Справочник по API и веб-перехватчикам

Обновлено: 25 ноября 2025 г

Вызов конечных точек API

Настройте или обновите параметры вызовов

Параметры конечной точки
Заполнитель Описание Пример значения
<PHONE_NUMBER_ID>
Целое число
Необходимый
Рабочий телефонный номер, для которого вы обновляете настройки API вызовов.
+12784358810
Подробности параметра: Статус вызова
Если статуса установлен в значение «ВКЛЮЧЕНО» , функции вызова для рабочего номера телефона становятся доступны. Приложения WhatsApp будут отображать значок кнопки вызова как в рабочем чате, так и в профиле рабочего чата.
Если статуса присвоено значение «ОТКЛЮЧЕНО» , функции вызова отключаются значок кнопки вызова не отображается ни в деловом чате, ни в профиле делового чата
Обновление статуса будет обновлять значок кнопки вызова в существующих деловых чатах практически в режиме реального времени, если номер телефона компании есть в контактах пользователя WhatsApp.
В противном случае обновления происходят в режиме реального времени для ограниченного числа пользователей, ведущих диалог с компанией, и в конечном итоге распространяются на все остальные диалоги.
Подробности параметра: Видимость значка кнопки вызова
Если для номера компании включены функции Calling API, вы все равно можете выбрать, отображать ли значок кнопки вызова или нет, используя call_icon_visibility . Примечание: отключение видимости значка кнопки вызова не отключает возможность пользователя WhatsApp совершать незапрошенные звонки в вашу компанию.
Для поддерживаемых опций поведение следующее:
ПО УМОЛЧАНИЮ
Значок кнопки «Вызов» будет отображаться в строке меню чата и на странице информации о компании, что позволит пользователям WhatsApp совершать незапрошенные звонки в компанию.
Скриншот, демонстрирующий значок кнопки вызова, отображаемый в строке меню чата WhatsApp и на странице информации о компании
ОТКЛЮЧИТЬ ВСЕ
Значок кнопки вызова скрыт в строке меню чата и на странице информации о компании, а все остальные точки входа вне чата также отключены. Потребители не могут совершать незапрошенные звонки в компанию.
Ваша компания по-прежнему может отправлять интерактивные сообщения или шаблонные сообщения с помощью кнопки призыва к действию (CTA) через Calling API.
Скриншот, демонстрирующий интерфейс чата WhatsApp со скрытым значком кнопки вызова
Разрешения на обратный вызов
Для звонка пользователю WhatsApp требуется явное разрешение от пользователя. Один из способов получить разрешение на звонок — запросить его у пользователя WhatsApp, когда он звонит в вашу компанию.
Вы можете настроить интерфейс разрешений на звонки таким образом, чтобы он автоматически отображался в клиентском приложении WhatsApp при звонке на номер вашей компании. Пользователь может изменить выбранные разрешения в любое время.
Скриншот диалогового окна запроса разрешения на звонок в WhatsApp
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Ошибки доступа/авторизацииНедействительный статусНеверное расписание для call_hours праздника, указанная в call_hours, уже прошла. параметре call_hours указан недопустимый часовой пояс Параметр weekly_operating_hours в call_hours не может быть пустым.Формат даты в holiday_schedule для call_hours недопустим. графике работы службы поддержки (call_hours) не допускается более 2 записей.Перекрывающиеся графики в call_hours не допускаются.

Получить настройки звонков по номеру телефона

Этот конечный пункт может возвращать информацию о других настройках функций Cloud API.
Параметры конечной точки
Параметр Описание Пример значения
<PHONE_NUMBER_ID>
Целое число
Необходимый

Рабочий телефонный номер, для которого вы получаете настройки API вызовов.
+12784358810
Требуются разрешения приложения
whatsapp_business_management : Для использования API конечными бизнес-клиентами требуется расширенный доступ.
Подробности ответа
Данная конечная точка возвращает настройки API вызовов, а также другую информацию о конфигурации вашего бизнес-номера телефона WhatsApp.
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Ошибки доступа/авторизации

Предварительное принятие звонка

При предварительном принятии входящего вызова вы позволяете установить медиасоединение с вызывающим абонентом, прежде чем пытаться передать медиаконтент через это соединение.
При последующем вызове конечной точки приема вызова передача медиаконтента начинается немедленно, поскольку соединение уже установлено.
Рекомендуется предварительно принимать звонки, поскольку это способствует более быстрому установлению соединения и позволяет избежать проблем с искажением звука .
веб-хука Call Connect есть примерно от 30 до 60 секунд, чтобы принять телефонный звонок. Если компания не отвечает, звонок завершается на стороне пользователя WhatsApp с уведомлением «Не отвечено», и вам отправляется веб-хук завершения вызова
Примечание: Поскольку соединение WebRTC устанавливается до вызова конечной точки Accept Call , убедитесь, что передача медиаданных происходит только после получения ответа 200 OK.
Если передача медиаконтента начинается слишком рано, звонящий пропустит первые несколько слов разговора. Если передача медиаконтента начинается слишком поздно, звонящий услышит тишину.
Параметры тела
Параметр Описание Пример значения
call_id
Нить
Необходимый

Идентификатор телефонного звонка.
При входящих звонках вы получаете идентификатор вызова от веб-перехватчика Call Connect, когда звонок инициирует пользователь WhatsApp.
“wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh”
действие
Нить
Необязательный

Действие, выполняемое в отношении указанного идентификатора вызова.
Значения могут быть связаны | предварительное принятие | принятие | отклонение | завершение
“предварительное_принятие”
сессия
JSON-объект
Необязательный

Содержит тип протокола описания сессии (SDP) и язык описания.
Требуется два значения:
sdp_type — ( Строка ) Обязательный параметр
«Предложение» обозначает предложение SDP
sdp — ( Строка ) Обязательный параметр
Информация SDP устройства на другом конце вызова. SDP должен соответствовать RFC 8866 .
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный идентификатор вызоваНеверный номер телефонаОшибка, связанная с вашим способом оплатыНеверные данные подключения, например, sdp, iceПринять/отклонить уже находящийся в процессе/завершенный/неудачный вызовОшибки доступа/авторизации

Принять звонок

Используйте эту конечную точку для подключения к вызову, указав SDP оператора колл-центра.
веб-хука Call Connect у вас есть примерно от 30 до 60 секунд, чтобы принять телефонный звонок. Если ваша компания не отвечает, звонок завершается на стороне пользователя WhatsApp с уведомлением «Не отвечено», и вам отправляется веб-хук Terminate
Параметры тела
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный идентификатор вызоваНеверный номер телефонаОшибка, связанная с вашим способом оплатыНеверная информация о соединении, например, параметры sdp, ice или другие параметры соединенияПринять/отклонить уже находящийся в процессе/завершенный/неудачный вызовОшибки доступа/авторизацииОтвет SDP, предоставленный в запросе accept, не совпадает с ответом SDP, предоставленным в конечной точке pre-Accept для того же идентификатора вызова.

Отклонить вызов

Используйте этот адрес электронной почты, чтобы отклонить вызов.
веб-хука Call Connect у вас есть примерно от 30 до 60 секунд, чтобы принять телефонный звонок. Если компания не отвечает, звонок завершается на стороне пользователя WhatsApp с уведомлением «Не отвечено», и вам отправляется веб-хук завершения вызова
Параметры тела
Параметр Описание Пример значения
call_id
Нить
Необходимый

Идентификатор телефонного звонка.
При входящих звонках вы получаете идентификатор вызова от веб-перехватчика Call Connect, когда звонок инициирует пользователь WhatsApp.
“wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh”
действие
Нить
Необязательный

Действие, выполняемое в отношении указанного идентификатора вызова.
Значения могут быть связаны | предварительное принятие | принятие | отклонение | завершение
"отклонять"
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный идентификатор вызоваНеверный номер телефонаПринять/отклонить уже находящийся в процессе/завершенный/неудачный вызовОшибки доступа/авторизации

Инициировать звонок

Используйте этот конечный пункт для инициирования звонка пользователю WhatsApp, указав номер телефона и предложение WebRTC-звонка.
Параметры тела
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный номер телефонаОшибки доступа/авторизацииОшибки проверки формата запроса, например, информация о соединении, SDP, ICEОшибки проверки SDP

Завершить вызов

Используйте эту конечную точку для завершения активного вызова.
в медиатракте присутствует RTCP BYE
Когда пользователь WhatsApp завершает вызов, вам не нужно звонить на эту конечную точку. После успешного завершения вызова вам будет отправлен веб-хук завершения вызова
Параметры тела
Параметр Описание Пример значения
call_id
Нить
Необходимый

Идентификатор телефонного звонка.
При входящих звонках вы получаете идентификатор вызова от веб-перехватчика Call Connect, когда звонок инициирует пользователь WhatsApp.
“wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh”
действие
Нить
Необходимый

Действие, выполняемое в отношении указанного идентификатора вызова.
Значения могут быть связаны | предварительное принятие | принятие | отклонение | завершение
«прекратить»
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный идентификатор вызоваНеверный номер телефонаПользователь WhatsApp уже завершил звонокВызов с отклонением уже выполняетсяОшибки доступа/авторизации

Получить текущее состояние разрешения на вызов

Используйте этот конечный пункт, чтобы получить состояние разрешений на вызов для корпоративного телефонного номера, к которому привязан один номер телефона пользователя WhatsApp.
Параметры запроса
Параметр Описание Пример значения
<PHONE_NUMBER_ID>
Нить
Необходимый

Номер телефона компании, для которого вы запрашиваете разрешения.
+18762639988
<CONSUMER_WHATSAPP_ID>
Целое число
Необходимый

Номер телефона пользователя WhatsApp, у которого вы запрашиваете разрешение на совершение звонков.
+13057765456
Параметры отклика
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный номер телефонаЕсли номер телефона потребителя недоступен для звонка, API ответит сообщением no_permission .Ошибки доступа/авторизации.Достигнут лимит запросов. Максимально 5 запросов к API в течение 1 секунды.Для корпоративного телефонного номера функция звонков отключена.

Обзор SDP и примеры структур SDP

Протокол описания сеанса (SDP) — это текстовый формат, описывающий характеристики мультимедийных сеансов, таких как голосовые и видеозвонки, в приложениях для связи в реальном времени. SDP предоставляет стандартизированный способ передачи информации о медиапотоках сеанса, включая тип медиафайлов, кодеки, протоколы и другие параметры, необходимые для установления и управления сеансом.
В контексте WebRTC протокол SDP используется для согласования параметров передачи данных между отправителем и получателем, позволяя им согласовать специфику обмена данными.

Примеры структур SDP, инициированные бизнесом

Пример структуры предложения SDP
v = 0 o =- 3626166318745852955 2 IN IP4 127.0 . 0.1 s =- t = 0 0 a = group : BUNDLE 0 a = extmap - allow - mixed a = msid - semantic : WMS d8b26053 - 4474 - 4eb7 - b3c3 - c93d6c8c9b2e m = audio 9 UDP / TLS / RTP / SAVPF 111 63 9 0 8 110 126 c = IN IP4 0.0 . 0.0 a = rtcp : 9 IN IP4 0.0 . 0.0 a = ice - ufrag : 4g1c a = ice - pwd : qY / Bb + jQzg5ICn6X4fhJQetk a = ice - options : trickle a = fingerprint : sha - 256 35 : 47 : 24 : 24 : 9F : 93 : C4 : 3E : DB : 37 : 7F : BB : ED : F8 : 20 : B5 : AD : AC : DC : 35 : C2 : 7D : 67 : EE : 6C : 35 : 54 : DF : A6 : 00 : 5C : 4A a = setup : actpass a = mid : 0 a = extmap : 1 urn : ietf : params : rtp - hdrext : ssrc - audio - level a = extmap : 2 http : //www.webrtc.org/experiments/rtp-hdrext/abs-send-time a = extmap : 3 http : //www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a = extmap : 4 urn : ietf : params : rtp - hdrext : sdes : mid a = sendrecv a = msid : d8b26053 - 4474 - 4eb7 - b3c3 - c93d6c8c9b2e 5b4d3d96 - ea9b - 44a8 - 87e6 - 11a1ad21a3bc a = rtcp - mux a = rtpmap : 111 opus / 48000 / 2 a = rtcp - fb : 111 transport - cc a = fmtp : 111 minptime = 10 ; useinbandfec = 1 a = rtpmap : 63 red / 48000 / 2 a = fmtp : 63 111 / 111 a = rtpmap : 9 G722 / 8000 a = rtpmap : 0 PCMU / 8000 a = rtpmap : 8 PCMA / 8000 a = rtpmap : 110 telephone - event / 48000 a = rtpmap : 126 telephone - event / 8000 a = ssrc : 2220762577 cname : w / zwpg3jXNiTFTdZ a = ssrc : 2220762577 msid : d8b26053 - 4474 - 4eb7 - b3c3 - c93d6c8c9b2e 5b4d3d96 - ea9b - 44a8 - 87e6 - 11a1ad21a3bc
Пример структуры ответа SDP
v = 0 o =- 741807839102053725 2 IN IP4 127.0 . 0.1 s =- t = 0 0 a = group : BUNDLE 0 a = extmap - allow - mixed a = msid - semantic : WMS 798a9670 - c0d6 - 47a8 - 925e-5f082ef4d8a0 a = ice - lite m = audio 3482 UDP / TLS / RTP / SAVPF 111 9 0 8 110 126 c = IN IP4 31.13 . 65.130 a = rtcp : 9 IN IP4 0.0 . 0.0 a = кандидат : 2754936280 1 udp 2113937151 31.13 . 65.130 3482 typ host generation 0 network - cost 50 ufrag JHqAXFH4HcAY / 8 a = candidate : 1581496399 1 udp 2113939711 2a03 : 2880 : f211 : d1 : face : b00c : 0 : 699c 3482 typ host generation 0 network - cost 50 ufrag JHqAXFH4HcAY / 8 a = ice - ufrag : JHqAXFH4HcAY / 8 a = ice - pwd : dNNMmR8wUcGezvfBZOO0Qgcwl2m86GP / a = ice - options : trickle a = fingerprint : sha - 256 9C : 97 : 5C : 4C : A9 : BE : 9E : 2F : 06 : 94 : F5 : BB : 38 : 2C : A1 : 29 : B5 : 69 : B8 : FA : 94 : 10 : 56 : 1D : 0B : 5D : 80 : 28 : C1 : FD : F0 : F6 a = setup : active a = mid : 0 a = extmap : 1 urn : ietf : params : rtp - hdrext : ssrc - audio - level a = extmap : 2 http : //www.webrtc.org/experiments/rtp-hdrext/abs-send-time a = extmap : 3 http : //www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a = sendrecv a = rtcp - mux a = rtpmap : 111 opus / 48000 / 2 a = rtcp - fb : 111 transport - cc a = fmtp : 111 minptime = 10 ; useinbandfec = 1 a = rtpmap : 9 G722 / 8000 a = rtpmap : 0 PCMU / 8000 a = rtpmap : 8 PCMA / 8000 a = rtpmap : 110 telephone - event / 48000 a = rtpmap : 126 telephone - event / 8000 a = ssrc : 3407645770 cname : bg8KQDoIk2UJa6sf a = ssrc : 3407645770 msid : 798a9670 - c0d6 - 47a8 - 925e-5f082ef4d8a0 audio #nuxVMf9EAJX a = ssrc : 3407645770 mslabel : 798a9670 - c0d6 - 47a8 - 925e-5f082ef4d8a0 a = ssrc : 3407645770 label : audio #nuxVMf9EAJX

Образцы структур SDP, инициированные пользователем

Пример структуры предложения SDP
v = 0 o =- 7602563789789945080 2 IN IP4 127.0 . 0.1 s =- t = 0 0 a = group : BUNDLE audio a = msid - semantic : WMS 6932bc1c - db1a - 4abe - b437 - 0c4168be8a13 a = ice - lite m = audio 40012 UDP / TLS / RTP / SAVPF 111 126 c = IN IP4 31.13 . 65.60 a = rtcp : 9 IN IP4 0.0 . 0.0 a = candidate : 1972637320 1 udp 2113937151 31.13 . 65.60 40012 typ host generation 0 network - cost 50 ufrag 6k2qP1R6kBfI / 2 a = candidate : 1652262791 1 udp 2113939711 2a03 : 2880 : f211 : cf : face : b00c : 0 : 6443 40012 typ host generation 0 network - cost 50 ufrag 6k2qP1R6kBfI / 2 a = ice - ufrag : 6k2qP1R6kBfI / 2 a = ice - pwd : UApvJw3NcwFRDvIMKdM0vWCdlXah25E9 a = fingerprint : sha - 256 1B : B6 : 6B : 40 : A5 : 0B : 8C : 75 : 0D : 8C : CB : 90 : 2F : 99 : 74 : 1E : 26 : 45 : AE : AF : 45 : C1 : 51 : 60 : 8F : 73 : C9 : 2D : 10 : 6D : 8A : 88 a = setup : actpass a = mid : audio a = extmap : 1 urn : ietf : params : rtp - hdrext : ssrc - audio - level a = extmap : 2 http : //www.webrtc.org/experiments/rtp-hdrext/abs-send-time a = extmap : 3 http : //www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a = sendrecv a = rtcp - mux a = rtpmap : 111 opus / 48000 / 2 a = rtcp - fb : 111 transport - cc a = fmtp : 111 minptime = 10 ; useinbandfec = 1 a = rtpmap : 126 telephone - event / 8000 a = ssrc : 4208138518 cname : gAXq2V9TKltrnapv a = ssrc : 4208138518 msid : 6932bc1c - db1a - 4abe - b437 - 0c4168be8a13 audio #R5wfXFcdmT6 a = ssrc : 4208138518 mslabel : 6932bc1c - db1a - 4abe - b437 - 0c4168be8a13 a = ssrc : 4208138518 label : audio #R5wfXFcdmT6
Пример структуры ответа SDP
v = 0 o =- 2822644248144643933 2 IN IP4 127.0 . 0.1 s =- t = 0 0 a = group : BUNDLE audio a = msid - semantic : WMS eb909cf0 - 87f0 - 4358 - a4c9 - 7861680d9431 m = audio 9 UDP / TLS / RTP / SAVPF 111 126 c = IN IP4 0.0 . 0.0 a = rtcp : 9 IN IP4 0.0 . 0.0 a = ice - ufrag : X1ho a = ice - pwd : 7fJSbV2N5qWiA5QiDKwK3vuh a = fingerprint : sha - 256 2E : 35 : 9F : 21 : 9E : 63 : 72 : E5 : 42 : 74 : 76 : 2D : B3 : 70 : F7 : CB : 24 : 14 : 9B : 14 : 52 : 71 : 05 : 48 : DA : 4D : 67 : 31 : 09 : 58 : 2A : ED a = setup : active a = mid : audio a = extmap : 1 urn : ietf : params : rtp - hdrext : ssrc - audio - level a = extmap : 2 http : //www.webrtc.org/experiments/rtp-hdrext/abs-send-time a = extmap : 3 http : //www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a = sendrecv a = rtcp - mux a = rtpmap : 111 opus / 48000 / 2 a = rtcp - fb : 111 transport - cc a = fmtp : 111 minptime = 10 ; useinbandfec = 1 a = rtpmap : 126 telephone - event / 8000 a = ssrc : 330833028 cname : EDc1JutBl8rwHQc2 a = ssrc : 330833028 msid : eb909cf0 - 87f0 - 4358 - a4c9 - 7861680d9431 ea478c16 - d9f7 - 493c - 8cec - 19bfac750a36

Пример веб-перехватчика для подключения к вызову

Вызов веб-перехватчика