Pending yang menunggu Anda menyediakan nilai key, alih-alih Dodo Payments membuat key saat pembayaran. Key dapat berasal dari sistem Anda sendiri, vendor pihak ketiga, atau kumpulan kode terbatas.
Setelah menyelesaikan panduan ini, Anda 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 license key lengkap dan pengaturan
fulfillment_mode.Fulfill License Key Grant API
Referensi API untuk endpoint yang Anda panggil untuk mengirimkan key.
Cara Kerjanya
Urutan di bawah ini menunjukkan satu pembelian, mulai dari checkout hingga pengiriman key: Pemenuhan manual hanya mengubah langkah penerbitan. Setelah dikirimkan, key berperilaku seperti key yang dibuat otomatis untuk aktivasi, validasi, penonaktifan, kedaluwarsa, dan pencabutan. Pembelian beberapa unit membuat satu grantPending per unit, dan setiap grant memerlukan key sendiri.
Prasyarat
Untuk mengikuti panduan ini, Anda memerlukan:- Akun merchant Dodo Payments.
- API key, yang dibuat di Developer → API Keys dan disimpan di
DODO_PAYMENTS_API_KEY, serta webhook signing secret dari Developer → Webhooks, yang disimpan diDODO_PAYMENTS_WEBHOOK_KEY. Lihat panduan pembuatan API key. - Endpoint backend yang dapat menerima webhook.
Gunakan
https://test.dodopayments.com dan kredensial test mode selama proses pengembangan. Saat beralih ke production, gunakan https://live.dodopayments.com dan key live mode.Langkah 1 — Buat Entitlement License Key dalam Mode Manual
Entitlement adalah definisi yang dapat digunakan kembali tentang apa yang Anda kirimkan. Buat entitlement License Key dan aturfulfillment_mode ke manual.
- Dashboard
- API
1
Open Entitlements
Buka Entitlements di dashboard, lalu klik + untuk membuat entitlement.
2
Choose License Key
Pilih License Keys dan masukkan Name. Formulir ini memiliki kolom berikut:
- Fulfillment Mode: secara default Automatic. Pengaturan ini mengaktifkan pemenuhan manual, dan Anda akan mengubahnya pada langkah berikutnya.
- License Length: berapa lama setiap key yang diterbitkan tetap valid, atau No expiration.
- Activations Limit: jumlah maksimum aktivasi per key, atau Unlimited.
- Activation Message: pesan opsional untuk pelanggan yang ditampilkan saat pelanggan mengaktifkan key dan disertakan dalam email license key.

