# Tambahkan diskon

Kurangi jumlah yang di-charge kepada pelanggan dengan mendiskon subtotal mereka dengan kupon dan kode promosi.

# Halaman yang di-hosting

> This is a Halaman yang di-hosting for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/checkout/discounts?payment-ui=stripe-hosted.

Anda dapat menggunakan diskon untuk mengurangi jumlah yang di-charge kepada pelanggan. Kupon dan kode promosi memungkinkan Anda untuk:

- Terapkan diskon ke seluruh subtotal pembelian
- Terapkan diskon ke produk tertentu
- Mengurangi total yang di-charge dengan persentase atau jumlah tetap
- Membuat kode promosi yang dilihat pelanggan di atas kupon untuk dibagikan secara langsung kepada pelanggan

> Untuk menggunakan kupon diskon *langganan* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) dengan Checkout dan Billing, lihat [Diskon untuk langganan](https://docs.stripe.com/billing/subscriptions/coupons.md).

## Buat kupon

Kupon menentukan diskon nilai tetap. Anda dapat membuat kode promosi yang dilihat oleh pengguna yang memetakan ke satu kupon yang mendasari. Ini berarti kode `FALLPROMO` maupun `SPRINGPROMO` dapat menunjukkan satu kupon diskon 25%. Anda dapat membuat kupon di [Dashboard](https://dashboard.stripe.com/coupons) atau dengan [API](https://docs.stripe.com/api.md#coupons):

```curl
curl https://api.stripe.com/v1/coupons \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d percent_off=20 \
  -d duration=once
```

## Gunakan kupon

Untuk membuat sesi dengan diskon yang diterapkan, teruskan [ID kupon](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) di `kupon` parameter [Diskon](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts) array. Sesi Checkout saat ini mendukung hingga satu kupon atau kode promosi.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price]={{PRICE_ID}}" \
  -d "line_items[0][quantity]=1" \
  -d "discounts[0][coupon]={{COUPON_ID}}" \
  -d mode=payment \
  --data-urlencode "success_url=https://example.com/success"
```

## Konfigurasikan kupon

Kupon memiliki parameter berikut yang dapat Anda gunakan:

- `currency`
- `percent_off` atau `amount_off`
- `max_redemptions`
- `redeem_by`, tanggal terakhir pelanggan dapat menerapkan kupon
- `applies_to`, membatasi penerapan kupon pada produk

> Objek kupon menambahkan diskon ke langganan maupun pembayaran satu kali. Sebagian parameter objek kupon, seperti `duration`, hanya berlaku pada [langganan](https://docs.stripe.com/billing/subscriptions/coupons.md).

### Batasi penggunaan penukaran

Nilai `max_redemptions` dan `redeem_by` berlaku untuk kupon di setiap aplikasi. Misalnya, Anda dapat membatasi kupon untuk 50 penggunaan pertama, atau Anda dapat membuat kupon kedaluwarsa pada tanggal tertentu.

### Batasi produk yang memenuhi syarat

Anda dapat membatasi produk yang memenuhi syarat diskon menggunakan kupon dengan menambahkan identifikasi produk ke hash `applies_to` di objek Kupon. Kode promosi yang dipetakan ke kupon ini hanya diterapkan ke daftar produk yang memenuhi syarat.

### Hapus kupon

Anda dapat menghapus kupon di Dashboard atau API. Menghapus kupon mencegahnya diterapkan ke transaksi atau pelanggan di masa mendatang.

## Buat kode promosi

Kode promosi adalah kode yang dilihat oleh pelanggan yang dibuat sebagai tambahan atas kupon. Anda juga dapat menentukan pembatasan tambahan yang mengontrol kapan pelanggan dapat menerapkan promosi. Anda dapat membagikan kode ini kepada pelanggan yang dapat memasukkannya selama checkout untuk menerapkan diskon.

Untuk membuat [kode promosi](https://docs.stripe.com/api/promotion_codes.md), tentukan `kupon` yang sudah ada dan batasan apa pun (misalnya, membatasinya untuk [pelanggan](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer) atau [customer_account](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer_account) tertentu). Jika Anda memiliki kode khusus untuk diberikan kepada pelanggan Anda (misalnya, `FALL25OFF`), masukkan `kode` tersebut. Jika Anda membiarkan kolom ini kosong, kami akan membuat `kode` acak untuk Anda.

`code` ini tidak membedakan besar-kecilnya huruf dan bersifat unik di semua kode promosi yang aktif untuk pelanggan. Misalnya:

- Anda dapat membuat beberapa kode promosi yang dibatasi pelanggan dengan `code` yang sama, tetapi Anda tidak dapat menggunakan kembali `code` tersebut untuk kode promosi yang dapat ditukarkan oleh pelanggan.
- Jika Anda membuat kode promosi yang dapat ditukarkan oleh pelanggan, maka Anda tidak dapat membuat kode promosi aktif lain dengan `code` yang sama.
- Anda dapat membuat kode promosi dengan `code: NEWUSER`, nonaktifkan dengan meneruskan ke `active: false`, kemudian buat kode promosi baru dengan `code: NEWUSER`.

Kode promosi dapat dibuat pada bagian kupon di [Dashboard](https://dashboard.stripe.com/coupons/create) atau dengan [API](https://docs.stripe.com/api.md#promotion_codes):

```curl
curl https://api.stripe.com/v1/promotion_codes \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d coupon={{COUPON_ID}} \
  -d code=VIPCODE
```

## Gunakan kode promosi

Aktifkan kode promosi yang dapat ditukar pelanggan menggunakan parameter [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) di Sesi Checkout. Ini mengaktifkan bidang di Checkout yang memungkinkan pelanggan menginput kode promosi.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price_data][unit_amount]=2000" \
  -d "line_items[0][price_data][product_data][name]=T-shirt" \
  -d "line_items[0][price_data][currency]=usd" \
  -d "line_items[0][quantity]=1" \
  -d mode=payment \
  -d allow_promotion_codes=true \
  --data-urlencode "success_url=https://example.com/success"
```

## Konfigurasikan kode promosi

Untuk setiap kode promosi, Anda dapat menyesuaikan pelanggan yang memenuhi syarat, penukaran, dan batas lainnya.

### Batasi berdasarkan pelanggan

Untuk membatasi promosi ke pelanggan tertentu, tentukan [pelanggan](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer) atau [customer_account](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer_account) saat membuat kode promosi. Jika tidak ada pelanggan yang ditentukan, kode dapat ditukar oleh pelanggan mana pun.

### Batasi dengan pesanan pertama kali

Anda juga dapat membatasi kode promosi untuk pelanggan pertama kali dengan [restrictions.first_time_transaction](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-first_time_transaction). Jika `pelanggan` atau `customer_account` tidak didefinisikan, atau jika `pelanggan` atau `customer_account` yang ditentukan tidak memiliki pembayaran sebelumnya atau *invoice* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice), ini dianggap sebagai transaksi pertama kali.

