# 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 de&nbsp;:

- Appliquer une remise à l’ensemble du sous-total d’un achat
- Appliquer une remise à 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 la page [Ristournes pour 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 pour vos clients des codes promotionnels qui se rapportent à un seul 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, passez l’[identifiant du bon](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) de `réduction` dans le paramètre [bon de réduction du tableau remises](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). Les Checkout Sessions prennent actuellement en charge un seul bon de réduction ou 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 s’appliquent qu’aux [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 éligibles

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

### 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 et qui reposent sur des bons de réduction. Vous pouvez également préciser des restrictions supplémentaires concernant le moment où un client peut appliquer la promotion. Vous pouvez partager ces codes avec les clients, qui peuvent les saisir lors du paiement pour appliquer une réduction.

Pour créer un [code promotionnel](https://docs.stripe.com/api/promotion_codes.md), spécifiez un `coupon` existant ainsi que d’éventuelles restrictions (par exemple, une limitation à un objet [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)). Si vous souhaitez fournir un code précis à 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 doit être différent de tous les codes promotionnels actifs, quels que soient les clients concernés. Par exemple&nbsp;:

- Vous pouvez créer plusieurs codes promotionnels réservés à certains clients avec un même `code`, mais vous ne pouvez pas réutiliser ce `code` pour créer un code promotionnel destinés à 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 le paramétrage `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 ainsi que d’autres limites.

### Limiter à un client donné

Pour limiter une promotion à un client particulier, spécifiez un objet [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) lors de la création du code promotionnel. Si aucun client n’est spécifié, n’importe quel client peut utiliser le code.

### Limiter à la première commande

Il est aussi possible de limiter le 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 objet `customer` ou `customer_account` n’est pas défini, ou si un objet `customer` ou `customer_account` défini n’a aucun paiement précédent ni 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 créent pas de client créent à la place un [client invité](https://docs.stripe.com/payments/checkout/guest-customers.md) dans le Dashboard. Les codes promotionnels limités aux nouveaux clients sont toujours acceptés pour ces sessions.

### Définir un montant minimum

Avec les codes promotionnels, vous pouvez fixer un montant de transaction minimum pour la remise admissible en configurant les paramètres [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 minimal ne s’applique qu’au paiement initial d’un abonnement.

### Personnaliser les dates d’expiration

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

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

### Limiter le nombre d’utilisations

Vous pouvez limiter le nombre d’utilisations d’un bon de réduction à l’aide de l’attribut [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 du paramètre `max_redemptions` du code promotionnel ne peut être supérieure à celle du bon de réduction.

Par exemple, vous pouvez décider de proposer un bon de réduction utilisable par les 50 premiers clients lors de vos soldes d’hiver, mais ne permettre que 20 utilisations dans le cadre de votre opération promotionnelle d’été. 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 utilisable en utilisant le 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 de&nbsp;:

- Appliquer une remise à l’ensemble du sous-total d’un achat
- Appliquer une remise à 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 la page [Ristournes pour 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 pour vos clients des codes promotionnels qui se rapportent à un seul 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, passez l’[identifiant du bon](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) de `réduction` dans le paramètre [bon de réduction du tableau remises](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). Les Checkout Sessions prennent actuellement en charge un seul bon de réduction ou 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 s’appliquent qu’aux [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 éligibles

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

### 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 et qui reposent sur des bons de réduction. Vous pouvez également préciser des restrictions supplémentaires concernant le moment où un client peut appliquer la promotion. Vous pouvez partager ces codes avec les clients, qui peuvent les saisir lors du paiement pour appliquer une réduction.

Pour créer un [code promotionnel](https://docs.stripe.com/api/promotion_codes.md), spécifiez un `coupon` existant ainsi que d’éventuelles restrictions (par exemple, une limitation à un objet [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)). Si vous souhaitez fournir un code précis à 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 doit être différent de tous les codes promotionnels actifs, quels que soient les clients concernés. Par exemple&nbsp;:

- Vous pouvez créer plusieurs codes promotionnels réservés à certains clients avec un même `code`, mais vous ne pouvez pas réutiliser ce `code` pour créer un code promotionnel destinés à 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 le paramétrage `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 ainsi que d’autres limites.

### Limiter à un client donné

Pour limiter une promotion à un client particulier, spécifiez un objet [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) lors de la création du code promotionnel. Si aucun client n’est spécifié, n’importe quel client peut utiliser le code.

### Limiter à la première commande

Il est aussi possible de limiter le 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 objet `customer` ou `customer_account` n’est pas défini, ou si un objet `customer` ou `customer_account` défini n’a aucun paiement précédent ni 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 créent pas de client créent à la place un [client invité](https://docs.stripe.com/payments/checkout/guest-customers.md) dans le Dashboard. Les codes promotionnels limités aux nouveaux clients sont toujours acceptés pour ces sessions.

### Définir un montant minimum

Avec les codes promotionnels, vous pouvez fixer un montant de transaction minimum pour la remise admissible en configurant les paramètres [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 minimal ne s’applique qu’au paiement initial d’un abonnement.

### Personnaliser les dates d’expiration

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

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

### Limiter le nombre d’utilisations

Vous pouvez limiter le nombre d’utilisations d’un bon de réduction à l’aide de l’attribut [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 du paramètre `max_redemptions` du code promotionnel ne peut être supérieure à celle du bon de réduction.

Par exemple, vous pouvez décider de proposer un bon de réduction utilisable par les 50 premiers clients lors de vos soldes d’hiver, mais ne permettre que 20 utilisations dans le cadre de votre opération promotionnelle d’été. 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 utilisable en utilisant le 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.

