# Ajouter des réductions

Réduisez le montant facturé à un client en déduisant les bons de réduction et les codes promotionnels du sous-total.

# Page hébergée

> This is a Page hébergée for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/checkout/discounts?payment-ui=stripe-hosted.

Vous pouvez utiliser des réductions pour réduire le montant facturé à un client. Les bons de réduction et les codes promotionnels vous permettent d’effectuer ce qui suit&nbsp;:

- Appliquer une réduction à l’ensemble du sous-total de l’achat
- Appliquer une réduction à des produits spécifiques
- Déduire un pourcentage ou un montant fixe du total facturé
- Créer des codes promotionnels destinés aux clients en plus de bons de réduction à partager directement avec les clients

> Pour utiliser des bons de réduction sur des *abonnements* (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) dans Checkout et Billing, consultez [Réductions sur les abonnements](https://docs.stripe.com/billing/subscriptions/coupons.md).

## Créer un bon de réduction

Les bons de réduction offrent une remise d’un montant fixe. Vous pouvez créer des codes de promotion destinés à vos clients associés à un même bon de réduction sous-jacent. Ainsi, les codes `FALLPROMO` et `SPRINGPROMO` peuvent tous les deux pointer vers un bon de réduction de 25&nbsp;%. Vous pouvez créer des bons de réduction dans le [Dashboard](https://dashboard.stripe.com/coupons) ou avec l’[API](https://docs.stripe.com/api.md#coupons)&nbsp;:

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

## Utiliser un bon de réduction

Pour créer une session avec une réduction appliquée, transmettez l’[identifiant du bon de réduction](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) dans le paramètre `bon de réduction` du tableau [des réductions](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). Les sessions&nbsp;Checkout prennent actuellement en charge jusqu’à un bon de réduction ou un code promotionnel.

```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"
```

## Configurer un bon de réduction

Vous pouvez utiliser les paramètres de bons de réduction suivants&nbsp;:

- `currency`
- `percent_off` ou `amount_off`
- `max_redemptions`
- `redeem_by`&nbsp;: indique la date limite de validité du bon de réduction
- `applies_to`&nbsp;: limite les produits auxquels s’applique le bon de réduction

> L’objet Coupon permet d’appliquer des réductions aux abonnements et aux paiements ponctuels. Certains paramètres de cet objet, tel que `duration`, ne peuvent être appliqués qu’à des [abonnements](https://docs.stripe.com/billing/subscriptions/coupons.md).

### Limiter l’utilisation

Les valeurs des paramètres `max_redemptions` et `redeem_by` s’appliquent au bon de réduction, quelle que soit l’application. Par exemple, vous pouvez limiter un bon de réduction aux 50&nbsp;premières utilisations ou vous pouvez faire en sorte qu’il expire à une certaine date.

### Limiter les produits admissibles

Vous pouvez limiter les produits pouvant bénéficier de réductions avec un bon de réduction via l’ajout des ID de produits à l’algorithme de hachage `applies_to` dans l’objet Coupon. Tout code promotionnel associé à ce bon de réduction peut uniquement être appliqué à la liste des produits admissibles.

### Supprimer un bon de réduction

Vous pouvez supprimer des bons de réduction à partir du Dashboard ou de l’API. La suppression d’un bon de réduction empêche son application future à d’autres transactions ou clients.

## Créer un code promotionnel

Les codes promotionnels sont des codes destinés aux clients, créés en plus des bons de réduction. Vous pouvez également préciser des restrictions supplémentaires qui contrôlent le moment où un client peut appliquer la promotion. Ces codes peuvent être partagés avec les clients afin qu’ils les saisissent au moment du paiement pour appliquer une réduction.

Pour créer un [code promotionnel](https://docs.stripe.com/api/promotion_codes.md), précisez un `coupon` existant et toute restriction (par exemple, limité à un [customer](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer) ou [customer_account](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer_account) particulier). Si vous avez un code précis que vous souhaitez donner à votre client (par exemple, `FALL25OFF`), définissez le champ `code`. Si vous laissez ce champ vide, nous générerons un `code` aléatoire pour vous.

Le `code` est insensible à la casse et unique pour tous les codes promotionnels actifs pour tous les clients. Par exemple&nbsp;:

- Vous pouvez créer plusieurs codes promotionnels à l’usage de certains clients avec le même `code`, mais vous ne pouvez pas réutiliser ce `code` pour créer un code promotionnel à l’usage de tous les clients.
- Si vous créez un code promotionnel que n’importe quel client peut utiliser, vous ne pouvez pas créer un autre code promotionnel actif avec le même `code`.
- Vous pouvez créer un code promotionnel avec `code: NEWUSER`, le désactiver en transmettant `active: false`, puis créer un nouveau code promotionnel avec `code: NEWUSER`.

Les codes promotionnels peuvent être créés dans la section des bons de réduction du [Dashboard](https://dashboard.stripe.com/coupons/create) ou avec l’[API](https://docs.stripe.com/api.md#promotion_codes)&nbsp;:

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

## Utiliser un code promotionnel

Activez les codes promotionnels utilisables par le client à l’aide du paramètre [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) lors d’une session Checkout. Un champ est ainsi activé dans Checkout qui permet aux clients de saisir leurs codes promotionnels.

```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"
```

## Configurer un code promotionnel

Pour chaque code promotionnel, vous pouvez personnaliser les critères d’admissibilité des clients, le nombre d’utilisations d’une promotion, ainsi que d’autres limites.

### Limite par client

Pour limiter une promotion à un client en particulier, précisez un [customer](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer) ou [customer_account](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer_account) lorsque vous créez le code promotionnel. Si aucun client n’est indiqué, n’importe quel client peut utiliser le code.

### Limite pour une première commande

Vous pouvez également restreindre l’utilisation du code promotionnel aux nouveaux clients avec [restrictions.first_time_transaction](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-first_time_transaction). Si un `customer` ou un `customer_account` n’est pas défini, ou si un `customer` or `customer_account` défini n’a aucun paiement antérieur ou ne dispose d’aucune *facture* (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) non annulée, la transaction est considérée comme une première transaction.

> Les sessions qui ne donnent pas lieu à la création d’un client créent à la place un [client invité](https://docs.stripe.com/payments/checkout/guest-customers.md) dans le Dashboard. Les codes promotionnels réservés aux nouveaux clients restent valables pour ces sessions.

### Définir un montant minimum

Avec les codes promotionnels, vous pouvez fixer un montant de transaction minimum pour la réduction admissible en configurant [minimum_amount](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount) et [minimum_amount_currency](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount_currency). Étant donné que les restrictions applicables aux codes promotionnels sont vérifiées au moment de l’utilisation du bon de réduction, le montant de transaction minimum ne s’applique qu’au paiement initial pour un abonnement.

### Personnaliser les dates d’expiration

Vous pouvez définir une date d’expiration pour le code promotionnel à l’aide de [expires_at](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-expires_at). Si le paramètre `redeem_by` est déjà défini pour le bon de réduction sous-jacent, alors la date d’expiration du code promotionnel ne peut pas être ultérieure à celle du bon de réduction. Si la valeur `promotion_code[expires_at]` n’est pas précisée, le paramètre `redeem_by` du bon de réduction renseigne automatiquement le paramètre `expires_at`.

Par exemple, vous prévoyez de proposer un bon de réduction pendant un an, mais vous souhaitez qu’il ne puisse être utilisé que dans la semaine suivant sa réception par le client. Vous pouvez alors définir `coupon[redeem_by]` sur un an à partir de la date du jour, et chaque valeur `promotion_code[expires_at]` sur une semaine après sa création.

### Limiter le nombre d’utilisations

Vous pouvez limiter le nombre d’utilisations avec le paramètre [max_redemptions](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-max_redemptions), qui fonctionne de la même manière que le paramètre de bon de réduction. Si le paramètre `max_redemptions` est déjà défini pour le bon de réduction sous-jacent, alors la valeur `max_redemptions` du code promotionnel ne peut pas être supérieure à celle du bon de réduction.

Par exemple, vous pouvez décider de proposer un bon de réduction à utiliser par les 50&nbsp;premiers clients lors des soldes saisonniers, mais ne permettre que 20&nbsp;utilisations dans le cadre de la promotion d’hiver. Dans ce scénario, vous pouvez définir le paramétrage `coupon[max_redemptions]: 50` et `promotion_code[max_redemptions]: 20`.

### Promotions inactives

Vous pouvez définir si un code promotionnel est actuellement utilisable à l’aide du paramètre [active](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-active). Toutefois, si le bon de réduction sous-jacent à un code promotionnel n’est plus valide, tous les codes promotionnels associés seront définitivement désactivés. De même, si un code promotionnel atteint son nombre de `max_redemptions` ou sa date `expires_at`, il devient définitivement inactif. Vous ne pouvez pas réactiver ces codes promotionnels.

### Supprimer des promotions

Vous pouvez supprimer des promotions à partir du Dashboard ou de l’API. La suppression d’une promotion empêche son application future à d’autres transactions ou clients.


# Page intégrée

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

Vous pouvez utiliser des réductions pour réduire le montant facturé à un client. Les bons de réduction et les codes promotionnels vous permettent d’effectuer ce qui suit&nbsp;:

- Appliquer une réduction à l’ensemble du sous-total de l’achat
- Appliquer une réduction à des produits spécifiques
- Déduire un pourcentage ou un montant fixe du total facturé
- Créer des codes promotionnels destinés aux clients en plus de bons de réduction à partager directement avec les clients

> Pour utiliser des bons de réduction sur des *abonnements* (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) dans Checkout et Billing, consultez [Réductions sur les abonnements](https://docs.stripe.com/billing/subscriptions/coupons.md).

## Créer un bon de réduction

Les bons de réduction offrent une remise d’un montant fixe. Vous pouvez créer des codes de promotion destinés à vos clients associés à un même bon de réduction sous-jacent. Ainsi, les codes `FALLPROMO` et `SPRINGPROMO` peuvent tous les deux pointer vers un bon de réduction de 25&nbsp;%. Vous pouvez créer des bons de réduction dans le [Dashboard](https://dashboard.stripe.com/coupons) ou avec l’[API](https://docs.stripe.com/api.md#coupons)&nbsp;:

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

## Utiliser un bon de réduction

Pour créer une session avec une réduction appliquée, transmettez l’[identifiant du bon de réduction](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) dans le paramètre `bon de réduction` du tableau [des réductions](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). Les sessions&nbsp;Checkout prennent actuellement en charge jusqu’à un bon de réduction ou un code promotionnel.

```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}"
```

## Configurer un bon de réduction

Vous pouvez utiliser les paramètres de bons de réduction suivants&nbsp;:

- `currency`
- `percent_off` ou `amount_off`
- `max_redemptions`
- `redeem_by`&nbsp;: indique la date limite de validité du bon de réduction
- `applies_to`&nbsp;: limite les produits auxquels s’applique le bon de réduction

> L’objet Coupon permet d’appliquer des réductions aux abonnements et aux paiements ponctuels. Certains paramètres de cet objet, tel que `duration`, ne peuvent être appliqués qu’à des [abonnements](https://docs.stripe.com/billing/subscriptions/coupons.md).

### Limiter l’utilisation

Les valeurs des paramètres `max_redemptions` et `redeem_by` s’appliquent au bon de réduction, quelle que soit l’application. Par exemple, vous pouvez limiter un bon de réduction aux 50&nbsp;premières utilisations ou vous pouvez faire en sorte qu’il expire à une certaine date.

### Limiter les produits admissibles

Vous pouvez limiter les produits pouvant bénéficier de réductions avec un bon de réduction via l’ajout des ID de produits à l’algorithme de hachage `applies_to` dans l’objet Coupon. Tout code promotionnel associé à ce bon de réduction peut uniquement être appliqué à la liste des produits admissibles.

### Supprimer un bon de réduction

Vous pouvez supprimer des bons de réduction à partir du Dashboard ou de l’API. La suppression d’un bon de réduction empêche son application future à d’autres transactions ou clients.

## Créer un code promotionnel

Les codes promotionnels sont des codes destinés aux clients, créés en plus des bons de réduction. Vous pouvez également préciser des restrictions supplémentaires qui contrôlent le moment où un client peut appliquer la promotion. Ces codes peuvent être partagés avec les clients afin qu’ils les saisissent au moment du paiement pour appliquer une réduction.

Pour créer un [code promotionnel](https://docs.stripe.com/api/promotion_codes.md), précisez un `coupon` existant et toute restriction (par exemple, limité à un [customer](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer) ou [customer_account](https://docs.stripe.com/api/promotion_codes/object.md#promotion_code_object-customer_account) particulier). Si vous avez un code précis que vous souhaitez donner à votre client (par exemple, `FALL25OFF`), définissez le champ `code`. Si vous laissez ce champ vide, nous générerons un `code` aléatoire pour vous.

Le `code` est insensible à la casse et unique pour tous les codes promotionnels actifs pour tous les clients. Par exemple&nbsp;:

- Vous pouvez créer plusieurs codes promotionnels à l’usage de certains clients avec le même `code`, mais vous ne pouvez pas réutiliser ce `code` pour créer un code promotionnel à l’usage de tous les clients.
- Si vous créez un code promotionnel que n’importe quel client peut utiliser, vous ne pouvez pas créer un autre code promotionnel actif avec le même `code`.
- Vous pouvez créer un code promotionnel avec `code: NEWUSER`, le désactiver en transmettant `active: false`, puis créer un nouveau code promotionnel avec `code: NEWUSER`.

Les codes promotionnels peuvent être créés dans la section des bons de réduction du [Dashboard](https://dashboard.stripe.com/coupons/create) ou avec l’[API](https://docs.stripe.com/api.md#promotion_codes)&nbsp;:

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

## Utiliser un code promotionnel

Activez les codes promotionnels utilisables par le client à l’aide du paramètre [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) lors d’une session Checkout. Un champ est ainsi activé dans Checkout qui permet aux clients de saisir leurs codes promotionnels.

```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}"
```

## Configurer un code promotionnel

Pour chaque code promotionnel, vous pouvez personnaliser les critères d’admissibilité des clients, le nombre d’utilisations d’une promotion, ainsi que d’autres limites.

### Limite par client

Pour limiter une promotion à un client en particulier, précisez un [customer](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer) ou [customer_account](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-customer_account) lorsque vous créez le code promotionnel. Si aucun client n’est indiqué, n’importe quel client peut utiliser le code.

### Limite pour une première commande

Vous pouvez également restreindre l’utilisation du code promotionnel aux nouveaux clients avec [restrictions.first_time_transaction](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-first_time_transaction). Si un `customer` ou un `customer_account` n’est pas défini, ou si un `customer` or `customer_account` défini n’a aucun paiement antérieur ou ne dispose d’aucune *facture* (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) non annulée, la transaction est considérée comme une première transaction.

> Les sessions qui ne donnent pas lieu à la création d’un client créent à la place un [client invité](https://docs.stripe.com/payments/checkout/guest-customers.md) dans le Dashboard. Les codes promotionnels réservés aux nouveaux clients restent valables pour ces sessions.

### Définir un montant minimum

Avec les codes promotionnels, vous pouvez fixer un montant de transaction minimum pour la réduction admissible en configurant [minimum_amount](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount) et [minimum_amount_currency](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-restrictions-minimum_amount_currency). Étant donné que les restrictions applicables aux codes promotionnels sont vérifiées au moment de l’utilisation du bon de réduction, le montant de transaction minimum ne s’applique qu’au paiement initial pour un abonnement.

### Personnaliser les dates d’expiration

Vous pouvez définir une date d’expiration pour le code promotionnel à l’aide de [expires_at](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-expires_at). Si le paramètre `redeem_by` est déjà défini pour le bon de réduction sous-jacent, alors la date d’expiration du code promotionnel ne peut pas être ultérieure à celle du bon de réduction. Si la valeur `promotion_code[expires_at]` n’est pas précisée, le paramètre `redeem_by` du bon de réduction renseigne automatiquement le paramètre `expires_at`.

Par exemple, vous prévoyez de proposer un bon de réduction pendant un an, mais vous souhaitez qu’il ne puisse être utilisé que dans la semaine suivant sa réception par le client. Vous pouvez alors définir `coupon[redeem_by]` sur un an à partir de la date du jour, et chaque valeur `promotion_code[expires_at]` sur une semaine après sa création.

### Limiter le nombre d’utilisations

Vous pouvez limiter le nombre d’utilisations avec le paramètre [max_redemptions](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-max_redemptions), qui fonctionne de la même manière que le paramètre de bon de réduction. Si le paramètre `max_redemptions` est déjà défini pour le bon de réduction sous-jacent, alors la valeur `max_redemptions` du code promotionnel ne peut pas être supérieure à celle du bon de réduction.

Par exemple, vous pouvez décider de proposer un bon de réduction à utiliser par les 50&nbsp;premiers clients lors des soldes saisonniers, mais ne permettre que 20&nbsp;utilisations dans le cadre de la promotion d’hiver. Dans ce scénario, vous pouvez définir le paramétrage `coupon[max_redemptions]: 50` et `promotion_code[max_redemptions]: 20`.

### Promotions inactives

Vous pouvez définir si un code promotionnel est actuellement utilisable à l’aide du paramètre [active](https://docs.stripe.com/api/promotion_codes/create.md#create_promotion_code-active). Toutefois, si le bon de réduction sous-jacent à un code promotionnel n’est plus valide, tous les codes promotionnels associés seront définitivement désactivés. De même, si un code promotionnel atteint son nombre de `max_redemptions` ou sa date `expires_at`, il devient définitivement inactif. Vous ne pouvez pas réactiver ces codes promotionnels.

### Supprimer des promotions

Vous pouvez supprimer des promotions à partir du Dashboard ou de l’API. La suppression d’une promotion empêche son application future à d’autres transactions ou clients.