> Sessions yang tidak membuat pelanggan membuat [pelanggan tamu](https://docs.stripe.com/payments/checkout/guest-customers.md) di Dashboard sebagai gantinya. Kode promosi yang dibatasi untuk pelanggan pertama kali masih diterima untuk Sessions ini.

### Tetapkan jumlah minimum

Dengan kode promosi, Anda dapat mengatur jumlah transaksi minimum untuk diskon yang memenuhi syarat dengan melakukan konfigurasi [minimum_amount](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount) dan [minimum_amount_currency](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount_currency). Karena pembatasan kode promosi diperiksa pada waktu penukaran, jumlah transaksi minimum hanya berlaku untuk pembayaran awal langganan.

### Sesuaikan kedaluwarsa

Anda dapat mengatur tanggal kedaluwarsa pada kode promosi menggunakan [expires_at](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-expires_at). Jika `redeem_by` sudah diatur di kupon yang mendasarinya, maka tanggal kedaluwarsa kode promosi tidak boleh lebih lama dari kupon. Jika `promotion_code[expires_at]` tidak ditentukan, `redeem_by` kupon secara otomatis mengisikan `expires_at`.

Sebagai contoh, Anda mungkin memiliki rencana untuk mendukung kupon selama satu tahun, tetapi Anda hanya ingin kupon tersebut dapat ditukarkan selama satu minggu setelah pelanggan menerimanya. Anda dapat mengatur `coupon[redeem_by]` ke satu tahun sejak sekarang, dan mengatur setiap `promotion_code[expires_at]` ke satu minggu setelah dibuat.

### Batasi penukaran

Anda dapat membatasi jumlah penukaran dengan menggunakan [max_redemptions](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-max_redemptions), yang berfungsi mirip dengan parameter kupon. Jika `max_redemptions` sudah diatur di kupon yang mendasarinya, maka `max_redemptions` untuk kode promosi tidak boleh lebih besar dari kupon.

Sebagai contoh, Anda mungkin ingin kupon obral musiman dapat ditukarkan oleh 50 pelanggan pertama, tetapi promosi musim dingin hanya dapat menggunakan 20 dari penukaran tersebut. Dalam skenario ini, Anda dapat mengatur `coupon[max_redemptions]: 50` dan `promotion_code[max_redemptions]: 20`.

### Promosi tidak aktif

Anda dapat mengatur apakah kode promosi saat ini dapat ditukarkan dengan menggunakan parameter [aktif](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-active). Namun, jika kupon dasar untuk kode promosi menjadi tidak valid, semua kode promosinya menjadi tidak aktif secara permanen. Demikian pula, jika mencapai `max_redemptions` atau `expires_at`, kode promosi menjadi tidak aktif secara permanen. Anda tidak dapat mengaktifkan kembali kode promosi ini.

### Hapus promosi

Anda dapat menghapus promosi di Dashboard atau API. Menghapus promosi mencegahnya diterapkan ke transaksi atau pelanggan di masa mendatang.


# Halaman tersemat

> This is a Halaman tersemat for when payment-ui is embedded-form. View the full page at https://docs.stripe.com/payments/checkout/discounts?payment-ui=embedded-form.

Anda dapat menggunakan diskon untuk mengurangi jumlah yang di-charge kepada pelanggan. Kupon dan kode promosi memungkinkan Anda untuk:

- Terapkan diskon ke seluruh subtotal pembelian
- Terapkan diskon ke produk tertentu
- Mengurangi total yang di-charge dengan persentase atau jumlah tetap
- Membuat kode promosi yang dilihat pelanggan di atas kupon untuk dibagikan secara langsung kepada pelanggan

> Untuk menggunakan kupon diskon *langganan* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) dengan Checkout dan Billing, lihat [Diskon untuk langganan](https://docs.stripe.com/billing/subscriptions/coupons.md).

## Buat kupon

Kupon menentukan diskon nilai tetap. Anda dapat membuat kode promosi yang dilihat oleh pengguna yang memetakan ke satu kupon yang mendasari. Ini berarti kode `FALLPROMO` maupun `SPRINGPROMO` dapat menunjukkan satu kupon diskon 25%. Anda dapat membuat kupon di [Dashboard](https://dashboard.stripe.com/coupons) atau dengan [API](https://docs.stripe.com/api.md#coupons):

```curl
curl https://api.stripe.com/v1/coupons \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d percent_off=20 \
  -d duration=once
```

## Gunakan kupon

Untuk membuat sesi dengan diskon yang diterapkan, teruskan [ID kupon](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) di `kupon` parameter [Diskon](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts) array. Sesi Checkout saat ini mendukung hingga satu kupon atau kode promosi.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price]={{PRICE_ID}}" \
  -d "line_items[0][quantity]=1" \
  -d "discounts[0][coupon]={{COUPON_ID}}" \
  -d mode=payment \
  -d ui_mode=embedded_page \
  --data-urlencode "return_url=https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}"
