Fitur Baru
1. Kode Diskon: Diskon Amount, Penjadwalan & Aturan Kelayakan
Kode diskon tidak lagi hanya berbasis persentase. Kini, kode dapat mengurangi jumlah tetap, dimulai sesuai jadwal, memiliki harga berbeda untuk setiap mata uang, dan membatasi siapa yang boleh menggunakannya. Diskon Amount Aturtype ke flat untuk mengurangi jumlah tetap, bukan persentase. Pengurangan dikumpulkan di seluruh keranjang, bukan diterapkan pada setiap item baris.

currency_options memungkinkan satu kode berfungsi dengan benar pada setiap mata uang yang Anda jual. Setiap entri menetapkan, untuk satu mata uang, diskon maksimum (jumlah pengurangan untuk kode Amount, batas untuk kode Percentage) dan nilai minimum keranjang. Diskon Amount memerlukan setidaknya satu opsi mata uang dengan nilai default yang dapat ditentukan; opsi mata uang bersifat opsional untuk diskon Percentage.
Kelayakan pelanggan
customer_eligibility mengatur siapa yang boleh menggunakan kode:

GET /discounts/{discount_id}/customers untuk mencantumkan pelanggan yang ditambahkan, POST /discounts/{discount_id}/customers untuk menambahkannya, dan DELETE /discounts/{discount_id}/customers/{customer_id} untuk menghapus salah satunya.
Penjadwalan dan batas per pelanggan
Atur starts_at untuk menjadwalkan peluncuran kode di masa mendatang — jika tidak diatur, kode akan langsung aktif, dan nilainya harus benar-benar lebih awal dari expires_at. Gunakan per_customer_usage_limit untuk membatasi seberapa sering satu pelanggan dapat menggunakan kode, sebagai batas terpisah yang tidak boleh melebihi usage_limit secara keseluruhan.
Nilai minimum keranjang selalu diukur berdasarkan harga asli keranjang, bukan total sementara di tengah penerapan beberapa diskon. Karena itu, urutan penerapan tidak pernah mengubah apakah nilai minimum terpenuhi.
2. Pengalaman Webhooks yang Dibangun Ulang
Bagian webhooks di dashboard telah dibangun ulang sebagai pengalaman native, menggantikan portal tersemat. Kini semuanya berada di dalam dashboard dengan tabel, filter, dan navigasi yang konsisten, serta berfungsi dengan baik di perangkat seluler.- Endpoint — buat dan edit endpoint dalam side sheet, pilih jenis event dari tree yang dapat dicari, dan lihat tingkat error selama 24 jam terakhir secara sekilas.
- Aktivitas dan log — pantau upaya pengiriman dari waktu ke waktu pada chart Aktivitas pengiriman, telusuri pesan yang terkirim, dan buka halaman detail pesan untuk memeriksa payload serta setiap upaya pengiriman beserta response code dan durasinya. Setiap upaya dapat diputar ulang dari sana.
- Katalog event — telusuri setiap jenis event yang dikirim Dodo Payments, beserta schema dan contoh payload-nya.
- Ringkasan endpoint — statistik pengiriman selama 24 jam terakhir, signing secret untuk dilihat atau dirotasi, serta Riwayat pemutaran ulang.
- Pengujian — kirim contoh event ke endpoint untuk memverifikasi receiver Anda sebelum mulai digunakan secara langsung.
- Lanjutan — batasi laju pengiriman, kelola custom headers yang dikirim bersama setiap request ke endpoint tersebut, dan edit transformasinya.
- Pemutaran ulang massal — pada endpoint, pulihkan pesan yang gagal, putar ulang pesan yang belum pernah dikirim, atau putar ulang rentang yang difilter.
- Peringatan email — tab Settings baru tempat Anda dapat mencantumkan alamat yang akan menerima email ketika pengiriman ke endpoint mulai gagal. Pisahkan beberapa alamat dengan koma, dan biarkan kosong untuk menonaktifkan peringatan.
Ini hanya perubahan pada dashboard. Endpoint, signing secret, verifikasi signature, nama event, dan payload yang sudah ada tetap tidak berubah — tidak diperlukan pekerjaan integrasi.
3. Cash App Pay untuk Langganan
Cash App Pay kini dapat digunakan untuk mendukung langganan berulang, bukan hanya pembayaran satu kali. Fitur ini tersedia pada checkout di AS yang ditagih dalam USD, bersama opsi kartu yang sudah ada. Pelajari selengkapnya: Dompet Digital4. SEPA Direct Debit
SEPA Direct Debit kini tersedia di seluruh Zona Euro, sehingga pelanggan dapat membayar langsung dari rekening bank, bukan menggunakan kartu. Metode ini ditawarkan pada checkout EUR untuk pembayaran satu kali. Pelajari selengkapnya: Metode Pembayaran Eropa5. Pesan Kegagalan Pembayaran yang Lebih Jelas
Saat pembayaran gagal, Anda dan pelanggan kini melihat teks yang ditulis khusus, bukan teks mentah dari processor. Setiap kegagalan diselesaikan melalui taksonomi 46 error code terpadu, yang masing-masing dipetakan ke dua audiens:- Anda melihat judul serta tindakan yang disarankan pada pembayaran, sehingga Anda mengetahui apakah harus meminta pelanggan mencoba lagi, menghubungi bank, atau menggunakan kartu lain.
error_messagepada objek Payment kini membawa teks ini setiap kalierror_codemerupakan unified code yang dikenali. - Pelanggan Anda melihat penjelasan dengan bahasa sederhana pada layar kegagalan checkout, di Customer Portal, dan dalam email penagihan — misalnya, “Kode keamanan kartu Anda (CVC) tampaknya tidak benar. Masukkan kembali dan coba lagi.”
6. Memungkinkan Pelanggan Membatalkan Langganan Mereka Sendiri
Allow Subscription Cancellation kini menjadi pengaturan utama di tab Subscriptions pada pengaturan dashboard, dan diterapkan secara menyeluruh. Saat Anda menonaktifkannya, Customer Portal menonaktifkan tombol pembatalan dan API menolak pembatalan yang dimulai pelanggan dengan403 — baik pembatalan langsung maupun alur “batalkan pada tanggal penagihan berikutnya”. Sebelumnya, pengaturan ini hanya menyembunyikan tombol, sehingga pelanggan yang bertekad masih dapat membatalkan melalui API.
Pengaturan ini diaktifkan secara default. Pembatalan yang Anda lakukan melalui merchant API dan dashboard tidak pernah terpengaruh, dan pelanggan selalu dapat membatalkan pencabutan pembatalan yang telah mereka jadwalkan.
Pelajari selengkapnya: Customer Portal | Langganan
7. Payout Webhooks
Kini Anda menerima webhooks untuk payout Anda sendiri, sehingga dapat merekonsiliasinya di sistem akuntansi tanpa melakukan polling.payout.created sebelumnya diterbitkan sebagai payout.not_initiated. Jika endpoint yang ada memfilter berdasarkan payout.not_initiated, perbarui filter tersebut ke payout.created agar tetap cocok. Field status pada payload masih melaporkan not_initiated pada tahap ini.8. Ubah Email Login dari Dashboard
Kini Anda dapat mengubah alamat email yang digunakan untuk masuk tanpa menghubungi dukungan. Tab Account telah didesain ulang dan mencakup bagian Change Email baru, dengan tombol Change email yang memulai prosesnya. Verifikasi dilakukan dalam dua langkah: kami mengirimkan code ke alamat saat ini untuk mengonfirmasi bahwa Anda adalah pemiliknya, lalu code kedua ke alamat baru untuk mengonfirmasi bahwa Anda mengendalikannya. Setelah keduanya diverifikasi:- Anda akan masuk menggunakan alamat baru mulai saat itu. Alamat sebelumnya tidak lagi berfungsi untuk password, magic link, dan code yang dikirim melalui email.
- Semua identity provider yang tertaut, seperti login Google atau GitHub, akan dilepas dan harus dihubungkan kembali.
- Password, bisnis, akses tim, dan status verifikasi Anda tidak berubah.
- Notifikasi dikirim ke alamat sebelumnya agar perubahan yang tidak diharapkan tidak pernah terjadi tanpa pemberitahuan.
9. Analitik: Widget dan Penyempurnaan Baru
Melanjutkan pembangunan ulang Analytics v3, rilis ini menambahkan visualisasi baru dan menyempurnakan visualisasi yang sudah ada.- Revenue by country kini menjadi peta choropleth dengan lebar penuh, dengan daftar negara berdasarkan peringkat di sampingnya, dan card ini dapat dibagikan seperti card lainnya.
- Chart tren yang didesain ulang dengan hover crosshair, date pill bergulir pada sumbu x, dan tooltip ringkas.
- Preset tanggal baru — Last 30 days menggantikan Last 4 weeks, dan Last 6 months ditambahkan ke dalam daftar.
- Filter Anda tersimpan. Preset tanggal dan mode perbandingan kini tersimpan per bisnis dan mengikuti Anda di berbagai perangkat, bukan kembali ke default pada setiap sesi.
- Pelanggan teratas diidentifikasi berdasarkan nama, dengan email sebagai fallback.
- Revenue by country kini mengembalikan hingga 150 negara teratas.
Peningkatan & Perbaikan Bug
10. Filter Pembayaran berdasarkan Mata Uang
GET /payments menerima query parameter opsional currency, sehingga Anda dapat mencantumkan hanya pembayaran yang diselesaikan dalam mata uang tertentu — misalnya GET /payments?currency=EUR. Filter yang sama tersedia pada tabel Payments di dashboard.
Pelajari selengkapnya: Daftar Pembayaran
11. Jendela Respons Sengketa Diperpanjang Menjadi 10 Hari
Kini Anda memiliki 10 hari untuk merespons sengketa setelah dibuat, meningkat dari 4 hari. Hitung mundur sengketa di dashboard dan batas waktu respons yang dikembalikan API sama-sama mencerminkan jendela yang lebih panjang. Pelajari selengkapnya: Sengketa12. Formulir Rekening Bank Payout yang Lebih Jelas
Penambahan rekening bank payout kini lebih jelas. Label field, deskripsi, dan tooltip beradaptasi dengan jenis bisnis Anda, sehingga nama pemegang rekening dan penerima manfaat tidak lagi tampak duplikat bagi pemilik usaha perseorangan. Memilih Other sebagai bank memungkinkan Anda mengetikkan nama secara bebas, kode bank domestik China diberi label CNAPS, dan halaman payouts tetap terlihat dalam test mode sehingga Anda dapat mengakses rekening tertaut dari mode mana pun. Pelajari selengkapnya: Proses PayoutPerbaikan & Peningkatan Lainnya
- Kredit akibat perubahan paket dibalik saat pembayaran gagal. Kredit proration yang diterbitkan selama perubahan paket langganan tidak lagi tertinggal jika pembayaran yang dihasilkan tidak berhasil.
- Invoice paid-trial menampilkan biaya trial, bukan harga berulang reguler.
- Diskon persentase mematuhi nilai minimum keranjang, yang diukur berdasarkan harga dasar, bukan total sementara, dan timeout penguncian diskon kini mengembalikan error code khusus, bukan
503generik. - Penghapusan payment method yang sudah dihapus kini berhasil alih-alih mengembalikan error, sehingga pemanggilan tersebut aman secara idempotent.
- Memperbaiki mata uang yang digunakan untuk batas minimum mandat India saat memperbarui payment method langganan.
- Entri credit ledger di luar batas yang diizinkan ditolak dengan
400bertipe, alih-alih gagal kemudian. - Produk pay-what-you-want mendukung jumlah tetap dalam shared checkout links, dan entitlement ID ditampilkan di panel detail entitlement.
- Perbaikan Analytics: series lifetime-value, add-on yang disertakan dalam MRR, tanpa perbandingan periode pada rentang sepanjang waktu, series yang berhenti pada bucket saat ini, serta label rentang dan perbandingan yang lebih jelas.
- Perbaikan bug kecil dan peningkatan stabilitas di seluruh platform.