
Checkout Sessions
Terapkan satu atau beberapa kode yang ditumpuk selama checkout yang di-host dengan
discount_codes dan kontrol UI.Get Discount
Dapatkan diskon berdasarkan ID-nya untuk memeriksa status dan batasannya.
Get Discount by Code
Cari dan validasi diskon menggunakan nama kode yang dapat dibaca manusia (misalnya “SAVE20”).
Create Discount (API)
Buat kode diskon baru secara programatis.
List & Update Discounts
Telusuri dan kelola diskon yang ada; perbarui atau hapus sesuai kebutuhan.
Apa Itu Kode Diskon?
Kode diskon adalah token promosi yang mengurangi total pesanan saat checkout. Mereka ideal untuk: Kode diskon adalah token promosi yang mengurangi total pesanan saat checkout. Gunakan untuk kampanye musiman, insentif pembelian pertama, penawaran untuk memenangkan kembali pelanggan, atau harga B2B yang dinegosiasikan. Kode dapat berbasis persentase (misalnya, diskon 15%) atau jumlah tetap (misalnya, potongan $5). Anda dapat menumpuk hingga 20 kode per checkout, pembayaran, atau subscription, sehingga pelanggan dapat menukarkan penawaran sambutan dan kode kampanye dalam transaksi yang sama. Batasi kode ke produk tertentu, batasi berapa kali setiap pelanggan dapat menggunakannya, tetapkan tanggal kedaluwarsa, dan kontrol siapa yang berhak menukarkannya.- Diskon fleksibel: Persentase atau jumlah tetap
- Kontrol terarah: Batasi berdasarkan produk dan siklus langganan
- Tata kelola kampanye: Tanggal kedaluwarsa dan batas penggunaan
- Checkout yang mulus: Dukungan UI field dan API melalui sesi checkout
- Diskon fleksibel: Diskon berbasis persentase atau jumlah tetap
- Kode yang dapat ditumpuk: Terapkan hingga 20 kode per checkout, pembayaran, atau subscription
- Kontrol tertarget: Batasi berdasarkan produk, siklus subscription, dan kelayakan pelanggan
- Tata kelola kampanye: Tanggal mulai terjadwal, tanggal kedaluwarsa, serta batas penggunaan keseluruhan dan per pelanggan
- Harga per mata uang: Tetapkan potongan tetap, batas jumlah, dan subtotal minimum untuk setiap mata uang
Pengaturan Dasbor

Penyiapan Dashboard
- Nama Diskon (wajib): Label internal untuk dashboard.
- Kode (wajib): String yang dimasukkan pelanggan saat checkout. Buat kode acak atau masukkan kode Anda sendiri (minimal 3 karakter, otomatis diubah menjadi huruf besar).
- Tipe (wajib): Percentage (persentase potongan) atau Amount (potongan tetap).
- Amount (wajib): Untuk percentage, persentase potongan di dashboard (misalnya,
15untuk 15%). Melalui API, nilai yang sama dinyatakan dalam basis points (1500). Untuk amount, potongan tetap dalam mata uang default kode. - Tanggal Mulai (opsional): Jadwalkan aktivasi kode pada tanggal mendatang. Kosongkan untuk mengaktifkannya segera.
- Tanggal Kedaluwarsa (opsional): Tanggal setelah kode tidak lagi dapat digunakan.
- Batas Penggunaan (opsional, di bawah Advanced): Jumlah maksimum penggunaan oleh semua pelanggan. Keranjang multi-langganan dihitung sebagai satu penggunaan.
- Batas Penggunaan per Pelanggan (opsional, di bawah Advanced): Jumlah maksimum penggunaan oleh satu pelanggan. Nilainya harus kurang dari atau sama dengan batas penggunaan keseluruhan jika keduanya ditetapkan.
- Kelayakan Pelanggan (opsional): Batasi pihak yang dapat menggunakan kode — semua pelanggan, pelanggan pertama kali, pelanggan lama, atau daftar yang dipilih secara manual.
- Opsi Mata Uang (opsional): Jumlah diskon untuk setiap mata uang yang Anda jual. Lihat Opsi per Mata Uang.
- Pembatasan Produk (opsional): Batasi kode ke produk tertentu.
- Batas Siklus Langganan (opsional, di bawah Advanced): Jumlah siklus penagihan yang menerapkan diskon. Kosongkan untuk durasi tidak terbatas.
- Pertahankan saat Perubahan Paket (opsional): Pertahankan diskon tetap aktif saat langganan berganti paket (
preserve_on_plan_change). - Metadata (opsional): Lampirkan pasangan key–value khusus untuk pelacakan internal.
- Wajibkan nilai pesanan minimum (opsional, di bawah Advanced): Subtotal keranjang minimum (per mata uang) agar kode dapat diterapkan.


