Recevoir des notifications push pour les modifications apportées aux services de compte

Vous pouvez vous abonner aux notifications ACCOUNT_SERVICE_CHANGE pour recevoir des alertes en temps réel lorsque des ressources AccountService sont créées, mises à jour ou supprimées. Cela est particulièrement utile pour les fournisseurs tiers et les entreprises qui gèrent des relations de service multi-comptes.

En vous abonnant aux modifications apportées aux services de compte, vous pouvez détecter immédiatement quand un service de compte est proposé, approuvé, mis à jour ou supprimé, sans interroger l'API.

Avant de commencer, assurez-vous que votre URI de rappel est configuré conformément aux exigences décrites dans la présentation de la sous-API Notifications.

S'abonner aux modifications des services du compte

Pour vous abonner aux modifications du service de compte, envoyez une requête POST à la ressource notificationsubscriptions avec registeredEvent défini sur ACCOUNT_SERVICE_CHANGE.

S'abonner pour un compte cible spécifique

L'exemple de requête suivant s'abonne aux modifications du service de compte pour un compte marchand spécifique :

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

Remplacez les éléments suivants :

  • ACCOUNT_ID : identifiant du compte propriétaire de l'abonnement et qui reçoit les notifications.
  • TARGETACCOUNT_ID : identifiant du compte pour lequel vous souhaitez recevoir des notifications.

S'abonner pour tous les comptes gérés

Les fournisseurs et les entreprises qui gèrent plusieurs comptes marchands peuvent s'abonner aux modifications des services de compte pour tous les comptes gérés en définissant allManagedAccounts: true :

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

Les appels réussis renvoient un identifiant name pour votre abonnement, y compris un ID d'abonnement unique :

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

Décoder les charges utiles de modification du service de compte

Lorsqu'un changement de service de compte se produit, votre URI de rappel reçoit un message encodé en base64. Une fois décodée, la charge utile est conforme au format 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"
}

Champs et règles de charge utile

  • account : compte cible propriétaire de l'entité de service modifiée (accounts/{merchant_id}).
  • managingAccount : compte qui gère le compte du marchand (accounts/{service_provider_id}).
  • resourceType : type de ressource qui a changé (ACCOUNT_SERVICE).
  • resource : nom complet de la ressource du compte de service (par exemple, accounts/{account}/services/{service}).
  • operation : opération effectuée sur la ressource :
    • CREATE : une nouvelle relation de service de compte a été créée.
    • UPDATE : une configuration ou une autorisation de compte de service existante a été modifiée.
    • DELETE : une relation de service de compte a été supprimée.
  • eventTime : code temporel de la génération de l'événement. Utilisez ce code temporel pour vous assurer que les événements sont classés dans le bon ordre.

Tester les notifications de modification du service de compte

Utilisez l'exemple de requête suivant pour vérifier si votre point de terminaison de rappel reçoit, confirme et décode correctement les messages de modification du service de compte :

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

En réponse à cet appel, votre URI de rappel doit renvoyer un code d'état HTTP acceptable (tel que 200 OK). Le message décodé présente le contenu suivant :

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