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:- Pada saat pembelian, hak dibuat dan langsung bergerak ke
delivered. Tidak ada fasepending, tidak ada aksi pelanggan, dan tidak ada cara untuk pengiriman gagal. - Hak membawa payload bertipe
feature:{ "feature_type": "boolean", "feature_id": "advanced_reports" }. Aplikasi Anda membacafeature_iduntuk memutuskan apa yang akan dibuka. - Pembatalan, pengembalian dana, atau pencabutan manual memindahkan hak ke
revoked, dan aplikasi Anda melihat bendera itu 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
Hak fitur bendera mengikuti siklus hidup hak standar dengan satu penyederhanaan: tidak ada langkah pengiriman, jadi hak tidak pernah duduk 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— tiba sudahdelivereddengan payloadfeature. Aktifkan fitur.entitlement_grant.delivered— terpicu ketika hak yang sebelumnya dicabut dipulihkan. Aktifkan kembali fitur.entitlement_grant.revoked— akses dicabut. Nonaktifkan fitur dan periksarevocation_reasonuntuk memutuskan pesan Anda.
entitlement_grant.failed untuk fitur bendera — pengiriman terjadi sepenuhnya di dalam Dodo Payments dan tidak dapat gagal.
Contoh: Rencana Pro membuka laporan lanjutan
- Buat bendera.
feature_id: advanced_reportsdengan metadata{ "tier": "pro", "monthly_report_limit": 100 }. - Lampirkan itu ke produk langganan Rencana Pro Anda.
- Pelanggan berlangganan. Dodo Payments membuat grant
delivereddan menembakkanentitlement_grant.created; handler webhook Anda mengaktifkanadvanced_reportsuntuk pelanggan dengan batas 100. - Aplikasi Anda mengatur fitur. Pada muatan dasbor, periksa set fitur yang di-cache (atau panggil
listEntitlementGrants) dan render tab laporan hanya ketikaadvanced_reportsada. - Pelanggan membatalkan. Dodo Payments mencabut grant dan menembakkan
entitlement_grant.revoked; handler Anda menonaktifkan fitur. Jika pelanggan kemudian pulih melalui dunning,entitlement_grant.deliveredmemulihkannya — tidak diperlukan perubahan kode.
Praktik Terbaik
- Gunakan ID fitur snake_case yang stabil. Kode aplikasi Anda memeriksa string ini; mengganti namanya ialah perubahan yang memecahkan di kedua sisi.
- Satu bendera per kemampuan. Lebih suka
advanced_reports+api_accesssebagai dua hak daripada satupro_bundle— pencabutan dan pencampuran rencana tetap bersih. - Mengemudikan status dari webhooks, verifikasi dengan API. Webhooks menjaga database Anda tetap terkini; endpoint daftar adalah sumber kebenaran untuk pekerjaan rekonsiliasi dan cache miss.
- Anggap
revokedsebagai mendesak. Bendera yang dicabut berarti pelanggan tidak lagi membayar untuk fitur tersebut. Periksa pada permintaan berikutnya, bukan sesi berikutnya. - Letakkan batas dalam metadata, bukan dalam kode. Mengubah kuota kemudian hanya memerlukan pengeditan hak — pelanggan baru mengambilnya secara otomatis sementara grant yang ada tetap pada snapshot yang dibeli.