Hak fitur bendera mengubah Dodo Payments menjadi penyimpanan fitur-bendera yang sadar-billing. Lampirkan bendera seperti
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
Di dashboard Dodo Payments Anda, masuk ke Entitlements dan klik + untuk memulai hak baru, lalu pilih Feature Flags.
Name the flag
Berikan Display Name untuk dashboard Anda, Feature ID yang akan diperiksa aplikasi Anda (dashboard menyarankan satu dari nama), dan Description agar tim Anda tahu apa yang dikendalikannya.

Optionally add metadata
Toggle Meta Data untuk melampirkan konfigurasi kunci-nilai — batas, nama tier, kuota — yang disampaikan ke aplikasi Anda bersamaan dengan bendera. Lihat Lampirkan batas dengan metadata.
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.

Konfigurasi yang diperlukan
| Field | Diperlukan | Deskripsi |
|---|---|---|
feature_id | Ya | Pengidentifikasi yang diperiksa aplikasi Anda, mis. advanced_reports. Tidak unik di seluruh hak. |
feature_type | Ya | Jenis kemampuan yang diberikan. Hanya boolean yang didukung hari ini. |
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.
Payload
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.
| Pemicu | Efek |
|---|---|
| Pembayaran satu kali berhasil / langganan menjadi aktif | Hak dibuat dengan status: delivered dan delivered_at diset. |
| Langganan ditahan, dibatalkan, atau kedaluwarsa | Hak dicabut dengan revocation_reason yang cocok. |
| Pengembalian dana pada pembayaran satu kali | Hak dicabut dengan revocation_reason: refund. |
| Langganan pulih (misalnya, dunning berhasil) | Hak yang dicabut dipulihkan ke delivered — hak yang sama id, bidang pencabutan dibersihkan. |
| Pencabutan API manual | Hak dicabut dengan revocation_reason: manual. Tidak dipulihkan secara otomatis saat pembaruan. |
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.
TypeScript
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.
