Обновить
POST https://api.pushwoosh.com/messaging/v2/update
Заменяет ранее созданное сообщение, идентифицируемое по его message_code, новым определением. Замена является полной, а не частичной (patch): новое определение применяется в точности так, как было отправлено, и message_code не изменяется.
Обновление доступно только пока сообщение находится в состоянии ожидания (pending) — то есть запланировано для будущей отправки и еще не было взято в обработку или на доставку.
Чтобы проверить, находится ли сообщение в состоянии, допускающем обновление, см. раздел Проверка статуса сообщения.
Запрос
Anchor link toАутентифицируйтесь с помощью вашего токена Server API в заголовке Authorization: Token <API_TOKEN>.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
message_code | string | Да | Код сообщения для обновления, возвращаемый методом Notify в поле result.message_code. |
request | object | Да | Полное новое определение сообщения. Структура такая же, как у тела запроса Notify — объект segment или transactional. Проверяется точно так же, как и Notify. |
Пример запроса
Anchor link toПерепланировать сообщение для сегмента и изменить его содержимое:
curl -X POST https://api.pushwoosh.com/messaging/v2/update \ -H "Authorization: Token YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "message_code": "XXXX-XXXXXXXX-XXXXXXXX", "request": { "segment": { "application": "XXXXX-XXXXX", "platforms": ["IOS", "ANDROID"], "code": "active_users", "payload": { "content": { "localized_content": { "en": { "ios": { "body": "Updated message" }, "android": { "body": "Updated message" } } } } }, "schedule": { "at": "2026-05-02T12:00:00Z" }, "message_type": "MESSAGE_TYPE_MARKETING" } } }'Ответ
Anchor link toВ случае успеха возвращает HTTP 200 с результатом обновленного сообщения. message_code не изменяется.
{ "result": { "message_code": "XXXX-XXXXXXXX-XXXXXXXX", "unknown_identifiers": [] }}message_code(string): тот же код, который был передан в запросе.unknown_identifiers(array of string): идентификаторы в новом определении, которые не были найдены, если применимо (см.Notify).
Ошибки
Anchor link toОшибки используют стандартную оболочку ошибок gRPC-Gateway: { "code": ..., "message": ..., "details": [...] }.
| HTTP-статус | Условие |
|---|---|
400 | Отсутствует message_code. |
400 | Новое определение request отсутствует или недействительно (проверяется точно так же, как и в Notify). |
400 | Сообщение не находится в состоянии, допускающем обновление (оно больше не в состоянии ожидания - pending). |
403 | Сообщение принадлежит другому аккаунту. |
404 | Сообщение с указанным message_code не существует. |
500 | Произошла внутренняя ошибка при загрузке сообщения или применении обновления. Повторите запрос. |
Пример
Обновление несуществующего сообщения вернет HTTP 404:
{ "code": 5, "message": "message not found", "details": []}Проверка статуса сообщения
Anchor link toПеред обновлением вы можете проверить, находится ли сообщение в состоянии, допускающем обновление. Помимо просмотра столбца Статус в таблице сообщений в Control Panel (Кампании → Разовые сообщения), вы можете запросить статус программно с помощью messages:list:
- Передайте
message_codeв массивеfilters.messages_codes(вместе с обязательнымfilters.application). - Прочитайте поле
statusсоответствующей записи вitems[].