# 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 > This is a Page hébergée for when payment-ui is stripe-hosted. View the full page at https://docs.stripe.com/payments/during-payment/charge-shipping?payment-ui=stripe-hosted. ## 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" ``` If successful, the shipping selector appears in your checkout flow: ![The shipping selector in the checkout flow](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) The shipping selector in the checkout flow ## 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 # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key = "<>" 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 = Stripe::ShippingRate.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" ``` Your customer can see the calculated tax amount for the shipping rate factored into the total sales tax in your checkout flow: ![Calculated tax amount for the shipping rate on the checkout page](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Calculated tax amount for the shipping rate in the checkout flow # 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/during-payment/charge-shipping?payment-ui=embedded-form. ## 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" ``` If successful, the shipping selector appears in your checkout flow: ![The shipping selector in the checkout flow](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) The shipping selector in the checkout flow ## 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 # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key = "<>" 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 = Stripe::ShippingRate.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" ``` Your customer can see the calculated tax amount for the shipping rate factored into the total sales tax in your checkout flow: ![Calculated tax amount for the shipping rate on the checkout page](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Calculated tax amount for the shipping rate in the checkout flow