# Bons de réduction et codes promotionnels

Ajoutez des remises aux abonnements et aux éléments d'abonnement à l'aide de bons de réduction et de codes promotionnels.

Créez et gérez des bons de réduction et des codes promotionnels pour appliquer des réductions aux abonnements, éléments d’abonnement ou factures d’un client à l’aide du Dashboard ou des API Stripe. Utilisez les bons de réduction pour&nbsp;:

- Appliquer des [réductions](https://docs.stripe.com/api/discounts.md) à un abonnement, un élément d’abonnement ou une facture
- Configurer un bon de réduction à appliquer une seule fois, pendant un nombre défini de mois ou indéfiniment
- Réduire le montant des factures en appliquant un pourcentage ou un montant fixe

## Bons de réduction ou codes promotionnels

Voici les différences entre un bon de réduction et un code promotionnel&nbsp;:

- [Bons de réduction](https://docs.stripe.com/billing/subscriptions/coupons.md#coupons)&nbsp;: vous décidez qui bénéficie de la réduction et à quel moment. Il s’agit de réductions gérées par le back-end (votre système décide qui bénéficie de la réduction).
- [Codes promotionnels](https://docs.stripe.com/billing/subscriptions/coupons.md#promotion-codes)&nbsp;: c’est votre client qui décide du moment où appliquer une réduction. Il s’agit d’un code destiné au client qui englobe un bon de réduction, ajoutant une couche de distribution et de contrôle aux bons de réduction. Plusieurs codes promotionnels peuvent faire référence à un seul bon de réduction. Les codes promotionnels héritent des restrictions de produit de leur bon de réduction parent. Par exemple, si un bon de réduction ne s’applique qu’à certains produits, tout code promotionnel créé à partir de celui-ci est soumis aux mêmes restrictions.

Sur cette page, le terme «&nbsp;réduction&nbsp;» a deux sens. Dans le langage courant, une réduction correspond à toute baisse de prix. Dans l’API Stripe, un objet [Discount](https://docs.stripe.com/api/discounts/object.md) est un objet spécifique qui représente l’application d’un bon de réduction à un client, un abonnement ou une facture. Lorsqu’un client utilise un bon de réduction, Stripe crée un objet `Discount` pour suivre cette utilisation.

Vous pouvez appliquer jusqu’à 20&nbsp;réductions à un abonnement, un élément d’abonnement ou une facture. Cette limite est partagée entre les bons de réduction et les codes promotionnels.

|  | **Coupon** | **Code promotionnel** |
| --- | --- | --- |
| Définitions | Objet d’API qui définit la logique de réduction. Appliquez-les directement à l’abonnement d’un client à l’aide du Dashboard ou de l’API. | Code destiné au client qui correspond à vos bons de réduction. Il s’agit de la chaîne saisie par le client au moment du paiement. Par exemple, `FALLPROMO` et `SPRINGPROMO` peuvent tous deux correspondre à un seul bon de réduction de 25&nbsp;%. |
| Cas d’usage | Votre équipe commerciale conclut un accord avec un client pour une réduction négociée de 20&nbsp;% sur son abonnement annuel. Votre back-end applique la réduction directement et le client ne saisit rien. | Votre équipe marketing lance une campagne sur les réseaux sociaux et souhaite que les créateurs partagent un code `EXAMPLE2026` qui offre aux nouveaux abonnés une réduction de 25&nbsp;% pendant 3&nbsp;mois. Il ne fonctionne que pour les nouveaux clients pour un montant minimum de 50&nbsp;USD et vous souhaitez le limiter à 500&nbsp;utilisations. |
| Restreindre à un client spécifique | ❌ Non prise en charge | ✓ Pris en charge |
| Appliquer au premier achat uniquement | ❌ Non prise en charge | ✓ Pris en charge |
| Montant minimum requis pour l’utiliser | ❌ Non prise en charge | ✓ Pris en charge |
| Désactiver sans supprimer | Vous ne pouvez que supprimer les bons de réduction, pas les désactiver. La suppression n’annule pas les réductions existantes, mais empêche de nouvelles utilisations. La suppression d’un bon de réduction archive ses codes promotionnels associés. | Vous pouvez archiver le code promotionnel en activant l’indicateur `active` |

Pour utiliser des réductions pour des paiements ponctuels, consultez plutôt la section [Ajouter des réductions pour des paiements ponctuels](https://docs.stripe.com/payments/checkout/discounts.md).

## Bons de réduction

Pour réduire les montants facturés à un client, utilisez un bon de réduction afin de créer un objet [Discount](https://docs.stripe.com/api/discounts/object.md) sur un abonnement ou un client. Découvrez dans les sections suivantes comment créer et gérer des bons de réduction.

### Créer un bon de réduction

Créez des bons de réduction dans le Dashboard ou via l’[API](https://docs.stripe.com/api/coupons/create.md)&nbsp;:

#### Dashboard

1. Dans le Dashboard, ouvrez la page [Produits](https://dashboard.stripe.com/test/products?active=true).
2. Cliquez sur **Bons de réduction**.
3. Cliquez sur **+&nbsp;Nouveau**.
4. Dans la boîte de dialogue **Créer un bon de réduction**, saisissez les paramètres du bon de réduction.
5. Cliquez sur **Créer un bon de réduction**.

Voici tous les paramètres des bons de réduction. Le nom est le seul paramètre que vous pouvez modifier après avoir créé le bon de réduction.

| Configuration | Désignation |
| --- | --- |
| **Name** | Le nom du bon de réduction figurant sur les reçus et les factures. |
| **ID** (facultatif) | L’identifiant unique du bon de réduction dans l’API. Si vous laissez ce champ vide, Stripe génère un ID à votre place. |
| **Type** | Définit si un bon de réduction applique une ristourne sur un abonnement avec un montant fixe ou un pourcentage. |
| **Pourcentage de réduction** ou **Montant de la réduction** | Indique la valeur du bon de réduction.

Si vous vendez des produits ou services dans plusieurs devises, un seul bon de réduction peut définir des montants de réduction différents pour les différentes devises. Les bons de réduction multidevises observent les mêmes règles que les [bons de réduction multidevises](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#multiple-currencies). |
| **Appliquer à des produits spécifiques** (facultatif) | Limite le type de postes auxquels le bon de réduction peut s’appliquer. |
| **Durée** | Indique la période pendant laquelle le bon de réduction est valide. |
| **Limites d’utilisations** (facultatif) | Permet de définir la date limite du bon de réduction et le nombre de fois qu’un client peut l’utiliser. |
| **Codes** (facultatif) | Vous permet de créer des [codes promotionnels](https://docs.stripe.com/billing/subscriptions/coupons.md#promotion-codes) pour le bon de réduction. |

#### API

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

Le tableau suivant présente les paramètres des bons de réduction.

| Configuration | Désignation |
| --- | --- |
| `id` | L’identifiant unique du bon de réduction. |
| `percent_off` ou`amount_off` | Le montant qui est déduit du sous-total pour la durée du bon de réduction. |
| `currency` (si `amount_off` est défini) | Le code ISO à trois&nbsp;lettres de la devise du montant à prélever. |
| `currency_options` (si `amount_off` est défini) (facultatif) | Si vous vendez des produits ou services dans plusieurs devises, montants à déduire du sous-total pour les différentes devises. Les bons de réduction multidevises observent les mêmes règles que les [bons de réduction multidevises](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#multiple-currencies). |
| `duration` | Indique la durée de validité du bon de réduction. Les valeurs comprennent **ponctuel**, **permanent** ou **récurrent**. |
| `max_redemptions` (facultatif) | Nombre maximal d’utilisations d’un bon de réduction par l’ensemble des clients |
| `redeem_by` (facultatif) | La date limite à laquelle vous pouvez encore appliquer ce bon de réduction aux clients. |
| `applies_to` (facultatif) | Limite les postes d’une facture auxquels s’applique le bon de réduction. |

### Définir des produits éligibles

#### Dashboard

Pour définir les produits pouvant bénéficier de ristournes, ajoutez le produit de votre choix dans le champ **Appliquer à un produit spécifique**. Tout code promotionnel associé à ce bon de réduction peut uniquement être appliqué à cette liste de produits éligibles.

Si vous configurez un bon de réduction de sorte qu’il s’applique à des produits spécifiques et que vous l’attribuez à un abonnement qui ne contient aucun de ces produits, aucune ristourne ne sera accordée.

#### API

Pour définir les produits pouvant bénéficier de ristournes, ajoutez les ID des produits de votre choix au hash `applies_to` du bon de réduction. Cette liste de produits éligibles s’applique également aux codes promotionnels associés au bon de réduction.

Si vous configurez un bon de réduction de sorte qu’il s’applique à des produits spécifiques et que vous l’attribuez à un abonnement qui ne contient aucun de ces produits, aucune ristourne ne sera accordée.

Lorsque vous [apportez des modifications](https://docs.stripe.com/billing/subscriptions/change.md) à un abonnement, Stripe calcule le prorata et applique toutes les réductions existantes. Vous ne pouvez pas appliquer de réduction supplémentaire aux postes de prorata sur la facture générée.

### Appliquer des bons de réduction aux abonnements

Après avoir créé un bon de réduction, appliquez-le à un abonnement pour créer une réduction. Vous pouvez appliquer le bon de réduction lors de la création de l’abonnement ou en [modifiant l’abonnement existant d’un client](https://docs.stripe.com/api.md#update_subscription).

#### Dashboard

1. Dans le Dashboard, ouvrez la page [Abonnements](https://dashboard.stripe.com/test/subscriptions?status=active).
2. Cliquez sur l’abonnement de votre choix.
3. Cliquez sur **Actions**.
4. Cliquez sur **Mettre à jour l’abonnement**.
5. Cliquez sur **Ajouter un bon de réduction**.
6. Sélectionnez un ou plusieurs bons de réduction dans les menus déroulants et cliquez sur **Envoyer**.

#### API

> #### Utiliser l’API Accounts v2 pour représenter les clients
> 
> L’API Accounts&nbsp;v2 est généralement disponible pour les utilisateurs de Connect et en aperçu public pour les autres utilisateurs de Stripe. Si vous avez accès à l’aperçu Accounts&nbsp;v2, vous devez spécifier une [version d’aperçu](https://docs.stripe.com/api-v2-overview.md#sdk-and-api-versioning) dans votre code.
> 
> Pour accéder à l’aperçu Accounts&nbsp;v2, rendez-vous sur [aperçus et fonctionnalités de Account](https://dashboard.stripe.com/settings/previews) dans votre Dashboard et activez **Moyens de paiement réutilisables pour les virements internationaux**.
> 
> Dans la plupart des cas d’usage, nous vous recommandons de [modéliser vos clients en tant qu’objets Account configurés par le client](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md), plutôt que d’utiliser des objets [Customer](https://docs.stripe.com/api/customers.md).

#### Accounts&nbsp;v2

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer_account={{CUSTOMERACCOUNT_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "discounts[0][coupon]=free-period"
```

#### Customers&nbsp;v1

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "discounts[0][coupon]=free-period"
```

Même si un client ne dispose pas d’un moyen de paiement sauvegardé, vous pouvez toujours créer un abonnement dès lors [qu’aucun paiement immédiat](https://docs.stripe.com/billing/subscriptions/deferred-payment.md) n’est requis après l’application d’un bon de réduction.

### Appliquer des bons de réduction à Checkout

Appliquez des bons de réduction aux abonnements au cours d’une session Checkout en définissant le paramètre `discounts` dans l’[API](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). Pour créer une session avec une réduction appliquée, transmettez l’ID du bon de réduction dans le paramètre `coupon` du tableau `discounts`.

#### curl

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

### Supprimer des bons de réduction

Vous pouvez supprimer des bons de réduction à l’aide du Dashboard ou de l’[API](https://docs.stripe.com/api/coupons/delete.md).

En supprimant un bon de réduction, vous empêchez que celui-ci soit appliqué à de futurs abonnements ou factures. Toutefois, cette opération ne supprime pas les réductions qui ont déjà été appliquées.

#### Dashboard

1. Dans le Dashboard, ouvrez la page [Produits](https://dashboard.stripe.com/test/products?active=true).
2. Cliquez sur **Bons de réduction**.
3. Cliquez sur le bon de réduction de votre choix.
4. Cliquez sur le menu déroulant (⋯).
5. Cliquez sur **Supprimer le bon de réduction**.

#### API

```curl
curl -X DELETE https://api.stripe.com/v1/coupons/free-period \
  -u "<<YOUR_SECRET_KEY>>:"
```

### Durée du bon de réduction

La durée d’un bon de réduction détermine la durée de validité de la [remise](https://docs.stripe.com/api/.md#discounts) appliquée. La valeur par défaut est `once`&nbsp;: la remise s’applique uniquement à la première facture. Définissez `duration=repeating` avec `duration_in_months` pour appliquer la remise pendant plusieurs mois, ou `duration=forever` pour l’appliquer indéfiniment à toutes les factures.

Par exemple, un bon de réduction de 50&nbsp;% avec `duration_in_months=4` s’applique à toutes les factures émises au cours des 4&nbsp;mois suivant sa première application. Pour un abonnement mensuel, il s’applique aux 4&nbsp;premières factures. Pour un abonnement annuel, la remise de 50&nbsp;% s’applique à l’année entière si l’abonnement est renouvelé au cours de cette période de 4&nbsp;mois. Pour un abonnement hebdomadaire, elle s’applique à toutes les factures émises pendant les 4&nbsp;premiers mois.

Lorsqu’un abonnement utilise un bon de réduction avec `duration=once`, ce dernier est considéré comme utilisé une fois la facture finalisée et est supprimé du tableau `discounts` de l’abonnement&nbsp;:

- Avant même que le bon de réduction ne soit appliqué à une facture, la propriété `discounts` de l’abonnement contient l’objet de remise.
- Une fois la facture finalisée, la propriété `discounts` de l’abonnement ne contient plus cette remise.
- La facture qui a consommé le bon de réduction indique toujours la réduction appliquée sur la ressource et les sous-postes de facture.

Un abonnement peut donc sembler ne bénéficier d’aucune remise, même si un bon de réduction lui a été appliqué.

> Si vous appliquez un [bon de réduction](https://docs.stripe.com/billing/subscriptions/backdating.md) à un abonnement antidaté, la durée de validité du bon de réduction commence à courir à partir de la date de début de l’antidatation, et non à partir de la date à laquelle vous effectuez l’appel à l’API. Pour les bons de réduction `repeating`, ceci signifie que la période d’antidatation consomme une partie de la durée de validité du bon de réduction. La `duration_in_months` du bon de réduction doit être plus longue que la période d’antidatation si vous souhaitez que la réduction s’applique aux factures ultérieures à la période d’antidatation. Consultez la section [Antidatation et réductions](https://docs.stripe.com/billing/subscriptions/backdating.md#backdating-discounts) pour en savoir plus.

### Limites d’utilisations

Appliquer un bon de réduction consiste à l’associer directement à un abonnement, à un client ou à une facture via l’API ou le Dashboard. Utiliser un code promotionnel consiste, pour un client, à saisir un code au moment du paiement afin d’activer le bon de réduction associé. Ces deux actions sont comptabilisées dans la même limite `max_redemptions` du bon de réduction.

Les limites d’utilisation plafonnent le nombre total de fois qu’un bon de réduction peut être appliqué, tous clients confondus. Par exemple, avec `max_redemptions=50`, le bon de réduction ne peut être appliqué que 50&nbsp;fois au total&nbsp;: une fois à chacun de 50&nbsp;clients différents, 50&nbsp;fois au même client ou selon toute autre combinaison jusqu’à ce que la limite soit atteinte. Lorsqu’un code promotionnel est utilisé, chaque utilisation du code par un client est comptabilisée dans cette limite.

Si vous configurez un bon de réduction pour qu’il s’applique indéfiniment, mais que celui-ci possède une date d’expiration, tout client qui l’utilise avant cette date bénéficie de la remise sans limitation de durée. Les nouveaux clients ne peuvent plus appliquer le bon de réduction après sa date d’expiration.

## Codes promotionnels

Les codes promotionnels sont des codes utilisables par les clients que vous créez pour vos bons de réduction. Par exemple, FALLPROMO et SPRINGPROMO peuvent tous deux être associés à un même bon de réduction de 25&nbsp;%. Vous pouvez partager les codes promotionnels directement avec vos clients pour qu’ils les utilisent lors du paiement.

Si vous avez déployé le *portail client* (The customer portal is a secure, Stripe-hosted page that lets your customers manage their subscriptions and billing details) et activé les codes promotionnels, vos clients peuvent appliquer une réduction lorsqu’ils passent à un abonnement supérieur ou inférieur dans le portail.

> Les abonnements appliquent le code promotionnel et les mises à jour de tarifs séparément, ce qui peut entraîner des mises à jour inattendues. Par exemple, un échec de paiement peut entraîner l’échec d’une augmentation tarifaire, mais le code promotionnel compris dans le changement tarifaire peut aboutir.

Le portail client affiche les codes promotionnels qui ont été appliqués à un abonnement. Si vous ne souhaitez pas autoriser les clients à appliquer eux-mêmes le code promotionnel ou potentiellement à le partager avec d’autres personnes, vous devez soit [définir des limites au code promotionnel](https://docs.stripe.com/billing/subscriptions/coupons.md#promo-code-config), soit [appliquer un bon de réduction](https://docs.stripe.com/billing/subscriptions/coupons.md#discount-Subscriptions) directement.

Définissez les contrôles et les limites applicables à vos codes promotionnels&nbsp;: clients éligibles, première commande uniquement, valeur de commande minimale, date d’expiration ou encore nombre maximal d’utilisations.

### Restrictions

Les codes promotionnels sont soumis à certaines restrictions.

- Vous ne pouvez pas appliquer un code promotionnel lorsque les objets suivants ont des restrictions de montant&nbsp;:
  - [Objets Subscription Item](https://docs.stripe.com/api/subscription_items/object.md)
  - [Objets poste de facture](https://docs.stripe.com/api/invoiceitems/object.md)
  - [Objets Subscriptions](https://docs.stripe.com/api/subscriptions/object.md) lorsque vous effectuez une mise à jour
  - Phases à venir des [objets Subscription&nbsp;Schedule](https://docs.stripe.com/api/subscription_schedules/object.md)

### Créer des codes promotionnels

#### Dashboard

Vous pouvez créer un code promotionnel dans le Dashboard lorsque vous [créez un bon de réduction](https://docs.stripe.com/billing/subscriptions/coupons.md#create-a-coupon).

Le **code** est insensible à la casse et unique à l’échelle de tous les codes promotionnels actifs pour tous les clients. Par exemple&nbsp;:

- Vous pouvez créer plusieurs codes promotionnels à l’usage de clients spécifiques 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 un seul **Code**, le [désactiver](https://docs.stripe.com/billing/subscriptions/coupons.md#deactivate), puis créer un nouveau code promotionnel avec le même **Code**.

1. Dans le Dashboard, sur la page [Créer un bon de réduction](https://dashboard.stripe.com/test/coupons/create), cliquez sur le bouton **Utiliser des codes promotionnels destinés aux clients**.
2. Saisissez un code. Il s’agit du code que le client saisit lors du paiement pour bénéficier de la réduction. Si vous ne définissez pas de code, Stripe en génère un automatiquement.
3. Sélectionnez les conditions d’application de votre code promotionnel. Par exemple, vous pouvez restreindre l’utilisation du bon de réduction aux premières commandes uniquement.

#### API

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

- Vous pouvez créer plusieurs codes promotionnels à l’usage de clients spécifiques 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`.

Pour créer un [code promotionnel](https://docs.stripe.com/api/promotion_codes.md), spécifiez un `Bon de réduction` existant et les restrictions éventuelles (par exemple, activé uniquement pour un ID `Customer` spécifique). Vous pouvez spécifier la chaîne de code (par exemple, `FALL25OFF`) dans le paramètre `code`. Si vous ne fournissez pas de chaîne de code, Stripe en génère une aléatoire.

#### Accounts&nbsp;v2

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

#### Customers&nbsp;v1

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

Lorsque vous créez un code promotionnel, celui-ci hérite de la configuration du bon de réduction auquel il est rattaché.

### Configuration des codes promotionnels

En configurant les paramètres du code promotionnel, vous pouvez définir les éléments suivants&nbsp;:

- Les clients pouvant bénéficier du code promotionnel
- Le nombre de fois que le client peut utiliser le code promotionnel
- La date à laquelle un code promotionnel expire
- Définir le montant à partir duquel le code promotionnel peut s’appliquer

### Limiter à un client donné

#### Dashboard

Pour restreindre l’utilisation d’un code promotionnel à un utilisateur donné, suivez les étapes ci-après&nbsp;:

1. Sur la page [Créer un bon de réduction](https://dashboard.stripe.com/test/coupons/create), sélectionnez **Limiter à un client spécifique**.
2. Sélectionnez le client de votre choix. Si vous n’en précisez pas, le code peut être utilisé par n’importe quel client.

#### API

Pour limiter un code promotionnel à un client spécifique, précisez un `customer_account` ou `customer` lors de sa création. Si aucun client n’est précisé, le code peut être utilisé par n’importe quel client.

### Limiter à la première commande

Ce paramètre limite l’utilisation du bon de réduction aux clients qui n’ont jamais effectué de transaction sur votre plateforme. Il empêche les clients d’utiliser le bon de réduction s’ils&nbsp;:

- Ont lancé une PaymentIntent, même si le paiement n’a jamais été effectué.
- Ont souscrit à une période d’essai, même si celle-ci a été annulée par la suite.

#### Dashboard

Pour limiter un code promotionnel aux nouveaux clients, sélectionnez **Admissible à la première commande uniquement** sur la page [créer un bon de réduction](https://dashboard.stripe.com/test/coupons/create).

#### API

Limitez le code promotionnel aux nouveaux clients en définissant le paramètre `first_time_transaction` de l’attribut `restrictions`.

### Définir un montant minimum

#### Dashboard

Pour définir le montant à partir duquel un client peut bénéficier d’un code promotionnel, accédez à la page [Créer un bon de réduction](https://dashboard.stripe.com/test/coupons/create), sélectionnez **Exiger une valeur de commande minimale** et saisissez la valeur minimale.

É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 pour un abonnement.

Si le bon de réduction prend en charge plusieurs devises, le montant minimal peut être différent selon la devise.

#### API

Avec les codes promotionnels, vous pouvez fixer pour la ristourne un montant de transaction minimal comme condition d’éligibilité en configurant les propriétés `minimum_amount` et `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 pour un abonnement. Si vous commercialisez en plusieurs devises, définissez le montant de transaction minimum pour chaque devise au moyen de la propriété `currency_options`.

### Personnaliser les dates d’expiration

#### Dashboard

Pour définir la date d’expiration d’un code promotionnel, accédez à la page [Créer un bon de réduction](https://dashboard.stripe.com/test/coupons/create), sélectionnez **Ajouter une date d’expiration** ainsi que la date et heure à laquelle le code expire.

Si la date d’expiration du bon de réduction sous-jacent a déjà été définie, alors vous ne pouvez pas définir une date d’expiration ultérieure pour le code promotionnel.

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 durant la semaine suivant sa réception par le client. Pour ce faire, définissez la date d’expiration du bon de réduction sur un an à partir de la date du jour, et la date d’expiration du code promotionnel sur une semaine après sa création.

#### API

Définissez une date d’expiration pour le code promotionnel avec `expires_at`. Si `redeem_by` est déjà défini pour le bon de réduction sous-jacent, alors vous ne pouvez pas définir une date d’expiration ultérieure pour le code promotionnel. Si `promotion_code[expires_at]` n’est pas spécifié, `expires_at` prend automatiquement la valeur `redeem_by` du bon de réduction.

- 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 durant la semaine suivant sa réception par le client. Vous définissez alors `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

#### Dashboard

Pour définir le nombre total d’utilisations d’un code promotionnel par vos clients, sélectionnez **Limiter le nombre d’utilisations de ce code** sur la page[Créer un bon de réduction](https://dashboard.stripe.com/test/coupons/create) et saisissez le nombre. Consultez la section [Limites de remboursement](https://docs.stripe.com/billing/subscriptions/coupons.md#redemption-limits) pour plus de détails.

Si le nombre maximal d’utilisations du bon de réduction sous-jacent a déjà été défini, alors vous ne pouvez pas définir un nombre supérieur pour le code promotionnel.

#### API

Limitez le nombre total d’utilisations d’un code promotionnel par vos clients en utilisant `max_redemptions`, qui fonctionne de la même manière que les bons de réduction. Si le bon de réduction sous-jacent est déjà associé à `max_redemptions`, le`max_redemptions` du code promotionnel ne peut pas être supérieur à celui du bon de réduction. Consultez la section [Limites de remboursement](https://docs.stripe.com/billing/subscriptions/coupons.md#redemption-limits) pour plus de détails.

### Désactiver les codes promotionnels

#### Dashboard

Pour désactiver un code promotionnel, procédez comme suit&nbsp;:

1. Dans le Dashboard, ouvrez la page [Produits](https://dashboard.stripe.com/test/products?active=true).
2. Cliquez sur **Bons de réduction**.
3. Cliquez sur le bon de réduction dont le code promotionnel doit être désactivé.
4. Dans la ligne du code promotionnel correspondant, cliquez sur le menu déroulant (⋯).
5. Cliquez sur **Archiver le code promotionnel**.

Toutefois, si le bon de réduction sous-jacent pour un code promotionnel devient non valable, tous les codes promotionnels associés seront définitivement désactivés. De la même manière, si un code promotionnel atteint les seuils définis par sa limite d’utilisation ou sa date d’expiration, il devient définitivement inactif. Ces codes promotionnels ne peuvent pas être réactivés.

#### API

Déterminez au moyen du paramètre `active` si un code promotionnel est actuellement utilisable. Toutefois, si le bon de réduction sous-jacent pour un code promotionnel devient non valable, tous les codes promotionnels associés seront définitivement désactivés. De la même manière, si un code promotionnel atteint les seuils définis par `max_redemptions` ou `expires_at`, il devient définitivement inactif. Ces codes promotionnels ne peuvent pas être réactivés.

### Appliquer des codes promotionnels aux abonnements

Après avoir créé un code promotionnel, vous pouvez bénéficier d’une réduction en appliquant le code promotionnel à un abonnement. Vous pouvez appliquer les codes promotionnels de deux manières&nbsp;:

- Lorsque vous [créez un abonnement](https://docs.stripe.com/api.md#create_subscription)
- Lorsque vous [mettez à jour l’abonnement existant d’un client](https://docs.stripe.com/api.md#update_subscription)

#### Dashboard

1. Dans le Dashboard, accédez à **Facturation** > **Abonnements**.
2. Cliquez sur l’abonnement de votre choix.
3. Cliquez sur **Actions** > **Mettre à jour l’abonnement** > **Ajouter un bon de réduction**.
4. Cliquez sur un code promotionnel dans le menu déroulant, puis sur **Envoyer**.

#### API

1. Récupérez le `PromotionCode` correspondant en [listant vos PromotionCodes](https://docs.stripe.com/api/promotion_codes/list.md) et en fournissant la chaîne de code que votre client a saisie dans le paramètre [code](https://docs.stripe.com/api/promotion_codes/list.md#list_promotion_code-code).
2. Pour appliquer le code promotionnel, utilisez l’ID du code promotionnel dans l’appel à l’API suivant&nbsp;:

#### Accounts&nbsp;v2

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer_account={{CUSTOMERACCOUNT_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "discounts[0][promotion_code]={{PROMOTIONCODE_ID}}"
```

#### Customers&nbsp;v1

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "discounts[0][promotion_code]={{PROMOTIONCODE_ID}}"
```

### Ajouter des codes promotionnels à Checkout

Activez les codes promotionnels avec l’API en définissant le paramètre [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-allow_promotion_codes) dans les sessions Checkout. Lorsque le paramètre `allow_promotion_codes` est activé pour une session Checkout, Checkout affiche un champ permettant à vos clients de saisir un code promotionnel.
![Champ destiné au code promotionnel dans Checkout](https://b.stripecdn.com/docs-statics-srv/assets/promo_code_checkout.c07ef6d4f0b1b3f9a8a7e4bbba83d56f.png)

Champ destiné au code promotionnel dans Checkout

## Bons de réduction et codes promotionnels cumulables

Vous pouvez ajouter plusieurs bons de réduction, codes promotionnels ou [réductions](https://docs.stripe.com/api/.md#discounts) utilisés à la liste des paiements d’un client. Vous pouvez le faire lors de la [création d’un abonnement](https://docs.stripe.com/api.md#create_subscription) ou en [mettant à jour l’abonnement existant d’un client](https://docs.stripe.com/api.md#update_subscription).

Nous prenons en charge les bons de réduction multiples sur les abonnements et les éléments d’abonnement.

Lorsque vous créez un abonnement avec des remises cumulables, chaque réduction s’applique à tous les articles de l’abonnement. L’ordre des remises est important si vous utilisez à la fois `amount_off` et `percent_off`. Par exemple, les remises cumulées suivantes s’appliquent différemment&nbsp;:

- 20&nbsp;% de réduction, *puis* 5&nbsp;USD de remise
- 5&nbsp;USD de réduction, *puis* 20&nbsp;% de remise

#### Dashboard

1. Dans le Dashboard, accédez à **Facturation** > **Abonnements**.
2. Cliquez sur l’abonnement de votre choix.
3. Cliquez sur **Actions** > **Mettre à jour l’abonnement** > **Ajouter un bon de réduction**.
4. Cliquez sur des bons de réduction à partir des menus déroulants et cliquez sur **Envoyer**.
5. Cliquez sur le produit concerné.
6. Cliquez sur **Ajouter des bons de réduction**.
7. Cliquez sur des bons de réduction à partir des menus déroulants et cliquez sur **Envoyer**.

#### API

#### Accounts&nbsp;v2

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer_account={{CUSTOMERACCOUNT_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "items[0][discounts][0][coupon]=item-coupon" \
  -d "items[0][discounts][1][promotion_code]=item-promo" \
  -d "discounts[0][coupon]=sub-coupon" \
  -d "discounts[1][promotion_code]=sub-promo"
```

#### Customers&nbsp;v1

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price]={{PRICE_ID}}" \
  -d "items[0][discounts][0][coupon]=item-coupon" \
  -d "items[0][discounts][1][promotion_code]=item-promo" \
  -d "discounts[0][coupon]=sub-coupon" \
  -d "discounts[1][promotion_code]=sub-promo"
```

### Restrictions

L’utilisation de bons de réduction multiples est soumise à certaines restrictions.

- Vous pouvez définir jusqu’à 20&nbsp;entrées dans le paramètre `discounts`.
- Chaque entrée dans `discounts` doit être unique.
- Vous ne pouvez pas utiliser simultanément un bon de réduction et un code promotionnel créé à partir du même bon de réduction.
- Vous ne pouvez pas utiliser simultanément un bon de réduction et une remise créée à partir du même bon de réduction.
- Les bons de réduction utilisés doivent déjà être associés au client ou à l’abonnement que vous mettez à jour.

### Mettre un abonnement à jour

Il n’est pas nécessaire de définir le paramètre `discounts` si vous n’avez pas l’intention de modifier des remises existantes.

Lorsque vous mettez à jour le paramètre `discounts`, vous devez transmettre les bons de réduction (`coupon`), codes promotionnels (`promotion_code`) ou remises (`discount`) précédemment définis que vous souhaitez conserver dans l’abonnement.

Transmettez `discounts = ""` pour supprimer toutes les remises de l’abonnement. Lorsqu’un abonnement ne comporte aucune remise, la remise associée au client (le cas échéant) s’applique aux factures.

Si vous avez déjà défini plus d’une remise sur un abonnement avec le nouveau paramètre `discounts`, vous ne pouvez pas mettre à jour l’abonnement avec le paramètre obsolète `coupon` ou `promotion_code`. De même, vous ne pouvez pas mettre à jour les phases d’un calendrier avec le paramètre obsolète `coupon` ou `promotion_code` si vous avez défini plus d’une remise sur une phase antérieure.

La mise à jour du paramètre `discounts` n’entraîne pas de calcul au prorata et ne génère pas de facture. Les nouvelles remises sont appliquées à la prochaine facture d’abonnement.

> La mise à jour des codes promotionnels, des bons de réduction ou des réductions au niveau de l’abonnement en soi ne crée pas de postes de facture au prorata. Seules les modifications qui affectent les montants facturables pour le cycle de facturation actuel créent des proratas, par exemple, la modification du `price` ou de la `quantity` d’un élément d’abonnement, l’ajout ou la suppression de postes d’abonnement, ou la modification des dates de début du cycle de facturation.
> 
> Cependant, lorsque vous combinez une modification de réduction avec une mise à jour de déclenchement au prorata (telle que la modification d’une quantité d’élément et la modification d’une réduction dans le même appel à l’API), Stripe calcule les montants au prorata en utilisant la tarification et l’état de réduction mis à jour de l’abonnement. Le débit ou crédit au prorata reflète les réductions modifiées.

## Autres moyens pour appliquer des ristournes

Bien que les bons de réduction représentent la façon la plus courante d’appliquer une ristourne à un abonnement, il existe d’autres moyens de le faire. Par exemple&nbsp;:

- Ajouter un [solde négatif au client](https://docs.stripe.com/api.md#customer_object-balance).
- Ajoutez des [postes de facture](https://docs.stripe.com/billing/invoices/subscription.md#adding-draft-invoice-items) négatifs.
- Ajoutez au produit un [deuxième tarif](https://docs.stripe.com/products-prices/manage-prices.md#create-price) moins élevé que le tarif habituel.

Parmi ces possibilités, les postes de facture négatifs fournissent le plus d’informations concernant la ristourne (par exemple sa nature, la date et la raison de sa création).

## See also

- [Modification des abonnements](https://docs.stripe.com/billing/subscriptions/change.md)
- [Calculs au prorata](https://docs.stripe.com/billing/subscriptions/prorations.md)
- [Utilisation des factures](https://docs.stripe.com/billing/invoices/subscription.md)
- [API Coupons](https://docs.stripe.com/api.md#coupons)
- [API Promotion codes](https://docs.stripe.com/api.md#promotion_codes)
