# 割引を追加 クーポンやプロモーションコードで小計を割引して、顧客への請求金額を減らします。 # ホスト型ページ > This is a ホスト型ページ for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/checkout/discounts?payment-ui=stripe-hosted. 割引を使用して、顧客への請求額を減らすことができます。クーポンとプロモーションコードで、次のことができます。 - 購入全体の小計に対して割引を適用する - 特定の商品に割引を適用する - パーセントや一定額を使用して請求の合計を減らす - クーポンに加えて顧客向けのプロモーションコードを作成し、顧客に直接提供する > Checkout や Billing で*サブスクリプション* (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)を割引するためにクーポンを使用するには、[サブスクリプションの割引](https://docs.stripe.com/billing/subscriptions/coupons.md)をご覧ください。 ## クーポンを作成する クーポンは固定額の割引を指定します。1 つのベースとなるクーポンにマッピングされる、顧客向けのプロモーションコードを作成できます。つまり、`FALLPROMO` と `SPRINGPROMO` の両方のコードを 1 つの 25% 割引のクーポンに関連付けることができます。クーポンは、[ダッシュボード](https://dashboard.stripe.com/coupons)または [API](https://docs.stripe.com/api.md#coupons) で作成できます。 ```curl curl https://api.stripe.com/v1/coupons \ -u "<>:" \ -d percent_off=20 \ -d duration=once ``` ## クーポンを使用する 割引を適用したセッションを作成するには、[discounts](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts) 配列の `coupon` パラメーターで[クーポン ID](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) を渡します。Checkout Sessions は現在、最大 1 つのクーポンまたはプロモーションコードをサポートしています。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -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" ``` ## クーポンを設定する クーポンでは次のパラメーターを使用できます。 - `currency` - `percent_off` または `amount_off` - `max_redemptions` - `redeem_by` (顧客がクーポンを適用できる最終日) - `applies_to` (クーポンが適用される商品を制限) > クーポンオブジェクトは、1 回限りの支払いとサブスクリプションの両方に割引を追加します。一部のクーポンオブジェクトのパラメーター (`duration` など) は、[サブスクリプション](https://docs.stripe.com/billing/subscriptions/coupons.md)にのみ適用できます。 ### 引き換え回数を制限する `max_redemptions` と `redeem_by` の値は、すべてのアプリケーションのクーポンに適用されます。たとえば、クーポンを最初の 50 回の使用に制限したり、特定の日付で期限切れにしたりすることも可能です。 ### 対象商品を制限する Coupon オブジェクトの `applies_to` ハッシュに商品 ID を追加することで、クーポン割引の対象商品を制限できます。このクーポンにマッピングされたプロモーションコードは、対象商品のリストにのみ適用されます。 ### クーポンを削除する ダッシュボードまたは API を使用して、クーポンを削除できます。クーポンを削除すると、そのクーポンは今後の取引や顧客に適用できなくなります。 ## プロモーションコードを作成する プロモーションコードは、クーポンに加えて作成される顧客向けのコードです。また、顧客がプロモーションを適用できる期間を管理する追加の制限を指定することもできます。これらのコードは顧客に伝えることができ、顧客が購入時に入力すると割引の適用を受けることができます。 [promotion code (プロモーションコード)](https://docs.stripe.com/api/promotion_codes.md) を作成するには、既存の `coupon` と制限 (たとえば、特定の `customer` に制限するなど) を指定します。顧客に提供したい特定のコードがある場合には (`FALL25OFF` など)、`code` を設定します。このフィールドを空白にすると、ランダムな `code` が生成されます。 この `code` では大文字小文字が区別され、すべての顧客向けの有効なプロモーションコードの中で一意になります。以下に例を挙げます。 - 同じ `code` を使用して、対象の顧客が制限された複数のプロモーションコードを作成できますが、その `code` を再利用して、すべての顧客が引き換えできるプロモーションコードを作成することはできません。 - あらゆる顧客が引き換え可能なプロモーションコードを作成する場合、同じ `code` で別の有効なプロモーションコードを作成することはできません。 - `code: NEWUSER` でプロモーションコードを作成し、`active: false` を渡してそれを無効化してから、`code: NEWUSER` で新しいプロモーションコードを作成できます。 プロモーションコードは、[ダッシュボード](https://dashboard.stripe.com/coupons/create)のクーポンセクションまたは [API](https://docs.stripe.com/api.md#promotion_codes) で作成できます。 ```curl curl https://api.stripe.com/v1/promotion_codes \ -u "<>:" \ -d coupon={{COUPON_ID}} \ -d code=VIPCODE ``` ## プロモーションコードを使用する Checkout セッションで [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) パラメーターを使用して、顧客が引き換えできるプロモーションコードを有効にします。これにより、Checkout にフィールドが表示され、顧客はそこにプロモーションコードを入力できるようになります。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -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" ``` ## プロモーションコードを設定する プロモーションコードごとに、対象の顧客、引き換え回数、その他の制限をカスタマイズできます。 ### 特定の顧客に限定する プロモーションを特定の顧客に限定するには、プロモーションコードを作成する際に [customer (顧客)](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer) を指定します。顧客が指定されていない場合、すべての顧客がコードを引き換えることができます。 ### 初回注文に限定する また、[restrictions.first_time_transaction](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-first_time_transaction) を使用して、プロモーションコードを初めての顧客のみに限定することもできます。`customer` が定義されていない場合、または定義された `customer` が過去に支払いをしたことがない場合や、無効化されていない*インボイス* (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)がない場合は、初回の取引とみなされます。 > セッションで [Customer (顧客)](https://docs.stripe.com/api/customers.md) が作成されない場合、代わりに[ゲスト顧客](https://support.stripe.com/questions/guest-customer-faq)がダッシュボードに作成されます。新規の顧客に限定されたプロモーションコードも、これらのセッションでは受け付けられます。 ### 最低金額を設定する プロモーションコードでは、[minimum_amount](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount) と [minimum_amount_currency](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount_currency) を設定して、割引対象の最低取引額を設定できます。プロモーションコードの制限は引き換え時に確認されるため、最低取引額はサブスクリプションの初回の支払いにのみ適用されます。 ### 有効期限をカスタマイズする [expires_at](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-expires_at) を使用してプロモーションコードの有効期限を設定できます。ベースとなるクーポンにすでに `redeem_by` が設定されている場合には、プロモーションコードの期限をクーポンの期日よりも後にすることはできません。`promotion_code[expires_at]` が指定されていない場合は、クーポンの `redeem_by` が自動的に `expires_at` となります。 たとえば、クーポンを 1 年間サポートするプランがあり、引き換え期間を顧客がクーポンを受け取ってから 1 週間以内にするとします。その場合、`coupon[redeem_by]` を現在から 1 年後にし、各 `promotion_code[expires_at]` を作成日の 1 週間後に設定できます。 ### 引き換え回数を制限する [max_redemptions](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-max_redemptions) を使用して引き換え回数を制限できます。これは coupon パラメーターと同様に機能します。ベースとなるクーポンにすでに `max_redemptions` が設定されている場合、プロモーションコードの `max_redemptions` をクーポンの上限値より大きくすることはできません。 たとえば、シーズンセールのクーポンの引き換えを先着 50 人の顧客に制限する一方で、冬のプロモーションで引き換えを利用できる対象を 20 人のみにすることができます。このシナリオでは、`coupon[max_redemptions]: 50` および `promotion_code[max_redemptions]: 20` を設定できます。 ### 無効なプロモーション [active](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-active) パラメーターを使用して、プロモーションコードが現在引き換え可能かどうかを設定できます。ただし、プロモーションのベースとなるクーポンが無効になると、そのプロモーションコードはすべて永久に無効になります。同様に、プロモーションコードが `max_redemptions` や `expires_at` に達した場合にも、永久に無効になります。これらのプロモーションコードを再度有効にすることはできません。 ### プロモーションを削除する ダッシュボードまたは API を使用して、プロモーションを削除できます。プロモーションを削除すると、そのプロモーションは今後の取引や顧客に適用できなくなります。 # 埋め込み型ページ > This is a 埋め込み型ページ for when payment-ui is embedded-form. View the full page at https://docs.stripe.com/payments/checkout/discounts?payment-ui=embedded-form. 割引を使用して、顧客への請求額を減らすことができます。クーポンとプロモーションコードで、次のことができます。 - 購入全体の小計に対して割引を適用する - 特定の商品に割引を適用する - パーセントや一定額を使用して請求の合計を減らす - クーポンに加えて顧客向けのプロモーションコードを作成し、顧客に直接提供する > Checkout や Billing で*サブスクリプション* (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)を割引するためにクーポンを使用するには、[サブスクリプションの割引](https://docs.stripe.com/billing/subscriptions/coupons.md)をご覧ください。 ## クーポンを作成する クーポンは固定額の割引を指定します。1 つのベースとなるクーポンにマッピングされる、顧客向けのプロモーションコードを作成できます。つまり、`FALLPROMO` と `SPRINGPROMO` の両方のコードを 1 つの 25% 割引のクーポンに関連付けることができます。クーポンは、[ダッシュボード](https://dashboard.stripe.com/coupons)または [API](https://docs.stripe.com/api.md#coupons) で作成できます。 ```curl curl https://api.stripe.com/v1/coupons \ -u "<>:" \ -d percent_off=20 \ -d duration=once ``` ## クーポンを使用する 割引を適用したセッションを作成するには、[discounts](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts) 配列の `coupon` パラメーターで[クーポン ID](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) を渡します。Checkout Sessions は現在、最大 1 つのクーポンまたはプロモーションコードをサポートしています。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -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}" ``` ## クーポンを設定する クーポンでは次のパラメーターを使用できます。 - `currency` - `percent_off` または `amount_off` - `max_redemptions` - `redeem_by` (顧客がクーポンを適用できる最終日) - `applies_to` (クーポンが適用される商品を制限) > クーポンオブジェクトは、1 回限りの支払いとサブスクリプションの両方に割引を追加します。一部のクーポンオブジェクトのパラメーター (`duration` など) は、[サブスクリプション](https://docs.stripe.com/billing/subscriptions/coupons.md)にのみ適用できます。 ### 引き換え回数を制限する `max_redemptions` と `redeem_by` の値は、すべてのアプリケーションのクーポンに適用されます。たとえば、クーポンを最初の 50 回の使用に制限したり、特定の日付で期限切れにしたりすることも可能です。 ### 対象商品を制限する Coupon オブジェクトの `applies_to` ハッシュに商品 ID を追加することで、クーポン割引の対象商品を制限できます。このクーポンにマッピングされたプロモーションコードは、対象商品のリストにのみ適用されます。 ### クーポンを削除する ダッシュボードまたは API を使用して、クーポンを削除できます。クーポンを削除すると、そのクーポンは今後の取引や顧客に適用できなくなります。 ## プロモーションコードを作成する プロモーションコードは、クーポンに加えて作成される顧客向けのコードです。また、顧客がプロモーションを適用できる期間を管理する追加の制限を指定することもできます。これらのコードは顧客に伝えることができ、顧客が購入時に入力すると割引の適用を受けることができます。 [promotion code (プロモーションコード)](https://docs.stripe.com/api/promotion_codes.md) を作成するには、既存の `coupon` と制限 (たとえば、特定の `customer` に制限するなど) を指定します。顧客に提供したい特定のコードがある場合には (`FALL25OFF` など)、`code` を設定します。このフィールドを空白にすると、ランダムな `code` が生成されます。 この `code` では大文字小文字が区別され、すべての顧客向けの有効なプロモーションコードの中で一意になります。以下に例を挙げます。 - 同じ `code` を使用して、対象の顧客が制限された複数のプロモーションコードを作成できますが、その `code` を再利用して、すべての顧客が引き換えできるプロモーションコードを作成することはできません。 - あらゆる顧客が引き換え可能なプロモーションコードを作成する場合、同じ `code` で別の有効なプロモーションコードを作成することはできません。 - `code: NEWUSER` でプロモーションコードを作成し、`active: false` を渡してそれを無効化してから、`code: NEWUSER` で新しいプロモーションコードを作成できます。 プロモーションコードは、[ダッシュボード](https://dashboard.stripe.com/coupons/create)のクーポンセクションまたは [API](https://docs.stripe.com/api.md#promotion_codes) で作成できます。 ```curl curl https://api.stripe.com/v1/promotion_codes \ -u "<>:" \ -d coupon={{COUPON_ID}} \ -d code=VIPCODE ``` ## プロモーションコードを使用する Checkout セッションで [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) パラメーターを使用して、顧客が引き換えできるプロモーションコードを有効にします。これにより、Checkout にフィールドが表示され、顧客はそこにプロモーションコードを入力できるようになります。 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -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}" ``` ## プロモーションコードを設定する プロモーションコードごとに、対象の顧客、引き換え回数、その他の制限をカスタマイズできます。 ### 特定の顧客に限定する プロモーションを特定の顧客に限定するには、プロモーションコードを作成する際に [customer (顧客)](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer) を指定します。顧客が指定されていない場合、すべての顧客がコードを引き換えることができます。 ### 初回注文に限定する また、[restrictions.first_time_transaction](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-first_time_transaction) を使用して、プロモーションコードを初めての顧客のみに限定することもできます。`customer` が定義されていない場合、または定義された `customer` が過去に支払いをしたことがない場合や、無効化されていない*インボイス* (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)がない場合は、初回の取引とみなされます。 > セッションで [Customer (顧客)](https://docs.stripe.com/api/customers.md) が作成されない場合、代わりに[ゲスト顧客](https://support.stripe.com/questions/guest-customer-faq)がダッシュボードに作成されます。新規の顧客に限定されたプロモーションコードも、これらのセッションでは受け付けられます。 ### 最低金額を設定する プロモーションコードでは、[minimum_amount](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount) と [minimum_amount_currency](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount_currency) を設定して、割引対象の最低取引額を設定できます。プロモーションコードの制限は引き換え時に確認されるため、最低取引額はサブスクリプションの初回の支払いにのみ適用されます。 ### 有効期限をカスタマイズする [expires_at](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-expires_at) を使用してプロモーションコードの有効期限を設定できます。ベースとなるクーポンにすでに `redeem_by` が設定されている場合には、プロモーションコードの期限をクーポンの期日よりも後にすることはできません。`promotion_code[expires_at]` が指定されていない場合は、クーポンの `redeem_by` が自動的に `expires_at` となります。 たとえば、クーポンを 1 年間サポートするプランがあり、引き換え期間を顧客がクーポンを受け取ってから 1 週間以内にするとします。その場合、`coupon[redeem_by]` を現在から 1 年後にし、各 `promotion_code[expires_at]` を作成日の 1 週間後に設定できます。 ### 引き換え回数を制限する [max_redemptions](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-max_redemptions) を使用して引き換え回数を制限できます。これは coupon パラメーターと同様に機能します。ベースとなるクーポンにすでに `max_redemptions` が設定されている場合、プロモーションコードの `max_redemptions` をクーポンの上限値より大きくすることはできません。 たとえば、シーズンセールのクーポンの引き換えを先着 50 人の顧客に制限する一方で、冬のプロモーションで引き換えを利用できる対象を 20 人のみにすることができます。このシナリオでは、`coupon[max_redemptions]: 50` および `promotion_code[max_redemptions]: 20` を設定できます。 ### 無効なプロモーション [active](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-active) パラメーターを使用して、プロモーションコードが現在引き換え可能かどうかを設定できます。ただし、プロモーションのベースとなるクーポンが無効になると、そのプロモーションコードはすべて永久に無効になります。同様に、プロモーションコードが `max_redemptions` や `expires_at` に達した場合にも、永久に無効になります。これらのプロモーションコードを再度有効にすることはできません。 ### プロモーションを削除する ダッシュボードまたは API を使用して、プロモーションを削除できます。プロモーションを削除すると、そのプロモーションは今後の取引や顧客に適用できなくなります。