```

## Konfigurasikan kupon

Kupon memiliki parameter berikut yang dapat Anda gunakan:

- `currency`
- `percent_off` atau `amount_off`
- `max_redemptions`
- `redeem_by`, tanggal terakhir pelanggan dapat menerapkan kupon
- `applies_to`, membatasi penerapan kupon pada produk

> Objek kupon menambahkan diskon ke langganan maupun pembayaran satu kali. Sebagian parameter objek kupon, seperti `duration`, hanya berlaku pada [langganan](https://docs.stripe.com/billing/subscriptions/coupons.md).

### Batasi penggunaan penukaran

Nilai `max_redemptions` dan `redeem_by` berlaku untuk kupon di setiap aplikasi. Misalnya, Anda dapat membatasi kupon untuk 50 penggunaan pertama, atau Anda dapat membuat kupon kedaluwarsa pada tanggal tertentu.

### Batasi produk yang memenuhi syarat

Anda dapat membatasi produk yang memenuhi syarat diskon menggunakan kupon dengan menambahkan identifikasi produk ke hash `applies_to` di objek Kupon. Kode promosi yang dipetakan ke kupon ini hanya diterapkan ke daftar produk yang memenuhi syarat.

### Hapus kupon

Anda dapat menghapus kupon di Dashboard atau API. Menghapus kupon mencegahnya diterapkan ke transaksi atau pelanggan di masa mendatang.

## Buat kode promosi

Kode promosi adalah kode yang dilihat oleh pelanggan yang dibuat sebagai tambahan atas kupon. Anda juga dapat menentukan pembatasan tambahan yang mengontrol kapan pelanggan dapat menerapkan promosi. Anda dapat membagikan kode ini kepada pelanggan yang dapat memasukkannya selama checkout untuk menerapkan diskon.

Untuk membuat [kode promosi](https://docs.stripe.com/api/promotion_codes.md), tentukan `kupon` yang sudah ada dan batasan apa pun (misalnya, membatasinya untuk [pelanggan](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer) atau [customer_account](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer_account) tertentu). Jika Anda memiliki kode khusus untuk diberikan kepada pelanggan Anda (misalnya, `FALL25OFF`), masukkan `kode` tersebut. Jika Anda membiarkan kolom ini kosong, kami akan membuat `kode` acak untuk Anda.

`code` ini tidak membedakan besar-kecilnya huruf dan bersifat unik di semua kode promosi yang aktif untuk pelanggan. Misalnya:

- Anda dapat membuat beberapa kode promosi yang dibatasi pelanggan dengan `code` yang sama, tetapi Anda tidak dapat menggunakan kembali `code` tersebut untuk kode promosi yang dapat ditukarkan oleh pelanggan.
- Jika Anda membuat kode promosi yang dapat ditukarkan oleh pelanggan, maka Anda tidak dapat membuat kode promosi aktif lain dengan `code` yang sama.
- Anda dapat membuat kode promosi dengan `code: NEWUSER`, nonaktifkan dengan meneruskan ke `active: false`, kemudian buat kode promosi baru dengan `code: NEWUSER`.

Kode promosi dapat dibuat pada bagian kupon di [Dashboard](https://dashboard.stripe.com/coupons/create) atau dengan [API](https://docs.stripe.com/api.md#promotion_codes):

```curl
curl https://api.stripe.com/v1/promotion_codes \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d coupon={{COUPON_ID}} \
  -d code=VIPCODE
