Langsung ke konten utama

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Discount codes overview cover
Kode diskon memungkinkan Anda menjalankan promosi dan insentif yang ditargetkan. Buat diskon persentase atau jumlah tetap, atur batas dan tanggal kedaluwarsa, batasi produk, dan terapkan dengan mulus di checkout.

Checkout Sessions

Terapkan satu atau beberapa kode yang ditumpuk selama checkout yang di-host dengan discount_codes dan kontrol UI.

Validate Discount

Periksa apakah diskon valid berdasarkan ID-nya.

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:
  • Kampanye musiman: Black Friday, peluncuran produk, atau ulang tahun
  • Tawaran akuisisi: Insentif pembelian pertama atau hadiah rujukan
  • Retensi: Hadiah untuk memenangkan kembali atau loyalitas bagi pelanggan yang ada
  • Kesepakatan B2B: Harga yang dikontrak atau dinegosiasikan melalui kode pribadi

Manfaat Utama

  • 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: Persentase atau jumlah tetap
  • Kode yang dapat ditumpuk: Terapkan hingga 20 kode per checkout, pembayaran, atau langganan — gabungkan kampanye (misalnya WELCOME10 + BLACKFRIDAY20) tanpa membuat kode khusus
  • Kontrol yang ditargetkan: Batasi berdasarkan produk dan siklus langganan
  • Pengelolaan kampanye: Tanggal kedaluwarsa dan batasan penggunaan
  • Checkout yang mulus: Dukungan bidang UI dan API melalui sesi checkout
Buat kode diskon di dasbor Dodo Payments Anda, lalu terapkan di checkout yang dihosting atau melalui API.

Pengaturan Dasbor

  • Nama Diskon (wajib): Nama tampilan internal dan dasbor
  • Kode (wajib): String yang dimasukkan pelanggan saat checkout
  • Tipe & Jumlah (wajib): Tetapkan nilai persentase atau jumlah tetap, atau buat kode acak menggunakan tombol yang disediakan
  • Tanggal Kedaluwarsa (opsional): Tanggal setelah kode menjadi tidak valid
  • Batas Penggunaan (opsional): Total maksimum penukaran di seluruh pelanggan
  • Pembatasan Produk (opsional): Batasi penerapan pada produk yang dipilih
  • Batas Siklus Langganan (opsional): Jumlah siklus penagihan yang berlaku untuk diskon
  • Nama Diskon (wajib): Nama tampilan internal dan di dasbor
  • Kode (wajib): String yang dimasukkan pelanggan saat checkout
  • Jenis & Jumlah (wajib): Tetapkan nilai persentase atau jumlah tetap, atau buat kode acak menggunakan tombol yang disediakan
  • Tanggal Kedaluwarsa (opsional): Tanggal setelah kode menjadi tidak valid
  • Batasan Penggunaan (opsional): Maksimal total penebusan untuk semua pelanggan
  • Pembatasan Produk (opsional): Batasi penerapan pada produk yang dipilih
  • Batas Siklus Berlangganan (opsional): Jumlah siklus penagihan yang berlaku untuk diskon
  • Metadata (opsional): Lampirkan pasangan kunci–nilai kustom untuk pelacakan internal atau integrasi

Pengalaman Checkout

  1. Pembeli memasukkan kode di field checkout.
  2. Diskon yang memenuhi syarat diterapkan dan total diperbarui segera.
Dalam Sesi Checkout, kirim discount_code untuk menerapkan kode terlebih dahulu, dan atur feature_flags.allow_discount_code untuk menampilkan bidang input.
Dalam Sesi Checkout, serahkan discount_codes (sebuah array) untuk menerapkan satu atau beberapa kode sebelumnya, dan atur feature_flags.allow_discount_code untuk menampilkan bidang input. Kode diterapkan dalam urutan array, dengan maksimum 20.
Sesi checkout, pembayaran, dan langganan menerima hingga 20 kode yang ditumpuk melalui array discount_codes (maksimal 20 entri). Kode diterapkan dalam urutan array, jadi kode terpilih pertama mengurangi harga dasar terlebih dahulu, kode berikutnya mengurangi harga yang sudah didiskon, dan seterusnya. Set lengkap diskon yang diterapkan dikembalikan dalam respons di bawah discount_ids (pada pembayaran/langganan) dan discounts (detail per diskon yang lebih kaya, termasuk posisi dan siklus langganan yang tersisa).
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  discount_codes: ['WELCOME10', 'BLACKFRIDAY20'], // applied in this order
  customer: { email: 'user@example.com' },
  return_url: 'https://yoursite.com/return'
});
Bidang tunggal discount_code tidak lagi digunakan tetapi tetap didukung sepenuhnya untuk kompatibilitas mundur — integrasi yang ada tetap berfungsi tanpa perubahan. Tidak dapat digabungkan dengan discount_codes dalam permintaan yang sama. Kami merekomendasikan pengalihan ke discount_codes (bentuk array) jika nyaman, meskipun untuk kode tunggal, untuk memanfaatkan penumpukan dan respons yang lebih kaya.

