Payload yang dikirim ke endpoint webhook Anda ketika pemberian hak istimewa dibuat, dikirim, gagal, atau dibatalkan.
Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
| Event | Deskripsi |
|---|---|
entitlement_grant.created | Baris pemberian baru telah dibuat. Statusnya adalah delivered segera untuk kunci lisensi, dan pending untuk setiap integrasi lainnya. |
entitlement_grant.delivered | Pemberian berubah menjadi terkirim. Pelanggan sekarang memiliki akses ke platform yang ditunjuk, file, atau kunci lisensi. |
entitlement_grant.failed | Pengiriman gagal dan tidak dicoba kembali. Periksa error_code dan error_message. |
entitlement_grant.revoked | Akses dicabut. Periksa revocation_reason untuk memahami alasannya. |
EntitlementGrantResponse yang sama seperti yang didokumentasikan dalam skema di bawah.
id yang stabil sejak saat ini, bahkan jika statusnya berubah. Gunakan event ini untuk mencatat bahwa pemenuhan sedang berlangsung.
Untuk kunci lisensi baris dimasukkan langsung dengan status: "delivered" dan delivered_at terisi, sehingga satu event created diikuti tanpa perubahan status lebih lanjut kecuali pemberian dicabut kemudian.
Untuk setiap integrasi lainnya baris tiba dengan status: "pending". Sebuah event delivered atau failed mengikuti setelah pengiriman selesai:
oauth_url yang harus dikunjungi pelanggan untuk menyelesaikan persetujuan. Pemberian tetap pending hingga pelanggan memberikan otorisasi.pending dengan singkat saat panggilan platform berjalan, kemudian berpindah ke delivered.pending ke delivered. Pelanggan sekarang memiliki akses seperti yang dijelaskan oleh pemberian tersebut. Gunakan event ini untuk membuka fitur bergantung dalam sistem Anda sendiri, misalnya untuk menyediakan workspace, mengirim email sambutan khusus, atau menandai “fulfilled”.
Field delivered_at dalam payload menangkap waktu penyelesaian pengiriman. Untuk pemberian yang tiba delivered pada pembuatan, Anda akan menerima event created dan delivered secara berurutan.
error_code dan error_message menjelaskan kegagalan. Penyebab umum termasuk token OAuth dicabut, izin platform ditolak, atau target yang hilang (misalnya, komunitas Discord yang dihapus).
revocation_reason mencatat pemicu.
revocation_reason | Pemicu |
|---|---|
subscription_cancelled | Langganan pelanggan dibatalkan (subscription.cancelled event). |
subscription_on_hold | Langganan ditangguhkan karena gagal perpanjangan (subscription.on_hold). Dapat dipulihkan: percobaan ulang yang berhasil menghasilkan pemberian kembali. |
subscription_expired | Langganan mencapai akhir masa berlakunya (subscription.expired). |
plan_changed | Paket diubah; pemberian lama dicabut sebelum yang baru dikeluarkan (subscription.plan_changed). |
refund | Sebuah pengembalian diproses untuk pembayaran satu kali asli (refund.succeeded). |
manual | Seorang pedagang mencabut pemberian melalui API atau dasbor. Pencabutan manual tidak secara otomatis diberikan kembali pada pembaruan langganan. |
license_key_disabled | Kunci lisensi di belakang pemberian kunci-lisensi dinonaktifkan. Pemberian diaktifkan kembali secara otomatis jika kunci diaktifkan kembali. |
platform_external | Sisi platform dari integrasi tidak sinkron (misalnya, sebuah peran Discord dihapus secara manual, Aplikasi GitHub kehilangan akses repository, atau penelusuran rekonsiliasi mendeteksi target yang hilang). Pemberian tidak diberikan kembali secara otomatis pada pembaruan langganan hingga masalah platform yang mendasar teratasi. |
data selalu merupakan objek EntitlementGrantResponse. Dua jenis integrasi menempelkan objek bersarang tambahan:
license_key disertakan ketika jenis integrasi pemberian adalah license_key. Ini berisi kunci yang dihasilkan, kedaluwarsa, dan penggunaan aktivasi.digital_product_delivery disertakan ketika jenis integrasi adalah digital_files. Ini berisi URL unduhan yang ditandatangani sebelumnya, instructions opsional, dan external_url opsional.null; konfigurasi yang relevan ditangkap dalam pemberian itu sendiri, bukan pemberian.
entitlement_grant.delivered)entitlement_grant.delivered)entitlement_grant.created)entitlement_grant.revoked)entitlement_grant.failed)entitlement_grant.delivered sebelum membuka fitur yang bergantung. Sebuah event payment.succeeded memberi tahu Anda bahwa pembayaran telah diterima; itu tidak memberi tahu Anda bahwa pelanggan memiliki repo GitHub atau peran Discord. Event delivered adalah sumber kebenaran untuk pemenuhan.revocation_reason ke alur retensi. Pencabutan subscription_on_hold biasanya berarti kartu pelanggan gagal dan pembaruan berikutnya akan memberikan kembali akses. Pencabutan manual atau subscription_cancelled adalah disengaja. Perlakukan mereka secara berbeda dalam komunikasi pelanggan.id pemberian sebagai kunci idempoten Anda. Sebuah pemberian tunggal mengeluarkan paling banyak satu event created dan paling banyak satu event terminal (delivered atau failed), dan paling banyak satu event revoked. Pengiriman ulang dari sistem webhook dapat mengulangi acara; hapus duplikasi pada id pemberian plus type.license_key dan digital_product_delivery untuk mengenali jenis integrasi. Payload pemberian itu sendiri tidak membawa jenis integrasi, tetapi tepat satu dari objek bersarang ini terisi untuk pemberian kunci-lisensi dan file digital.oauth_url kepada pelanggan. Event entitlement_grant.created untuk alur pelanggan Discord, GitHub, atau Notion menyertakan oauth_url dan oauth_expires_at. Kirim email kepada pelanggan atau tampilkan dalam aplikasi Anda untuk membuka blokir pengiriman.Detailed view of a single entitlement grant: who it's for, its lifecycle state, and any integration-specific delivery payload.
Identifier of the business that owns the grant.
Timestamp when the grant was created.
Identifier of the customer the grant was issued to.
Identifier of the entitlement this grant was issued from.
Unique identifier of the grant.
Arbitrary key-value metadata recorded on the grant.
Lifecycle status of the grant.
Pending, Delivered, Failed, Revoked Timestamp when the grant was last modified.
Timestamp when the grant transitioned to delivered, when applicable.
Digital-product-delivery payload, present when the entitlement
integration is digital_files.
Machine-readable code reported when delivery failed, when applicable.
Human-readable message reported when delivery failed, when applicable.
License-key delivery payload, present when the entitlement integration
is license_key.
Timestamp when oauth_url stops being valid, when applicable.
Customer-facing OAuth URL for OAuth-style integrations. Populated
during the customer-portal accept flow; null until the customer
completes that step, and on grants for non-OAuth integrations.
Identifier of the payment that triggered this grant, when applicable.
Reason recorded when the grant was revoked, when applicable.
Timestamp when the grant transitioned to revoked, when applicable.
Identifier of the subscription that triggered this grant, when applicable.