Pending dan menunggu Anda memasukkan nilai kunci dari sistem Anda sendiri, vendor pihak ketiga, atau kumpulan kode yang terbatas.
Pada akhirnya Anda akan memiliki:
- Produk dengan hak Kunci Lisensi yang diatur ke pemenuhan
manual. - Sebuah webhook listener yang mendeteksi ketika pelanggan menunggu kunci.
- Panggilan pemenuhan yang mengirim kunci dan memberi tahu pelanggan secara otomatis.
License Keys overview
Siklus hidup kunci lisensi lengkap dan pengaturan
fulfillment_mode.Fulfill License Key Grant API
Referensi API untuk endpoint yang Anda panggil untuk mengirim kunci.
Cara Kerjanya
Pemenuhan manual hanya mengubah langkah penerbitan. Aktivasi, validasi, deaktivasi, kadaluarsa, dan pencabutan berperilaku persis seperti kunci yang dihasilkan secara otomatis setelah dikirimkan.Prasyarat
Untuk mengikuti panduan ini Anda memerlukan:- Akun pedagang Dodo Payments.
- Kunci API Anda (
DODO_PAYMENTS_API_KEY) dan kunci rahasia webhook dari dashboard. Lihat panduan pembuatan kunci API. - Sebuah endpoint backend yang dapat menerima webhooks.
Gunakan
https://test.dodopayments.com dan kredensial test-mode saat membangun. Beralih ke https://live.dodopayments.com dan kunci live saat Anda masuk ke produksi.Langkah 1 — Buat Hak Kunci Lisensi dalam Mode Manual
Sebuah hak adalah definisi yang dapat digunakan kembali dari apa yang Anda kirim. Buat hak Kunci Lisensi dan aturfulfillment_mode ke manual.
- Dashboard
- API
1
Open Entitlements
Pergi ke Hak di dashboard Anda dan klik + untuk membuat hak baru.
2
Choose License Key
Pilih License Key sebagai integrasi dan berikan Nama. Formulirnya menampilkan bidang berikut:
- Fulfillment Mode —
Automaticsecara default. Ini adalah pengaturan yang memungkinkan pemenuhan manual; Anda mengubahnya di langkah berikutnya. - Panjang Lisensi — berapa lama setiap kunci yang diterbitkan tetap valid, atau Tanpa kadaluarsa.
- Batas Aktivasi — maksimum aktivasi per kunci, atau Tak terbatas.
- Pesan Aktivasi — pesan opsional yang ditampilkan kepada pelanggan ketika mereka mengaktifkan kunci.

