Możesz zasubskrybować powiadomienia ACCOUNT_SERVICE_CHANGE, aby otrzymywać alerty w czasie rzeczywistym, gdy zasoby AccountService są tworzone, aktualizowane lub usuwane. Jest to szczególnie przydatne dla zewnętrznych dostawców i firm zarządzających relacjami usługowymi na wielu kontach.
Subskrypcja zmian w usługach konta pozwala natychmiast wykryć, 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 podinterfejsu 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 określonego konta docelowego
Przykładowe żądanie poniżej subskrybuje zmiany 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 które otrzymuje powiadomienia.
- TARGETACCOUNT_ID: identyfikator konta, o którym chcesz otrzymywać powiadomienia.
Subskrybowanie wszystkich zarządzanych kont
Dostawcy i firmy zarządzające wieloma kontami sprzedawców 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"
}
Udane wywołania zwracają identyfikator name subskrypcji, 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, identyfikator URI wywołania zwrotnego otrzyma wiadomość zakodowaną w formacie base64. 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, które jest właścicielem zmienionego elementu 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ę usługi konta.UPDATE: Zmieniono konfigurację usługi lub uprawnienia istniejącego konta.DELETE: usunięto powiązanie konta z usługą.
eventTime: sygnatura czasowa wygenerowania zdarzenia. Używaj tej sygnatury czasowej, aby zapewnić prawidłową kolejność zdarzeń.
Testowanie powiadomień o zmianach w usłudze konta
Użyj tego przykładowego żądania, aby sprawdzić, czy punkt końcowy wywołania zwrotnego prawidłowo odbiera, potwierdza i dekoduje wiadomości o zmianie usługi 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"
}