3
Set Fulfillment Mode to Manual
Buka dropdown Fulfillment Mode dan ubah dari Automatic menjadi Manual. Pengaturan ini diperlukan untuk seluruh panduan: tanpa pengaturan ini, Dodo Payments membuat dan mengirimkan key secara otomatis serta tidak membuat grant yang tertunda. Dengan Manual dipilih, setiap pembelian membuat grant
Pending untuk Anda penuhi. Klik Create Entitlement untuk menyimpan.fulfillment_mode secara default adalah auto. Jika Anda menghilangkannya atau membiarkan entitlement yang sudah ada tanpa perubahan, entitlement tersebut tetap menggunakan pemenuhan otomatis. Hanya entitlement yang secara eksplisit diatur ke manual yang membuat grant tertunda.Langkah 2 — Lampirkan Entitlement ke Produk
Buka produk yang ingin Anda jual, buka bagian Entitlements, lalu pilih License Key entitlement yang Anda atur ke Manual pada Langkah 1. Satu produk dapat mengirimkan license key ini bersama entitlement lain dalam pembelian yang sama. Jika Anda belum memiliki produk, buat produk sekali bayar atau subscription terlebih dahulu. Untuk menjualnya melalui checkout, lihat Integration Guide.
Selecting the License Key entitlement in the product entitlements panel.
Mode pemenuhan adalah properti entitlement, bukan produk. Karena Anda mengaturnya ke Manual pada Langkah 1, setiap produk yang memiliki entitlement ini membuat grant license key
Pending saat pembelian. Anda tidak perlu mengonfigurasi hal lain pada produk.Langkah 3 — Deteksi Grant yang Tertunda
Saat pelanggan membeli produk, Dodo Payments membuat grant dengan statusPending tanpa key terlampir dan mengirimkan webhook entitlement_grant.created. Event ini menandakan bahwa pelanggan sedang menunggu key.
Dengarkan Webhook
Tambahkan endpoint webhook di Developer → Webhooks pada dashboard, lalu tangani grant license key yang tertunda. Webhook mengikuti spesifikasi Standard Webhooks, sehingga Anda dapat memverifikasinya dengan librarystandardwebhooks:
integration_type: "license_key", sehingga Anda dapat mengenali grant license key tanpa pencarian tambahan. Pengiriman webhook dapat berulang, jadi lewati event yang header webhook-id-nya sudah Anda proses. Lihat referensi webhook Entitlement Grant untuk payload lengkap.
Atau Lakukan Polling pada API List Grants
Jika Anda tidak ingin bergantung pada webhook, tampilkan daftar grant untuk entitlement License Key Anda dan filter berdasarkanstatus. Setiap grant pada entitlement License Key adalah grant license key, jadi Anda tidak memerlukan filter integration_type:
Langkah 4 — Kirimkan Key
Dapatkan nilai key dari sistem Anda sendiri, lalu kirimkan ke endpoint Fulfill License Key Grant. Panggilan ini memerlukan secret API key Anda dengan izin Editor. Endpoint ini bukan salah satu public license endpoint. SDK juga menyediakannya, misalnya sebagaiclient.entitlements.grants.fulfillLicenseKey() di TypeScript dan client.entitlements.grants.fulfill_license_key() di Python.
Kolom Request
string
wajib
String license key yang dikirimkan kepada pelanggan, maksimal 255 karakter. Spasi di sekelilingnya akan dihapus, dan nilai kosong atau yang hanya berisi spasi akan ditolak.
integer
Batas aktivasi per key, minimal 1. Jika tidak disertakan, Activations Limit dari entitlement akan digunakan.
string
Kedaluwarsa per key (ISO 8601). Jika tidak disertakan, key dari grant sekali bayar akan kedaluwarsa sesuai License Length entitlement, sedangkan key dari grant subscription tidak memiliki kedaluwarsa sehingga validitasnya mengikuti subscription.
Delivered, Dodo Payments mengirimkan key melalui email kepada pelanggan (email yang sama seperti pada pemenuhan otomatis), dan event webhook license_key.created serta entitlement_grant.delivered dipicu.
Email tersebut berisi license key, produk, batas aktivasi, masa kedaluwarsa, dan instruksi aktivasi Anda:

The license key email the customer receives once you fulfill the grant.
Anda tidak perlu mengirimkan key melalui email sendiri. Pengiriman terjadi secara otomatis saat grant dipenuhi.
Langkah 5 — Tangani Error dan Percobaan Ulang
Endpoint memvalidasi grant sebelum mengirimkan apa pun. Tangani respons berikut:Verifikasi Alur
Untuk menguji alur secara menyeluruh:- 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 yang difilter berdasarkanstatus=Pending. - Panggil endpoint fulfill dengan test key.
- Pastikan respons menampilkan
status: "Delivered"denganlicense_keyyang terisi, pelanggan menerima email key, danentitlement_grant.delivereddipicu.
Setelah key dikirimkan, pelanggan dapat mengaktifkan dan memvalidasi key tersebut melalui public license endpoint, seperti key yang dibuat otomatis.
Referensi API Terkait
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 key dan pindahkan grant ke
Delivered.Entitlement Grant Webhooks
Event
entitlement_grant.* yang menandakan grant tertunda dan terkirim.