Persentase
amount dinyatakan dalam basis points melalui API — 1500 berarti 15%. amount tetap merupakan nilai uang dan menggunakan denominasi opsi mata uang kode.Jenis Diskon
Kedua jenis dapat ditumpuk dalam array
discount_codes yang sama dan diterapkan sesuai urutan array.

Kelayakan Pelanggan
Aturcustomer_eligibility untuk mengontrol pihak yang dapat menukarkan kode:

Opsi Per Mata Uang
Saat Anda berjualan dalam beberapa mata uang, tetapkan perilaku per mata uang untuk setiap kode. Di bawah Opsi mata uang, setiap entri menentukan:- Jumlah — untuk diskon Jumlah, potongan tetap dalam mata uang tersebut; untuk diskon Persentase, batas maksimum diskon. Dipetakan ke
max_amount_possibledalam API. - Default — tandai satu mata uang sebagai default. Mata uang yang belum dikonfigurasi dikonversi dari mata uang default ini.
- Subtotal minimum — kode hanya diterapkan jika keranjang mencapai subtotal ini dalam mata uang tersebut.
0berarti tanpa minimum.

Subtotal minimum selalu diukur berdasarkan harga asli keranjang, bukan total berjalan setelah diskon sebelumnya dalam tumpukan diterapkan. Urutan tumpukan tidak pernah mengubah apakah nilai minimum terpenuhi.Untuk langganan, nilai minimum diperiksa sekali berdasarkan produk dan add-on secara bersamaan. Misalnya, produk seharga $0 dengan add-on seharga $5 memenuhi minimum $4. Kode Amount (
flat) tetap hanya diterapkan pada produk langganan, bukan add-on-nya.Pengalaman Checkout
Pelanggan memasukkan kode diskon di kolom checkout. Kode yang memenuhi syarat langsung diterapkan dan total diperbarui.
Dalam Checkout Sessions, teruskan
discount_codes (sebuah array) untuk menerapkan satu atau beberapa kode terlebih dahulu. Kolom input diskon ditampilkan secara default. Tetapkan feature_flags.allow_discount_code ke false untuk menyembunyikannya. Kode diterapkan sesuai urutan array, hingga maksimum 20 kode.Menumpuk Kode Diskon
Checkout sessions, payments, dan subscriptions menerima hingga 20 kode yang ditumpuk melalui arraydiscount_codes. Kode diterapkan sesuai urutan array: kode pertama yang memenuhi syarat mengurangi harga awal, kode berikutnya mengurangi harga yang sudah didiskon, dan seterusnya. Saat Purchasing Power Parity diaktifkan, harga awal adalah jumlah yang disesuaikan dengan PPP. Respons mencakup discount_ids (pada payments/subscriptions) dan discounts (detail yang lebih lengkap per diskon, termasuk posisi dan sisa siklus langganan).
Field tunggal
discount_code sudah deprecated, tetapi sepenuhnya didukung untuk kompatibilitas mundur. Field ini tidak dapat digabungkan dengan discount_codes dalam request yang sama. Migrasikan ke discount_codes (bentuk array) untuk memanfaatkan stacking dan respons yang lebih lengkap.Pada harga subscription dengan Card-Optional at Zero Price yang diaktifkan, tumpukan kode yang mengurangi jumlah yang harus dibayar hari ini hingga
0 juga melewati persyaratan kartu — pelanggan menyelesaikan checkout tanpa payment method yang tersimpan, sama seperti harga 0 native.Manajemen API
Create discounts
Create discounts
Buat kode diskon secara terprogram dengan tipe dan jumlah tertentu.
API Reference
Lihat API untuk membuat diskon.
List and retrieve
List and retrieve
Daftar semua diskon atau ambil detailnya untuk pengelolaan dan audit.
API Reference
Telusuri API listing dan retrieval.
Get discount by code
Get discount by code
Cari diskon menggunakan kode yang mudah dibaca manusia (misalnya, “SAVE20”), bukan ID internal.
API Reference
Ambil diskon berdasarkan nama kode.
Update discounts
Update discounts
Ubah konfigurasi diskon seperti jumlah, kedaluwarsa, atau pembatasan.
API Reference
Pelajari cara memperbarui detail diskon.
Retrieve a discount
Retrieve a discount
Ambil diskon berdasarkan ID-nya untuk memeriksa status, jumlah penggunaan, dan pembatasannya sebelum menerapkannya.
API Reference
Dapatkan diskon berdasarkan ID.
Delete discounts
Delete discounts
Nonaktifkan atau hapus diskon yang tidak lagi diperlukan.
API Reference
Hapus diskon.
Manage the customer allow list
Manage the customer allow list
Untuk diskon dengan
customer_eligibility yang ditetapkan ke specific, kelola pelanggan yang dapat menggunakannya:GET /discounts/{discount_id}/customers— tampilkan daftar pelanggan yang terlampir (dengan pagination, hingga 100 per halaman).POST /discounts/{discount_id}/customers— lampirkan pelanggan berdasarkan ID. Panggilan ini idempotent dan menerima hingga 1000 ID, yang semuanya harus sudah ada dalam bisnis Anda. Respons hanya mengembalikan ID yang dikirim dalam request tersebut, jadi gunakan endpoint list untuk membaca seluruh allow list.DELETE /discounts/{discount_id}/customers/{customer_id}— lepaskan satu pelanggan.
Kasus Penggunaan Umum
- Penawaran perkenalan: Promosi peluncuran dengan waktu terbatas untuk produk baru
- Pembelian dalam jumlah besar atau B2B: Diskon berdasarkan kontrak untuk kumpulan produk tertentu
- Upaya retensi: Kode win-back dalam alur kerja pencegahan churn
- Kampanye musiman: Promosi berbasis hari libur atau acara
Contoh Integrasi
Membuat Diskon dengan Metadata
Lampirkan pasangan key–value khusus untuk pelacakan internal.Menerapkan Diskon dalam Checkout Sessions
Terapkan satu atau beberapa diskon yang ditumpuk terlebih dahulu dan tampilkan UI input kode.Menerapkan Diskon saat Perubahan Paket
Tawarkan harga promosi saat pelanggan melakukan upgrade atau downgrade subscription.discount_codes mengatur cara penanganan diskon:
Baca semua diskon yang diterapkan dari array
discounts milik subscription dalam respons. Setiap entri mencakup discount_id, position, cycles_remaining, dan kode asli.Menyembunyikan Kolom Kode Diskon
Input diskon ditampilkan secara default. Tetapkanallow_discount_code ke false untuk menyembunyikannya.
Praktik Terbaik
- Beri nama dengan jelas: Gunakan kode yang mudah dikenali dan sesuai dengan nama kampanye.
- Batasi waktu: Tambahkan tanggal kedaluwarsa untuk mendorong urgensi dan mencegah penyalahgunaan.
- Tentukan cakupan dengan bijak: Batasi ke produk tertentu untuk mencegah kebocoran margin.
- Validasi lebih awal: Periksa penerapan kode sebelum mengonfirmasi checkout.
- Pantau dampak: Lacak penggunaan dan konversi berdasarkan kampanye.