Prasyarat
Untuk mengintegrasikan API Dodo Payments, Anda memerlukan:- Akun pedagang Dodo Payments
- Kredensial API (kunci API dan kunci rahasia webhook) dari dasbor
Integrasi API
Sesi Checkout
Gunakan Sesi Checkout untuk menjual produk langganan dengan checkout yang aman dan dihosting. Kirim produk langganan Anda diproduct_cart dan arahkan pelanggan ke checkout_url yang dikembalikan.
- Node.js SDK
- Python SDK
- REST API
Respons API
Berikut adalah contoh respons:checkout_url.
Webhook
Saat mengintegrasikan langganan, Anda akan menerima webhook untuk melacak siklus hidup langganan. Webhook ini membantu Anda mengelola status langganan dan skenario pembayaran dengan efektif. Untuk mengatur endpoint webhook Anda, silakan ikuti Panduan Integrasi Rinci.Jenis Acara Langganan
Berikut adalah acara webhook yang melacak perubahan status langganan:subscription.active- Langganan berhasil diaktifkan.subscription.updated- Objek langganan diperbarui (terjadi pada setiap perubahan field).subscription.on_hold- Langganan ditangguhkan karena pembaruan gagal.subscription.failed- Pembuatan langganan gagal selama pembuatan mandat.subscription.renewed- Langganan diperbarui untuk periode penagihan berikutnya.
Skenario Pembayaran
Alur Pembayaran Berhasil Ketika pembayaran berhasil, Anda akan menerima webhook berikut:subscription.active- Menunjukkan aktivasi langgananpayment.succeeded- Mengonfirmasi pembayaran awal:- Untuk penagihan segera (0 hari percobaan): Harapkan dalam 2-10 menit
- Untuk hari percobaan: kapan pun itu berakhir
subscription.renewed- Menunjukkan pemotongan pembayaran dan pembaruan untuk siklus berikutnya. (Pada dasarnya, kapan pun pembayaran dipotong untuk produk langganan, Anda akan mendapatkan webhooksubscription.renewedbersama denganpayment.succeeded)
- Kegagalan Langganan
subscription.failed- Pembuatan langganan gagal karena kegagalan untuk membuat mandat.payment.failed- Menunjukkan pembayaran gagal.
- Langganan Ditangguhkan
subscription.on_hold- Langganan ditangguhkan karena pembayaran pembaruan gagal atau biaya perubahan rencana gagal.- Ketika langganan ditangguhkan, itu tidak akan diperbarui secara otomatis sampai metode pembayaran diperbarui.
Praktik Terbaik: Untuk menyederhanakan implementasi, kami merekomendasikan untuk terutama melacak acara langganan untuk mengelola siklus hidup langganan.
Menangani Langganan Ditangguhkan
Ketika langganan memasuki statuson_hold, Anda perlu memperbarui metode pembayaran untuk mengaktifkannya kembali. Bagian ini menjelaskan kapan langganan ditangguhkan dan bagaimana cara menanganinya.
Ketika Langganan Ditangguhkan
Sebuah langganan ditangguhkan ketika:- Pembayaran pembaruan gagal: Biaya pembaruan otomatis gagal karena dana tidak mencukupi, kartu kadaluarsa, atau penolakan bank
- Biaya perubahan rencana gagal: Biaya segera selama peningkatan/penurunan rencana gagal
- Otorisasi metode pembayaran gagal: Metode pembayaran tidak dapat diotorisasi untuk biaya berulang
Mengaktifkan Kembali Langganan dari Ditangguhkan
Untuk mengaktifkan kembali langganan dari statuson_hold, gunakan API Pembaruan Metode Pembayaran. Ini secara otomatis:
- Membuat biaya untuk tunggakan yang tersisa
- Menghasilkan faktur untuk biaya tersebut
- Memproses pembayaran menggunakan metode pembayaran baru
- Mengaktifkan kembali langganan ke status
activesetelah pembayaran berhasil
1
Tangani webhook subscription.on_hold
Ketika Anda menerima webhook
subscription.on_hold, perbarui status aplikasi Anda dan beri tahu pelanggan:2
Perbarui metode pembayaran
Ketika pelanggan siap untuk memperbarui metode pembayaran mereka, panggil API Pembaruan Metode Pembayaran:
Anda juga dapat menggunakan ID metode pembayaran yang ada jika pelanggan telah menyimpan metode pembayaran:
3
Pantau acara webhook
Setelah memperbarui metode pembayaran, pantau acara webhook ini:
payment.succeeded- Biaya untuk tunggakan yang tersisa berhasilsubscription.active- Langganan telah diaktifkan kembali
Contoh Payload Acara Langganan
| Properti | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
business_id | string | Ya | Pengidentifikasi unik untuk bisnis |
timestamp | string | Ya | Timestamp saat acara terjadi (tidak selalu sama dengan saat dikirim) |
type | string | Ya | Jenis acara. Lihat Jenis Acara |
data | object | Ya | Payload data utama. Lihat Objek Data |
Mengubah Rencana Langganan
Anda dapat meningkatkan atau menurunkan rencana langganan menggunakan endpoint API perubahan rencana. Ini memungkinkan Anda untuk memodifikasi produk langganan, kuantitas, dan menangani proration.Referensi API Ubah Rencana
Untuk informasi rinci tentang mengubah rencana langganan, silakan merujuk ke dokumentasi API Ubah Rencana kami.
Opsi Prorata
Saat mengubah rencana langganan, Anda memiliki dua opsi untuk menangani biaya segera:1. prorated_immediately
- Menghitung jumlah prorata berdasarkan waktu yang tersisa dalam siklus penagihan saat ini
- Mengenakan biaya kepada pelanggan hanya untuk selisih antara rencana lama dan baru
- Selama periode percobaan, ini akan segera mengalihkan pengguna ke rencana baru, mengenakan biaya kepada pelanggan segera
2. full_immediately
- Mengenakan biaya kepada pelanggan jumlah penuh untuk rencana baru
- Mengabaikan waktu atau kredit yang tersisa dari rencana sebelumnya
- Berguna ketika Anda ingin mereset siklus penagihan atau mengenakan biaya jumlah penuh terlepas dari proration
3. difference_immediately
- Saat meningkatkan, pelanggan segera dikenakan biaya selisih antara dua jumlah rencana.
- Misalnya, jika rencana saat ini adalah 30 Dolar dan pelanggan meningkatkan ke 80 Dolar, mereka dikenakan biaya $50 secara instan.
- Saat menurunkan, jumlah yang tidak terpakai dari rencana saat ini ditambahkan sebagai kredit internal dan secara otomatis diterapkan pada pembaruan langganan di masa mendatang.
- Misalnya, jika rencana saat ini adalah 50 Dolar dan pelanggan beralih ke rencana 20 Dolar, sisa $30 dikreditkan dan digunakan untuk siklus penagihan berikutnya.
Perilaku
- Ketika Anda memanggil API ini, Dodo Payments segera memulai biaya berdasarkan opsi prorata yang Anda pilih
- Jika perubahan rencana adalah penurunan dan Anda menggunakan
prorated_immediately, kredit akan dihitung secara otomatis dan ditambahkan ke saldo kredit langganan. Kredit ini spesifik untuk langganan tersebut dan hanya akan digunakan untuk mengimbangi pembayaran berulang di masa mendatang dari langganan yang sama - Opsi
full_immediatelymelewati perhitungan kredit dan mengenakan biaya jumlah penuh untuk rencana baru
Pemrosesan Biaya
- Biaya segera yang dimulai saat perubahan rencana biasanya selesai diproses dalam waktu kurang dari 2 menit
- Jika biaya segera ini gagal karena alasan apa pun, langganan secara otomatis ditangguhkan sampai masalah teratasi
Langganan Sesuai Permintaan
Langganan sesuai permintaan memungkinkan Anda mengenakan biaya kepada pelanggan secara fleksibel, tidak hanya pada jadwal tetap. Hubungi dukungan untuk mengaktifkan fitur ini.
on_demand dalam body permintaan Anda. Ini memungkinkan Anda untuk mengotorisasi metode pembayaran tanpa biaya segera, atau menetapkan harga awal kustom.
Untuk mengenakan biaya langganan sesuai permintaan:
Untuk biaya berikutnya, gunakan endpoint POST /subscriptions/charge dan tentukan jumlah yang akan dikenakan kepada pelanggan untuk transaksi tersebut.
Untuk panduan lengkap, langkah demi langkah—termasuk contoh permintaan/respons, kebijakan pengulangan yang aman, dan penanganan webhook—lihat Panduan Langganan Sesuai Permintaan.