# Commandes à coût zéro Acceptez les commandes d’articles sans frais ou appliquez 100 % de réduction pour les paiements ponctuels. # 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/no-cost-orders?payment-ui=stripe-hosted. Vous pouvez vous pouvez traiter les commandes à coût zéro en tant que paiements ponctuels avec des [postes à coût zéro](https://docs.stripe.com/payments/checkout/no-cost-orders.md#no-cost-line-items) ou des réductions de 100 % avec des [bons de réduction et des codes promotionnels destinés aux clients](https://docs.stripe.com/payments/checkout/no-cost-orders.md#full-cost-discounts). > Pour traiter des commandes à coût zéro à l’aide de l’API Checkout Sessions, vous devez utiliser la version [2023-08-16](https://docs.stripe.com/upgrades.md#2023-08-16) ou une version ultérieure de l’API. ## Créer une session Checkout avec des postes gratuits Créez un [tarif](https://docs.stripe.com/api/prices.md) avec un [unit_amount](https://docs.stripe.com/api/prices/object.md#price_object-unit_amount) de 0, et transmettez-le dans le tableau [line items](https://docs.stripe.com/api/checkout/sessions/line_items.md) de la session Checkout. Reportez-vous à [Produits et tarifs](https://docs.stripe.com/invoicing/products-prices.md) pour en savoir plus sur la création de tarifs. Vous pouvez également utiliser le paramètre [price_data](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-price_data) du tableau `line_items` pour transmettre un tarif gratuit. Si le montant total est égal à 0, Checkout ne collecte pas le moyen de paiement du client. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][unit_amount]=0" \ -d "line_items[0][price_data][product_data][name]=Free t-shirt" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Si la propriété `customer` n’est pas définie, la session Checkout crée automatiquement un objet Customer. Cela signifie que les [clients invités](https://docs.stripe.com/payments/checkout/guest-customers.md) ne sont pas pris en charge. ## Créer une réduction Vous pouvez également créer un bon de réduction et un code promotionnel pour permettre à vos clients de finaliser leur commande gratuitement. ### Créer un bon de réduction Créez un [bon de réduction](https://docs.stripe.com/api/coupons.md) grâce auquel votre session Checkout sera gratuite. Par exemple, vous pouvez créer un bon de réduction de 100 %. ```curl curl https://api.stripe.com/v1/coupons \ -u "<>:" \ -d percent_off=100 \ -d duration=once ``` Pour créer une session avec une remise appliquée, transmettez l’[ID du bon de réduction](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) dans le paramètre `coupon` du tableau [discounts](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][quantity]=1" \ -d "discounts[0][coupon]={{COUPON_ID}}" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Vous pouvez également créer une session Checkout gratuite en appliquant un bon de réduction d’un montant égal ou supérieur au total de la session Checkout. ### Créer un code promotionnel Les codes promotionnels sont des codes destinés aux clients, créés en plus des bons de réduction. Vous pouvez les partager avec les clients, qui devront les saisir dans Checkout pour appliquer une ristourne. Créez un code promotionnel à partir d’un bon de réduction de 100 % pour permettre aux clients de créer des commandes gratuitement. ```curl curl https://api.stripe.com/v1/promotion_codes \ -u "<>:" \ -d "coupon={{COUPON_ID}}" \ -d code=FREECODE ``` Activez les codes promotionnels utilisables par l’utilisateur à l’aide du paramètre [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) dans une session Checkout. Un champ est ainsi activé dans Checkout qui permet aux utilisateurs de saisir leurs codes promotionnels. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d allow_promotion_codes=true \ --data-urlencode "success_url=https://example.com/success" ``` Les clients peuvent également avoir un montant nul à payer s’ils appliquent un code promotionnel leur donnant droit à une réduction d’un montant égal ou supérieur au total de la session Checkout. Pour découvrir d’autres façons d’appliquer des ristournes, consultez [Ajouter des ristournes](https://docs.stripe.com/payments/checkout/discounts.md). ## Traiter les commandes finalisées Une fois la session Checkout terminée, vous pouvez lancer une requête sur les [postes](https://docs.stripe.com/api/checkout/sessions/line_items.md) finalisés et leurs quantités. Si votre client supprime un poste de facture, celui-ci est également supprimé de la réponse relative aux postes. Consultez le [guide d’exécution](https://docs.stripe.com/checkout/fulfillment.md) pour apprendre à créer un gestionnaire d’événements pour traiter les sessions Checkout terminées. > Pour traiter des commandes à coût zéro, veillez à traiter l’événement `checkout.session.completed`, et non les événements [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md). Les sessions Checkout terminées à coût zéro n’auront aucun [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) associé. Vous pouvez consulter vos commandes à coût zéro finalisées dans le [Dashboard](https://dashboard.stripe.com/no-cost-orders). L’onglet Commandes à coût zéro ne s’affiche que si vous avez au moins une commande à coût zéro finalisée. ## Optional: Liens de paiement et grilles tarifaires Par défaut, les liens de paiement et les grilles tarifaires prennent en charge les commandes à coût zéro si votre compte a été créé après le 17 août 2023. Dans le cas des comptes créés avant le 17 août 2023, vous pouvez activer les commandes à coût zéro pour vos liens de paiement et grilles tarifaires en accédant à votre [paramètres Checkout](https://dashboard.stripe.com/settings/checkout) dans le Dashboard. > Lorsque vous activez cette fonctionnalité, elle dispose d’une période de grâce de 3 jours pendant laquelle vous pouvez la désactiver. Après 3 jours, vous ne pouvez plus le désactiver. Avant de l’activer pour vos liens de paiement réels et vos grilles tarifaires, testez-le avec votre flux de distribution dans un bac à sable. Pour utiliser des commandes à coût zéro avec un lien de paiement dans un environnement de test, spécifiez un [paramètre d’URL](https://docs.stripe.com/payment-links/customize.md#customize-checkout-with-url-parameters) `prefilled_email` sur une adresse e-mail dont la partie locale inclut le suffixe `+no_cost_orders`. Par exemple, `j.appleseed+no_cost_orders@example.com`. La session de paiement qui en résulte vous permet d’appliquer une réduction qui réduit le total de la commande à zéro. Pour utiliser des commandes à coût zéro avec une grille tarifaire dans un environnement de test, définissez la [propriété](https://docs.stripe.com/payments/checkout/pricing-table.md#customer-email) `customer-email` de la grille tarifaire sur une adresse e-mail dont la partie locale inclut le suffixe `+no_cost_orders`. Par exemple, `j.appleseed+no_cost_orders@example.com`. La session de paiement qui en résulte vous permet d’appliquer une réduction qui réduit le total de la commande à zéro. # 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/no-cost-orders?payment-ui=embedded-form. Vous pouvez vous pouvez traiter les commandes à coût zéro en tant que paiements ponctuels avec des [postes à coût zéro](https://docs.stripe.com/payments/checkout/no-cost-orders.md#no-cost-line-items) ou des réductions de 100 % avec des [bons de réduction et des codes promotionnels destinés aux clients](https://docs.stripe.com/payments/checkout/no-cost-orders.md#full-cost-discounts). > Pour traiter des commandes à coût zéro à l’aide de l’API Checkout Sessions, vous devez utiliser la version [2023-08-16](https://docs.stripe.com/upgrades.md#2023-08-16) ou une version ultérieure de l’API. ## Créer une session Checkout avec des postes gratuits Créez un [tarif](https://docs.stripe.com/api/prices.md) avec un [unit_amount](https://docs.stripe.com/api/prices/object.md#price_object-unit_amount) de 0, et transmettez-le dans le tableau [line items](https://docs.stripe.com/api/checkout/sessions/line_items.md) de la session Checkout. Reportez-vous à [Produits et tarifs](https://docs.stripe.com/invoicing/products-prices.md) pour en savoir plus sur la création de tarifs. Vous pouvez également utiliser le paramètre [price_data](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-line_items-price_data) du tableau `line_items` pour transmettre un tarif gratuit. Si le montant total est égal à 0, Checkout ne collecte pas le moyen de paiement du client. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][unit_amount]=0" \ -d "line_items[0][price_data][product_data][name]=Free t-shirt" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" ``` Si la propriété `customer` n’est pas définie, la session Checkout crée automatiquement un objet Customer. Cela signifie que les [clients invités](https://docs.stripe.com/payments/checkout/guest-customers.md) ne sont pas pris en charge. ## Créer une réduction Vous pouvez également créer un bon de réduction et un code promotionnel pour permettre à vos clients de finaliser leur commande gratuitement. ### Créer un bon de réduction Créez un [bon de réduction](https://docs.stripe.com/api/coupons.md) grâce auquel votre session Checkout sera gratuite. Par exemple, vous pouvez créer un bon de réduction de 100 %. ```curl curl https://api.stripe.com/v1/coupons \ -u "<>:" \ -d percent_off=100 \ -d duration=once ``` Pour créer une session avec une remise appliquée, transmettez l’[ID du bon de réduction](https://docs.stripe.com/api/coupons/object.md#coupon_object-id) dans le paramètre `coupon` du tableau [discounts](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-discounts). ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][quantity]=1" \ -d "discounts[0][coupon]={{COUPON_ID}}" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" ``` Vous pouvez également créer une session Checkout gratuite en appliquant un bon de réduction d’un montant égal ou supérieur au total de la session Checkout. ### Créer un code promotionnel Les codes promotionnels sont des codes destinés aux clients, créés en plus des bons de réduction. Vous pouvez les partager avec les clients, qui devront les saisir dans Checkout pour appliquer une ristourne. Créez un code promotionnel à partir d’un bon de réduction de 100 % pour permettre aux clients de créer des commandes gratuitement. ```curl curl https://api.stripe.com/v1/promotion_codes \ -u "<>:" \ -d "coupon={{COUPON_ID}}" \ -d code=FREECODE ``` Activez les codes promotionnels utilisables par l’utilisateur à l’aide du paramètre [allow_promotion_codes](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-allow_promotion_codes) dans une session Checkout. Un champ est ainsi activé dans Checkout qui permet aux utilisateurs de saisir leurs codes promotionnels. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d allow_promotion_codes=true \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" ``` Les clients peuvent également avoir un montant nul à payer s’ils appliquent un code promotionnel leur donnant droit à une réduction d’un montant égal ou supérieur au total de la session Checkout. Pour découvrir d’autres façons d’appliquer des ristournes, consultez [Ajouter des ristournes](https://docs.stripe.com/payments/checkout/discounts.md). ## Traiter les commandes finalisées Une fois la session Checkout terminée, vous pouvez lancer une requête sur les [postes](https://docs.stripe.com/api/checkout/sessions/line_items.md) finalisés et leurs quantités. Si votre client supprime un poste de facture, celui-ci est également supprimé de la réponse relative aux postes. Consultez le [guide d’exécution](https://docs.stripe.com/checkout/fulfillment.md) pour apprendre à créer un gestionnaire d’événements pour traiter les sessions Checkout terminées. > Pour traiter des commandes à coût zéro, veillez à traiter l’événement `checkout.session.completed`, et non les événements [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md). Les sessions Checkout terminées à coût zéro n’auront aucun [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) associé. Vous pouvez consulter vos commandes à coût zéro finalisées dans le [Dashboard](https://dashboard.stripe.com/no-cost-orders). L’onglet Commandes à coût zéro ne s’affiche que si vous avez au moins une commande à coût zéro finalisée.