# Facturer la livraison Créez différents tarifs de livraison pour vos clients. Les frais de livraison vous permettent d’afficher diverses options d’expédition (standard, express et 24 heures) avec des estimations de livraison plus précises. Facturez vos clients pour la livraison à l’aide de différents produits Stripe, dont certains nécessitent l’écriture de code. Avant de créer des frais de livraison, découvrez comment [collecter les adresses de facturation et de livraison](https://docs.stripe.com/payments/collect-addresses.md). # Page hébergée complète ## Créer un tarif de livraison [Dashboard] [Côté serveur] Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour l’ensemble de la commande. Vous ne pouvez pas ajuster les frais de livraison en fonction du nombre d’articles dans la commande. #### Dashboard Pour ajouter des [frais de livraison](https://dashboard.stripe.com/test/shipping-rates) à l’aide du Dashboard : 1. Cliquez sur **Créer des frais de livraison**. 1. Renseignez un montant, une description et, si vous le souhaitez, une estimation du délai de livraison. 1. Cliquez sur **Enregistrer** et copiez l’ID des frais de livraison (`shr_123456`). ![](https://b.stripecdn.com/docs-statics-srv/assets/create-shipping-rate-dashboard.ddd79821d5edee523d7da9d22682be59.png) Saisir les détails de vos frais de livraison ### Modifier des frais de livraison Vous ne pouvez pas mettre à jour un montant d’une devise qui a déjà été défini sur un tarif de livraison. Après avoir défini une devise et un montant sur un tarif de livraison, vous pouvez seulement ajouter de nouvelles devises. Pour mettre à jour un tarif de livraison dans le Dashboard, vous devez archiver le tarif de livraison, puis en créer un nouveau. ### Archiver les frais de livraison Pour archiver des frais de livraison : 1. Dans l’onglet [Frais de livraison](https://dashboard.stripe.com/test/shipping-rates), sélectionnez les frais de livraison applicables. 1. Cliquez sur le menu déroulant ⋯, puis sélectionnez **Archiver**. Pour désarchiver les frais de livraison, cliquez sur le menu déroulant ⋯ et sélectionnez **Désarchiver les frais de livraison**. #### API > #### Vous souhaitez mettre dynamiquement à jour les frais de livraison ? > > Checkout vous permet de mettre dynamiquement à jour les frais de livraison en fonction de l’adresse fournie par votre client ou de la valeur de la commande. Consultez la section [Personnalisation dynamique des options d’expédition](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) sur cette fonctionnalité en version bêta. [Créez des frais de livraison](https://docs.stripe.com/api/shipping_rates.md), ce qui nécessite au minimum les paramètres `type` et `display_name`. L’exemple de code suivant utilise ces deux paramètres avec `fixed_amount` et `delivery_estimate` pour créer des frais de livraison : ```curl curl https://api.stripe.com/v1/shipping_rates \ -u "<>:" \ -d "display_name=Ground shipping" \ -d type=fixed_amount \ -d "fixed_amount[amount]=500" \ -d "fixed_amount[currency]=usd" \ -d "delivery_estimate[minimum][unit]=business_day" \ -d "delivery_estimate[minimum][value]=5" \ -d "delivery_estimate[maximum][unit]=business_day" \ -d "delivery_estimate[maximum][value]=7" ``` ### Modifier des frais de livraison Pour [mettre à jour les frais de livraison](https://docs.stripe.com/api/shipping_rates/update.md), appelez `Stripe::ShippingRate.update` et mettez à jour les paramètres si nécessaire. ## Créer une Session Checkout [Côté serveur] Pour créer une session de paiement incluant vos frais de livraison, transmettez l’ID des frais de livraison généré au paramètre [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Si vous souhaitez créer les frais de livraison en même temps qu’une session Checkout, utilisez le paramètre `shipping_rate_data` avec `shipping_options`. Seules les sessions Checkout en [mode de paiement](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) prennent en charge les options de livraison. L’exemple de code suivant ajoute deux options de livraison à la session Checkout : - Livraison gratuite sous 5 à 7 jours ouvrés (estimation). - Livraison par voie aérienne sous 1 jour ouvré (estimation) pour un coût de 15,00 USD. Dans cet exemple, la première option du tableau `shipping_options` est sélectionnée par défaut lorsque le client accède à la page de paiement. Les clients peuvent cependant choisir ensuite l’option de leur choix. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "shipping_address_collection[allowed_countries][0]=US" \ -d "shipping_address_collection[allowed_countries][1]=CA" \ -d "shipping_options[0][shipping_rate_data][type]=fixed_amount" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]=0" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]=usd" \ -d "shipping_options[0][shipping_rate_data][display_name]=Free shipping" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]=5" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]=7" \ -d "shipping_options[1][shipping_rate_data][type]=fixed_amount" \ -d "shipping_options[1][shipping_rate_data][fixed_amount][amount]=1500" \ -d "shipping_options[1][shipping_rate_data][fixed_amount][currency]=usd" \ -d "shipping_options[1][shipping_rate_data][display_name]=Next day air" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][unit]=business_day" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][value]=1" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][unit]=business_day" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][value]=1" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Sauf échec de l’opération, le sélecteur d’option de livraison apparaît dans votre tunnel de paiement : ![Le sélecteur d'option de livraison dans le tunnel de paiement.](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) Le sélecteur d’option de livraison dans le tunnel de paiement. ## Optional: Gérer les transactions terminées Une fois le paiement aboutit, vous pouvez récupérer le montant de la livraison dans l’attribut [amount_total](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-amount_total) de [shipping_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-shipping_cost). Vous pouvez également récupérer le tarif de livraison sélectionné à l’aide de l’attribut `shipping_rate` de `shipping_cost`. Pour accéder à la propriété `shipping_cost`, vous devez [créer un gestionnaire d’événements](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) pour gérer les sessions Checkout terminées. Vous pouvez tester un gestionnaire en [installant la CLI Stripe](https://docs.stripe.com/stripe-cli.md) et en utilisant `stripe listen --forward-to localhost:4242/webhook` pour [transférer les événements vers votre serveur local](https://docs.stripe.com/webhooks.md#test-webhook). Dans l’exemple de code suivant, le gestionnaire permet à l’utilisateur d’accéder à `shipping_property` : #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. client = Stripe::StripeClient.new("<>") require 'sinatra' # You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end if event['type'] == 'checkout.session.completed' checkout_session = event['data']['object'] fulfill_order(checkout_session) end status 200 end def fulfill_order(checkout_session)selected_shipping_rate = client.v1.shipping_rates.retrieve(checkout_session.shipping_cost.shipping_rate) shipping_total = checkout_session.shipping_cost.amount_total # TODO: Remove error and implement... raise NotImplementedError.new(<<~MSG) Given the Checkout Session "#{checkout_session.id}" load your internal order from the database then implement your own fulfillment logic. MSG end ``` ## Optional: Définir une estimation du délai de livraison Vous pouvez configurer des tarifs de livraison avec différentes combinaisons d’estimations du délai de livraison. Le tableau suivant présente des exemples d’estimations, avec leurs valeurs `delivery_estimate.minimum` et `delivery_estimate.maximum` correspondantes : | Estimation du délai de livraison | Minimum | Maximum | | -------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 1 jour | ```es6 { unit: 'day', value: 1, } ``` | ```es6 { unit: 'day', value: 1, } ``` | | 1 jour ouvré | ```es6 { unit: 'business_day', value: 1, } ``` | ```es6 { unit: 'business_day', value: 1, } ``` | | Au moins 2 jours ouvrés | ```es6 { unit: 'business_day', value: 2, } ``` | ```es6 null ``` | | 3 à 7 jours | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | 4 à 8 heures | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | De 4 heures à 2 jours ouvrés | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'business_day', value: 2, } ``` | ## Optional: Facturer une taxe sur la livraison Vous pouvez utiliser [Stripe Tax](https://docs.stripe.com/tax/checkout.md) pour calculer automatiquement la taxe appliquée aux frais de livraison en définissant un `tax_code` et un `tax_behavior` sur vos frais de livraison. Stripe Tax détermine automatiquement si la livraison est imposable ([car la fiscalité varie selon l’état et le pays](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#shipping-tax-code)), puis applique le taux de taxe adapté si c’est le cas. Lors de la création d’un tarif d’expédition avec `shipping_rate_data` ou par le biais de [Create a Shipping Rate](https://docs.stripe.com/api/shipping_rates/create.md), vous pouvez ajouter un paramètre `tax_behavior` et `tax_code` au tarif d’expédition. Nous vous recommandons de définir le `tax_code` sur `Shipping` (`txcd_92010001`) pour vous assurer que vous facturez toujours la juste taxe. Vous pouvez également définir le `tax_code` du tarif de livraison sur `Nontaxable` (`txcd_00000000`) si vous ne souhaitez facturer aucune taxe. Dans cet exemple, nous définissons le `tax_behavior` sur `exclusive` (courant aux États-Unis). Pour plus d’informations, reportez-vous à notre documentation relative au [comportement fiscal](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#tax-behavior). ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d billing_address_collection=required \ -d "shipping_address_collection[allowed_countries][0]=US" \ -d "shipping_address_collection[allowed_countries][1]=CA" \ -d "shipping_options[0][shipping_rate_data][type]=fixed_amount" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]=0" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]=usd" \ -d "shipping_options[0][shipping_rate_data][display_name]=Free shipping" \ -d "shipping_options[0][shipping_rate_data][tax_behavior]=exclusive" \ -d "shipping_options[0][shipping_rate_data][tax_code]=txcd_92010001" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]=5" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]=7" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][price_data][tax_behavior]=exclusive" \ -d "line_items[0][quantity]=1" \ -d "automatic_tax[enabled]=true" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" ``` Votre client peut voir le montant de la taxe calculé pour le tarif de livraison pris en compte dans la taxe de vente totale dans votre tunnel de paiement : ![Montant de la taxe calculé pour le tarif de livraison sur la page de paiement](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Montant de la taxe calculé pour le tarif de livraison dans le tunnel de paiement # Page intégrée complète ## Créer un tarif de livraison [Dashboard] [Côté serveur] Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour l’ensemble de la commande. Vous ne pouvez pas ajuster les frais de livraison en fonction du nombre d’articles dans la commande. #### Dashboard Pour ajouter des [frais de livraison](https://dashboard.stripe.com/test/shipping-rates) à l’aide du Dashboard : 1. Cliquez sur **Créer des frais de livraison**. 1. Renseignez un montant, une description et, si vous le souhaitez, une estimation du délai de livraison. 1. Cliquez sur **Enregistrer** et copiez l’ID des frais de livraison (`shr_123456`). ![](https://b.stripecdn.com/docs-statics-srv/assets/create-shipping-rate-dashboard.ddd79821d5edee523d7da9d22682be59.png) Saisir les détails de vos frais de livraison ### Modifier des frais de livraison Vous ne pouvez pas mettre à jour un montant d’une devise qui a déjà été défini sur un tarif de livraison. Après avoir défini une devise et un montant sur un tarif de livraison, vous pouvez seulement ajouter de nouvelles devises. Pour mettre à jour un tarif de livraison dans le Dashboard, vous devez archiver le tarif de livraison, puis en créer un nouveau. ### Archiver les frais de livraison Pour archiver des frais de livraison : 1. Dans l’onglet [Frais de livraison](https://dashboard.stripe.com/test/shipping-rates), sélectionnez les frais de livraison applicables. 1. Cliquez sur le menu déroulant ⋯, puis sélectionnez **Archiver**. Pour désarchiver les frais de livraison, cliquez sur le menu déroulant ⋯ et sélectionnez **Désarchiver les frais de livraison**. #### API > #### Vous souhaitez mettre dynamiquement à jour les frais de livraison ? > > Checkout vous permet de mettre dynamiquement à jour les frais de livraison en fonction de l’adresse fournie par votre client ou de la valeur de la commande. Consultez la section [Personnalisation dynamique des options d’expédition](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) sur cette fonctionnalité en version bêta. [Créez des frais de livraison](https://docs.stripe.com/api/shipping_rates.md), ce qui nécessite au minimum les paramètres `type` et `display_name`. L’exemple de code suivant utilise ces deux paramètres avec `fixed_amount` et `delivery_estimate` pour créer des frais de livraison : ```curl curl https://api.stripe.com/v1/shipping_rates \ -u "<>:" \ -d "display_name=Ground shipping" \ -d type=fixed_amount \ -d "fixed_amount[amount]=500" \ -d "fixed_amount[currency]=usd" \ -d "delivery_estimate[minimum][unit]=business_day" \ -d "delivery_estimate[minimum][value]=5" \ -d "delivery_estimate[maximum][unit]=business_day" \ -d "delivery_estimate[maximum][value]=7" ``` ### Modifier des frais de livraison Pour [mettre à jour les frais de livraison](https://docs.stripe.com/api/shipping_rates/update.md), appelez `Stripe::ShippingRate.update` et mettez à jour les paramètres si nécessaire. ## Créer une Session Checkout [Côté serveur] Pour créer une session de paiement incluant vos frais de livraison, transmettez l’ID des frais de livraison généré au paramètre [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Si vous souhaitez créer les frais de livraison en même temps qu’une session Checkout, utilisez le paramètre `shipping_rate_data` avec `shipping_options`. Seules les sessions Checkout en [mode de paiement](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) prennent en charge les options de livraison. L’exemple de code suivant ajoute deux options de livraison à la session Checkout : - Livraison gratuite sous 5 à 7 jours ouvrés (estimation). - Livraison par voie aérienne sous 1 jour ouvré (estimation) pour un coût de 15,00 USD. Dans cet exemple, la première option du tableau `shipping_options` est sélectionnée par défaut lorsque le client accède à la page de paiement. Les clients peuvent cependant choisir ensuite l’option de leur choix. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d billing_address_collection=required \ -d "shipping_address_collection[allowed_countries][0]=US" \ -d "shipping_address_collection[allowed_countries][1]=CA" \ -d "shipping_options[0][shipping_rate_data][type]=fixed_amount" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]=0" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]=usd" \ -d "shipping_options[0][shipping_rate_data][display_name]=Free shipping" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]=5" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]=7" \ -d "shipping_options[1][shipping_rate_data][type]=fixed_amount" \ -d "shipping_options[1][shipping_rate_data][fixed_amount][amount]=1500" \ -d "shipping_options[1][shipping_rate_data][fixed_amount][currency]=usd" \ -d "shipping_options[1][shipping_rate_data][display_name]=Next day air" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][unit]=business_day" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][value]=1" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][unit]=business_day" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][value]=1" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" ``` Sauf échec de l’opération, le sélecteur d’option de livraison apparaît dans votre tunnel de paiement : ![Le sélecteur d'option de livraison dans le tunnel de paiement.](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) Le sélecteur d’option de livraison dans le tunnel de paiement. ## Optional: Gérer les transactions terminées Une fois le paiement aboutit, vous pouvez récupérer le montant de la livraison dans l’attribut [amount_total](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-amount_total) de [shipping_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-shipping_cost). Vous pouvez également récupérer le tarif de livraison sélectionné à l’aide de l’attribut `shipping_rate` de `shipping_cost`. Pour accéder à la propriété `shipping_cost`, vous devez [créer un gestionnaire d’événements](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) pour gérer les sessions Checkout terminées. Vous pouvez tester un gestionnaire en [installant la CLI Stripe](https://docs.stripe.com/stripe-cli.md) et en utilisant `stripe listen --forward-to localhost:4242/webhook` pour [transférer les événements vers votre serveur local](https://docs.stripe.com/webhooks.md#test-webhook). Dans l’exemple de code suivant, le gestionnaire permet à l’utilisateur d’accéder à `shipping_property` : #### Ruby ```ruby # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. client = Stripe::StripeClient.new("<>") require 'sinatra' # You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end if event['type'] == 'checkout.session.completed' checkout_session = event['data']['object'] fulfill_order(checkout_session) end status 200 end def fulfill_order(checkout_session)selected_shipping_rate = client.v1.shipping_rates.retrieve(checkout_session.shipping_cost.shipping_rate) shipping_total = checkout_session.shipping_cost.amount_total # TODO: Remove error and implement... raise NotImplementedError.new(<<~MSG) Given the Checkout Session "#{checkout_session.id}" load your internal order from the database then implement your own fulfillment logic. MSG end ``` ## Optional: Définir une estimation du délai de livraison Vous pouvez configurer des tarifs de livraison avec différentes combinaisons d’estimations du délai de livraison. Le tableau suivant présente des exemples d’estimations, avec leurs valeurs `delivery_estimate.minimum` et `delivery_estimate.maximum` correspondantes : | Estimation du délai de livraison | Minimum | Maximum | | -------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 1 jour | ```es6 { unit: 'day', value: 1, } ``` | ```es6 { unit: 'day', value: 1, } ``` | | 1 jour ouvré | ```es6 { unit: 'business_day', value: 1, } ``` | ```es6 { unit: 'business_day', value: 1, } ``` | | Au moins 2 jours ouvrés | ```es6 { unit: 'business_day', value: 2, } ``` | ```es6 null ``` | | 3 à 7 jours | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | 4 à 8 heures | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | De 4 heures à 2 jours ouvrés | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'business_day', value: 2, } ``` | ## Optional: Facturer une taxe sur la livraison Vous pouvez utiliser [Stripe Tax](https://docs.stripe.com/tax/checkout.md) pour calculer automatiquement la taxe appliquée aux frais de livraison en définissant un `tax_code` et un `tax_behavior` sur vos frais de livraison. Stripe Tax détermine automatiquement si la livraison est imposable ([car la fiscalité varie selon l’état et le pays](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#shipping-tax-code)), puis applique le taux de taxe adapté si c’est le cas. Lors de la création d’un tarif d’expédition avec `shipping_rate_data` ou par le biais de [Create a Shipping Rate](https://docs.stripe.com/api/shipping_rates/create.md), vous pouvez ajouter un paramètre `tax_behavior` et `tax_code` au tarif d’expédition. Nous vous recommandons de définir le `tax_code` sur `Shipping` (`txcd_92010001`) pour vous assurer que vous facturez toujours la juste taxe. Vous pouvez également définir le `tax_code` du tarif de livraison sur `Nontaxable` (`txcd_00000000`) si vous ne souhaitez facturer aucune taxe. Dans cet exemple, nous définissons le `tax_behavior` sur `exclusive` (courant aux États-Unis). Pour plus d’informations, reportez-vous à notre documentation relative au [comportement fiscal](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#tax-behavior). ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d billing_address_collection=required \ -d "shipping_address_collection[allowed_countries][0]=US" \ -d "shipping_address_collection[allowed_countries][1]=CA" \ -d "shipping_options[0][shipping_rate_data][type]=fixed_amount" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]=0" \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]=usd" \ -d "shipping_options[0][shipping_rate_data][display_name]=Free shipping" \ -d "shipping_options[0][shipping_rate_data][tax_behavior]=exclusive" \ -d "shipping_options[0][shipping_rate_data][tax_code]=txcd_92010001" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]=5" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]=business_day" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]=7" \ -d "line_items[0][price_data][currency]=usd" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][price_data][tax_behavior]=exclusive" \ -d "line_items[0][quantity]=1" \ -d "automatic_tax[enabled]=true" \ -d mode=payment \ -d ui_mode=embedded_page \ --data-urlencode "return_url=https://example.com/return" ``` Votre client peut voir le montant de la taxe calculé pour le tarif de livraison pris en compte dans la taxe de vente totale dans votre tunnel de paiement : ![Montant de la taxe calculé pour le tarif de livraison sur la page de paiement](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Montant de la taxe calculé pour le tarif de livraison dans le tunnel de paiement