Ricevere notifiche push per le modifiche ai servizi dell'account

Puoi iscriverti alle notifiche di ACCOUNT_SERVICE_CHANGE per ricevere avvisi in tempo reale quando le risorse AccountService vengono create, aggiornate o eliminate. Ciò è particolarmente utile per i fornitori di terze parti e le aziende che gestiscono relazioni di servizio con più account.

L'iscrizione alle modifiche ai servizi dell'account ti consente di rilevare immediatamente quando un servizio dell'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 ai servizi dell'account

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

Iscriviti per un account target specifico

La seguente richiesta di esempio consente di iscriversi alle modifiche del servizio dell'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 della sottoscrizione che riceve le notifiche.
  • TARGETACCOUNT_ID: l'identificatore dell'account per il quale vuoi ricevere le notifiche.

Iscriviti per tutti gli account gestiti

I fornitori e le attività che gestiscono più account commerciante possono iscriversi alle modifiche ai servizi 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 identificatore name per la tua sottoscrizione, incluso un ID sottoscrizione univoco:

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

Decodifica i payload delle modifiche ai servizi dell'account

Quando si verifica una modifica al servizio dell'account, l'URI di callback riceve un messaggio con codifica 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 che è stato modificato (ACCOUNT_SERVICE).
  • resource: il nome completo della risorsa del servizio dell'account (ad esempio, accounts/{account}/services/{service}).
  • operation: l'operazione eseguita sulla risorsa:
    • CREATE: è stata creata una nuova relazione di servizio dell'account.
    • UPDATE: la configurazione o l'autorizzazione di un servizio dell'account esistente è stata modificata.
    • DELETE: è stata rimossa una relazione di servizio dell'account.
  • eventTime: il timestamp della generazione dell'evento. Utilizza questo timestamp per garantire l'ordine corretto degli eventi.

Notifiche di modifica del servizio dell'account di prova

Utilizza la seguente richiesta di esempio per verificare se l'endpoint di callback riceve, conferma e decodifica correttamente i messaggi di modifica del servizio dell'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"
}