קבלת התראות פוש על שינויים בשירותים בחשבון

אתם יכולים להירשם להתראות של ACCOUNT_SERVICE_CHANGE כדי לקבל התראות בזמן אמת כשמשאבים של AccountService נוצרים, מתעדכנים או נמחקים. האפשרות הזו שימושית במיוחד לספקי צד שלישי ולעסקים שמנהלים קשרי שירות עם כמה חשבונות.

כשנרשמים לקבלת עדכונים על שינויים בשירותי החשבון, אפשר לזהות מיד מתי שירות חשבון מוצע, מאושר, מעודכן או מוסר, בלי לדגום את ה-API.

לפני שמתחילים, צריך לוודא שכתובת ה-URI של הקריאה החוזרת מוגדרת בהתאם לדרישות שמפורטות בסקירה הכללית של Notifications sub-API.

הרשמה לשינויים בשירותי החשבון

כדי להירשם לשינויים בשירות החשבון, שולחים בקשת POST למשאב notificationsubscriptions עם registeredEvent שמוגדר ל-ACCOUNT_SERVICE_CHANGE.

הרשמה לחשבון יעד ספציפי

הבקשה לדוגמה הבאה נרשמת לשינויים בשירות החשבון של חשבון של מוכר/ת ספציפי:

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: המזהה של החשבון שבבעלותו המינוי ושמקבל את ההתראות.
  • ‫TARGETACCOUNT_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 למינוי, כולל מזהה מינוי ייחודי:

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

פענוח המטען הייעודי (payload) של שינויים בשירות החשבון

כשמתרחש שינוי בשירות החשבון, ה-URI של הקריאה החוזרת מקבל הודעה בקידוד base64. אחרי הפענוח, המטען הייעודי (payload) תואם לפורמט 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"
}

שדות וכללים של מטען ייעודי (payload)

  • ‫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"
}