POST /v1/messages/send
Қосылған арна (байланыс желісі) арқылы мәтіндік немесе медиа хабарлама жіберу.
URL
POST https://api.wazzabee.com/api-gateway/v1/messages/send
Тақырыптар (headers)
Authorization: Bearer СІЗДІҢ_API_КІЛТІҢІЗ
Content-Type: application/json
Сұраныс денесінің параметрлері
| Параметр | Түрі | Міндетті | Сипаттама |
|---|---|---|---|
channelId | string (UUID) | ✅ Иә | Арнаның (байланыс желісінің) ID-і. GET /v1/channels арқылы алуға болады |
chatId | string | ✅ Иә | Алушының идентификаторы: телефон нөмірі (WhatsApp үшін) немесе chat_id (Telegram үшін) |
text | string | ✅* | Хабарлама мәтіні. mediaUrl көрсетілмесе, міндетті |
mediaUrl | string (URL) | ✅* | Медиафайлға тікелей сілтеме (сурет, бейне, құжат). text көрсетілмесе, міндетті |
mediaType | string | Шартты түрде | Медиа түрі: photo, video, document, audio. mediaUrl көрсетілгенде міндетті |
caption | string | Жоқ | Медиафайлға жазба. Тек mediaUrl-мен бірге жұмыс істейді |
senderName | string | Жоқ | Автордың аты: хабарламаны кім жібергені. WazzaBee чатында операторларыңызға көрінеді және вебхукта келеді. Клиентке мессенджерде берілмейді |
userId | string | Жоқ | Сіздің CRM-дегі қызметкердің идентификаторы. Оны өзгеріссіз қайтарамыз, бұл қызметкерді WazzaBee-ге тіркеудің қажеті жоқ |
automated | boolean | Жоқ | true: хабарламаны робот, автожауап немесе еске салғыш жіберді. Чатта мұндай хабарлама автоматты деп белгіленеді |
campaignId | string | Жоқ | Сіздің науқан белгіңіз, 100 таңбаға дейін. Жауапта, шығыс хабарламалар, мәртебелер және батырма басу вебхуктарында қайтарылады. Ол бойынша GET /v1/messages сүзуге және кабинетте жіберулерді жүктеп алуға болады: «Коннекторлар» → «API» → «API арқылы жіберулерді жүктеу» |
* text немесе mediaUrl өрістерінің кемінде біреуін көрсету қажет.
Хабарламаны кім жіберді
Әдепкі бойынша API арқылы жіберілген хабарлама чатта қысқа ғана «API арқылы» деп, атсыз белгіленеді. Егер CRM-іңіз авторды білсе, оны беріңіз: хабарламаның астында «API арқылы · Назерке А.» деп көрінеді, ал аты messages_outgoing вебхугында сізге қайтарылады. Осылайша чат лентасынан клиентке қай менеджер жауап бергені түсінікті болады.
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СІЗДІҢ_API_КІЛТІҢІЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"text": "Сәлеметсіз бе! Құжаттарыңыз дайын.",
"senderName": "Назерке Ахметова",
"userId": "manager-42"
}'
senderName және userId орнына author нысанын беруге болады, нәтиже бірдей:
{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"text": "Сәлеметсіз бе!",
"author": { "id": "manager-42", "name": "Назерке Ахметова" }
}
Адам жібермейтін хабарламаларды (роботтар, автожауаптар, еске салғыштар) "automated": true деп белгілеңіз: чатта олар менеджерлердің жауаптарынан бөлек көрінеді.
chatId форматы
| Арна түрі | chatId форматы | Мысал |
|---|---|---|
| WhatsApp (QR) | Ел коды бар телефон нөмірі, + белгісінсіз | 77001234567 |
| WhatsApp (WABA) | Ел коды бар телефон нөмірі, + белгісінсіз | 77001234567 |
| Telegram Bot | Пайдаланушының сандық chat_id-і | 123456789 |
| Telegram Personal | Сандық chat_id немесе @ белгісінсіз username | 123456789 немесе ivanivanov |
Сұраныс мысалдары
Мәтіндік хабарлама
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СІЗДІҢ_API_КІЛТІҢІЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"text": "Сәлеметсіз бе! №1234 тапсырысыңыз беруге дайын."
}'
Жазбасы бар сурет
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СІЗДІҢ_API_КІЛТІҢІЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"mediaUrl": "https://example.com/photo.jpg",
"mediaType": "photo",
"caption": "Тапсырысыңыздың суреті"
}'
Құжат
curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
-H "Authorization: Bearer СІЗДІҢ_API_КІЛТІҢІЗ" \
-H "Content-Type: application/json" \
-d '{
"channelId": "550e8400-e29b-41d4-a716-446655440000",
"chatId": "77001234567",
"mediaUrl": "https://example.com/invoice.pdf",
"mediaType": "document"
}'
Сәтті жауап (202 Accepted)
{
"success": true,
"queued": true,
"queueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"message": "Сообщение поставлено в очередь на отправку"
}
| Өріс | Түрі | Сипаттама |
|---|---|---|
success | boolean | Сәтті болғанда әрқашан true |
queued | boolean | Хабарлама кезекке қабылданды |
queueId | string (UUID) | Жіберу кезегіндегі бірегей ID. Дәл осы queueId жеткізу мәртебелерінің вебхугында (messages_status) және GET /v1/messages-те келеді: ол арқылы хабарламаның жеткенін білесіз |
campaignId | string | null | Науқан белгісі, егер берілген болса |
message | string | Нәтиженің мәтіндік сипаттамасы |
Ықтимал қателер
| Код | Қате | Себебі |
|---|---|---|
400 | Невалидный JSON в теле запроса | Сұраныс денесі дұрыс JSON емес |
400 | Поле channelId обязательно | channelId параметрі берілмеген |
400 | Поле chatId обязательно | chatId параметрі берілмеген |
400 | Нужно указать text или mediaUrl | Мәтін де, медиафайл да берілмеген |
400 | Канал неактивен | Арна өшірілген немесе бапталмаған |
400 | Неподдерживаемый тип канала | Арна түрін API қолдамайды |
403 | Канал не привязан к данной интеграции | Арна осы API кілтіне рұқсат етілгендердің қатарына кірмейді |
404 | Канал не найден или нет доступа | Арна жоқ немесе басқа пайдаланушыға тиесілі |
Іштей қалай жұмыс істейді
- API авторизацияны және арнаға қолжетімділікті тексереді
chatIdбойынша контактіні іздейді (телефон немесе external_id). Табылмаса, жаңасын жасайды- Бар диалогты (conversation) іздейді. Табылмаса, жаңасын жасайды
- Арна түріне қарай жеткізу тәсілін анықтайды
- Хабарламаны
message_queueкезегіне қояды - Фондық процесс хабарламаны кезектен алып, провайдер арқылы жібереді
Жаңа желінің қосылуын тексеру
Жұмыс интеграциясының алдында қысқа тексеруден өтіңіз: ол бір минут алады және алмасу қай жерде тоқтағанын бірден көрсетеді.
- Желі API-де көрінеді. GET /v1/channels сұратып, қажетті желінің жауапта бар екеніне және оның
statusмәніactiveекеніне көз жеткізіңіз. Сынақ кезеңі қабылдау мен жіберуге кедергі келтірмейді. - Шығыс хабарлама.
POST /v1/messages/sendсұранысын өзіңіздің екінші аккаунтыңызға жіберіңіз. ЖауаптаqueueIdкеледі: бұл кезектегі тапсырма нөмірі, жеткізуді растау емес. - Жіберу нәтижесі. Вебхукта
messages_statusжәнеmessages_outgoingоқиғаларына жазылыңыз:queueIdбойынша қорытынды дәл сол жерден келеді. Хабарлама кабинет чаттарында да пайда болады. - Кіріс хабарлама. Желіге басқа аккаунттан жазыңыз. Хабарлама кабинет чаттарында пайда болып,
messages_incomingвебхугына келуі тиіс. Егер кабинетте бос болса, мәселе сіздің кодыңызда емес: қолдау қызметіне жазып, жіберу уақыты мен желі мекенжайын қоса жіберіңіз.
