Документация Whatsapp API

Прием и отправка сообщений через HTTP-запросы для работы с Whatsapp - работа с чатами, контактами, группами.

Попробовать бесплатно

5 дней пробный период

Whatsapp APIWhatsapp API

Описание WhatsApp API для сервиса Wappi

Методы отправки сообщений

Вы можете отправить сообщение в Whatsapp синхронной или асинхронной командой. Асинхронные методы выполняют запросы с постановкой в очередь, в ответе придет сообщение о постановке в очередь и id задачи. Синхронные методы отправления сообщений выполняются сразу и позволяют получить в ответе результат запроса.

Особенности API

Токен авторизации передается в заголовке Authorization HTTP запроса. Profile_id передается query параметром в каждом запросе.

Безопасность

API WhatsApp работает на основе протокола WhatsApp WEB и исключает бан. Несмотря на это, стоит быть осторожным с анти-спам системой WhatsApp, подробнее об этом в Вопросах.

Тестирование API

Чтобы протестировать API необходимо авторизоваться. Для этого на данной странице нажмите Authorize, в появившемся окне в поле Value вставьте ваш токен api. Токен можно найти в дашборде на странице вашего профиля.

Коллекция Postman

Для удобства тестирования нашего API можете воспользоваться коллекцией Postman. Там же можно найти примеры реализованных методов на разных языках программирования.

Методы API

Типы уведомлений Webhook

Webhook на статус отправленного сообщения

Есть несколько статусов отправленных сообщений - pending, delivered, read, undelivered, temporary ban, error.


{
  "messages": [
    {
      "wh_type": "authorization_status",
      "profile_id": "71ad40e9-b023",
      "status": "offline",
      "reason": "logout from api",
      "phone": "79502041990",
      "timestamp": "2023-11-13T17:00:02.57417156+03:00",
      "time": 1699884002
    }
  ]
}
                            
Свернуть

Webhook на статус профиля

Есть несколько статусов профиля - online, offline


{
  "messages": [
    {
      "wh_type": "authorization_status",
      "profile_id": "71ad40e9-b023",
      "status": "offline",
      "reason": "logout from api",
      "phone": "79502041990",
      "timestamp": "2023-11-13T17:00:02.57417156+03:00",
      "time": 1699884002
    }
  ]
}
                            
Свернуть

Webhook на статус приложения


{
  "messages": [
    {
      "wh_type": "authorization_status",
      "profile_id": "71ad40e9-b023",
      "status": "offline",
      "reason": "logout from api",
      "phone": "79502041990",
      "timestamp": "2023-11-13T17:00:02.57417156+03:00",
      "time": 1699884002
    }
  ]
}
                            
Свернуть

Webhook на входящее сообщение


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "6qw54f68-71eq",
      "id": "3A945DD9CDD3016BE11B",
      "body": "Ответ на сообщение",
      "type": "chat",
      "from": "79115576366@c.us",
      "to": "79602041988@c.us",
      "senderName": "Flood",
      "chatId": "79115576366@c.us",
      "timestamp": "2024-10-21T11:27:57+03:00",
      "time": 1729499277,
      "caption": null,
      "from_where": "phone",
      "contact_name": "Максим",
      "is_forwarded": false,
      "isReply": true,
      "is_edited": false,
      "stanza_id": "3A9DA038CF9A2CD87E66",
      "is_me": false,
      "chat_type": "dialog",
      "thumbnail": "https://s3.wappi.pro/wapi-uploads30/6d154f68-71ec/tumb_79115576367.jpg?X-Amz-",
      "picture": "https://s3.wappi.pro/wapi-uploads30/6d154f68-71ec/pic_79115576367.jpg?X-Amz",
      "wappi_bot_id": "",
      "is_deleted": false,
      "is_bot": false,
      "reply_message": {
        "id": "3A9DA038CF9A2CD87E66",
        "body": "https://wapi-uploads24.storage.yandexcloud.net/bitrix24/6d154f68-71ec/79bf",
        "type": "image",
        "chatId": "",
        "timestamp": "2024-10-21T11:21:33+03:00",
        "time": 0,
        "caption": "Картинка",
        "file_name": "79bf5bb7-ab23-455c-bf5e-42daca555529.jpg",
        "contact_name": ""
      }
    }
  ]
}
                            
Свернуть

Webhook на входящее изображение

