Исходящий webhook · JSON · HTTPS
Событие ушло. Квитанция осталась.
Webhook — это автоматическая отправка данных после выбранного события. 320apps передаст сведения о заявке вашей системе: подготовьте получателя, отправьте один тест и проверьте обе стороны.
Исходящие webhook доступны с тарифа «Автоматизация» · 1 000 ₽/мес. Нужны публичный HTTPS-адрес и доступ владельца организации. Настройку получателя выполняет ваш разработчик; отправку и журнал берёт на себя 320apps.ЛЕНТА ДОСТАВКИ№ 320–01
- Событиеновая заявка
- ПодписьHMAC-SHA-256
- Получательваш HTTPS
- КвитанцияHTTP 2xx
- Путь
- один адрес
- Контроль
- тест + журнал
Выберите повод
Три рабочих события. Не больше, чем нужно.
Каждая лишняя отправка — лишние данные и лишняя обработка у получателя.
- 01Новая заявка
application.createdСоздать запись у получателя.
- 02Статус изменён
application.status_changedПродвинуть уже известную запись.
- 03Данные изменены
application.updatedОбновить нужные поля.
Одна линия · пять контрольных точек
Не включайте поток раньше контрольной доставки.
На каждом шаге есть признак готовности. Если его нет, переходить дальше рано.
- 01АДРЕС И СОБЫТИЯ
Назначьте одного получателя.
Выберите «Своя система (JSON)», укажите отдельный публичный HTTPS-адрес и отметьте только нужные события.
- Адрес не содержит логин, пароль или секрет.
- Локальные и частные сети не принимаются.
- Настройка действует для всей организации.
- Снимите отметку «Включить после сохранения» до первого теста.
ПроверьтеПолучатель доступен извне и принадлежит вам.
Форма настройки в тестовом кабинете: адрес получателя и события. Секрет скрыт самим интерфейсом. - 02ПЕЧАТЬ ОТПРАВИТЕЛЯ
Проверьте подпись до разбора JSON.
Раскройте «Дополнительные настройки» и задайте отдельный секрет в поле «Секрет подписи». 320apps вычислит HMAC-SHA-256 по точному необработанному телу запроса.
X-320apps-Signature— подпись тела: шестнадцатеричная строка без префиксаsha256=.X-320apps-Event— вид события.- Сравнивайте подписи способом с постоянным временем выполнения.
ПроверьтеПри изменении хотя бы одного байта подпись перестаёт совпадать.
КОНТРОЛЬ ПЕЧАТИ
- Алгоритм
- HMAC-SHA-256
- Сообщение
- исходное тело
- Ключ
- секрет настройки
- Сравнение
- постоянное время
- 03ПРИЁМ ДАННЫХ
Сохраните — потом отвечайте.
Верните любой ответ
2xxтолько после того, как событие принято. При повторе сопоставляйтеevent,application.idи фактическое состояние заявки. Отдельного стабильногоdelivery_idсейчас нет. Для необратимых действий ведите свой журнал обработанных состояний.ПроверьтеПовторная обработка не создаёт вторую запись.
Пример структуры · данные вымышлены { "event": "application.created", "occurred_at": "2026-09-15T16:30:00Z", "organization_id": 1001, "bot_id": 2001, "application": { "id": 3001, "status": "new", "owner_id": null, "source": "site", "contact": { "name": "Иван Тестовый", "phone": "+7 900 000-00-00", "email": "visitor@example.test" }, "created_at": "2026-09-15T16:29:58Z", "updated_at": "2026-09-15T16:29:58Z" }, "changes": {}, "meta": { "application_url": "https://example.test/applications/3001" } } - 04КОНТРОЛЬНАЯ ОТПРАВКА
Отправьте ровно один тест.
После сохранения нажмите «Проверить». Придёт отдельное событие
application.test, а не рабочая заявка. Подготовьте его обработку у получателя: тест может создать там запись. Используйте безопасную тестовую среду и не запускайте оплату или сообщения клиентам.- Сверьте HTTP-ответ.
- Найдите тест у получателя.
- Не повторяйте вслепую при задержке экрана.
Готово здесь320apps получил ответ 2xx; внешний результат всё равно проверяется отдельно.
Пример тестовой доставки: получатель ответил HTTP 200. Это подтверждает связь, но не сохранение записи в вашей системе. - 05ЖУРНАЛ
Сверьте ответ и время.
Журнал показывает событие, получателя, результат, HTTP-ответ, время и номер попытки. Он помогает найти разрыв, но не заменяет журнал вашей системы.
ПроверьтеОдна контрольная отправка оставила одну понятную строку. После проверки записи у получателя откройте настройку, отметьте «Включить после сохранения» и сохраните её.
Тестовая отправка в журнале: сравните время, получателя и HTTP-ответ со своей системой.
Как читать ответ
Не каждый сбой надо повторять.
Принято
Получатель ответил на запрос. Возвращайте 2xx после сохранения события, а дальнейшую обработку проверьте отдельно.
Временная ошибка
320apps повторит попытку с паузой. Получатель должен выдержать повтор.
Остановиться и исправить
Перенаправления не выполняются; такие ответы автоматически не повторяются.
Повторять вслепую —
способ получить дубль.
Если линия оборвалась
Идите от квитанции к причине.
- 01Нет строки
Проверьте, сохранён ли адрес и выбрано ли это событие.
- 02Нет HTTP
Проверьте DNS, публичный HTTPS и доступность получателя.
- 03Получен 4xx
Сверьте подпись, тело и правила вашего обработчика.
- 04Есть 2xx, нет записи
Ищите ошибку после преждевременного ответа у получателя.
Короткая справка
Пять вопросов перед включением.
Webhook и REST API — одно и то же?
Нет. Webhook сам сообщает вашей системе о выбранном событии. REST API нужен, когда ваша система инициирует разрешённый запрос к 320apps.
Можно указать обычный HTTP-адрес?
Нет. Получатель должен быть доступен по публичному HTTPS-адресу. Локальные, частные и зарезервированные адреса блокируются.
Секрет подписи обязателен?
Поле находится в «Дополнительных настройках». Оно необязательное, но для своей системы мы рекомендуем его заполнить. Получатель сможет проверить HMAC-SHA-256 в заголовке X-320apps-Signature до обработки данных.
Может ли одно событие прийти повторно?
Да. Для защиты от дублей сопоставляйте event, application.id и фактическое состояние заявки. Отдельный стабильный delivery_id сейчас не передаётся. Уже обработанное состояние не должно повторно запускать необратимые действия.
Что означает успешный тест?
320apps получил ответ 2xx от указанного адреса и записал результат в журнал. Дополнительно проверьте, что ваша система действительно сохранила и правильно обработала тест.
Линия готова к проверке
Назначьте адрес. Запечатайте. Отправьте один тест.
Включайте рабочие события только после записи у получателя и понятной строки в журнале 320apps.


