# Gérer les produits et les tarifs

Découvrez comment gérer les produits et les tarifs

Vous pouvez créer et mettre à jour vos produits et tarifs dans le Dashboard ou via l’API.

Certains cas d’usage avancés, comme la [création de tarifs variables](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#variable-pricing), nécessitent l’utilisation de l’API. Utilisez l’API si vous avez un grand nombre de produits et de tarifs ou si vous [développez une intégration personnalisée](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=elements) avec Elements.

- Utilisez le [Dashboard](https://dashboard.stripe.com/test/products) pour créer et gérer les produits et les tarifs sans passer par l’écriture de code ou si vous n’avez que quelques produits et tarifs à gérer. Configurez votre *modèle tarifaire* (The pricing model consists of the products or services you sell, how much they cost, what currency you accept for payments, and the service period to charge (for subscriptions). To build the pricing model, you use Products—what you sell—and Prices—how much and how often to charge for your products) dans un environnement de test et cliquez sur le bouton **Copier en mode production** sur la page d’informations du produit.
- Utilisez l’[API](https://docs.stripe.com/api.md) ou la [CLI Stripe](https://docs.stripe.com/cli.md) pour créer et gérer les produits et les tarifs. L’API est une méthode directe pour vos implémentations de production. La CLI Stripe est un outil de développement qui vous permet de développer, tester et gérer votre intégration avec Stripe directement depuis votre terminal.

Les étapes suivantes concernant l’API illustrent un exemple de plateforme de software as a service qui facture des frais d’abonnement mensuels, ainsi que des frais d’installation uniques.

## Créer un produit

#### Dashboard

### Créer un produit et un tarif

#### Créer un produit

Pour créer un produit dans le Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Cliquez sur **+Ajouter un produit**.
3. Indiquez le **Nom** de votre produit.
4. (Facultatif) Ajoutez une **description**. Elle apparaît au moment du paiement, sur le [portail client](https://docs.stripe.com/customer-management.md) et sous forme de [devis](https://docs.stripe.com/quotes.md).
5. (Facultatif) Ajoutez une **Image** de votre produit. Utilisez un fichier JPEG, PNG ou WEBP d’une taille inférieure à 2&nbsp;Mo. L’image apparaît au moment du paiement.
6. (Facultatif) Si vous utilisez [Stripe Tax](https://docs.stripe.com/tax.md), sélectionnez un **Code de taxe** pour votre produit. Consultez la section [Codes de taxe](https://docs.stripe.com/tax/tax-codes.md) pour plus d’informations sur la catégorie appropriée pour votre produit.
7. (Facultatif) Saisissez un **Libellé de relevé bancaire**. Ce libellé remplace tout libellé de compte pour les paiements récurrents. Choisissez un élément que vos clients reconnaîtront sur leur relevé bancaire.
8. (Facultatif) Saisissez un **Libellé d’unité**. Précise comment vous vendez vos produits. Par exemple, si vous facturez le prix par place, saisissez «&nbsp;place&nbsp;» pour que le poste indique «&nbsp;par place&nbsp;» pour le prix. Les libellés d’unité sont visibles au moment du règlement, sur les factures, les reçus et sur le *portail client* (The customer portal is a secure, Stripe-hosted page that lets your customers manage their subscriptions and billing details).

#### Créer un tarif pour le produit

Pour enregistrer un produit dans le Dashboard, vous devez également ajouter au moins un prix. L’éditeur de produit affiche par défaut le modèle de tarification forfaitaire. Vous pouvez créer plusieurs prix ou utiliser un autre modèle de tarification via les **Options de tarification avancées**.

1. Sélectionnez un **Modèle tarifaire**. Pour plus de détails sur les modèles tarifaires récurrents, reportez-vous à notre [guide des modèles tarifaires](https://docs.stripe.com/products-prices/pricing-models.md).

   - **Tarification forfaitaire**&nbsp;: facture chaque unité au même tarif. Si vous utilisez cette option, sélectionnez **Ponctuel** ou **Récurrent**.
   - **Tarification forfaitaire**&nbsp;: facture au forfait ou par groupe d’unités, par exemple 25 USD par tranche de 5&nbsp;unités. Par défaut, les achats sont arrondis à l’unité supérieure, de sorte qu’un client achetant 8&nbsp;unités paiera dans cet exemple 50 USD.
   - **Tarification progressive**&nbsp;: utilise différents niveaux tarifaires, lesquels peuvent entraîner l’application d’un tarif différent pour certaines unités de la commande. Par exemple, vous pouvez facturer 10 USD l’unité les 100&nbsp;premières unités, puis 5 USD l’unité les 50&nbsp;suivantes. Si vous utilisez cette option, sélectionnez la devise du tarif et renseignez votre grille.
   - **Tarification au volume**&nbsp;: facture chaque unité à un tarif identique déterminé par le nombre total d’unités vendues. Par exemple, vous pouvez facturer 10 USD l’unité pour un volume de 50&nbsp;unités, et 7 USD l’unité pour 100&nbsp;unités. Si vous utilisez cette option, sélectionnez la devise du tarif et renseignez votre grille.

   - **Tarification définie par le client**&nbsp;: laissez le payeur décider du montant à acquitter pour votre produit, service ou cause. L’option **Tarification définie par le client** n’est compatible qu’avec Checkout et Payment Links.

   - **Tarification à l’usage**&nbsp;: facturez vos clients en fonction de leur utilisation de votre service au cours de la période de facturation.

2. (Facultatif) Si vous vendez des biens ou services dans plusieurs devises, cliquez sur **Ajouter une autre devise** pour définir le montant à facturer dans chaque devise.

3. Sélectionnez une **Période de facturation** pour établir une facturation récurrente. Si aucune des options de la liste déroulante ne vous convient, vous pouvez créer une période personnalisée.

4. Indiquez si vous souhaitez **Inclure les taxes dans le tarif**. En savoir plus sur les [taxes et abonnements](https://docs.stripe.com/billing/taxes/collect-taxes.md).

5. (Facultatif) Saisissez une **Description du tarif**. Les clients ne voient pas cette description.

6. (Facultatif) Cliquez sur **Options tarifaires avancées** si vous souhaitez créer plusieurs tarifs pour votre produit.
7. Cliquez sur **Ajouter un produit** pour enregistrer le produit et le tarif. Vous pourrez [modifier les deux](https://docs.stripe.com/products-prices/manage-prices.md#edit-product) ultérieurement.

#### API

Pour créer un produit et un prix uniques&nbsp;:

```curl
curl https://api.stripe.com/v1/products \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "name=Basic Dashboard" \
  -d "default_price_data[unit_amount]=1000" \
  -d "default_price_data[currency]=usd" \
  -d "default_price_data[recurring][interval]=month" \
  -d "expand[]=default_price"
```

Lorsque les clients s’inscrivent pour la première fois sur ce service, ils doivent également s’acquitter de frais d’installation.

Pour créer ces frais sous forme de produit et de tarif, réitérez la requête en utilisant un nom de produit et des données de prix différents&nbsp;:

```curl
curl https://api.stripe.com/v1/products \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "name=Starter Setup" \
  -d "default_price_data[unit_amount]=2000" \
  -d "default_price_data[currency]=usd" \
  -d "expand[]=default_price"
```

## Modifier un produit

#### Dashboard

Pour modifier un produit dans le Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit voulu, cliquez sur le menu de débordement (⋯) et choisissez **Modifier le produit**.
3. Apportez les modifications voulues à votre produit.
4. Cliquez sur **Enregistrer le produit**.

Vous pouvez également modifier un produit depuis sa page d’informations en utilisant le menu de débordement (⋯) ou en cliquant sur **Modifier**.

#### API

Pour modifier un produit à l’aide de l’API&nbsp;:

```curl
curl https://api.stripe.com/v1/products/id \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "name=Updated Product"
```

## Archiver un produit

Si vous souhaitez désactiver un produit de sorte qu’il ne puisse plus être ajouté à de nouvelles factures ou à de nouveaux abonnements, vous pouvez l’archiver. Lorsque vous archivez un produit, tous les abonnements existants qui utilisent ce produit restent actifs jusqu’à ce qu’ils soient annulés et tous les liens de paiement existants qui utilisent le produit sont désactivés. Vous ne pouvez pas supprimer des produits qui possèdent un tarif associé, mais vous pouvez les archiver.

#### Dashboard

Pour archiver un produit&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit voulu, cliquez sur le menu de débordement (⋯) et choisissez **Archiver le produit**.

Pour désarchiver un produit&nbsp;:

1. Accédez à l’onglet **Archivé** de la page **Catalogue de produits**\>**Aperçu**.
2. Localisez le produit voulu, cliquez sur le menu de débordement (⋯) et choisissez **Annuler l’archivage du produit**.

Vous pouvez également désarchiver un produit depuis sa page d’informations.

#### API

Pour archiver un produit (c’est-à-dire indiquer qu’il n’est pas disponible à l’achat) via l’API, définissez le paramètre [actif](https://docs.stripe.com/api/products/update.md#update_product-active) sur `false`.

```curl
curl https://api.stripe.com/v1/products \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d active=false \
  -d "name=My product"
```

Pour désarchiver un produit (c’est-à-dire pour indiquer qu’il est disponible à l’achat) via l’API, attribuez au paramètre [active](https://docs.stripe.com/api/products/update.md#update_product-active) la valeur `true`.

```curl
curl https://api.stripe.com/v1/products/id \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d active=true
```

## Supprimer un produit

Vous ne pouvez supprimer que des produits auxquels aucun tarif n’est associé. Vous pouvez également [archiver un produit](https://docs.stripe.com/products-prices/manage-prices.md#archive-product).

#### Dashboard

Lorsqu’un produit est associé à un tarif, vous devez au préalable [supprimer](https://docs.stripe.com/products-prices/manage-prices.md#delete-price) ou [archiver](https://docs.stripe.com/products-prices/manage-prices.md#archive-price) le tarif si vous souhaitez supprimer le produit. Vous pouvez également archiver un produit. Stripe conserve un registre du tarif et du produit dans l’historique des transactions.

Pour supprimer définitivement un produit&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit voulu, cliquez sur le menu de débordement (⋯) et choisissez **Supprimer le produit**.

#### API

Pour supprimer de manière définitive un produit via l’API, utilisez [supprimer le produit](https://docs.stripe.com/api/products/delete.md).

```curl
curl -X DELETE https://api.stripe.com/v1/products/{{PRODUCT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:"
```

## Créer un tarif

Vous pouvez créer un ou plusieurs tarifs pour un produit. Par exemple, vous pouvez proposer un abonnement «&nbsp;de base&nbsp;» à 10&nbsp;USD par mois, 100&nbsp;USD par an, ou encore un achat unique d’un montant de 9&nbsp;EUR.

> Une fois que vous avez créé un tarif, vous pouvez uniquement mettre à jour ses champs `metadata`, `nickname` et `active`.

#### Dashboard

Pour créer un tarif dans le Dashboard, vous devez d’abord [créer un produit](https://docs.stripe.com/products-prices/manage-prices.md#create-product). Ensuite, vous pouvez créer un tarif&nbsp;:

1. Sélectionnez un **Modèle tarifaire**. Pour plus de détails sur les modèles tarifaires récurrents, reportez-vous à notre [guide des modèles tarifaires](https://docs.stripe.com/products-prices/pricing-models.md).

   - **Tarification forfaitaire**&nbsp;: facture chaque unité au même tarif. Si vous utilisez cette option, sélectionnez **Ponctuel** ou **Récurrent**.
   - **Tarification forfaitaire**&nbsp;: facture au forfait ou par groupe d’unités, par exemple 25 USD par tranche de 5&nbsp;unités. Par défaut, les achats sont arrondis à l’unité supérieure, de sorte qu’un client achetant 8&nbsp;unités paiera dans cet exemple 50 USD.
   - **Tarification progressive**&nbsp;: utilise différents niveaux tarifaires, lesquels peuvent entraîner l’application d’un tarif différent pour certaines unités de la commande. Par exemple, vous pouvez facturer 10 USD l’unité les 100&nbsp;premières unités, puis 5 USD l’unité les 50&nbsp;suivantes. Si vous utilisez cette option, sélectionnez la devise du tarif et renseignez votre grille.
   - **Tarification au volume**&nbsp;: facture chaque unité à un tarif identique déterminé par le nombre total d’unités vendues. Par exemple, vous pouvez facturer 10 USD l’unité pour un volume de 50&nbsp;unités, et 7 USD l’unité pour 100&nbsp;unités. Si vous utilisez cette option, sélectionnez la devise du tarif et renseignez votre grille.

   - **Tarification définie par le client**&nbsp;: laissez le payeur décider du montant à acquitter pour votre produit, service ou cause. L’option **Tarification définie par le client** n’est compatible qu’avec Checkout et Payment Links.

   - **Tarification à l’usage**&nbsp;: facturez vos clients en fonction de leur utilisation de votre service au cours de la période de facturation.

2. (Facultatif) Si vous vendez des biens ou services dans plusieurs devises, cliquez sur **Ajouter une autre devise** pour définir le montant à facturer dans chaque devise.

3. Sélectionnez une **Période de facturation** pour établir une facturation récurrente. Si aucune des options de la liste déroulante ne vous convient, vous pouvez créer une période personnalisée.

4. Indiquez si vous souhaitez **Inclure les taxes dans le tarif**. En savoir plus sur les [taxes et abonnements](https://docs.stripe.com/billing/taxes/collect-taxes.md).

5. (Facultatif) Saisissez une **Description du tarif**. Les clients ne voient pas cette description.

6. Cliquez sur **Créer un tarif** pour enregistrer le tarif. Vous pourrez [le modifier](https://docs.stripe.com/products-prices/manage-prices.md#edit-price) ultérieurement.

#### API

Pour créer un tarif via l’API, utilisez [créer un tarif](https://docs.stripe.com/api/prices/create.md).

Dans cet exemple, le service est facturé 10&nbsp;USD par mois pour un niveau de service «&nbsp;de base&nbsp;».

Le paramètre `unit_amount` utilise la plus petite unité de la devise indiquée dans le tarif. Dans le cas présent, la plus petite unité est le «&nbsp;cent&nbsp;»&nbsp;: 10&nbsp;USD équivaut à 1&nbsp;000 cents, ce qui signifie que le `unit_amount` de son tarif est `1000`.

Pour créer un tarif et l’associer au produit, transmettez l’ID du produit, le montant unitaire, la devise et la période&nbsp;:

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "product={{PRODUCT_ID}}" \
  -d unit_amount=1000 \
  -d currency=usd \
  -d "recurring[interval]=month"
```

Pour les nouveaux clients, les frais d’installation s’élèvent à 20&nbsp;USD. Ce paiement est distinct de l’abonnement et n’est débité qu’une seule fois. Vous n’avez donc pas besoin de transmettre `interval` pour la période&nbsp;:

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "product={{PRODUCT_ID}}" \
  -d unit_amount=2000 \
  -d currency=usd
```

### Définir un tarif par défaut

Le prix par défaut d’un produit correspond au prix le plus courant que vous souhaitez présenter à vos clients. Par exemple, un produit peut avoir plusieurs prix pendant des promotions saisonnières, mais le prix par défaut est le prix habituel (hors promotion). Si vous créez un produit dans le [Dashboard](https://dashboard.stripe.com/products), ce prix initial est défini comme prix par défaut. Le prix par défaut doit être un prix [actif](https://docs.stripe.com/api/prices/object.md#price_object-active).

#### Dashboard

Pour remplacer le tarif par défaut de votre produit dans le Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit voulu, cliquez sur le menu de débordement (⋯) et choisissez **Modifier le produit**.
3. Dans la section **Informations tarifaires**, recherchez le tarif que vous souhaitez définir comme nouveau tarif par défaut, puis cliquez sur **Définir comme tarif par défaut**.
4. Cliquez sur **Enregistrer le produit**.

Pour créer un nouveau tarif et le définir comme tarif par défaut dans le Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Trouvez le produit que vous voulez modifier et cliquez dessus pour accéder à sa page d’informations.
3. Dans la section **Tarifs**, cliquez sur le bouton **Ajouter un autre tarif**.
4. Saisissez les informations tarifaires et sélectionnez **Définir comme tarif par défaut**. En savoir plus sur les champs disponibles lorsque vous [créez un tarif](https://docs.stripe.com/products-prices/manage-prices.md#create-price).
5. Cliquez sur **Ajouter un tarif**.

#### API

```curl
curl https://api.stripe.com/v1/products/{{PRODUCT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "default_price={{PRICE_ID}}"
```

### Créer un tarif en série

Pour créer un [tarif en ligne](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#inline-pricing), transmettez `price_data` au lieu de `price.id` lorsque vous créez un paiement ponctuel ou un abonnement. Par exemple, pour qu’un client souscrive un abonnement mensuel avec un tarif en ligne&nbsp;:

```curl
curl https://api.stripe.com/v1/subscriptions \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "customer={{CUSTOMER_ID}}" \
  -d "items[0][price_data][unit_amount]=5000" \
  -d "items[0][price_data][currency]=usd" \
  -d "items[0][price_data][product]={{PRODUCT_ID}}" \
  -d "items[0][price_data][recurring][interval]=month"
```

Cela crée un prix récurrent mensuel de 50&nbsp;USD pour l’offre de service de base. Une fois créés, les prix définis directement dans la requête ne peuvent pas être modifiés ni réutilisés. Par défaut, les prix créés avec `price_data` sont archivés de fait (ils sont marqués comme `active=false`). Vous pouvez également utiliser `price_data` avec [sessions de paiement](https://docs.stripe.com/api/checkout/sessions.md), [liens de paiement](https://docs.stripe.com/api/payment-link.md), [postes de facture](https://docs.stripe.com/api/invoiceitems.md) et [planification d’abonnement](https://docs.stripe.com/api/subscription_schedules.md).

### Créer des tarifs multidevises

Vous pouvez créer des [Prices multidevises](https://docs.stripe.com/products-prices/how-products-and-prices-work.md#multiple-currencies) à l’aide de la [méthode Create a Price](https://docs.stripe.com/api/prices/create.md) ou du Dashboard.

#### Dashboard

Pour créer un objet Price multidevise dans le Dashboard&nbsp;:

1. Accédez au [Catalogue de produits](https://dashboard.stripe.com/test/products) et sélectionnez un produit.
2. Cliquez sur **Modifier le produit**.
3. Cliquez sur **+ Ajouter un tarif** pour créer un tarif. La devise par défaut est la première devise de votre tarif. Tous vos tarifs doivent avoir la même devise par défaut.
4. Pour ajouter une nouvelle option de devise à votre tarif, cliquez sur **+ Ajouter un tarif par devise**. Recherchez et sélectionnez la devise dans la liste des devises prises en charge.
   - Stripe suggests an exchange rate based on currency values at 12:00 pm EST, but you can pick your own. For currencies that are subject to larger fluctuations, we recommend adding more of a buffer.
5. Pour enregistrer le nouveau tarif, cliquez sur **Suivant** > **Mettre à jour le produit**.

#### API

Le paramètre [currency](https://docs.stripe.com/api/prices/create.md#create_price-currency) définit la devise par défaut de votre tarif. Tous vos tarifs doivent avoir la même devise par défaut. Le paramètre [currency_options](https://docs.stripe.com/api/prices/create.md#create_price-currency_options) définit les autres devises prises en charge par le tarif.

L’extrait de code suivant montre comment créer un tarif prenant en charge la devise `usd` (dollar américain) par défaut, ainsi que `eur` (euro) et `jpy` (yen japonais).

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d unit_amount=1000 \
  -d currency=usd \
  -d product={{PRODUCT_ID}} \
  -d "currency_options[eur][unit_amount]=9000" \
  -d "currency_options[jpy][unit_amount]=12000"
```

Les [bons de réduction](https://docs.stripe.com/billing/subscriptions/coupons.md#coupons), les [codes promotionnels](https://docs.stripe.com/billing/subscriptions/coupons.md#promotion-codes) et les [frais de livraison](https://docs.stripe.com/payments/during-payment/charge-shipping.md) prennent également en charge les tarifs multidevises, au même titre que les tarifs.

#### Afficher des tarifs multidevises

Pour que votre client voie le tarif dans la devise souhaitée, vous pouvez récupérer le tarif multidevise et afficher le champ [currency_options.<currency>.unit_amount](https://docs.stripe.com/api/prices/object.md#price_object-currency_options-unit_amount). La réponse de l’API ne comportera pas `currency_options` par défaut. Pour l’inclure dans la réponse, [développez](https://docs.stripe.com/api/expanding_objects.md) le champ `currency_options`&nbsp;:

```curl
curl -G https://api.stripe.com/v1/prices/{{PRICE_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "expand[]=currency_options"
```

> Pour améliorer la latence et éviter les problèmes de limitation du débit, mettez le tarif en cache au lieu de le récupérer à chaque fois qu’un client visite votre site.

#### Utiliser des tarifs multidevises

Chaque achat utilise l’une des devises prises en charge par l’objet Price, en fonction de la manière dont vous utilisez celui-ci dans votre intégration.

#### Stripe Checkout

Checkout détermine automatiquement la devise locale du client à partir de son adresse IP, à condition que le tarif prenne en charge cette devise. Si la devise locale du client n’est pas prise en charge, Checkout utilise la devise par défaut pour le tarif.

Si une session Checkout utilise plusieurs tarifs, bons de réduction, codes de promotion ou frais de livraison, ils doivent tous prendre en charge la devise locale du client, faute de quoi la session Checkout utilise la devise par défaut. Ils doivent tous avoir la même devise par défaut, faute de quoi Stripe renvoie une erreur lorsque vous créez la session Checkout.

Vous avez également la possibilité d’exploiter le paramètre [currency](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-currency) pour indiquer explicitement à Checkout la devise à utiliser.

Pour en savoir plus sur la définition des [prix manuels en devise](https://docs.stripe.com/payments/checkout/localize-prices/manual-currency-prices.md) dans Checkout.

#### Payment Links

Payment Links détermine automatiquement la devise locale du client à partir de son adresse IP, à condition que le tarif prenne en charge cette devise. Si la devise locale du client n’est pas prise en charge, le lien de paiement utilise la devise par défaut pour le tarif.

Si le lien de paiement comporte plusieurs tarifs, ils doivent tous prendre en charge la devise locale du client, faute de quoi le lien de paiement utilise la devise par défaut. Tous les tarifs doivent avoir la même devise par défaut, faute de quoi Stripe renvoie une erreur à la création du lien de paiement.

Vous pouvez également utiliser le paramètre [currency](https://docs.stripe.com/api/payment-link/create.md#create_payment_link-currency) pour indiquer explicitement au lien de paiement quelle devise utiliser.

#### Abonnements

Vous pouvez créer des abonnements de différentes manières. La manière d’utiliser les tarifs multidevises dépend de la façon dont vous créez des abonnements&nbsp;:

- Si vous créez des abonnements avec Stripe Checkout, Checkout détermine automatiquement la devise locale du client à partir de son adresse IP, à condition que le tarif prenne en charge cette devise. Si la devise locale du client n’est pas prise en charge, Checkout utilise la devise par défaut pour le tarif. Si vous utilisez plusieurs tarifs, bons de réduction, codes promotionnels ou frais de livraison dans le cadre d’une même Checkout Session, ils doivent tous prendre en charge la devise locale du client, et avoir la même devise par défaut.

- Si vous créez des abonnements avec Stripe Elements, utilisez le paramètre [currency](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-currency) afin d’indiquer à l’abonnement quelle devise utiliser pour le tarif. (Si vous omettez le paramètre `currency`, l’abonnement utilise la devise par défaut pour le tarif.)

- Les [planifications d’abonnement](https://docs.stripe.com/billing/subscriptions/subscription-schedules.md) prennent également en charge les tarifs multidevises. Pour créer une planification d’abonnement avec un tarif multidevise, utilisez le paramètre [phases.currency](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-phases-currency) afin d’indiquer la devise à utiliser pour la planification. (Si vous omettez de spécifier le paramètre `phases.currency`, la planification et l’abonnement géré par la planification utiliseront tous les deux la devise par défaut pour l’objet Price.)

#### Devis

Les devis ne prennent pas en charge les tarifs multidevises. Si vous créez un devis avec un tarif multidevise, il utilise toujours la devise par défaut du tarif.

#### Factures

Lorsque vous créez un poste de facture, utilisez le paramètre [devise](https://docs.stripe.com/api/invoiceitems/create.md#create_invoiceitem-currency) afin d’indiquer au poste de facture quelle devise utiliser pour le tarif multidevise.

Vous devez explicitement transmettre le paramètre `currency`, même s’il est identique à la devise par défaut du client. Si vous omettez le paramètre `currency`, les tarifs multidevises ne s’appliqueront pas.

#### Passer d’un tarif à une seule devise à un tarif multidevises

Si vous disposez déjà d’un tarif dans une devise, vous pouvez lui ajouter rétroactivement plusieurs devises dans le Dashboard.

Si vous utilisez Checkout ou Payment Links, les tarifs multidevises prennent effet automatiquement. Si Stripe détecte que le tarif prend en charge la devise locale du client, elle utilise automatiquement cette devise. Si vous utilisez plusieurs tarifs, bons de réduction, codes promotionnels ou frais de livraison dans le cadre d’un même achat, ils doivent tous prendre en charge la devise locale du client, et avoir la même devise par défaut.

Si vous créez directement des abonnements, les tarifs multidevises ne prennent effet que lorsque vous commencez à transmettre le paramètre `currency`. Si vous ne transmettez pas le paramètre `currency`, l’abonnement utilise toujours la devise par défaut du tarif.

### Clés de recherche

La plupart des entreprises affichent les informations relatives aux tarifs sur leur site Web. Si ces tarifs sont codés en dur et que vous voulez les modifier, le processus est souvent manuel et requiert le déploiement d’un nouveau code. Afin de mieux gérer ces cas de figure, vous pouvez appliquer l’attribut [lookup_key](https://docs.stripe.com/api/prices/create.md#create_price-lookup_key) à l’[objet Price](https://docs.stripe.com/api/prices/object.md#price_object). La clé de recherche vous permet d’effectuer les opérations suivantes&nbsp;:

- Render different prices in your front end.
- Utiliser le tarif obtenu pour facturer les clients.

Vous pouvez transmettre un attribut `lookup_key` lorsque vous créez un tarif&nbsp;:

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "product={{PRODUCT_ID}}" \
  -d unit_amount=1000 \
  -d currency=usd \
  -d "recurring[interval]=month" \
  -d lookup_key=standard_monthly
```

Instead of hard-coding text like **10 USD per month** on your pricing page and using a price ID on your back end, you can query for the price using the `standard_monthly` key and then render that in your front end:

```curl
curl -G https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "lookup_keys[]=standard_monthly"
```

> Afin d’améliorer les performances, vous pouvez ajouter un niveau de cache pour ne recharger le tarif que de temps en temps.

Lorsqu’un client clique sur le bouton d’inscription ou de paiement, vous transmettez le tarif de la requête `GET` ci-dessus à l’API Subscriptions.

Maintenant que vous pouvez présenter des tarifs différents, imaginons que vous vouliez commencer à facturer aux nouveaux utilisateurs la somme de 20&nbsp;USD par mois au lieu de 10&nbsp;USD. Pour ce faire, il vous suffit de créer un nouveau tarif et de transférer la clé de recherche à ce nouveau tarif en utilisant [transfer_lookup_key=true](https://docs.stripe.com/api/prices/create.md#create_price-transfer_lookup_key)&nbsp;:

#### Arrondis

Les arrondis sont effectués au niveau du poste de vos *factures* (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). Par exemple, si vous créez un tarif avec `unit_amount_decimal = 0.05` et un abonnement mensuel pour ce [tarif] avec `quantity = 30`, les arrondis sont effectués après que la quantité est multipliée par le montant avec décimale. Dans ce cas, le montant calculé pour le poste serait de `0.05 * 30 = 1.5`, montant qui est ensuite arrondi à 2&nbsp;centimes. Si vous avez plusieurs postes, chacun sera arrondi avant de calculer le montant total de la facture. Cela garantit que les clients sont toujours débités d’un montant en sous-unités entier, puisque les montants avec décimale s’appliquent uniquement pour la tarification.

Les taxes hors taxes sont ajoutées au montant de chaque poste, en fonction du taux de taxe. Si vous activez les [taxes automatiques](https://docs.stripe.com/tax/invoicing.md), les taxes hors taxes sont appliquées et arrondies sur le total de la facture, y compris sur les réductions au niveau de la facture. Si vous utilisez les taxes manuelles, que ce soit au niveau du poste ou de la facture, vous pouvez choisir la manière d’appliquer l’arrondi. Utilisez la page des [paramètres de facturation](https://dashboard.stripe.com/settings/billing/invoice) dans le Dashboard pour appliquer et arrondir les taxes pour chaque poste, ou appliquez et arrondissez les taxes sur le sous-total de la facture.

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "product={{PRODUCT_ID}}" \
  -d unit_amount=2000 \
  -d currency=usd \
  -d "recurring[interval]=month" \
  -d lookup_key=standard_monthly \
  -d transfer_lookup_key=true
```

## Modifier un tarif

Vous avez la possibilité d’utiliser le Dashboard ou l’API pour mettre à jour certaines propriétés d’un tarif. Par exemple, vous pouvez choisir si le tarif est actif ou non, ou bien modifier ses métadonnées.

Notez que vous ne pouvez pas modifier le montant d’un tarif dans l’API. Au lieu de cela, nous vous recommandons de créer un tarif pour le nouveau montant, de basculer sur l’identifiant du nouveau tarif, puis de rendre inactif l’ancien tarif.

#### Dashboard

Pour modifier un tarif dans le Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Trouvez le produit dont vous souhaitez modifier le prix, puis cliquez dessus
3. Localisez le tarif voulu, cliquez sur le menu de débordement (⋯) et choisissez **Modifier le tarif**.
4. Modifiez votre tarif comme vous l’entendez. Vous pouvez au besoin ajouter un autre tarif à ce stade.
5. Cliquez sur **Enregistrer**.

#### API

Pour modifier un tarif à l’aide de l’API, utilisez la commande [update price](https://docs.stripe.com/api/prices/update.md) et indiquez le paramètre que vous souhaitez changer. Si vous n’indiquez aucun paramètre, le tarif n’est pas modifié.

```curl
curl https://api.stripe.com/v1/prices/id \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d lookup_key=MY_LOOKUP_KEY
```

## Archiver un tarif

Si vous souhaitez désactiver un tarif de sorte qu’il ne puisse plus être ajouté à de nouvelles factures ou à de nouveaux abonnements, vous pouvez l’archiver. Lorsque vous archivez un tarif, tous les abonnements existants qui utilisent ce tarif restent actifs jusqu’à ce qu’ils soient annulés et tous les liens de paiement existants qui utilisent le produit sont désactivés.

#### Dashboard

Pour archiver un tarif à l’aide du Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit que vous souhaitez modifier, puis cliquez sur le menu de débordement (⋯).
3. Sur la page d’informations du produit, localisez le tarif voulu, puis cliquez sur son menu de débordement (⋯) et choisissez **Archiver le tarif**.

Pour désarchiver un tarif&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit que vous souhaitez modifier, puis cliquez sur le menu de débordement (⋯).
3. Sur la page d’informations du produit, localisez le tarif voulu, puis cliquez sur son menu de débordement (⋯) et choisissez **Annuler l’archivage du tarif**.

#### API

Afin d’utiliser l’API pour archiver un tarif (c’est-à-dire pour indiquer que ce tarif ne peut pas être utilisé pour de nouveaux achats), attribuez au paramètre [active](https://docs.stripe.com/api/prices/update.md#update_price-active) la valeur `false`.

```curl
curl https://api.stripe.com/v1/prices/id \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d lookup_key=MY_LOOKUP_KEY \
  -d active=false
```

Afin d’utiliser l’API pour annuler l’archivage d’un tarif (c’est-à-dire pour indiquer que ce tarif peut être utilisé pour de nouveaux achats), attribuez au paramètre [active](https://docs.stripe.com/api/prices/update.md#update_price-active) la valeur `true`.

```curl
curl https://api.stripe.com/v1/prices/id \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d lookup_key=MY_LOOKUP_KEY \
  -d active=true
```

## Supprimer un tarif

Vous ne pouvez supprimer que des tarifs que vous n’avez jamais utilisés. Sinon, vous pouvez les [archiver](https://docs.stripe.com/products-prices/manage-prices.md#archive-price).

#### Dashboard

Pour supprimer de manière définitive un tarif du Dashboard&nbsp;:

1. Accédez à **Plus** > **Catalogue de produits**.
2. Localisez le produit que vous souhaitez modifier, puis cliquez sur le menu de débordement (⋯).
3. Sur la page d’informations du produit, localisez le tarif voulu, puis cliquez sur son menu de débordement (⋯) et choisissez **Supprimer le tarif**.

#### API

Vous ne pouvez pas supprimer un tarif à l’aide de l’API. Vous pouvez cependant [archiver](https://docs.stripe.com/products-prices/manage-prices.md#archive-price) un tarif pour le marquer comme `active=false` et ainsi indiquer qu’il n’est pas disponible à l’achat.

## Afficher les informations tarifaires

Une fois vos produits et tarifs créés, vous pouvez intégrer une [grille tarifaire](https://docs.stripe.com/payments/checkout/pricing-table.md) à votre site Web pour présenter les tarifs à vos clients. Lorsque vos clients choisissent une option d’abonnement, ils sont directement redirigés vers la page de paiement. Configurez, personnalisez et modifiez directement votre grille via le [Dashboard](https://dashboard.stripe.com/test/pricing-tables) sans avoir à écrire la moindre ligne code.

## Importer des produits et des tarifs

Si votre catalogue de produits est très volumineux, utilisez l’API [Products](https://docs.stripe.com/api/products.md) pour l’importer par programmation. Si vous importez votre catalogue de produits dans Stripe, vous pouvez utiliser n’importe quelle source de données de départ, par exemple un système de gestion de produits ou un fichier&nbsp;CSV.

Utilisez l’API [Products](https://docs.stripe.com/api/products.md) pour créer dans Stripe un produit correspondant à chaque produit de votre système. Pour faire correspondre les produits de votre système avec ceux de Stripe, attribuez à chaque produit importé un [id](https://docs.stripe.com/api/products/create.md#create_product-id) unique. Pour chaque produit, utilisez l’API [Prices](https://docs.stripe.com/api/prices.md) afin de créer un prix associé. Assurez-vous d’enregistrer l’`id` du prix nouvellement créé. Vous devrez transmettre cet `id` lorsque vous [utilisez les produits et les prix](https://docs.stripe.com/products-prices/manage-prices.md#use-products-and-prices-in-your-integration) dans votre intégration.

Vérifiez l’importation en consultant le [Dashboard](https://dashboard.stripe.com/products) ou en [listant tous les produits](https://docs.stripe.com/api/products/list.md) dans l’API.

### Supprimer les tarifs importés

Pendant la phase de développement, vous devrez peut-être exécuter ce script plusieurs fois pour les tests. Si vous utilisez le même ID de produit, vous obtiendrez une erreur indiquant qu’un produit portant cet ID existe déjà. Si vous n’avez pas encore utilisé le produit, vous pouvez le supprimer à l’aide du Dashboard Stripe&nbsp;:

1. Accédez au [Dashboard](https://dashboard.stripe.com/products) Produits et trouvez votre produit.

2. Dans la section **Tarifs**, cliquez sur le menu déroulant (⋯ Menu de débordement) en regard du tarif, et sélectionnez **Supprimer le tarif**.

3. Cliquez sur le menu déroulant (⋯ Menu de débordement) en haut de la page et sélectionnez **Supprimer le produit**.

### Synchroniser les produits et les tarifs

Vous devrez probablement réaliser plusieurs imports. Vous pouvez créer un script pour tester votre import et, si vous le souhaitez, synchroniser votre source de données d’origine avec Stripe. Pour rendre votre script idempotent et résilient vis-à-vis des erreurs, vous pouvez sans risque essayer de créer le produit d’abord, puis le mettre à jour s’il existe déjà.

Pour synchroniser votre catalogue de produits avec Stripe, utilisez des webhooks ou d’autres mécanismes afin de déclencher des mises à jour de produit dans Stripe. Pour [mettre à jour un produit](https://docs.stripe.com/api/products/update.md) de manière programmatique, utilisez la procédure suivante.

Tout d’abord, recherchez le tarif existant associé au produit avec l’API [List all prices](https://docs.stripe.com/api/prices/list.md) pour vous assurer que le tarif correspond toujours à votre source de données. Chaque produit doit avoir un seul et unique tarif actif.

```curl
curl -G https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "product={{PRODUCT_ID}}" \
  -d active=true
```

Ensuite, vérifiez si le montant avec décimale a changé. Le [champ](https://docs.stripe.com/api/prices/object.md#price_object-unit_amount_decimal) `unit_amount_decimal` affiche le montant unitaire en centimes.

Si le montant ne correspond pas, vous devez créer un nouveau tarif. Lorsque vous [créez un nouveau tarif](https://docs.stripe.com/api/prices/create.md), spécifiez l’ID `product` du produit d’origine, la devise `currency` et le tarif actualisé `unit_amount`.

```curl
curl https://api.stripe.com/v1/prices \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d "product={{PRODUCT_ID}}" \
  -d unit_amount=2000 \
  -d currency=usd
```

[Mettez à jour l’ancien tarif](https://docs.stripe.com/api/prices/update.md) pour le marquer comme `active=false`.

```curl
curl https://api.stripe.com/v1/prices/{{PRICE_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -d active=false
```

## Utiliser des produits et des tarifs dans votre intégration

Vous pouvez utiliser des produits et des tarifs dans plusieurs chemins d’intégration Stripe différents.

#### Stripe Checkout

Spécifiez l’ID de tarif lorsque vous créez une session Checkout.

- Si vous utilisez des tarifs ponctuels, découvrez [comment créer une session Checkout](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=checkout&ui=stripe-hosted#redirect-customers) lors de l’acceptation d’un paiement.

- Si vous créez des Subscriptions, découvrez [comment créer une Checkout Session](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=checkout&ui=stripe-hosted#create-session) lors de la création d’une intégration d’abonnement.

#### Payment Links

Si vous utilisez Payment Links, l’étape suivante consiste à sélectionner un produit pour [créer un lien de paiement](https://docs.stripe.com/payment-links/create.md).

#### Abonnements

Si vous créez des Subscriptions avec Stripe Checkout, indiquez l’ID du tarif lors de la création d’une [Checkout Session](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=checkout&ui=stripe-hosted#create-session).

Si vous créez des Subscriptions avec Stripe Elements, spécifiez l’ID du tarif lors de la [création d’un abonnement](https://docs.stripe.com/billing/subscriptions/build-subscriptions.md?payment-ui=elements&api-integration=checkout#create-session).

#### Devis

Si vous utilisez Quotes, la prochaine étape consiste à sélectionner un produit lorsque vous [créez un devis si vous utilisez le Dashboard](https://docs.stripe.com/quotes/create.md?testing-method=without-code).

Si vous écrivez du code pour votre intégration Quotes, spécifiez le `price.id` lorsque vous [créez le devis](https://docs.stripe.com/quotes/create.md?testing-method=with-code#create-quote-code).

#### Factures

Si vous utilisez Invoices, la prochaine étape consiste à sélectionner un produit lorsque vous créez une facture avec le [Dashboard](https://docs.stripe.com/invoicing/dashboard.md#create-invoice). Si vous utilisez l’[API](https://docs.stripe.com/invoicing/integration.md#create-invoice-code), spécifiez le `price.id`.

## Tests

Vous pouvez copier des produits d’un environnement de test vers le mode production pour éviter d’avoir à les recréer. Les tarifs associés aux produits sont également copiés. Sur la page d’informations du produit du Dashboard, cliquez sur **Copier en mode production** dans le coin supérieur droit.

Vous pouvez copier plusieurs fois le même produit d’environnement de test vers le mode production. Chaque copie crée un produit du mode production distinct, et les modifications ultérieures apportées au produit de l’environnement de test ne sont pas répercutées sur les copies déjà créées.
