Передача статусу сповіщення
POST /api/push/notifications/{guid}/status
X-Push-App-Key: <ключ застосунку>
Content-Type: application/json
{ "status": "delivered", "occurredAt": "2026-08-07T12:44:03.219Z" }
Поля
| Поле | Примітки |
|---|---|
status | delivered або seen. |
occurredAt | Коли подія сталася на пристрої, ISO-8601. |
guid береться з data.guid у тілі повідомлення.
Це не телеметрія
Каскад чекає на delivered, перш ніж перейти на SMS або Viber. Відсутність статусу означає, що клієнт заплатить за повідомлення, яке користувач уже прочитав на екрані.
Надсилайте delivered щойно повідомлення отримано — і з foreground-, і з background-обробника — та seen при тапі на сповіщення.
Дедуплікуйте за guid
Одне й те саме повідомлення може дійти кількома шляхами, а локально перемальоване сповіщення приходить ще раз через слухач expo-notifications. Дедуплікуйте за data.guid перед відправкою статусу.
Звідки брати guid
Повідомлення надсилаються data-only, тому всі поля приходять усередині data:
- Android:
remoteMessage.data["guid"] - iOS:
userInfo["guid"]
Якщо статуси перестали надходити після зміни на бекенді
На Android повідомлення з блоком notification малює система, і воно не доходить до JS, доки на нього не натиснуть — тобто delivered не надсилається ніколи. Саме тому сервіс шле data-only. Якщо статуси зникли після зміни на бекенді, перевірте, чи не повернувся блок notification у payload.