Checkout Sessions
Buat checkout yang aman dan di-host untuk pembayaran satu kali dan subscription.
Payment Links
Bagikan URL untuk mengumpulkan pembayaran tanpa kode.
Webhooks
Dengarkan payment events dan penuhi pesanan.
API Reference
Dokumentasi endpoint lengkap dan pengujian langsung.
Prasyarat
Sebelum memulai, Anda memerlukan:- Akun Dodo Payments.
- Setidaknya satu produk. Buat produk di Products pada dashboard. Produk subscription dengan harga non-zero harus memenuhi minimum subscription untuk mata uang yang digunakan pelanggan: $1.00 untuk USD. Mata uang selain USD, EUR, dan GBP juga harus bernilai setidaknya $1.00. Subscription sebesar $0 juga didukung.
- API key. Buat API key di Developer → API Keys dan simpan di environment variable
DODO_PAYMENTS_API_KEY. Buat key dalam test mode selama proses pengembangan: contoh di halaman ini menggunakan test mode, dan key test mode hanya berfungsi dengan test mode. Lihat Authentication. - SDK untuk bahasa Anda. Node.js SDK memerlukan Node.js 20 atau yang lebih baru, Python SDK memerlukan Python 3.9 atau yang lebih baru, dan Go SDK memerlukan Go 1.22 atau yang lebih baru. Contoh cURL tidak memerlukan SDK.
standardwebhooks. Instal dengan npm install standardwebhooks.
Pilih Jalur Integrasi
Overlay checkout dan inline checkout hanya berjalan di halaman web. Dalam aplikasi mobile native, buat checkout session di server Anda dan buka
checkout_url dengan mobile checkout SDK.
Untuk meminta coding agent membangun integrasi ini untuk Anda, instal Agent Plugin.
Checkout Sessions
Buat pengalaman checkout yang aman dan di-host. Anda membuat session di server, lalu mengarahkan pelanggan kecheckout_url yang dikembalikan.
Buat Checkout Session
- Node.js SDK
- Python SDK
- cURL
Arahkan ke Checkout
Setelah membuat session, arahkan pelanggan kecheckout_url:
Tangani Error
Saat request gagal, API mengembalikan HTTP status code dan body JSON dengancode dan message. Buat percabangan penanganan error berdasarkan code, bukan message. Untuk setiap code, penyebabnya, dan cara mengatasinya, lihat Error Codes. Pembayaran yang gagal dilaporkan secara terpisah: status pembayaran adalah failed, error_code memberikan alasannya, dan Anda menerima webhook payment.failed. Untuk menentukan apakah perlu mencoba lagi, lihat Handle Payment Failures.
Payment Links
Payment link adalah URL yang membuka checkout untuk suatu produk, sehingga Anda dapat menerima pembayaran tanpa menulis kode. Query parameters mengisi detail pelanggan terlebih dahulu dan mengontrol formulir checkout. Saat pelanggan membuka link, checkout menyimpan parameter dalam session dan memperpendek URL menjadi parametersession, sehingga parameter tetap ada saat halaman dimuat ulang.
Static Payment Links
Static payment link adalah URL yang Anda buat sekali dan bagikan berkali-kali. Base URL-nya adalah:integer
default:"1"
Jumlah item yang akan dibeli.
string
wajib
Payment links menggunakan
redirect_url. Checkout Sessions API menggunakan return_url untuk tujuan yang sama.URL untuk mengarahkan pelanggan setelah pembayaran. Dodo Payments menambahkan detail pembayaran sebagai query parameters, misalnya https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com. Jika produk menerbitkan license keys, parameter license_key juga ditambahkan, dengan beberapa key dipisahkan oleh koma.string
Menentukan mata uang pembayaran. Default-nya adalah mata uang negara penagihan.
boolean
default:"true"
Menampilkan atau menyembunyikan pemilih mata uang.
boolean
default:"true"
Menampilkan atau menyembunyikan bagian diskon. Atur ke
false untuk mencegah pelanggan memasukkan kode kupon.number
Menetapkan jumlah yang ditagihkan, dalam unit utama mata uang, misalnya
12.5 untuk $12.50. Hanya berfungsi dengan produk Pay What You Want dan diabaikan jika nilainya di bawah harga minimum produk.string
Field metadata khusus, misalnya
metadata_orderId=123.Isi Otomatis Informasi Pelanggan
Tambahkan field pelanggan sebagai query parameters untuk mempercepat checkout:string
Nama lengkap pelanggan (diabaikan jika firstName atau lastName disediakan).
string
Nama depan pelanggan.
string
Nama belakang pelanggan.
string
Alamat email pelanggan.
string
Negara pelanggan (kode ISO 3166-1 alpha-2).
string
Alamat jalan.
string
Kota.
string
Negara bagian atau provinsi.
string
Kode pos atau ZIP.
Nonaktifkan Field Formulir
Untuk mencegah pelanggan mengubah informasi yang telah diisi, nonaktifkan field dengan memberikan nilainya dan mengatur flagdisable... yang sesuai ke true:
Contoh Static Payment Link
Dynamic Payment Links (Deprecated)
Untuk integrasi yang sudah ada dan menggunakan dynamic payment links, teruskanpayment_link: true ke Create One-Time Payment atau Create Subscription untuk membuat link. Contoh di bawah membuat one-time payment link. Untuk subscription, lihat Subscription Integration Guide.
- Node.js SDK
- Python SDK
- Go SDK
Webhooks
Webhooks memberi tahu server Anda saat pembayaran berhasil atau gagal, sehingga Anda dapat memenuhi pesanan.Buat Webhook Endpoint
Buka Developer → Webhooks di dashboard dan tambahkan URL endpoint Anda. Salin signing secret endpoint ke environment variableDODO_PAYMENTS_WEBHOOK_KEY.
Berikut contoh menggunakan Next.js:
app/api/webhooks/dodo/route.ts
Event yang Perlu Didengarkan
Setidaknya, dengarkan event berikut dalam alur one-time payment:
Jika Anda menjual produk dengan license keys, tangani juga
license_key.created. Untuk daftar lengkap event, termasuk event subscription, entitlement, credit, recovery, dan dunning, lihat Webhook Event Guide.
Untuk contoh Next.js dan TypeScript lengkap, lihat demo repository dan live deployment-nya.
Mata Uang dan Alamat Penagihan
Untuk menagih dalam mata uang tertentu, teruskanbilling_currency dan billing_address.country saat membuat checkout session. Jika tidak disertakan, Adaptive Currency memilih mata uang dan negara berdasarkan alamat IP pelanggan, yang mungkin bukan mata uang yang ingin Anda gunakan untuk penagihan.
Jumlah Pay What You Want menggunakan mata uang dasar produk, yang harus berupa USD, GBP, atau EUR. Untuk menagih jumlah tetap dalam mata uang lain, gunakan Adaptive Currency, yang mengonversi harga dasar berdasarkan nilai tukar terkini, atau Localized Pricing, yang menetapkan harga tetap untuk setiap mata uang. Localized Pricing tidak berfungsi dengan Pay What You Want.
Pembelian Ulang Sekali Klik
Untuk menagih pelanggan yang kembali menggunakan metode pembayaran tersimpan, teruskanpayment_method_id bersama confirm: true. payment_method_id hanya diterima jika confirm adalah true, dan Anda juga harus meneruskan customer_id milik pelanggan yang sudah ada. Karena confirm adalah true, Anda juga harus meneruskan billing_address lengkap, atau hanya country dan zipcode saat minimal_address adalah true. Session langsung menagih metode pembayaran tersimpan, sehingga tidak mengembalikan checkout_url. Gunakan webhooks untuk mengetahui apakah pembayaran berhasil.
Halaman Terkait
Checkout Sessions
Panduan lengkap dengan opsi kustomisasi tingkat lanjut.
Overlay Checkout
Sematkan checkout sebagai overlay modal di halaman Anda.
Inline Checkout
Sematkan checkout langsung dalam tata letak halaman Anda.
Subscription Integration
Siapkan penagihan berulang.
Webhook Event Guide
Daftar lengkap semua event webhook.
API Reference
Dokumentasi Checkout Sessions API.