# Addebitare la spedizione Creare costi di spedizione diversi per i clienti I costi di spedizione ti consentono di visualizzare varie opzioni di spedizione (ad es. standard, express o entro il giorno successivo), con stime di consegna più precise. Addebita al tuo cliente la spedizione utilizzando prodotti Stripe diversi. Prima di creare un costo di spedizione, scopri come [raccogliere gli indirizzi di fatturazione e di spedizione](https://docs.stripe.com/payments/collect-addresses.md). # Pagina in hosting > This is a Pagina in hosting 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. ## Crea un costo di spedizione [Dashboard] [Lato server] I costi di spedizione supportano solo valori di importo fisso per l’intero ordine. Non puoi modificare il costo di spedizione in base al numero di articoli nell’ordine. #### Dashboard Aggiungere un [costo di spedizione](https://dashboard.stripe.com/test/shipping-rates) utilizzando la Dashboard: 1. Fai clic su **Crea costo di spedizione**. 1. Inserisci un importo, una descrizione e una data di consegna prevista (facoltativa). 1. Fai clic su **Salva** e copia l’ID del costo di spedizione (`shr_123456`). ![](https://b.stripecdn.com/docs-statics-srv/assets/create-shipping-rate-dashboard.ddd79821d5edee523d7da9d22682be59.png) Inserisci i dettagli del costo di spedizione ### Aggiornare un costo di spedizione Non è possibile aggiornare l’importo di una valuta già impostata su una tariffa di spedizione. Dopo aver impostato una valuta e un importo su una tariffa di spedizione, è possibile aggiornarla solo per includere nuove valute. Per aggiornare una tariffa di spedizione nella Dashboard, è necessario archiviare la tariffa di spedizione e quindi crearne una nuova. ### Archiviare un costo di spedizione Per archiviare un costo di spedizione: 1. Nella scheda [Costi di spedizione](https://dashboard.stripe.com/test/shipping-rates), seleziona il costo di spedizione applicabile. 1. Fai clic sul menu extra ⋯ e seleziona **Archivia**. Per annullare l’archiviazione del costo di spedizione, fai clic sul menu extra ⋯ e seleziona **Annulla archiviazione costo di spedizione**. #### API > #### Ti interessano gli aggiornamenti dinamici dei costi di spedizione? > > Checkout consente di aggiornare dinamicamente i costi di spedizione in base all’indirizzo fornito dal cliente o al valore dell’ordine. Consulta la sezione [Personalizzare le opzioni di spedizione in modo dinamico](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) per ulteriori informazioni su questa funzione. [Crea un costo di spedizione](https://docs.stripe.com/api/shipping_rates.md), che richiede almeno i parametri `type` e `display_name`. Nell’esempio di codice riportato di seguito vengono utilizzati entrambi questi parametri insieme a `fixed_amount` e `delivery_estimate` per creare un costo di spedizione: ```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" ``` ### Aggiornare un costo di spedizione Per [aggiornare un costo di spedizione](https://docs.stripe.com/api/shipping_rates/update.md), chiama `Stripe::ShippingRate.update` e aggiorna i parametri in base alle esigenze. ## Crea una sessione di checkout [Lato server] Per creare una sessione di Checkout che includa il tuo costo di spedizione, specifica l’ID del costo di spedizione generato nel parametro [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Se vuoi creare il costo di spedizione contemporaneamente a una sessione di Checkout, utilizza il parametro `shipping_rate_data` con `shipping_options`. Solo le sessioni di Checkout in [metodo di pagamento](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) supportano le opzioni di spedizione. Il seguente esempio di codice aggiunge due opzioni di spedizione alla sessione di Checkout: - Spedizione gratuita, con consegna stimata in 5-7 giorni lavorativi. - Giorno successivo, a un costo di 15,00 USD, con consegna stimata in 1 giorno lavorativo esatto. In questo esempio, la prima opzione nella matrice `shipping_options` è preselezionata per il cliente nella pagina di pagamento. Tuttavia, i clienti possono scegliere una delle due opzioni. ```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" ``` In caso di esito positivo, il selettore di spedizione viene visualizzato nel flusso di completamento delle transazioni: ![Il selettore di spedizione nel flusso di completamento delle transazioni](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) Il selettore di spedizione nel flusso di completamento delle transazioni ## Optional: Gestisci le transazioni completate Una volta completato il pagamento, puoi recuperare l’importo della spedizione nell’attributo [amount_total](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-amount_total) di [shipping_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-shipping_cost). Puoi anche recuperare il costo di spedizione selezionato utilizzando l’attributo `shipping_rate` in `shipping_cost`. Per accedere alla proprietà `shipping_cost`, devi [creare un gestore eventi](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) per gestire le sessioni di Checkout completate. Puoi eseguire il test di un gestore [installando la CLI di Stripe](https://docs.stripe.com/stripe-cli.md) e utilizzando `stripe listen --forward-to localhost:4242/webhook` per [inoltrare gli eventi al tuo server locale](https://docs.stripe.com/webhooks.md#test-webhook). Nell’esempio di codice seguente, il gestore consente all’utente di accedere a `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: Definisci una stima di consegna Puoi configurare le tariffe di spedizione utilizzando più combinazioni di stime di consegna. La tabella seguente contiene alcuni esempi di stime di consegna descritte in italiano e i corrispondenti valori `delivery_estimate.minimum` e `delivery_estimate.maximum`: | Stima di consegna | Minimo | Massimo | | ------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | 1 giorno | ```es6 { unit: 'day', value: 1, } ``` | ```es6 { unit: 'day', value: 1, } ``` | | 1 giorno lavorativo | ```es6 { unit: 'business_day', value: 1, } ``` | ```es6 { unit: 'business_day', value: 1, } ``` | | Almeno 2 giorni lavorativi | ```es6 { unit: 'business_day', value: 2, } ``` | ```es6 null ``` | | Da 3 a 7 giorni | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | Da 4 a 8 ore | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | Da 4 ore a 2 giorni lavorativi | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'business_day', value: 2, } ``` | ## Optional: Addebita le spese di spedizione Puoi usare [Stripe Tax](https://docs.stripe.com/tax/checkout.md) per calcolare automaticamente le imposte sulle spese di spedizione impostando `tax_code` e `tax_behavior` nel tuo costo di spedizione. Stripe Tax determina automaticamente se la spedizione è tassabile ([poiché l’imponibilità varia da Stato e Paese](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#shipping-tax-code)) e, nel caso, applica l’aliquota fiscale corretta. Durante la creazione di un costo di spedizione con `shipping_rate_data` o tramite [Crea costo di spedizione](https://docs.stripe.com/api/shipping_rates/create.md), puoi aggiungere al costo di spedizione un parametro `tax_behavior` e `tax_code`. Ti consigliamo di impostare `tax_code` su `Shipping` (`txcd_92010001`) per avere la sicurezza di addebitare l’imposta corretta. Puoi anche impostare il `tax_code` del costo di spedizione su `Nontaxable` (`txcd_00000000`) se non intendi applicare imposte. In questo esempio, impostiamo `tax_behavior` su `exclusive`, che è comune negli Stati Uniti. Ulteriori informazioni sul [comportamento fiscale](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" ``` Il cliente può vedere l’importo dell’imposta calcolato per la tariffa di spedizione incluso nell’imposta totale sulle vendite nel flusso di completamento delle transazioni: ![Importo dell'imposta calcolato per il costo di spedizione nella pagina di pagamento](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Importo dell’imposta calcolato per il costo di spedizione nel flusso di completamento delle transazioni # Pagina incorporata > This is a Pagina incorporata 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. ## Crea un costo di spedizione [Dashboard] [Lato server] I costi di spedizione supportano solo valori di importo fisso per l’intero ordine. Non puoi modificare il costo di spedizione in base al numero di articoli nell’ordine. #### Dashboard Aggiungere un [costo di spedizione](https://dashboard.stripe.com/test/shipping-rates) utilizzando la Dashboard: 1. Fai clic su **Crea costo di spedizione**. 1. Inserisci un importo, una descrizione e una data di consegna prevista (facoltativa). 1. Fai clic su **Salva** e copia l’ID del costo di spedizione (`shr_123456`). ![](https://b.stripecdn.com/docs-statics-srv/assets/create-shipping-rate-dashboard.ddd79821d5edee523d7da9d22682be59.png) Inserisci i dettagli del costo di spedizione ### Aggiornare un costo di spedizione Non è possibile aggiornare l’importo di una valuta già impostata su una tariffa di spedizione. Dopo aver impostato una valuta e un importo su una tariffa di spedizione, è possibile aggiornarla solo per includere nuove valute. Per aggiornare una tariffa di spedizione nella Dashboard, è necessario archiviare la tariffa di spedizione e quindi crearne una nuova. ### Archiviare un costo di spedizione Per archiviare un costo di spedizione: 1. Nella scheda [Costi di spedizione](https://dashboard.stripe.com/test/shipping-rates), seleziona il costo di spedizione applicabile. 1. Fai clic sul menu extra ⋯ e seleziona **Archivia**. Per annullare l’archiviazione del costo di spedizione, fai clic sul menu extra ⋯ e seleziona **Annulla archiviazione costo di spedizione**. #### API > #### Ti interessano gli aggiornamenti dinamici dei costi di spedizione? > > Checkout consente di aggiornare dinamicamente i costi di spedizione in base all’indirizzo fornito dal cliente o al valore dell’ordine. Consulta la sezione [Personalizzare le opzioni di spedizione in modo dinamico](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) per ulteriori informazioni su questa funzione. [Crea un costo di spedizione](https://docs.stripe.com/api/shipping_rates.md), che richiede almeno i parametri `type` e `display_name`. Nell’esempio di codice riportato di seguito vengono utilizzati entrambi questi parametri insieme a `fixed_amount` e `delivery_estimate` per creare un costo di spedizione: ```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" ``` ### Aggiornare un costo di spedizione Per [aggiornare un costo di spedizione](https://docs.stripe.com/api/shipping_rates/update.md), chiama `Stripe::ShippingRate.update` e aggiorna i parametri in base alle esigenze. ## Crea una sessione di checkout [Lato server] Per creare una sessione di Checkout che includa il tuo costo di spedizione, specifica l’ID del costo di spedizione generato nel parametro [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Se vuoi creare il costo di spedizione contemporaneamente a una sessione di Checkout, utilizza il parametro `shipping_rate_data` con `shipping_options`. Solo le sessioni di Checkout in [metodo di pagamento](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) supportano le opzioni di spedizione. Il seguente esempio di codice aggiunge due opzioni di spedizione alla sessione di Checkout: - Spedizione gratuita, con consegna stimata in 5-7 giorni lavorativi. - Giorno successivo, a un costo di 15,00 USD, con consegna stimata in 1 giorno lavorativo esatto. In questo esempio, la prima opzione nella matrice `shipping_options` è preselezionata per il cliente nella pagina di pagamento. Tuttavia, i clienti possono scegliere una delle due opzioni. ```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" ``` In caso di esito positivo, il selettore di spedizione viene visualizzato nel flusso di completamento delle transazioni: ![Il selettore di spedizione nel flusso di completamento delle transazioni](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) Il selettore di spedizione nel flusso di completamento delle transazioni ## Optional: Gestisci le transazioni completate Una volta completato il pagamento, puoi recuperare l’importo della spedizione nell’attributo [amount_total](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-amount_total) di [shipping_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-shipping_cost). Puoi anche recuperare il costo di spedizione selezionato utilizzando l’attributo `shipping_rate` in `shipping_cost`. Per accedere alla proprietà `shipping_cost`, devi [creare un gestore eventi](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) per gestire le sessioni di Checkout completate. Puoi eseguire il test di un gestore [installando la CLI di Stripe](https://docs.stripe.com/stripe-cli.md) e utilizzando `stripe listen --forward-to localhost:4242/webhook` per [inoltrare gli eventi al tuo server locale](https://docs.stripe.com/webhooks.md#test-webhook). Nell’esempio di codice seguente, il gestore consente all’utente di accedere a `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: Definisci una stima di consegna Puoi configurare le tariffe di spedizione utilizzando più combinazioni di stime di consegna. La tabella seguente contiene alcuni esempi di stime di consegna descritte in italiano e i corrispondenti valori `delivery_estimate.minimum` e `delivery_estimate.maximum`: | Stima di consegna | Minimo | Massimo | | ------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | 1 giorno | ```es6 { unit: 'day', value: 1, } ``` | ```es6 { unit: 'day', value: 1, } ``` | | 1 giorno lavorativo | ```es6 { unit: 'business_day', value: 1, } ``` | ```es6 { unit: 'business_day', value: 1, } ``` | | Almeno 2 giorni lavorativi | ```es6 { unit: 'business_day', value: 2, } ``` | ```es6 null ``` | | Da 3 a 7 giorni | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | Da 4 a 8 ore | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | Da 4 ore a 2 giorni lavorativi | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'business_day', value: 2, } ``` | ## Optional: Addebita le spese di spedizione Puoi usare [Stripe Tax](https://docs.stripe.com/tax/checkout.md) per calcolare automaticamente le imposte sulle spese di spedizione impostando `tax_code` e `tax_behavior` nel tuo costo di spedizione. Stripe Tax determina automaticamente se la spedizione è tassabile ([poiché l’imponibilità varia da Stato e Paese](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#shipping-tax-code)) e, nel caso, applica l’aliquota fiscale corretta. Durante la creazione di un costo di spedizione con `shipping_rate_data` o tramite [Crea costo di spedizione](https://docs.stripe.com/api/shipping_rates/create.md), puoi aggiungere al costo di spedizione un parametro `tax_behavior` e `tax_code`. Ti consigliamo di impostare `tax_code` su `Shipping` (`txcd_92010001`) per avere la sicurezza di addebitare l’imposta corretta. Puoi anche impostare il `tax_code` del costo di spedizione su `Nontaxable` (`txcd_00000000`) se non intendi applicare imposte. In questo esempio, impostiamo `tax_behavior` su `exclusive`, che è comune negli Stati Uniti. Ulteriori informazioni sul [comportamento fiscale](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" ``` Il cliente può vedere l’importo dell’imposta calcolato per la tariffa di spedizione incluso nell’imposta totale sulle vendite nel flusso di completamento delle transazioni: ![Importo dell'imposta calcolato per il costo di spedizione nella pagina di pagamento](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Importo dell’imposta calcolato per il costo di spedizione nel flusso di completamento delle transazioni