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.
Entitlements mengubah pembayaran yang berhasil atau langganan aktif menjadi akses nyata: kunci lisensi di kotak masuk pelanggan Anda, peran Discord, repositori GitHub, template Notion, tautan remix Framer, undangan obrolan Telegram, atau bundel file yang dapat diunduh. Dodo Payments menerbitkan, melacak, dan mencabut akses tersebut secara otomatis seiring perubahan siklus pembayaran.

Apa itu Entitlements?
Entitlement adalah definisi yang dapat digunakan kembali dari sesuatu yang Anda berikan kepada pelanggan: kunci lisensi Pro, peran Discord “Patrons”, akses ke repositori GitHub pribadi Anda, bundel e-book yang dapat diunduh. Anda melampirkan entitlements ke produk, dan Dodo Payments menangani sisanya. Ketika seorang pelanggan membeli produk, Dodo Payments membuat grant, penerbitan entitlement untuk satu pelanggan. Grant bergerak melalui beberapa status:pending saat pengiriman sedang berlangsung, delivered setelah pelanggan memiliki akses, failed jika pengiriman tidak dapat diselesaikan, dan revoked ketika akses dicabut.
Integrasi yang Tersedia
Dodo Payments mengirimkan setiap entitlement melalui integrasi khusus. Pilih integrasi yang sesuai dengan apa yang Anda jual.License Keys
Hasilkan kunci lisensi unik dengan batas aktivasi dan kedaluwarsa. Terbaik untuk perangkat lunak, plugin, dan CLI.
Digital Files
Kirimkan file yang dapat diunduh (e-book, template, media) dengan URL unduhan yang telah ditandatangani dan instruksi opsional.
Discord
Beri pelanggan peran di server Discord Anda saat mereka membeli. Cabut otomatis saat pembatalan.
GitHub
Tambahkan pelanggan sebagai kolaborator ke repositori pribadi pada tingkat izin yang Anda pilih.
Telegram
Tambahkan pelanggan ke obrolan atau saluran Telegram pribadi setelah pembelian.
Framer
Buka tautan remix template Framer untuk pelanggan yang membayar.
Notion
Salin template Notion ke ruang kerja pelanggan saat pembelian.
Bagaimana Grant Bekerja
Grant digerakkan oleh acara pembayaran dan langganan yang sama yang sudah Anda terima sebagai webhook. Anda tidak perlu memanggil grant API sendiri untuk pembelian. Dodo Payments membuat dan mencabut grant secara otomatis berdasarkan siklus pembayaran yang mendasarinya.Siklus Hidup Grant
Created
A grant dibuat ketika pembayaran selesai atau langganan menjadi aktif. Kunci lisensi langsung beralih ke
delivered. Setiap integrasi lainnya dimulai di pending. Integrasi berbasis OAuth (Discord, GitHub, Notion) menyertakan oauth_url yang harus dikunjungi pelanggan untuk menyelesaikan persetujuan. Integrasi langsung dari platform (Telegram, Framer, File Digital) hanya sebentar berada di pending sambil menunggu pengiriman, kemudian beralih ke delivered.Delivered
Setelah pengiriman selesai (kunci lisensi dihasilkan, peran diberikan, akses repositori diberikan, tautan file diselesaikan, OAuth selesai), grant bergerak ke
delivered dan delivered_at ditetapkan.Failed
Jika panggilan integrasi mengembalikan kesalahan yang tidak dapat diulang (token OAuth dicabut, izin ditolak, file tidak lagi ada), grant bergerak ke
failed. Bidang error_code dan error_message menangkap alasannya.Perilaku Grant berdasarkan Acara
| Event | Perilaku |
|---|---|
payment.succeeded (pembayaran satu kali) | Keluarkan satu grant untuk setiap entitlement yang dilampirkan. |
payment.succeeded (pembayaran yang terhubung langganan) | Tidak ada operasi. Grant digerakkan oleh acara langganan di bawah. |
subscription.active | Keluarkan grant untuk setiap entitlements yang dilampirkan yang belum memiliki satu. Keluarkan kembali setiap grant yang sebelumnya dicabut untuk langganan yang sama. |
subscription.renewed | Tidak ada operasi. Grant yang ada tetap ada saat perpanjangan. |
subscription.on_hold | Cabut semua grant yang dikirimkan dan tertunda. revocation_reason: subscription_on_hold. |
subscription.cancelled | Cabut semua. revocation_reason: subscription_cancelled. |
subscription.expired | Cabut semua. revocation_reason: subscription_expired. |
subscription.plan_changed | Cabut semua grant saat ini, kemudian keluarkan grant untuk entitlements rencana baru. revocation_reason: plan_changed. |
refund.succeeded (pembayaran satu kali) | Cabut grant untuk pembayaran tersebut. revocation_reason: refund. |
| Manual API revoke | Cabut dengan revocation_reason: manual. Pencabutan manual tidak secara otomatis dikeluarkan ulang saat perpanjangan langganan. |
| License key disabled | Untuk grant dengan kunci lisensi, menonaktifkan kunci yang mendasari mencabut grant dengan revocation_reason: license_key_disabled. Grant secara otomatis diaktifkan kembali jika kunci diaktifkan ulang. |
| Platform drift detected | Jika sisi platform dari integrasi keluar dari sinkronisasi (peran Discord dihapus secara manual, Aplikasi GitHub kehilangan akses ke repositori, atau proses rekonsiliasi mendeteksi target yang hilang), grant dicabut dengan revocation_reason: platform_external. Tidak secara otomatis dikeluarkan ulang saat perpanjangan langganan hingga masalah platform yang mendasari diselesaikan. |
Grant yang digerakkan oleh langganan adalah idempoten per
(entitlement, customer, subscription); pembaruan dan reaktivasi tidak membuat grant duplikat. Grant satu kali adalah idempoten per (entitlement, customer, payment).Buat entitlement pertama Anda
Open Entitlements
Pergi ke Entitlements di dasbor Dodo Payments Anda dan klik + untuk membuat entitlement baru.
Pick an integration
Pilih jenis integrasi: License Key, Digital Files, Discord, GitHub, Telegram, Framer, atau Notion. Untuk integrasi platform, hubungkan akun Anda terlebih dahulu jika Anda belum melakukannya.
Configure delivery
Isi kolom yang spesifik untuk integrasi. Misalnya, GitHub meminta repositori dan tingkat izin; Discord meminta server dan peran opsional; License Key meminta batas aktivasi dan kedaluwarsa.

