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 creen, actualicen o borren recursos de AccountService. Esto es particularmente valioso para los proveedores externos y las empresas que administran relaciones de servicio de varias cuentas.

Si te suscribes a los cambios en los servicios de la cuenta, podrás detectar de inmediato cuándo se propone, aprueba, actualiza o quita un servicio de la cuenta, sin sondear la API.

Antes de comenzar, asegúrate de que tu 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 Notifications.

Suscríbete a los cambios en los servicios 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.

Suscríbete a una cuenta objetivo específica

En la siguiente solicitud de ejemplo, se realiza la suscripción a 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.

Suscríbete para todas las cuentas administradas

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

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 cargas útiles de 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 que posee 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 del servicio de la cuenta (por ejemplo, accounts/{account}/services/{service}).
  • operation: Operación realizada en el recurso:
    • CREATE: Se creó una nueva relación de servicio de la cuenta.
    • UPDATE: Se cambió la configuración del servicio o el permiso de una cuenta 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 del 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 debe devolver 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"
}