Обратите внимание, все изображения отдаются в формате base64.


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3EB0CC6709A45F7311FD",
      "body": "/9j/4AAQSkZNQ5JDP/9k=",
      "type": "image",
      "from": "79991940200@c.us",
      "to": "79662041999@c.us",
      "senderName": "Александр Жукин",
      "chatId": "79991940200@c.us",
      "timestamp": "2023-12-05T12:56:45+03:00",
      "time": 1701770205,
      "caption": "Это картинка",
      "from_where": "phone",
      "mimetype": "image/jpeg",
      "contact_name": "Саня Жукин",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на входящее видео

Обратите внимание, что все видео отдаются в формате base64.


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3EB09F87B9CE13FA0667",
      "body": "AAAAIGZ0eXBtcDQyAAS0vA==",
      "type": "video",
      "from": "79991940200@c.us",
      "to": "79662041999@c.us",
      "senderName": "Александр Жукин",
      "chatId": "79991940200@c.us",
      "timestamp": "2023-12-05T13:01:31+03:00",
      "time": 1701770491,
      "caption": "Это видео",
      "from_where": "phone",
      "mimetype": "video/mp4",
      "contact_name": "Саня Жукин",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на входящий документ или файл

Обратите внимание, что все файлы и документы отдаются в формате base64.


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3EB08F8DF5768B401716",
      "body": "JVBERi0xLjMJUVPRgo=",
      "type": "document",
      "from": "79991940200@c.us",
      "to": "79662041999@c.us",
      "senderName": "Александр Жукин",
      "chatId": "79991940200@c.us",
      "timestamp": "2023-12-05T13:02:19+03:00",
      "time": 1701770539,
      "caption": "Это документ",
      "title": "Это документ",
      "from_where": "phone",
      "file_name": "1.pdf",
      "mimetype": "application/pdf",
      "contact_name": "Саня Жукин",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на входящее аудио

Обратите внимание, что все файлы аудио отдаются в формате base64.


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3EB0C341916D5111CC9A",
      "body": "SUQzAwAAAAAHdAgDA==",
      "type": "ptt",
      "from": "79991940200@c.us",
      "to": "79662041999@c.us",
      "senderName": "Александр Жукин",
      "chatId": "79991940200@c.us",
      "timestamp": "2023-12-05T13:03:11+03:00",
      "time": 1701770591,
      "from_where": "phone",
      "mimetype": "audio/mpeg",
      "contact_name": "Саня Жукин",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на входящую геолокацию


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3EB0A6A4730776B10FA3",
      "type": "location",
      "from": "79991940200@c.us",
      "to": "79662041999@c.us",
      "senderName": "Александр Жукин",
      "chatId": "79991940200@c.us",
      "timestamp": "2023-12-05T13:04:03+03:00",
      "time": 1701770643,
      "from_where": "phone",
      "location": {
        "latitude": 55.750446,
        "longitude": 37.617494,
        "description": "улица Торцева, 23А, Северодвинск, Архангельская область, 164520"
      },
      "contact_name": "Саня Жукин",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
  
                            
Свернуть

Webhook на входящий контакт


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3EB0FB7CD60F1986B594",
      "body": "BEGIN:VCARD\nVERSION:3.0\nN:;Имя контакта;;;\nFN:Имя
      контакта\nTEL;type=CELL;type=VOICE;waid=79662041999:+79662041999\nEND:VCARD",
      "type": "vcard",
      "from": "79991940200@c.us",
      "to": "79662041999@c.us",
      "senderName": "Александр Жукин",
      "chatId": "79991940200@c.us",
      "timestamp": "2023-12-05T13:04:34+03:00",
      "time": 1701770674,
      "from_where": "phone",
      "contact": {
        "display_name": "Имя контакта",
        "phone": "+79662041999"
      },
      "contact_name": "Саня Жукин",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
  
                            
Свернуть

Webhook на входящее голосовое сообщение


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3AD57A50F73CFC3B6DED",
      "body": "T2dnUwACAAAAAAAJvNyUA=",
      "type": "ptt",
      "from": "79005576333@c.us",
      "to": "79662041999@c.us",
      "senderName": "Flood",
      "chatId": "79005576333@c.us",
      "timestamp": "2023-12-05T13:07:01+03:00",
      "time": 1701770821,
      "from_where": "phone",
      "mimetype": "audio/ogg; codecs=opus",
      "contact_name": "Максим",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на входящий звонок

Поле "type": "incoming_call" - входящий звонок; "missed_call" - пропущенный звонок; "call_terminate" - завершение звонка; "call_accept" - звонок принят.


