Możesz subskrybować powiadomienia ACCOUNT_SERVICE_CHANGE, aby otrzymywać alerty w czasie rzeczywistym, gdy zasoby AccountService są tworzone, aktualizowane lub usuwane. Jest to szczególnie przydatne w przypadku dostawców zewnętrznych i firm zarządzających relacjami z klientami w ramach usług obejmujących wiele kont.
Subskrypcja zmian w usługach konta umożliwia natychmiastowe wykrywanie, kiedy usługa konta jest proponowana, zatwierdzana, aktualizowana lub usuwana, bez konieczności odpytywania interfejsu API.
Zanim zaczniesz, upewnij się, że identyfikator URI wywołania zwrotnego jest skonfigurowany zgodnie z wymaganiami opisanymi w omówieniu podrzędnego interfejsu API powiadomień.
Subskrybowanie zmian w usługach na koncie
Aby zasubskrybować zmiany w usłudze konta, wyślij żądanie POST do zasobu
notificationsubscriptions z parametrem registeredEvent ustawionym na
ACCOUNT_SERVICE_CHANGE.
Subskrybowanie konkretnego konta docelowego
Przykładowa prośba o subskrypcję zmian w usłudze konta dla konkretnego konta sprzedawcy:
POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
"registeredEvent": "ACCOUNT_SERVICE_CHANGE",
"targetAccount": "accounts/{TARGETACCOUNT_ID}",
"callBackUri": "https://example.com/callback"
}
Zastąp te elementy:
- ACCOUNT_ID: identyfikator konta, do którego należy subskrypcja i na które są wysyłane powiadomienia.
- TARGETACCOUNT_ID: identyfikator konta, o którym chcesz otrzymywać powiadomienia.
Subskrybuj wszystkie zarządzane konta
Dostawcy i firmy zarządzające wieloma kontami sprzedawcy mogą subskrybować zmiany w usługach kont na wszystkich zarządzanych kontach, ustawiając:allManagedAccounts: true
POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
"registeredEvent": "ACCOUNT_SERVICE_CHANGE",
"allManagedAccounts": true,
"callBackUri": "https://example.com/callback"
}
Wywołania zakończone powodzeniem zwracają identyfikator subskrypcji name, w tym unikalny identyfikator subskrypcji:
{
"name":"accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}",
"registeredEvent": "ACCOUNT_SERVICE_CHANGE",
"allManagedAccounts": true,
"callBackUri": "https://example.com/callback"
}
Dekodowanie ładunków zmian w usłudze konta
Gdy nastąpi zmiana usługi konta, Twój identyfikator URI wywołania zwrotnego otrzyma zakodowaną w formacie base64 wiadomość. Po zdekodowaniu ładunek jest zgodny z formatem 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"
}
Pola i reguły ładunku
account: konto docelowe, do którego należy zmieniony podmiot usługi (accounts/{merchant_id}).managingAccount: konto, które zarządza kontem sprzedawcy (accounts/{service_provider_id}).resourceType: typ zasobu, który uległ zmianie (ACCOUNT_SERVICE).resource: pełna nazwa zasobu usługi konta (np.accounts/{account}/services/{service}).operation: operacja wykonana na zasobie:CREATE: utworzono nową relację konta usługi.UPDATE: istniejąca konfiguracja usługi konta lub uprawnienia zostały zmienione.DELETE: usunięto relację między kontem a usługą.
eventTime: sygnatura czasowa wygenerowania zdarzenia. Użyj tej sygnatury czasowej, aby zapewnić prawidłową kolejność zdarzeń.
Powiadomienia o zmianach w usługach na koncie testowym
Użyj poniższej przykładowej prośby, aby sprawdzić, czy punkt końcowy wywołania zwrotnego prawidłowo odbiera, potwierdza i dekoduje wiadomości o zmianach w usłudze konta:
curl --request POST \
'https://{YOUR_CALLBACK_URI}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--data '{"message":{"data": "ewogICJhY2NvdW50IjogImFjY291bnRzLzEyMzQiLAogICJtYW5hZ2luZ0FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIsCiAgInJlc291cmNlVHlwZSI6ICJBQ0NPVU5UX1NFUlZJQ0UiLAogICJyZXNvdXJjZSI6ICJhY2NvdW50cy8xMjM0L3NlcnZpY2VzLzEyMyIsCiAgIm9wZXJhdGlvbiI6ICJDUkVBVEUiLAogICJldmVudFRpbWUiOiAiMjAyNi0wOC0yNVQxMDowMDowMFoiCn0="}}'W odpowiedzi na to wywołanie identyfikator URI wywołania zwrotnego powinien zwrócić akceptowalny kod stanu HTTP (np. 200 OK). Zdekodowana wiadomość ma następującą treść:
{
"account": "accounts/1234",
"managingAccount": "accounts/5678",
"resourceType": "ACCOUNT_SERVICE",
"resource": "accounts/1234/services/123",
"operation": "CREATE",
"eventTime": "2026-08-25T10:00:00Z"
}