Получайте push-уведомления об изменениях в работе учетной записи.

Вы можете подписаться на уведомления ACCOUNT_SERVICE_CHANGE , чтобы получать оповещения в режиме реального времени о создании, обновлении или удалении ресурсов AccountService . Это особенно полезно для сторонних поставщиков и компаний, управляющих многопользовательскими сервисными отношениями.

Подписка на изменения в работе сервиса учетной записи позволяет мгновенно обнаруживать, когда сервис учетной записи предлагается, утверждается, обновляется или удаляется, без необходимости опроса API.

Прежде чем начать, убедитесь, что ваш URI обратного вызова настроен в соответствии с требованиями, описанными в разделе «Обзор под-API уведомлений» .

Подписаться на изменения в работе сервиса учетной записи

Чтобы подписаться на уведомления об изменениях в работе службы учетных записей, отправьте POST запрос к ресурсу notificationsubscriptions , указав в параметре registeredEvent значение ACCOUNT_SERVICE_CHANGE .

Подпишитесь на конкретную целевую учетную запись

Следующий пример запроса подписывается на изменения в работе сервиса для конкретного торгового счета:

POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
  "registeredEvent": "ACCOUNT_SERVICE_CHANGE",
  "targetAccount": "accounts/{TARGETACCOUNT_ID}",
  "callBackUri": "https://example.com/callback"
}

Замените следующее:

  • ACCOUNT_ID : Идентификатор учетной записи, которой принадлежит подписка и которая получает уведомления.
  • TARGETACCOUNT_ID : Идентификатор учетной записи, о которой вы хотите получать уведомления.

Подпишитесь на все управляемые аккаунты.

Провайдеры и компании, управляющие несколькими торговыми счетами, могут подписаться на изменения в обслуживании счетов для всех управляемых счетов, установив параметр allManagedAccounts: true :

POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
  "registeredEvent": "ACCOUNT_SERVICE_CHANGE",
  "allManagedAccounts": true,
  "callBackUri": "https://example.com/callback"
}

В случае успешного выполнения запроса возвращается идентификатор name вашей подписки, включая уникальный идентификатор подписки:

{
  "name":"accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}",
  "registeredEvent": "ACCOUNT_SERVICE_CHANGE",
  "allManagedAccounts": true,
  "callBackUri": "https://example.com/callback"
}

Расшифровка данных об изменениях в службе учетных записей.

При изменении настроек службы учетной записи ваш URI обратного вызова получает сообщение, закодированное в base64. После декодирования полезная нагрузка соответствует формату ResourceChangeMessage :

{
  "account": "accounts/{TARGETACCOUNT_ID}",
  "managingAccount": "accounts/{ACCOUNT_ID}",
  "resourceType": "ACCOUNT_SERVICE",
  "resource": "accounts/{TARGETACCOUNT_ID}/services/{SERVICE_ID}",
  "operation": "CREATE",
  "eventTime": "2026-08-25T10:00:00Z"
}

Поля и правила полезной нагрузки

  • account : Целевой аккаунт, которому принадлежит измененная сущность сервиса ( accounts/{merchant_id} ).
  • managingAccount : Учетная запись, которая управляет учетной записью продавца ( accounts/{service_provider_id} ).
  • resourceType : Тип ресурса, который изменился ( ACCOUNT_SERVICE ).
  • resource : Полное имя ресурса службы учетных записей (например, accounts/{account}/services/{service} ).
  • operation : Операция, выполняемая над ресурсом:
    • CREATE : Создана новая связь между учетной записью и сервисом.
    • UPDATE : Изменена существующая конфигурация службы учетной записи или права доступа.
    • DELETE : Связь между учетной записью и сервисом была разорвана.
  • eventTime : Временная метка момента создания события. Используйте эту временную метку для обеспечения правильного порядка событий.

Уведомления об изменении в службе тестовых учетных записей

Используйте следующий пример запроса, чтобы проверить, правильно ли ваша конечная точка обратного вызова получает, подтверждает и декодирует сообщения об изменении учетной записи в службе:

curl --request POST \
'https://{YOUR_CALLBACK_URI}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--data '{"message":{"data": "ewogICJhY2NvdW50IjogImFjY291bnRzLzEyMzQiLAogICJtYW5hZ2luZ0FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIsCiAgInJlc291cmNlVHlwZSI6ICJBQ0NPVU5UX1NFUlZJQ0UiLAogICJyZXNvdXJjZSI6ICJhY2NvdW50cy8xMjM0L3NlcnZpY2VzLzEyMyIsCiAgIm9wZXJhdGlvbiI6ICJDUkVBVEUiLAogICJldmVudFRpbWUiOiAiMjAyNi0wOC0yNVQxMDowMDowMFoiCn0="}}'

В ответ на этот вызов ваш URI обратного вызова должен вернуть допустимый код состояния HTTP (например, 200 OK ). Декодированное сообщение содержит следующее:

{
  "account": "accounts/1234",
  "managingAccount": "accounts/5678",
  "resourceType": "ACCOUNT_SERVICE",
  "resource": "accounts/1234/services/123",
  "operation": "CREATE",
  "eventTime": "2026-08-25T10:00:00Z"
}