{
  "messages": {
      "wh_type": "incoming_call",
      "type": "incoming_call",
      "contact": {
        "Found": true,
        "FirstName": "Саня Жукин",
        "FullName": "Саня Жукин",
        "PushName": "Александр Жукин",
        "BusinessName": ""
      },
      "profile_id": "81ad40e9-b023",
      "number": "71008888888",
      "timestamp": "2023-07-17T17:40:34+03:00",
      "time": 1689604834,
  }
}
                            
Свернуть

Webhook на входящую реакцию


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3A786E94948BFBED8A27",
      "body": "👍",
      "type": "reaction",
      "from": "79005576333@c.us",
      "to": "79662041999@c.us",
      "senderName": "Flood",
      "chatId": "79005576333@c.us",
      "timestamp": "2023-12-05T13:08:08+03:00",
      "time": 1701770888,
      "from_where": "phone",
      "contact_name": "Максим",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "3EB053D6EAE268F0FB4D42",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на входящее сообщение с кнопками


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "11a3e331-c546",
      "id": "3EB0402A83A59D74852E",
      "body": "contentText:\"Текст сообщения 1\" footerText:\"\" buttons:{buttonId:\"1\" buttonText:{displayText:\"button text 1\"} type:RESPONSE} buttons:{buttonId:\"2\" buttonText:{displayText:\"button text 2\"} type:RESPONSE} buttons:{buttonId:\"3\" buttonText:{displayText:\"button text 3\"} type:RESPONSE} headerType:TEXT text:\"Сообщение с кнопками\"",
      "type": "buttons",
      "from": "79995551122@c.us",
      "to": "79224448855@c.us",
      "senderName": "Дмитрий",
      "chatId": "79995551122@c.us",
      "timestamp": "2022-12-09T16:30:44+03:00",
      "time": 1670592644,
      "from_where": "api"
    }
  ]
}
                            
Свернуть

Webhook на входящее сообщение со списком


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "11a3e331-c546",
      "id": "3EB002BA170199D9F8B2",
      "body": "title:\"Заголовок сообщения со списком\" description:\"Это сообщение со списком\" buttonText:\"НАЖМИ на меня\" listType:SINGLE_SELECT sections:{title:\"Заголовок меню\" rows:{title:\"Выбор 1\" description:\"\" rowId:\"id1\"} rows:{title:\"Выбор 2\" description:\"\" rowId:\"id2\"} rows:{title:\"Выбор 3\" description:\"Можно добавлять описание для секции\" rowId:\"id3\"} rows:{title:\"Выбор 4\" description:\"Можно добавлять эмоджики\" rowId:\"aIfkv6\"} rows:{title:\"Выбор 5\" description:\"Текст\" rowId:\"test-4\"} rows:{title:\"Выбор 6\" description:\"Еще текст\" rowId:\"test-6\"} rows:{title:\"Выбор 7\" description:\"Больше текста\" rowId:\"test-7\"} rows:{title:\"Выбор 8\" description:\"Еще больше текста\" rowId:\"test-8\"}} contextInfo:{disappearingMode:{initiator:CHANGED_IN_CHAT}}",
      "type": "list",
      "from": "79995551122@c.us",
      "to": "79224448855@c.us",
      "senderName": "Дмитрий",
      "chatId": "79995551122@c.us",
      "timestamp": "2022-12-09T17:00:05+03:00",
      "time": 1670594405,
      "from_where": "api"
    }
  ]
}
                            
Свернуть

Webhook на входящий опрос


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "71ad40e9-b023",
      "id": "3AD7644514D8B64B5E4F",
      "body": "Вопрос",
      "type": "poll",
      "from": "79005576333@c.us",
      "to": "79662041999@c.us",
      "senderName": "Flood",
      "chatId": "79005576333@c.us",
      "timestamp": "2023-12-05T13:09:34+03:00",
      "time": 1701770974,
      "from_where": "phone",
      "contact_name": "Максим",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog",
      "poll_options": [
        "Ответ 1",
        "Ответ 2"
      ]
    }
  ]
}
                            
Свернуть

Webhook на нажатие кнопки


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "11a3e331-c546",
      "id": "3A3CB510072A59DB53D2",
      "body": "button text 1",
      "type": "buttons_response",
      "from": "79995551122@c.us",
      "to": "79224448855@c.us",
      "senderName": "Дмитрий",
      "chatId": "79995551122@c.us",
      "timestamp": "2022-12-09T16:43:22+03:00",
      "time": 1670593402,
      "from_where": "phone",
      "button_response": true,
      "selectedButtonId": "1"
    }
  ]
}
                            
Свернуть

