
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).
- Jenis (wajib): Persentase (diskon dalam persentase) atau Jumlah (potongan tetap).
- Jumlah (wajib): Untuk persentase, persentase diskon di dashboard (misalnya,
15untuk 15%). Melalui API, nilai yang sama dinyatakan dalam basis points (1500). Untuk jumlah, potongan tetap dalam mata uang default kode. - Tanggal Mulai (opsional): Jadwalkan kode agar aktif pada tanggal mendatang. Biarkan kosong untuk mengaktifkannya segera.
- Tanggal Kedaluwarsa (opsional): Tanggal setelah kode tidak lagi dapat ditukarkan.
- Batas Penggunaan (opsional, di bawah Lanjutan): Jumlah maksimum penukaran oleh semua pelanggan.
- Batas Penggunaan per Pelanggan (opsional, di bawah Lanjutan): Jumlah maksimum penukaran oleh satu pelanggan. Harus kurang dari atau sama dengan batas penggunaan keseluruhan jika keduanya ditetapkan.
- Kelayakan Pelanggan (opsional): Batasi siapa yang dapat menukarkan — semua pelanggan, pelanggan baru, pelanggan yang sudah ada, atau daftar yang dipilih secara manual.
- Opsi Mata Uang (opsional): Jumlah diskon untuk setiap mata uang yang Anda gunakan untuk berjualan. Lihat Opsi per Mata Uang.
- Pembatasan Produk (opsional): Batasi kode ke produk tertentu.
- Batas Siklus Subscription (opsional, di bawah Lanjutan): Jumlah siklus penagihan yang menerima diskon. Biarkan kosong untuk periode tidak terbatas.
- Pertahankan saat Perubahan Paket (opsional): Pertahankan diskon tetap aktif saat subscription berganti paket (
preserve_on_plan_change). - Metadata (opsional): Lampirkan pasangan kunci–nilai khusus untuk pelacakan internal.
- Wajibkan nilai pesanan minimum (opsional, di bawah Lanjutan): 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 penumpukan tidak pernah mengubah apakah minimum terpenuhi.
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.Menumpuk Kode Diskon
Sesi checkout, pembayaran, dan subscription 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 pembayaran/subscription) dan discounts (detail per diskon yang lebih lengkap, termasuk posisi dan sisa siklus subscription).
Field tunggal
discount_code sudah tidak digunakan lagi, tetapi tetap didukung sepenuhnya untuk kompatibilitas mundur. Field ini tidak dapat digabungkan dengan discount_codes dalam request yang sama. Migrasikan ke discount_codes (bentuk array) untuk memanfaatkan penumpukan dan respons yang lebih lengkap.Pada harga subscription dengan Card-Optional at Zero Price diaktifkan, tumpukan kode yang mengurangi jumlah jatuh tempo hari ini hingga
0 juga melewati persyaratan kartu — pelanggan menyelesaikan checkout tanpa metode pembayaran yang tersimpan, sama seperti harga 0 native.Pengelolaan API
Create discounts
Create discounts
Buat kode diskon secara terprogram dengan type dan amount.
API Reference
Lihat create discount API.
List and retrieve
List and retrieve
Daftar semua diskon atau dapatkan detailnya untuk pengelolaan dan audit.
API Reference
Telusuri listing dan retrieval APIs.
Get discount by code
Get discount by code
Cari diskon menggunakan kode yang mudah dibaca (misalnya, “SAVE20”), bukan ID internal.
API Reference
Dapatkan diskon berdasarkan nama kodenya.
Update discounts
Update discounts
Ubah konfigurasi diskon seperti amount, expiration, atau restrictions.
API Reference
Pelajari cara memperbarui detail diskon.
Retrieve a discount
Retrieve a discount
Ambil diskon berdasarkan ID-nya untuk memeriksa status, jumlah penggunaan, dan batasannya 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 diatur ke specific, kelola pelanggan yang dapat menukarkannya: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. Pemanggilan ini idempotent dan menerima hingga 1000 ID, yang semuanya harus sudah ada di bisnis Anda. Respons hanya mengembalikan ID yang dikirim dalam permintaan tersebut, jadi gunakan endpoint list untuk membaca seluruh allow list.DELETE /discounts/{discount_id}/customers/{customer_id}— lepaskan satu pelanggan.
Kasus Penggunaan Umum
- Intro offers: Promosi peluncuran dengan waktu terbatas untuk produk baru
- Bulk or B2B: Diskon berdasarkan kontrak untuk kumpulan produk tertentu
- Retention plays: Kode win-back dalam alur kerja pencegahan churn
- Seasonal campaigns: Promosi berbasis hari raya atau acara
Contoh Integrasi
Membuat Diskon dengan Metadata
Lampirkan pasangan kunci–nilai khusus untuk pelacakan internal.Menerapkan Diskon dalam Checkout Sessions
Terapkan terlebih dahulu satu atau beberapa diskon yang ditumpuk dan tampilkan UI input kode.Menerapkan Diskon Selama Perubahan Paket
Tawarkan harga promosi saat pelanggan meningkatkan atau menurunkan paket subscription mereka.discount_codes mengontrol 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 periode: 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.