Langganan memungkinkan Anda menjual akses berkelanjutan dengan pembaruan otomatis. Gunakan siklus penagihan yang fleksibel, percobaan gratis, perubahan paket, dan add-on untuk menyesuaikan harga bagi setiap pelanggan.
Upgrade & Downgrade
Kendalikan perubahan paket dengan prorasional dan pembaruan kuantitas.
On‑Demand Subscriptions
Otorisasi mandat sekarang dan kenakan biaya nanti dengan jumlah kustom.
Customer Portal
Biarkan pelanggan mengelola paket, penagihan, dan pembatalan.
Subscription Webhooks
Respon terhadap event siklus hidup seperti dibuat, diperbarui, dan dibatalkan.
Apa Itu Langganan?
Langganan adalah produk berulang yang dibeli pelanggan sesuai jadwal. Mereka ideal untuk:- Lisensi SaaS: Aplikasi, API, atau akses platform
- Keanggotaan: Komunitas, program, atau klub
- Konten digital: Kursus, media, atau konten premium
- Rencana dukungan: SLA, paket keberhasilan, atau pemeliharaan
Manfaat Utama
- Pendapatan yang dapat diprediksi: Penagihan berulang dengan pembaruan otomatis
- Siklus fleksibel: Bulanan, tahunan, interval kustom, dan percobaan
- Agilitas rencana: Prorata untuk peningkatan dan penurunan
- Add-on dan kursi: Lampirkan peningkatan opsional yang dapat dihitung
- Checkout yang mulus: Checkout yang dihosting dan portal pelanggan
- Developer-first: API yang jelas untuk pembuatan, perubahan, dan pelacakan penggunaan
Membuat Langganan
Buat produk langganan di dasbor Dodo Payments Anda, lalu jual melalui checkout atau API Anda. Memisahkan produk dari langganan aktif memungkinkan Anda untuk memversioning harga, melampirkan add-on, dan melacak kinerja secara independen.Pembuatan produk langganan
Konfigurasikan bidang di dasbor untuk mendefinisikan bagaimana langganan Anda dijual, diperbarui, dan ditagih. Bagian di bawah ini langsung memetakan apa yang Anda lihat di formulir pembuatan.Detail produk
- Nama Produk (wajib): Nama tampilan yang ditampilkan di checkout, portal pelanggan, dan faktur.
- Deskripsi Produk (wajib): Pernyataan nilai yang jelas yang muncul di checkout dan faktur.
- Gambar Produk (wajib): PNG/JPG/WebP hingga 3 MB. Digunakan di checkout dan faktur.
- Merek: Kaitkan produk dengan merek tertentu untuk tema dan email.
- Kategori Pajak (wajib): Pilih kategori (misalnya, SaaS) untuk menentukan aturan pajak.
Penetapan Harga
- Tipe Harga: Pilih Langganan (panduan ini). Alternatifnya adalah Pembayaran Tunggal dan Penagihan Berdasarkan Penggunaan.
- Harga (diperlukan): Harga dasar berulang dengan mata uang.
- Diskon yang Berlaku (%): Diskon persentase opsional yang diterapkan pada harga dasar; tercermin dalam checkout dan faktur.
- Pembayaran ulang setiap (diperlukan): Interval untuk perpanjangan, misalnya, setiap 1 Bulan. Pilih ritme (bulan atau tahun) dan jumlahnya.
- Periode Langganan (diperlukan): Total masa di mana langganan tetap aktif (misalnya, 10 Tahun). Setelah periode ini berakhir, perpanjangan berhenti kecuali diperpanjang.
- Hari Periode Percobaan (diperlukan): Atur panjang percobaan dalam hari. Gunakan 0 untuk menonaktifkan percobaan. Biaya pertama terjadi secara otomatis ketika percobaan berakhir.
- Pilih add-on: Lampirkan hingga 10 add-on yang dapat dibeli pelanggan bersamaan dengan paket dasar.
Add-on ideal untuk tambahan yang dapat dihitung seperti tempat duduk atau penyimpanan. Anda dapat mengontrol kuantitas yang diizinkan dan perilaku prorasional saat pelanggan mengubahnya.
Pengaturan Lanjutan
- Harga Termasuk Pajak: Tampilkan harga termasuk pajak yang berlaku. Perhitungan pajak akhir masih bervariasi berdasarkan lokasi pelanggan.
- Hasilkan kunci lisensi: Terbitkan kunci unik untuk setiap pelanggan setelah pembelian. Lihat panduan Kunci Lisensi.
- Pengiriman Produk Digital: Kirim file atau konten secara otomatis setelah pembelian. Pelajari lebih lanjut di Pengiriman Produk Digital.
- Metadata: Lampirkan pasangan kunci-nilai kustom untuk penandaan internal atau integrasi klien. Lihat Metadata.
Percobaan Langganan
Percobaan memungkinkan pelanggan mengakses langganan tanpa pembayaran segera. Biaya pertama terjadi secara otomatis ketika percobaan berakhir.Mengonfigurasi Percobaan
Tetapkan Trial Period Days di bagian harga produk (gunakan0 untuk menonaktifkan). Anda dapat menimpanya saat membuat langganan:
Mendeteksi Status Percobaan
Untuk menentukan apakah langganan sedang dalam percobaan, ambil daftar pembayaran untuk langganan tersebut. Jika ada tepat satu pembayaran dengan jumlah 0, langganan sedang dalam periode percobaan:Memperbarui Periode Percobaan
Perpanjang trial dengan memperbaruinext_billing_date:
Perubahan Rencana Langganan
Perubahan rencana memungkinkan Anda untuk meningkatkan atau menurunkan langganan, menyesuaikan kuantitas, atau bermigrasi ke produk yang berbeda. Setiap perubahan memicu biaya segera berdasarkan mode prorata yang Anda pilih.Product Collections
Kelompokkan produk terkait menjadi koleksi untuk memungkinkan jalur peningkatan/penurunan yang mulus di Portal Pelanggan.
Mode Prorasional
Pilih bagaimana pelanggan ditagih saat mengganti paket:Perbandingan cepat dari tiga mode prorasional:
prorated_immediately | difference_immediately | full_immediately | |
|---|---|---|---|
| Upgrade | Beban prorata untuk hari tersisa | Selisih harga penuh | Harga paket baru penuh |
| Downgrade | Kredit prorata untuk hari tersisa | Selisih harga penuh sebagai kredit | Tidak ada kredit, tagihan penuh |
| Siklus penagihan | Tetap sama | Tetap sama | Diatur ulang ke hari ini |
| Cocok untuk | Penagihan adil berbasis waktu | Perubahan tingkatan sederhana | Reset siklus penagihan |
prorated_immediately
Menagihkan jumlah prorata berdasarkan waktu tersisa dalam siklus penagihan saat ini. Cocok untuk penagihan yang adil dengan memperhitungkan waktu yang belum digunakan.
difference_immediately
Menagihkan selisih harga segera (upgrade) atau menambahkan kredit untuk pembaruan di masa depan (downgrade). Cocok untuk skenario upgrade/downgrade sederhana.
Kredit dari penurunan menggunakan
difference_immediately berskala langganan dan diterapkan secara otomatis ke perpanjangan mendatang. Mereka berbeda dari hak Penagihan Berbasis Kredit.difference_immediately, nilai yang belum digunakan menjadi kredit berskala langganan yang otomatis mengurangi pembaruan mendatang:
full_immediately
Menagihkan jumlah paket baru penuh segera, mengabaikan waktu yang tersisa. Cocok untuk mereset siklus penagihan.
Example: Prorated upgrade calculation
Example: Prorated upgrade calculation
Skenario: Pelanggan di Basic (80/bulan) pada hari ke-16 dari siklus 30 hari menggunakan Pembaharuan berikutnya pada tanggal penagihan asli: $80,00/bulan.
prorated_immediately.Example: Downgrade credit calculation
Example: Downgrade credit calculation
Skenario: Pelanggan di Pro (20/bulan) menggunakan Kredit $60 diterapkan otomatis ke pembaruan selanjutnya:
difference_immediately.- Pembaruan 1: 20 (kredit) = **40 kredit tersisa)
- Pembaruan 2: 20 (kredit) = **20 kredit tersisa)
- Pembaruan 3: 20 (kredit) = $0,00 (kredit habis)
- Pembaruan 4: $20,00 (harga penuh)
Pelajari lebih lanjut tentang bagaimana kredit dikelola di Upgrade & Downgrade Guide.
Mengubah Paket dengan Add-on
Modifikasi add-on saat mengubah paket. Add-on diperhitungkan dalam perhitungan prorasional:Perubahan paket memicu penagihan segera. Jika penagihan gagal, langganan dapat beralih ke status
on_hold. Lacak perubahan melalui event webhook subscription.plan_changed.Pratinjau Perubahan Paket
Sebelum menyetujui perubahan paket, pratinjau biaya dan langganan hasilnya:Preview Change Plan API
Pratinjau perubahan paket sebelum menyetujuinya.
Status Langganan
Langganan dapat berada dalam status berbeda sepanjang siklus hidupnya:active: Langganan aktif dan akan diperbarui otomatison_hold: Langganan ditangguhkan karena pembayaran gagal. Pembaruan metode pembayaran diperlukan untuk mengaktifkan kembalicancelled: Langganan dibatalkan dan tidak akan diperbaruiexpired: Langganan telah mencapai tanggal berakhirnyapending: Langganan sedang dibuat atau diproses
Status Ditangguhkan
Langganan masuk ke statuson_hold ketika:
- Pembayaran pembaruan gagal (dana tidak mencukupi, kartu kadaluwarsa, dll.)
- Penagihan perubahan paket gagal
- Otorisasi metode pembayaran gagal
Mengaktifkan Kembali dari Status Ditangguhkan
Untuk mengaktifkan kembali langganan dari statuson_hold, perbarui metode pembayaran. Ini secara otomatis:
- Membuat penagihan untuk tunggakan yang tersisa
- Menghasilkan faktur
- Memproses pembayaran menggunakan metode pembayaran baru
- Mengaktifkan kembali langganan ke status
activesetelah pembayaran berhasil
Setelah berhasil memperbarui metode pembayaran untuk langganan
on_hold, Anda akan menerima event webhook payment.succeeded diikuti oleh subscription.active.Manajemen API
Create subscriptions
Create subscriptions
Gunakan
POST /subscriptions untuk membuat langganan secara programatik dari produk, dengan percobaan dan add-on opsional.API Reference
Lihat API buat langganan.
Update subscriptions
Update subscriptions
Gunakan
PATCH /subscriptions/{id} untuk memperbarui kuantitas, membatalkan pada tanggal penagihan berikutnya, atau memodifikasi metadata.API Reference
Pelajari cara memperbarui detail langganan.
Change plans (proration)
Change plans (proration)
Ubah produk aktif dan kuantitas dengan kontrol prorasional.
API Reference
Tinjau opsi perubahan paket.
On‑demand charges
On‑demand charges
Untuk langganan on-demand, kenakan jumlah tertentu sesuai permintaan.
API Reference
Kenakan biaya langganan on-demand.
List and retrieve
List and retrieve
Gunakan
GET /subscriptions untuk mencantumkan semua langganan dan GET /subscriptions/{id} untuk mengambil satu.API Reference
Telusuri API listing dan retrieval.
Usage history
Usage history
Ambil penggunaan tercatat untuk model harga metered atau hibrida.
API Reference
Lihat API riwayat penggunaan.
Update payment method
Update payment method
Perbarui metode pembayaran untuk langganan. Untuk langganan aktif, ini memperbarui metode pembayaran untuk pembaruan mendatang. Untuk langganan dalam status
on_hold, ini mengaktifkan kembali langganan dengan membuat penagihan untuk tunggakan yang tersisa.API Reference
Pelajari cara memperbarui metode pembayaran dan mengaktifkan kembali langganan.
Kasus Penggunaan Umum
- SaaS dan API: Akses bertingkat dengan add-on untuk tempat duduk atau penggunaan
- Konten dan media: Akses bulanan dengan percobaan pengantar
- Rencana dukungan B2B: Kontrak tahunan dengan add-on dukungan premium
- Alat dan plugin: Kunci lisensi dan rilis berperingkat
Contoh Integrasi
Sesi Checkout (langganan)
Saat membuat sesi checkout, sertakan produk langganan Anda dan add-on opsional:Perubahan paket dengan prorasional
Tingkatkan atau turunkan langganan dan kendalikan perilaku prorasional:Batalkan pada tanggal penagihan berikutnya
Jadwalkan pembatalan yang berlaku pada akhir periode penagihan saat ini:Langganan on-demand
Buat langganan on-demand dan kenakan biaya nanti sesuai kebutuhan:Perbarui metode pembayaran untuk langganan aktif
Perbarui metode pembayaran untuk langganan aktif:Aktifkan kembali langganan dari on_hold
Aktifkan kembali langganan yang ditangguhkan karena pembayaran gagal:Langganan dengan Mandat yang Mematuhi RBI
Langganan UPI dan kartu India beroperasi di bawah regulasi RBI (Reserve Bank of India) dengan persyaratan mandat spesifik:Batas Mandat
Jenis dan jumlah mandat tergantung pada biaya langganan berulang Anda:- Biaya di bawah Rs 15.000: Kami membuat mandat on-demand sebesar Rs 15.000 INR. Jumlah langganan ditagih secara berkala sesuai frekuensi langganan Anda, hingga batas mandat.
- Biaya Rs 15.000 atau lebih: Kami membuat mandat langganan (atau mandat on-demand) untuk jumlah langganan yang tepat.
Pertimbangan Upgrade dan Downgrade
Penting: Saat meningkatkan atau menurunkan langganan, pertimbangkan dengan cermat batas mandat:- Jika upgrade/downgrade menghasilkan jumlah tagihan yang melebihi Rs 15.000 dan melampaui batas pembayaran on-demand yang ada, biaya transaksi mungkin gagal.
- Dalam kasus tersebut, pelanggan mungkin perlu memperbarui metode pembayaran mereka atau mengubah langganan lagi untuk menetapkan mandat baru dengan batas yang tepat.
Otorisasi untuk Biaya Bernilai Tinggi
Untuk biaya langganan sebesar Rs 15.000 atau lebih:- Pelanggan akan diminta oleh bank mereka untuk mengotorisasi transaksi.
- Jika pelanggan gagal mengotorisasi transaksi, transaksi akan gagal dan langganan akan ditangguhkan.
Penundaan Pemrosesan 48 Jam
Timeline Pemrosesan: Biaya berulang pada kartu India dan langganan UPI mengikuti pola pemrosesan unik:- Biaya diajukan pada tanggal yang dijadwalkan sesuai frekuensi langganan Anda.
- Pemotongan aktual dari akun pelanggan terjadi hanya setelah 48 jam dari inisiasi pembayaran.
- Jendela 48 jam ini dapat diperpanjang hingga 2-3 jam tambahan tergantung respons API bank.
Jendela Pembatalan Mandat
Selama jendela pemrosesan 48 jam:- Pelanggan dapat membatalkan mandat melalui aplikasi perbankan mereka.
- Jika pelanggan membatalkan mandat selama periode ini, langganan akan tetap aktif (ini adalah kasus tepi khusus untuk langganan kartu India dan UPI AutoPay).
- Namun, pemotongan aktual mungkin gagal, dan dalam hal itu, kami akan menempatkan langganan ditangguhkan.
- Menunda aktivasi manfaat hingga konfirmasi pembayaran
- Menerapkan periode tenggang atau akses sementara
- Memantau status langganan untuk pembatalan mandat
- Menangani status penangguhan langganan dalam logika aplikasi Anda
- Delaying benefit activation until payment confirmation
- Implementing grace periods or temporary access
- Monitoring subscription status for mandate cancellations
- Handling subscription hold states in your application logic
Praktik Terbaik
- Mulai dengan tingkatan yang jelas: 2–3 paket dengan perbedaan yang jelas
- Komunikasikan harga: Tampilkan total, prorasional, dan pembaruan berikutnya
- Gunakan trial secara bijaksana: Konversi dengan onboarding, bukan hanya waktu
- Manfaatkan add-on: Jaga paket dasar tetap sederhana dan tawarkan tambahan
- Uji perubahan: Validasi perubahan paket dan prorasional dalam mode pengujian
Langganan adalah fondasi fleksibel untuk pendapatan berulang. Mulailah sederhana, uji secara menyeluruh, dan iterasi berdasarkan metrik adopsi, churn, dan ekspansi.