Recibe notificaciones push sobre los cambios en los servicios de la cuenta

Puedes suscribirte a las notificaciones de ACCOUNT_SERVICE_CHANGE para recibir alertas en tiempo real cuando se crean, actualizan o borran recursos de AccountService. Esto es especialmente valioso para los proveedores externos y las empresas que administran relaciones de servicio con varias cuentas.

Si te suscribes a los cambios en el servicio de la cuenta, podrás detectar de inmediato cuando se propone, aprueba, actualiza o quita un servicio de la cuenta, sin necesidad de consultar la API.

Antes de comenzar, asegúrate de que el URI de devolución de llamada esté configurado según los requisitos que se describen en la Descripción general de la sub-API de notificaciones.

Suscríbete a los cambios en el servicio de la cuenta

Para suscribirte a los cambios en el servicio de la cuenta, envía una solicitud POST al recurso notificationsubscriptions con registeredEvent establecido en ACCOUNT_SERVICE_CHANGE.

Cómo suscribirse a una cuenta de destino específica

En la siguiente solicitud de ejemplo, se suscriben los cambios en el servicio de la cuenta para una cuenta de comerciante específica:

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

Reemplaza lo siguiente:

  • ACCOUNT_ID: Es el identificador de la cuenta propietaria de la suscripción y que recibe notificaciones.
  • TARGETACCOUNT_ID: Es el identificador de la cuenta sobre la que deseas recibir notificaciones.

Suscribirse para todas las cuentas administradas

Los proveedores y las empresas que administran varias cuentas de comerciante pueden suscribirse a los cambios en el servicio de la cuenta en todas las cuentas administradas configurando allManagedAccounts: true:

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

Las llamadas exitosas devuelven un identificador name para tu suscripción, incluido un ID de suscripción único:

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

Decodifica las cargas útiles de los cambios en el servicio de cuentas

Cuando se produce un cambio en el servicio de la cuenta, tu URI de devolución de llamada recibe un mensaje codificado en Base64. Cuando se decodifica, la carga útil se ajusta al formato 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"
}

Campos y reglas de carga útil

  • account: Es la cuenta de destino propietaria de la entidad de servicio modificada (accounts/{merchant_id}).
  • managingAccount: Es la cuenta que administra la cuenta del comercio (accounts/{service_provider_id}).
  • resourceType: Es el tipo de recurso que cambió (ACCOUNT_SERVICE).
  • resource: Es el nombre completo del recurso de la cuenta de servicio (por ejemplo, accounts/{account}/services/{service}).
  • operation: Es la operación que se realiza en el recurso:
    • CREATE: Se creó una nueva relación de servicio de cuenta.
    • UPDATE: Se modificó una configuración o un permiso de la cuenta de servicio existente.
    • DELETE: Se quitó una relación de servicio de la cuenta.
  • eventTime: Es la marca de tiempo en la que se generó el evento. Usa esta marca de tiempo para garantizar el orden correcto de los eventos.

Prueba las notificaciones de cambio de servicio de la cuenta

Usa la siguiente solicitud de ejemplo para probar si tu extremo de devolución de llamada recibe, confirma y decodifica correctamente los mensajes de cambio de servicio de la cuenta:

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

En respuesta a esta llamada, tu URI de devolución de llamada debería mostrar un código de estado HTTP aceptable (como 200 OK). El mensaje decodificado tiene el siguiente contenido:

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