advanced_reports ke produk, dan setiap pelanggan yang membayar mendapatkan hak yang dapat diuji aplikasi Anda melalui API atau disinkronkan dengan webhooks. Tanpa platform eksternal, tanpa OAuth, tanpa langkah pengiriman — hak itu sendiri adalah kemampuan.Apa yang disampaikan
Tidak ada yang meninggalkan Dodo Payments — hak itu adalah yang disampaikan:- Saat pembelian, grant dibuat dan langsung berpindah ke
Delivered. Tidak ada fasePending, tidak ada tindakan pelanggan, dan tidak ada kemungkinan delivery gagal. - Grant membawa payload
featurebertipe:{ "feature_type": "boolean", "feature_id": "advanced_reports" }. Aplikasi Anda membacafeature_iduntuk menentukan apa yang harus dibuka. - Pembatalan, refund, atau pencabutan manual memindahkan grant ke
Revoked, dan aplikasi Anda melihat flag tersebut menghilang.
feature_id adalah pengidentifikasi yang dipilih oleh pedagang, tidak unik di seluruh hak. Dua hak dapat memberikan feature_id yang sama — misalnya, rencana Pro bulanan dan tahunan keduanya memberikan advanced_reports.Membuat fitur bendera
Open Entitlements
Name the flag

Creating a feature flag. The Feature ID is what your application checks; Meta Data attaches limits alongside the flag.
Optionally add metadata
Confirm

The created feature flag. The right pane tracks every customer grant issued from it.
Lampirkan ke produk
Buka produk (atau buat satu), temukan kartu Entitlements, dan klik + untuk melampirkan hak yang ada. Pilih fitur bendera Anda dan klik Selesai.
Attaching the feature flag to a product. One product can deliver multiple entitlements.

The product now includes the feature flag. Every successful purchase or active subscription grants it.
Konfigurasi yang diperlukan
Buat melalui API
Lampirkan batas dengan metadata
Bendera boolean menjawab “apakah pelanggan ini memiliki fitur?”. Metadata menjawab “dengan konfigurasi apa?”. Metadata hak menerima nilai string, integer, angka, dan boolean, dan setiap hak mengambil snapshot beku dari metadata hak pada saat dibuat. Perilaku snapshot adalah yang membuat metadata aman untuk digunakan untuk batas rencana:- Mengedit metadata dari hak nantinya hanya mempengaruhi hak masa depan. Pelanggan menyimpan batas yang mereka beli.
- Snapshot dikembalikan pada setiap hak sebagai bidang
metadata-nya, jadi satu panggilan API memberi Anda bendera dan konfigurasinya.
advanced_reports dengan { "tier": "pro", "monthly_report_limit": 100 } memungkinkan aplikasi Anda membuka dasbor dan menegakkan kuota 100 laporan tanpa pencarian kedua. Jika Anda kemudian menaikkan batas menjadi 250, pelanggan yang ada tetap pada 100 hingga mereka menerima hak baru (misalnya, setelah perubahan rencana).
Periksa fitur pelanggan
Daftar hak fitur-bendera yang diberikan kepada pelanggan dan buat set fitur yang diaktifkan. Endpoint mengembalikan satu baris per hak di seluruh hak, dapat difilter denganintegration_type dan status.
feature diisi hanya pada grant feature_flag; ini adalah null untuk setiap jenis integrasi lainnya. Lihat referensi API List Customer Grants untuk bentuk tanggapan lengkapnya.Siklus hidup
Grant feature flag mengikuti siklus hidup grant standar dengan satu penyederhanaan: tidak ada langkah delivery, sehingga grant tidak pernah berada diPending dan tidak pernah berpindah ke Failed.
Webhooks
Berlangganan keentitlement_grant.* events untuk menyinkronkan bendera ke dalam database Anda sendiri daripada polling:
entitlement_grant.created— sudah tiba dalam statusDelivereddengan payloadfeature. Aktifkan feature tersebut.entitlement_grant.delivered— dijalankan saat grant yang sebelumnya dicabut dipulihkan. Aktifkan kembali feature tersebut.entitlement_grant.revoked— akses dicabut. Nonaktifkan feature tersebut dan periksarevocation_reasonuntuk menentukan pesan yang akan ditampilkan.
entitlement_grant.failed untuk fitur bendera — pengiriman terjadi sepenuhnya di dalam Dodo Payments dan tidak dapat gagal.
Contoh: Rencana Pro membuka laporan lanjutan
- Buat flag.
feature_id: advanced_reportsdengan metadata{ "tier": "pro", "monthly_report_limit": 100 }. - Lampirkan flag tersebut ke produk subscription Pro Plan Anda.
- Pelanggan berlangganan. Dodo Payments membuat grant
Delivereddan menjalankanentitlement_grant.created; webhook handler Anda mengaktifkanadvanced_reportsuntuk pelanggan dengan limit 100. - Aplikasi Anda membatasi akses ke feature. Saat dashboard dimuat, periksa feature set yang di-cache (atau panggil
listEntitlementGrants) dan tampilkan tab laporan hanya jikaadvanced_reportstersedia. - Pelanggan membatalkan subscription. Dodo Payments mencabut grant dan menjalankan
entitlement_grant.revoked; handler Anda menonaktifkan feature tersebut. Jika pelanggan kemudian pulih melalui dunning,entitlement_grant.deliveredmemulihkannya — tidak diperlukan perubahan kode.
Praktik Terbaik
- Gunakan feature id snake_case yang stabil. Kode aplikasi Anda memeriksa string ini; mengganti namanya merupakan breaking change di kedua sisi.
- Satu flag untuk setiap kapabilitas. Lebih baik gunakan
advanced_reports+api_accesssebagai dua entitlement daripada satupro_bundle— pencabutan dan kombinasi plan tetap rapi. - Dorong state dari webhook, verifikasi dengan API. Webhook menjaga database Anda tetap mutakhir; list endpoint adalah sumber kebenaran untuk reconciliation job dan cache miss.
- Perlakukan
Revokedsebagai tindakan segera. Flag yang dicabut berarti pelanggan tidak lagi membayar feature tersebut. Batasi akses pada request berikutnya, bukan session berikutnya. - Tempatkan limit di metadata, bukan di kode. Dengan begitu, perubahan kuota hanya memerlukan pengeditan entitlement — pelanggan baru akan menggunakannya secara otomatis, sementara grant yang sudah ada tetap mempertahankan snapshot yang dibeli.