Webhook на нажатие списка


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "11a3e331-c546",
      "id": "3ADC84A9812D3B3E35F3",
      "body": "id2",
      "type": "list_response",
      "from": "79995551122@c.us",
      "to": "79224448855@c.us",
      "senderName": "Ми",
      "chatId": "79224448855@c.us",
      "timestamp": "2022-12-09T17:04:20+03:00",
      "time": 1670594660,
      "from_where": "phone",
      "list_response": true,
      "selected_list_id": "id2"
    }
  ]
}
                            
Свернуть

Webhook на голосование в опросе


{
  "messages": [
    {
      "wh_type": "incoming_message",
      "profile_id": "501d59e1-0b06",
      "id": "3A8B4D1C2EF20C6F895C",
      "type": "poll_vote",
      "from": "79602041920@c.us",
      "to": "79217304433@c.us",
      "senderName": "Ми",
      "chatId": "79602041920@c.us",
      "timestamp": "2023-05-22T12:53:34+03:00",
      "time": 1684749214,
      "from_where": "phone",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "3EB0F7485D1C02A618F3",
      "poll_options": [
        "да",
        "нет",
        "не знаю",
        "где я?"
      ],
      "selected_poll_variant": [
        "да"
      ]
    }
  ]
}
                            
Свернуть

Webhook на исходящее сообщение API


{
  "messages": [
    {
      "wh_type": "outgoing_message_api",
      "profile_id": "71ad40e9-b023",
      "id": "3EB0220348D7366EE7067B",
      "body": "тест",
      "type": "chat",
      "from": "79662041999@c.us",
      "to": "79005576333@c.us",
      "senderName": "Сергей",
      "chatId": "79005576333@c.us",
      "timestamp": "2023-12-05T13:10:21+03:00",
      "time": 1701771021,
      "from_where": "api",
      "contact_name": "Максим",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "task_id": "faede625-0f03-46e9-8f56-dae5a89887df",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Webhook на исходящее сообщение с телефона


{
  "messages": [
    {
      "wh_type": "outgoing_message_phone",
      "profile_id": "71ad40e9-b023",
      "id": "3ABB9BBF9ACB92858E87",
      "body": "Тест",
      "type": "chat",
      "from": "79662041999@c.us",
      "to": "79005576333@c.us",
      "senderName": "Сергей",
      "chatId": "79005576333@c.us",
      "timestamp": "2023-12-05T13:11:24+03:00",
      "time": 1701771084,
      "from_where": "phone",
      "contact_name": "Максим",
      "is_forwarded": false,
      "isReply": false,
      "is_edited": false,
      "stanza_id": "",
      "chat_type": "dialog"
    }
  ]
}
                            
Свернуть

Частые вопросы

Можно ли получить бан за использование сервиса?

Получить бан за использование нашего сервиса нельзя, это абсолютно безопасно - все выглядит как Whatsapp Web. Но мы не несем ответственности за неправомерное использование WhatsApp или нарушение его правил. Согласно политике WhatsApp, можно получить бан за подозрительную автоматизацию работы с мессенджером, а также за использование массовой рассылки и рассылку спама.

Можно ли производить массовые рассылки?

Технически вы можете использовать Wappi для массовой рассылки, у нас нет ограничений на количество отправленных сообщений. Но мы не рекомендуем делать рассылку нежелательных сообщений или спама, иначе есть риск быть заблокированным алгоритмами антиспам системы WhatsApp

Не нашли ответ на свой вопрос?

Наша поддержка всегда готова помочь

Telegram

Тарифы Whatsapp API

Бесплатный пробный период 5 дней

  • 1 месяц
  • 3 месяца-10%
  • 6 месяцев-15%
  • 12 месяцев-30%

Whatsapp

700 ₽
600 ₽700 ₽
550 ₽700 ₽
500 ₽700 ₽

за 1 профиль в месяц

Профиль это один подключенный аккаунт мессенджера. В рамках одного профиля можно менять номера.
  • API:
    • Whatsapp API
  • Сервисы:
    • Агрегатор мессенджеров
    • Чат-боты
    • Рассылка сообщений
    • ИИ-ассистент
    • Виджет на сайт
  • Готовые интеграции:
    • Битрикс24
    • amoCRM
    • и все остальные
  • Безлимит на сообщения

Скидки при оплате 10+ профилей

Начать бесплатно

Что еще предлагаем?

Становитесь техническим партнером и внедряйте мессенджеры в свою CRM или сервис с эксклюзивными условиями:

  • Скидки от объема
  • Подневная тарификация
  • Постоплата
  • Индивидуальные условия

Подробнее здесь

Telegram