接收帳戶服務異動的推播通知

您可以訂閱ACCOUNT_SERVICE_CHANGE通知,在AccountService資源建立、更新或刪除時收到即時快訊。這對第三方供應商和管理多帳戶服務關係的商家來說,特別有價值。

訂閱帳戶服務變更後,您就能立即偵測到帳戶服務何時提議、核准、更新或移除,不必輪詢 API。

開始前,請確認回呼 URI 已根據通知子 API 總覽中說明的規定設定。

訂閱帳戶服務變更

如要訂閱帳戶服務變更,請將 registeredEvent 設為 ACCOUNT_SERVICE_CHANGE,然後對 notificationsubscriptions 資源傳送 POST 要求。

訂閱特定目標帳戶

下列範例要求會訂閱特定商家帳戶的帳戶服務變更:

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

更改下列內容:

  • ACCOUNT_ID:擁有訂閱項目並接收通知的帳戶 ID。
  • TARGETACCOUNT_ID:您要接收通知的帳戶 ID。

為所有受管理帳戶訂閱

如果供應商和商家管理多個商家帳戶,可以設定 allManagedAccounts: true,訂閱所有受管理帳戶的帳戶服務異動:

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

如果呼叫成功,會傳回訂閱項目的 name ID,包括專屬訂閱項目 ID:

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

解碼帳戶服務變更酬載

帳戶服務變更時,回呼 URI 會收到以 base64 編碼的訊息。解碼後,酬載會符合 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"
}

酬載欄位和規則

  • account:擁有已變更服務實體的目標帳戶 (accounts/{merchant_id})。
  • managingAccount:管理商家帳戶 (accounts/{service_provider_id}) 的帳戶。
  • resourceType:變更的資源類型 (ACCOUNT_SERVICE)。
  • resource:帳戶服務的完整資源名稱 (例如 accounts/{account}/services/{service})。
  • operation:對資源執行的作業:
    • CREATE:已建立新的帳戶服務關係。
    • UPDATE:現有帳戶服務設定或權限已變更。
    • DELETE:帳戶服務關係已移除。
  • eventTime:事件產生時的時間戳記。使用這個時間戳記,確保事件順序正確。

測試帳戶服務變更通知

請使用下列範例要求進行測試,確認回呼端點是否能正確接收、確認及解碼帳戶服務變更訊息:

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

為回應這項呼叫,回呼 URI 應傳回可接受的 HTTP 狀態碼 (例如 200 OK)。解碼後的訊息包含下列內容:

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