Перейти к содержанию

Обновить

POST https://api.pushwoosh.com/messaging/v2/update

Заменяет ранее созданное сообщение, идентифицируемое по его message_code, новым определением. Замена является полной, а не частичной (patch): новое определение применяется в точности так, как было отправлено, и message_code не изменяется.

Обновление доступно только пока сообщение находится в состоянии ожидания (pending) — то есть запланировано для будущей отправки и еще не было взято в обработку или на доставку.

Чтобы проверить, находится ли сообщение в состоянии, допускающем обновление, см. раздел Проверка статуса сообщения.

Запрос

Anchor link to

Аутентифицируйтесь с помощью вашего токена Server API в заголовке Authorization: Token <API_TOKEN>.

ПолеТипОбязательноОписание
message_codestringДаКод сообщения для обновления, возвращаемый методом Notify в поле result.message_code.
requestobjectДаПолное новое определение сообщения. Структура такая же, как у тела запроса Notify — объект segment или transactional. Проверяется точно так же, как и Notify.

Пример запроса

Anchor link to

Перепланировать сообщение для сегмента и изменить его содержимое:

Terminal window
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[].

Связанные материалы

Anchor link to