3
Set Fulfillment Mode to Manual
Buka dropdown Fulfillment Mode dan ubah dari Automatic menjadi Manual. Ini adalah pengaturan yang menggerakkan seluruh panduan ini — tanpanya, kunci dibuat dan dikirim melalui email secara otomatis dan tidak ada grant tertunda yang dibuat. Setelah Manual dipilih, setiap pembelian membuat grant
Pending untuk Anda penuhi. Klik Create Entitlement untuk menyimpan.fulfillment_mode default ke auto. Mengabaikannya, atau membiarkan hak yang ada tidak berubah, mempertahankan perilaku otomatis. Hanya hak yang secara eksplisit diatur ke manual yang membuat grant yang tertunda.Langkah 2 — Pasang Hak ke Produk
Buka produk yang ingin Anda jual, perluas Pengaturan Lanjutan → Hak & Kredit, dan pilih Hak Kunci Lisensi yang Anda atur ke Manual di Langkah 1. Satu produk dapat menyediakan kunci lisensi ini bersama hak lain pada pembelian yang sama.
Selecting the License Key entitlement in the product entitlements panel.
Fulfillment mode adalah properti dari hak, bukan produk. Karena Anda mengaturnya ke Manual di Langkah 1, setiap produk yang terpasang pada hak ini menciptakan grant lisensi-kunci
pending saat pembelian — tidak ada yang perlu dikonfigurasi di sini.Fulfillment mode adalah properti entitlement, bukan produk. Karena Anda menetapkannya ke Manual pada Langkah 1, setiap produk yang dikaitkan dengan entitlement ini akan membuat grant kunci lisensi
Pending saat pembelian — tidak ada konfigurasi tambahan yang diperlukan di sini.Langkah 3 — Deteksi Grant yang Tertunda
Ketika pelanggan membeli produk, Dodo Payments membuat grant dalam statuspending dengan tidak ada kunci terlampir dan menembakkan webhook entitlement_grant.created. Ini adalah sinyal Anda bahwa pelanggan menunggu kunci.
Saat pelanggan membeli produk, Dodo Payments membuat grant berstatus Pending tanpa kunci terlampir dan memicu webhook entitlement_grant.created. Ini adalah sinyal bahwa pelanggan sedang menunggu kunci.
Siapkan endpoint webhook (Pengembang → Webhook di dashboard) dan bertindaklah pada grant lisensi-kunci yang tertunda. Implementasinya mengikuti spesifikasi Standard Webhooks.
Atau polling API List Grants
Jika Anda lebih memilih untuk tidak bergantung pada webhooks, daftar grant untuk hak dan filter berdasarkanintegration_type dan status:
Jika Anda lebih suka tidak mengandalkan webhook, daftarkan hibah untuk hak License Key Anda dan saring berdasarkan status. Setiap hibah pada hak License Key sudah merupakan hibah license-key, jadi tidak diperlukan saringan integration_type:
Node.js
Node.js
cURL
Langkah 4 — Kirim Kunci
Dapatkan nilai kunci dari sistem Anda sendiri, lalu kirimkan dengan endpoint Fulfill License Key Grant. Ini memerlukan kunci API rahasia Anda (Izin Editor); ini bukan salah satu dari endpoint lisensi publik.Bidang Permintaan
string
wajib
String kunci lisensi untuk dikirim ke pelanggan. Spasi dikurangi; nilai kosong atau hanya spasi ditolak.
integer
Batas aktivasi per kunci. Kembali ke konfigurasi hak jika tidak diisi.
string
Kadaluarsa per kunci (ISO 8601). Kembali ke durasi konfigurasi hak jika tidak diisi. Untuk grant yang diterbitkan langganan, validitas tetap terkait dengan langganan terlepas apapun.
delivered, pelanggan dikirim kunci secara otomatis (email yang sama yang akan mereka terima di bawah pemenuhan otomatis), dan entitlement_grant.delivered menembak.
Setelah berhasil, grant berpindah ke Delivered, pelanggan dikirimi kunci secara otomatis (email yang sama seperti yang akan mereka terima dalam pemenuhan otomatis), dan event webhook license_key.created serta entitlement_grant.delivered dipicu.

The license key email the customer receives once you fulfill the grant.
Anda tidak perlu mengirim email kunci sendiri — pengiriman terjadi secara otomatis ketika grant dipenuhi.
Langkah 5 — Tangani Kesalahan dan Pengulangan
Endpoint memvalidasi grant sebelum mengirimkan apapun. Tangani tanggapan berikut:Verifikasi Alur
- Beli produk dalam mode pengujian (lihat panduan checkout).
-
Konfirmasi webhook Anda menerima
entitlement_grant.createddenganstatus: "pending"danintegration_type: "license_key", atau bahwa grant muncul dalam respons List Grants dengan filter tersebut. - Panggil endpoint pemenuhan dengan kunci pengujian.
-
Konfirmasi tanggapan menunjukkan
status: "delivered"denganlicense_keyyang terisi, pelanggan menerima email kunci, danentitlement_grant.deliveredmenembak. - Beli produk dalam test mode (lihat panduan checkout).
-
Pastikan webhook Anda menerima
entitlement_grant.createddenganstatus: "Pending"danintegration_type: "license_key", atau pastikan grant muncul dalam respons List Grants dengan filter tersebut. - Panggil endpoint fulfill dengan kunci pengujian.
-
Pastikan respons menampilkan
status: "Delivered"denganlicense_keyyang terisi, pelanggan menerima email berisi kunci, danentitlement_grant.delivereddipicu.
Referensi API Terkait
Create Entitlement
Buat hak Kunci Lisensi dengan
fulfillment_mode: manual.List Grants
Filter berdasarkan
integration_type dan status untuk menemukan grant yang pending.Fulfill License Key Grant
Kirim nilai kunci dan transisikan grant ke terkirim.
Entitlement Grant Webhooks
Acara
entitlement_grant.* yang menandakan grant yang tertunda dan terkirim.Create Entitlement
Buat entitlement License Key dengan
fulfillment_mode: manual.List Grants
Filter berdasarkan
status dan customer_id untuk menemukan grant yang tertunda.Fulfill License Key Grant
Kirimkan nilai kunci dan ubah status grant menjadi delivered.
Entitlement Grant Webhooks
Event
entitlement_grant.* yang menandakan grant tertunda dan terkirim.