Ricevere notifiche push per le modifiche ai servizi dell'account

Puoi abbonarti alle notifiche ACCOUNT_SERVICE_CHANGE per ricevere avvisi in tempo reale quando le risorse AccountService vengono create, aggiornate o eliminate. Ciò è particolarmente utile per i fornitori e le attività di terze parti che gestiscono relazioni di servizio multi-account.

L'iscrizione alle modifiche del servizio account ti consente di rilevare immediatamente quando un servizio account viene proposto, approvato, aggiornato o rimosso, senza eseguire il polling dell'API.

Prima di iniziare, assicurati che l'URI di callback sia configurato in base ai requisiti descritti nella Panoramica della sub-API Notifications.

Iscriviti alle modifiche del servizio account

Per abbonarti alle modifiche del servizio account, invia una richiesta POST alla risorsa notificationsubscriptions con registeredEvent impostato su ACCOUNT_SERVICE_CHANGE.

Iscrizione a un account di destinazione specifico

La seguente richiesta di esempio esegue la sottoscrizione alle modifiche del servizio account per un account commerciante specifico:

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

Sostituisci quanto segue:

  • ACCOUNT_ID: l'identificatore dell'account proprietario dell'abbonamento e che riceve le notifiche.
  • TARGETACCOUNT_ID: L'identificatore dell'account su cui vuoi ricevere notifiche.

Iscriviti per tutti gli account gestiti

I fornitori e le attività che gestiscono più account commerciante possono abbonarsi alle modifiche del servizio dell'account in tutti gli account gestiti impostando allManagedAccounts: true:

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

Le chiamate riuscite restituiscono un name identificatore per l'abbonamento, incluso un ID abbonamento univoco:

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

Decodifica dei payload di modifica del servizio account

Quando si verifica una modifica del servizio account, l'URI di callback riceve un messaggio codificato in base64. Una volta decodificato, il payload è conforme 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"
}

Campi e regole del payload

  • account: l'account di destinazione proprietario dell'entità di servizio modificata (accounts/{merchant_id}).
  • managingAccount: l'account che gestisce l'account del commerciante (accounts/{service_provider_id}).
  • resourceType: Il tipo di risorsa modificato (ACCOUNT_SERVICE).
  • resource: il nome completo della risorsa del servizio di assistenza account (ad esempio, accounts/{account}/services/{service}).
  • operation: l'operazione eseguita sulla risorsa:
    • CREATE: È stata creata una nuova relazione di servizio dell'account.
    • UPDATE: Una configurazione o un'autorizzazione del servizio di account esistente è stata modificata.
    • DELETE: È stata rimossa una relazione di servizio dell'account.
  • eventTime: il timestamp di generazione dell'evento. Utilizza questo timestamp per garantire il corretto ordine degli eventi.

Testare le notifiche di modifica del servizio dell'account di test

Utilizza la seguente richiesta di esempio per verificare se l'endpoint di callback riceve, riconosce e decodifica correttamente i messaggi di modifica del servizio account:

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

In risposta a questa chiamata, l'URI di callback deve restituire un codice di stato HTTP accettabile (ad esempio 200 OK). Il messaggio decodificato ha i seguenti contenuti:

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