Mendapatkan notifikasi push untuk perubahan layanan akun

Anda dapat berlangganan notifikasi ACCOUNT_SERVICE_CHANGE untuk menerima pemberitahuan real-time saat resource AccountService dibuat, diperbarui, atau dihapus. Hal ini sangat berguna bagi penyedia pihak ketiga dan bisnis yang mengelola hubungan layanan multi-akun.

Dengan berlangganan perubahan layanan akun, Anda dapat langsung mendeteksi saat layanan akun diusulkan, disetujui, diperbarui, atau dihapus, tanpa melakukan polling pada API.

Sebelum memulai, pastikan URI callback Anda dikonfigurasi sesuai dengan persyaratan yang dijelaskan dalam Ringkasan sub-API Notifikasi.

Berlangganan perubahan layanan akun

Untuk berlangganan perubahan layanan akun, kirim permintaan POST ke resource notificationsubscriptions dengan registeredEvent ditetapkan ke ACCOUNT_SERVICE_CHANGE.

Berlangganan untuk akun target tertentu

Contoh permintaan berikut berlangganan perubahan layanan akun untuk akun penjual tertentu:

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

Ganti kode berikut:

  • ACCOUNT_ID: ID akun yang memiliki langganan dan menerima notifikasi.
  • TARGETACCOUNT_ID: ID akun yang ingin Anda terima notifikasinya.

Berlangganan untuk semua akun terkelola

Penyedia dan bisnis yang mengelola beberapa akun penjual dapat berlangganan perubahan layanan akun di semua akun yang dikelola dengan menetapkan allManagedAccounts: true:

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

Panggilan yang berhasil akan menampilkan ID name untuk langganan Anda, termasuk ID langganan unik:

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

Mendekode payload perubahan layanan akun

Saat terjadi perubahan layanan akun, URI callback Anda akan menerima pesan berenkode base64. Saat didekode, payload akan sesuai dengan format 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"
}

Kolom dan aturan payload

  • account: Akun target yang memiliki entitas layanan yang diubah (accounts/{merchant_id}).
  • managingAccount: Akun yang mengelola akun penjual (accounts/{service_provider_id}).
  • resourceType: Jenis resource yang berubah (ACCOUNT_SERVICE).
  • resource: Nama resource lengkap layanan akun (misalnya, accounts/{account}/services/{service}).
  • operation: Operasi yang dilakukan pada resource:
    • CREATE: Hubungan layanan akun baru telah dibuat.
    • UPDATE: Konfigurasi atau izin layanan akun yang ada diubah.
    • DELETE: Hubungan layanan akun telah dihapus.
  • eventTime: Stempel waktu saat peristiwa dibuat. Gunakan stempel waktu ini untuk memastikan urutan peristiwa yang tepat.

Menguji notifikasi perubahan layanan akun

Gunakan contoh permintaan berikut untuk menguji apakah endpoint callback Anda menerima, mengonfirmasi, dan mendekode pesan perubahan layanan akun dengan benar:

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

Sebagai respons terhadap panggilan ini, URI callback Anda harus menampilkan kode status HTTP yang dapat diterima (seperti 200 OK). Pesan yang didekode memiliki konten berikut:

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