```

## Gunakan kode promosi

Aktifkan kode promosi yang dapat ditukar pelanggan menggunakan parameter [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) di Sesi Checkout. Ini mengaktifkan bidang di Checkout yang memungkinkan pelanggan menginput kode promosi.

```curl
curl https://api.stripe.com/v1/checkout/sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "line_items[0][price_data][unit_amount]=2000" \
  -d "line_items[0][price_data][product_data][name]=T-shirt" \
  -d "line_items[0][price_data][currency]=usd" \
  -d "line_items[0][quantity]=1" \
  -d mode=payment \
  -d ui_mode=embedded_page \
  -d allow_promotion_codes=true \
  --data-urlencode "return_url=https://example.com/checkout/return?session_id={CHECKOUT_SESSION_ID}"
```

## Konfigurasikan kode promosi

Untuk setiap kode promosi, Anda dapat menyesuaikan pelanggan yang memenuhi syarat, penukaran, dan batas lainnya.

### Batasi berdasarkan pelanggan

Untuk membatasi promosi ke pelanggan tertentu, tentukan [pelanggan](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer) atau [customer_account](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer_account) saat membuat kode promosi. Jika tidak ada pelanggan yang ditentukan, kode dapat ditukar oleh pelanggan mana pun.

### Batasi dengan pesanan pertama kali

Anda juga dapat membatasi kode promosi untuk pelanggan pertama kali dengan [restrictions.first_time_transaction](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-first_time_transaction). Jika `pelanggan` atau `customer_account` tidak didefinisikan, atau jika `pelanggan` atau `customer_account` yang ditentukan tidak memiliki pembayaran sebelumnya atau *invoice* (Invoices are statements of amounts owed by a customer. They track the status of payments from draft through paid or otherwise finalized. Subscriptions automatically generate invoices, or you can manually create a one-off invoice), ini dianggap sebagai transaksi pertama kali.

> Sessions yang tidak membuat pelanggan membuat [pelanggan tamu](https://docs.stripe.com/payments/checkout/guest-customers.md) di Dashboard sebagai gantinya. Kode promosi yang dibatasi untuk pelanggan pertama kali masih diterima untuk Sessions ini.

### Tetapkan jumlah minimum

Dengan kode promosi, Anda dapat mengatur jumlah transaksi minimum untuk diskon yang memenuhi syarat dengan melakukan konfigurasi [minimum_amount](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount) dan [minimum_amount_currency](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount_currency). Karena pembatasan kode promosi diperiksa pada waktu penukaran, jumlah transaksi minimum hanya berlaku untuk pembayaran awal langganan.

### Sesuaikan kedaluwarsa

Anda dapat mengatur tanggal kedaluwarsa pada kode promosi menggunakan [expires_at](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-expires_at). Jika `redeem_by` sudah diatur di kupon yang mendasarinya, maka tanggal kedaluwarsa kode promosi tidak boleh lebih lama dari kupon. Jika `promotion_code[expires_at]` tidak ditentukan, `redeem_by` kupon secara otomatis mengisikan `expires_at`.

Sebagai contoh, Anda mungkin memiliki rencana untuk mendukung kupon selama satu tahun, tetapi Anda hanya ingin kupon tersebut dapat ditukarkan selama satu minggu setelah pelanggan menerimanya. Anda dapat mengatur `coupon[redeem_by]` ke satu tahun sejak sekarang, dan mengatur setiap `promotion_code[expires_at]` ke satu minggu setelah dibuat.

### Batasi penukaran

Anda dapat membatasi jumlah penukaran dengan menggunakan [max_redemptions](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-max_redemptions), yang berfungsi mirip dengan parameter kupon. Jika `max_redemptions` sudah diatur di kupon yang mendasarinya, maka `max_redemptions` untuk kode promosi tidak boleh lebih besar dari kupon.

Sebagai contoh, Anda mungkin ingin kupon obral musiman dapat ditukarkan oleh 50 pelanggan pertama, tetapi promosi musim dingin hanya dapat menggunakan 20 dari penukaran tersebut. Dalam skenario ini, Anda dapat mengatur `coupon[max_redemptions]: 50` dan `promotion_code[max_redemptions]: 20`.

### Promosi tidak aktif

Anda dapat mengatur apakah kode promosi saat ini dapat ditukarkan dengan menggunakan parameter [aktif](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-active). Namun, jika kupon dasar untuk kode promosi menjadi tidak valid, semua kode promosinya menjadi tidak aktif secara permanen. Demikian pula, jika mencapai `max_redemptions` atau `expires_at`, kode promosi menjadi tidak aktif secara permanen. Anda tidak dapat mengaktifkan kembali kode promosi ini.

### Hapus promosi

Anda dapat menghapus promosi di Dashboard atau API. Menghapus promosi mencegahnya diterapkan ke transaksi atau pelanggan di masa mendatang.