Manajemen API

Buat kode diskon secara programatik dengan jenis dan jumlah.

API Reference

Lihat API pembuatan diskon.
Daftar semua diskon atau ambil detail untuk manajemen dan audit.

API Reference

Telusuri API daftar dan pengambilan.
Cari diskon menggunakan kode yang mudah dibaca manusia (misalnya, “SAVE20”) alih-alih ID internal.

API Reference

Ambil diskon berdasarkan nama kode.
Ubah konfigurasi diskon seperti jumlah, kedaluwarsa, atau pembatasan.

API Reference

Pelajari cara memperbarui detail diskon.
Periksa apakah diskon valid dan dapat diterapkan sebelum menggunakan.

API Reference

Validasi penggunaan diskon.
Menonaktifkan atau menghapus diskon yang tidak lagi diperlukan.

API Reference

Hapus diskon.

Kasus Penggunaan Umum

  • Penawaran intro: Promosi peluncuran waktu terbatas untuk produk baru
  • Bulk atau B2B: Diskon kontrak untuk set produk tertentu
  • Pemutaran retensi: Kode menangkan kembali dalam alur kerja pencegahan churn
  • Kampanye musiman: Promosi berbasis liburan atau acara

Contoh Integrasi

Buat diskon dengan metadata

Lampirkan pasangan kunci–nilai kustom untuk pelacakan internal.
const discount = await client.discounts.create({
  type: 'percentage',
  amount: 1500, // 15%
  code: 'SUMMER2025',
  metadata: {
    campaign: 'summer_promo',
    source: 'email_blast'
  }
});
Gunakan metadata untuk memberi tag diskon berdasarkan kampanye, sumber, atau ID referensi internal sehingga Anda dapat merekonsiliasi penggunaan dan mengukur ROI kemudian.

Terapkan diskon dalam Sesi Checkout

Terapkan satu atau lebih diskon yang ditumpuk terlebih dahulu dan tampilkan UI input kode.
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_codes: ['BLACKFRIDAY2024', 'NEWUSER5'], // stacked in array order
  customer: { email: 'user@example.com', name: 'Jane Doe' },
  return_url: 'https://yoursite.com/return'
});

Terapkan diskon selama perubahan paket

Tawarkan harga promosi ketika pelanggan meningkatkan atau menurunkan langganan mereka.
await client.subscriptions.changePlan('sub_123', {
  product_id: 'prod_pro',
  quantity: 1,
  proration_billing_mode: 'prorated_immediately',
  discount_codes: ['UPGRADE20']
});
discount_codes nilaiPerilaku pada perubahan paket
undefined / null (tidak disediakan)Diskon yang ada dengan preserve_on_plan_change=true dipertahankan jika berlaku untuk produk baru.
[] (array kosong)Semua diskon yang ada dihapus dari langganan.
['CODE_A', 'CODE_B', ...]Menggantikan diskon yang ada dengan set bertumpuk ini, diterapkan dalam urutan array.
Baca semua diskon yang diterapkan dari langganan melalui array discounts baru pada respons langganan. Setiap entri menyertakan discount_id, position, cycles_remaining (untuk langganan), dan kode asli.

Aktifkan entri diskon tanpa menerapkan sebelumnya

Biarkan pelanggan memasukkan kode saat checkout tanpa menyerahkan satu pun terlebih dahulu.
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return'
});

Praktik Terbaik

  • Nama dengan jelas: Gunakan kode yang mudah dikenali yang sesuai dengan nama kampanye
  • Batasi waktu: Tambahkan kedaluwarsa untuk mendorong urgensi dan mencegah penyalahgunaan
  • Tetapkan dengan bijak: Batasi ke produk tertentu untuk menghindari kebocoran margin
  • Validasi lebih awal: Periksa penerapan kode sebelum checkout dikonfirmasi
  • Pantau dampak: Lacak penggunaan dan konversi berdasarkan kampanye
Kode diskon adalah alat yang kuat untuk akuisisi dan retensi. Mulailah dengan penawaran yang sederhana dan jelas, validasikan secara menyeluruh, dan iterasikan berdasarkan kinerja.
Last modified on May 22, 2026