Lampirkan Entitlements ke Produk
Buka produk, perluas Advanced Settings → Entitlements & Credits, dan pilih entitlements yang harus dikirimkan saat produk dibeli. Satu produk dapat mengirimkan beberapa entitlements sekaligus. Misalnya, rencana Pro dapat mencakup kunci lisensi, akses GitHub, dan peran Discord.
Pengalaman Pelanggan
Email dan pusat pelanggan
Pelanggan menerima email pengiriman setelah pembelian yang berisi kunci lisensi, tautan unduhan, tautan undangan OAuth, atau undangan platform, mana yang berlaku untuk entitlements pada produk. Rincian yang sama tetap tersedia tanpa batas dari Customer Portal di bawah riwayat pesanan mereka.Pengiriman berbasis OAuth
Akses pelanggan Discord, GitHub, dan Notion memerlukan pelanggan untuk mengotorisasi Dodo Payments untuk memberikan akses kepada mereka. Grant ini tetap dalam statuspending sampai pelanggan menyelesaikan alur OAuth menggunakan tautan dari email mereka atau portal pelanggan. Setelah mereka mengotorisasi, grant bergerak ke delivered dan akses platform segera disediakan.
Pencabutan
Grant yang dicabut dihapus di tingkat platform: peran Discord dihapus, kolaborator GitHub dihapus, kunci lisensi dinonaktifkan. Pelanggan melihat perubahan ini tercermin di portal pelanggan.Kelola Grant
Buka salah satu entitlement dari dasbor untuk melihat grant-nya. Panel detail grant menunjukkan total grant, filter status, informasi pelanggan, tanggal pengiriman, dan tindakan pencabutan. Anda juga dapat mengelola grant secara programatis:Manajemen API
Create Entitlement
Buat entitlement baru dari jenis integrasi apa pun.
List Entitlements
Daftar entitlements dengan penyaringan berdasarkan jenis integrasi.
Get Entitlement
Ambil entitlement dan konfigurasi yang diselesaikan.
Update Entitlement
Perbarui nama, deskripsi, atau konfigurasi integrasi.
Delete Entitlement
Hapus entitlement secara lembut; grant yang ada tidak terpengaruh.
Upload File
Unggah file ke entitlement File Digital (hingga 100 MB).
List Grants
Daftar semua grant untuk sebuah entitlement dengan filter status dan pelanggan.
Revoke Grant
Cabut satu grant secara manual.
Webhook
Dodo Payments memicu empat acara webhook untuk siklus hidup grant. Berlangganan ke acara-acara ini untuk menjaga aplikasi Anda tetap sinkron dengan apa yang dapat diakses setiap pelanggan.| Event | Dipicu ketika |
|---|---|
entitlement_grant.created | Grant baru dibuat. Grant kunci lisensi tiba di delivered; setiap integrasi lainnya tiba di pending dan beralih ke delivered setelah panggilan platform berhasil (atau, untuk integrasi berbasis OAuth, setelah pelanggan mengotorisasi). |
entitlement_grant.delivered | Grant beralih ke dikirim. Pelanggan sekarang memiliki akses. |
entitlement_grant.failed | Grant tidak dapat dikirimkan. Periksa error_code dan error_message. |
entitlement_grant.revoked | Akses telah dicabut. Periksa revocation_reason. |
Entitlement Grant Webhook Payloads
Lihat skema payload lengkap, contoh acara, dan referensi
revocation_reason.Praktik Terbaik
- Gunakan satu entitlement per saluran pengiriman. Jangan bagikan satu entitlements Discord di seluruh produk dengan maksud peran yang berbeda; buat satu per peran untuk pencabutan yang bersih.
- Uji terlebih dahulu dalam mode uji. Buat entitlement, lampirkan ke produk uji, jalankan checkout, dan pantau transisi grant melalui
pending → delivered. Konfirmasi bahwa pembatalan langganan uji mencabut grant. - Dengarkan
entitlement_grant.delivered, bukanpayment.succeeded. Pembayaran bisa berhasil sebelum penyelesaian selesai (terutama untuk alur OAuth). Tunggu acara dikirim sebelum membuka fitur yang bergantung pada sistem Anda sendiri. - Anggap
entitlement_grant.failedsebagai tindakan yang bisa dilakukan. Grant yang gagal berarti pelanggan membayar tetapi tidak mendapatkan akses. Tampilkan ini ke tim dukungan Anda atau aktifkan regrant. - Petakan
revocation_reasonke alur retensi Anda. Pencabutansubscription_on_holddapat dipulihkan (pelanggan mungkin memperbarui kartu mereka). Pencabutanmanualbersifat disengaja. Perlakukan mereka berbeda dalam komunikasi pelanggan.