# Cobra por el envío Crea diferentes tasas de envío para tus clientes. Las tarifas de envío te permiten mostrar varias opciones de envío, como estándar, exprés y al día siguiente, con estimaciones de entrega más precisas. Cobra a tu cliente por el envío con diferentes productos de Stripe. Antes de crear una tarifa de envío, aprende a [recopilar las direcciones de pagos y de envío](https://docs.stripe.com/payments/collect-addresses.md). # Página alojada > This is a Página alojada 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. ## Crear una tarifa de envío [Dashboard] [Lado del servidor] Las tarifas de envío solo admiten valores de monto fijo para todo el pedido. No puedes ajustar la tarifa de envío en función de la cantidad de artículos del pedido. #### Dashboard Para agregar una [tarifa de envío](https://dashboard.stripe.com/test/shipping-rates) usando el Dashboard: 1. Haz clic en **Crea una tarifa de envío**. 1. Introduce un importe, una descripción y una estimación de envío opcional. 1. Haz clic en **Guardar** y copia el ID de la tarifa de envío (`shr_123456`). ![](https://b.stripecdn.com/docs-statics-srv/assets/create-shipping-rate-dashboard.ddd79821d5edee523d7da9d22682be59.png) Introduce los datos de la tarifa de envío ### Actualiza una tarifa de envío No puedes modificar el importe de una moneda que ya se haya establecido en una tarifa de envío. Una vez que configures una moneda y su importe en una tarifa de envío, solo podrás actualizarla para agregar nuevas monedas. Para actualizar una tarifa de envío en el Dashboard, debes archivarla y, luego, crear una nueva. ### Archiva una tarifa de envío Para archivar una tarifa de envío: 1. En la pestaña [Tarifas de envío](https://dashboard.stripe.com/test/shipping-rates), selecciona la tarifa de envío aplicable. 1. Haz clic en el menú de contenido adicional ⋯ y selecciona **Archivar**. Para desarchivar la tarifa de envío, haz clic en el menú de contenido adicional ⋯ y selecciona **Desarchivar tarifa de envío**. #### API > #### ¿Te interesan las actualizaciones dinámicas de las tarifas de envío? > > Checkout te permite actualizar de forma dinámica las tarifas de envío en función de la dirección que proporcione el cliente o del valor del pedido. Consulta [Personaliza las opciones de envío de forma dinámica](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) sobre la versión preliminar de esta funcionalidad. [Crea una tarifa de envío](https://docs.stripe.com/api/shipping_rates.md), que, como mínimo, requiera los parámetros `type` y `display_name`. En el siguiente ejemplo de código, se usan estos dos parámetros junto con `fixed_amount` y `delivery_estimate` para crear una tarifa de envío: ```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" ``` ### Actualiza una tarifa de envío Para [actualizar una tarifa de envío](https://docs.stripe.com/api/shipping_rates/update.md), llama a `Stripe::ShippingRate.update` y actualiza los parámetros según sea necesario. ## Crear una sesión de Checkout [Lado del servidor] Para crear una Checkout Session que incluya tu tarifa de envío, especifica el ID de la tarifa de envío generado en el parámetro [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Si quieres crear la tarifa de envío al mismo tiempo que una Checkout Session, usa el parámetro `shipping_rate_data` con `shipping_options`. Solo las Checkout Sessions en [modo de pago](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) admiten opciones de envío. En el siguiente ejemplo de código se agregan dos opciones de envío a la Checkout Session: - Envío gratuito con entrega estimada de cinco a siete días hábiles. - Envío por Next Day Air, con un costo de USD 15.00 y una entrega estimada de un día hábil. En este ejemplo, la primera opción de la matriz `shipping_options` se preselecciona para el cliente en la página de confirmación de compra. Sin embargo, los clientes pueden elegir cualquiera de las dos opciones. ```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" ``` Si se realiza correctamente, el selector de envíos aparece en tu flujo de compra: ![El selector de envíos en el flujo de compra](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) El selector de envíos en el flujo de compra ## Optional: Gestionar transacciones completadas Una vez que el pago se efectúa correctamente, puedes recuperar el importe del envío en el atributo [amount_total](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-amount_total) del [shipping_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-shipping_cost). También puedes recuperar la tarifa de envío seleccionada usando el atributo `shipping_rate` en `shipping_cost`. Para acceder a la propiedad `shipping_cost`, debes [crear un controlador de eventos](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) para administrar las Checkout Sessions completadas. Puedes probar un controlador [instalando la CLI de Stripe](https://docs.stripe.com/stripe-cli.md) y usando `stripe listen --forward-to localhost:4242/webhook` para [enviar eventos a tu servidor local](https://docs.stripe.com/webhooks.md#test-webhook). En el siguiente ejemplo de código, el controlador permite que el usuario acceda 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: Definir una estimación de envío Puedes configurar tarifas de envío mediante una serie de combinaciones de estimaciones de envío. La siguiente tabla contiene algunos ejemplos de estimaciones de envío en lenguaje sencillo y sus correspondientes valores `delivery_estimate.minimum` y `delivery_estimate.maximum`: | Estimación de envío | Mínimo | Máximo | | ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | 1 día | ```es6 { unit: 'day', value: 1, } ``` | ```es6 { unit: 'day', value: 1, } ``` | | 1 día hábil | ```es6 { unit: 'business_day', value: 1, } ``` | ```es6 { unit: 'business_day', value: 1, } ``` | | Al menos 2 días hábiles | ```es6 { unit: 'business_day', value: 2, } ``` | ```es6 null ``` | | 3 a 7 días | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | 4 a 8 horas | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | 4 horas a 2 días hábiles | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'business_day', value: 2, } ``` | ## Optional: Cobrar impuesto por envío Puedes usar [Stripe Tax](https://docs.stripe.com/tax/checkout.md) para calcular automáticamente los impuestos sobre las comisiones de envío estableciendo `tax_behavior` y `tax_code` en la tarifa de envío. Stripe Tax determina automáticamente si el envío está sujeto a impuestos, ([ya que esta condición varía según el estado y el país](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#shipping-tax-code)), y aplica la tasa impositiva correcta, si corresponde. Cuando creas una tarifa de envío con `shipping_rate_data` o a través de [Crear una tarifa de envío](https://docs.stripe.com/api/shipping_rates/create.md), puedes agregarle los parámetros `tax_behavior` y `tax_code`. Te recomendamos configurar el `tax_code` en `Shipping` (`txcd_92010001`) para asegurarte de que siempre cobres el impuesto que corresponde. También puedes configurar la tarifa de envío `tax_code` en `Nontaxable` (`txcd_00000000`) si no quieres cobrar impuestos. En este ejemplo, establecemos `tax_behavior` en `exclusive`, que es habitual en los EE. UU. Obtén más información sobre el [comportamiento 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" ``` Tu cliente puede ver el importe del impuesto calculado para la tarifa de envío incluido en el impuesto sobre las ventas total en tu flujo de compra: ![Importe del impuesto calculado para la tarifa de envío en la página de confirmación de compra](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Importe del impuesto calculado para la tarifa de envío en el flujo de compra # Página integrada > This is a Página integrada 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. ## Crear una tarifa de envío [Dashboard] [Lado del servidor] Las tarifas de envío solo admiten valores de monto fijo para todo el pedido. No puedes ajustar la tarifa de envío en función de la cantidad de artículos del pedido. #### Dashboard Para agregar una [tarifa de envío](https://dashboard.stripe.com/test/shipping-rates) usando el Dashboard: 1. Haz clic en **Crea una tarifa de envío**. 1. Introduce un importe, una descripción y una estimación de envío opcional. 1. Haz clic en **Guardar** y copia el ID de la tarifa de envío (`shr_123456`). ![](https://b.stripecdn.com/docs-statics-srv/assets/create-shipping-rate-dashboard.ddd79821d5edee523d7da9d22682be59.png) Introduce los datos de la tarifa de envío ### Actualiza una tarifa de envío No puedes modificar el importe de una moneda que ya se haya establecido en una tarifa de envío. Una vez que configures una moneda y su importe en una tarifa de envío, solo podrás actualizarla para agregar nuevas monedas. Para actualizar una tarifa de envío en el Dashboard, debes archivarla y, luego, crear una nueva. ### Archiva una tarifa de envío Para archivar una tarifa de envío: 1. En la pestaña [Tarifas de envío](https://dashboard.stripe.com/test/shipping-rates), selecciona la tarifa de envío aplicable. 1. Haz clic en el menú de contenido adicional ⋯ y selecciona **Archivar**. Para desarchivar la tarifa de envío, haz clic en el menú de contenido adicional ⋯ y selecciona **Desarchivar tarifa de envío**. #### API > #### ¿Te interesan las actualizaciones dinámicas de las tarifas de envío? > > Checkout te permite actualizar de forma dinámica las tarifas de envío en función de la dirección que proporcione el cliente o del valor del pedido. Consulta [Personaliza las opciones de envío de forma dinámica](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) sobre la versión preliminar de esta funcionalidad. [Crea una tarifa de envío](https://docs.stripe.com/api/shipping_rates.md), que, como mínimo, requiera los parámetros `type` y `display_name`. En el siguiente ejemplo de código, se usan estos dos parámetros junto con `fixed_amount` y `delivery_estimate` para crear una tarifa de envío: ```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" ``` ### Actualiza una tarifa de envío Para [actualizar una tarifa de envío](https://docs.stripe.com/api/shipping_rates/update.md), llama a `Stripe::ShippingRate.update` y actualiza los parámetros según sea necesario. ## Crear una sesión de Checkout [Lado del servidor] Para crear una Checkout Session que incluya tu tarifa de envío, especifica el ID de la tarifa de envío generado en el parámetro [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Si quieres crear la tarifa de envío al mismo tiempo que una Checkout Session, usa el parámetro `shipping_rate_data` con `shipping_options`. Solo las Checkout Sessions en [modo de pago](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) admiten opciones de envío. En el siguiente ejemplo de código se agregan dos opciones de envío a la Checkout Session: - Envío gratuito con entrega estimada de cinco a siete días hábiles. - Envío por Next Day Air, con un costo de USD 15.00 y una entrega estimada de un día hábil. En este ejemplo, la primera opción de la matriz `shipping_options` se preselecciona para el cliente en la página de confirmación de compra. Sin embargo, los clientes pueden elegir cualquiera de las dos opciones. ```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" ``` Si se realiza correctamente, el selector de envíos aparece en tu flujo de compra: ![El selector de envíos en el flujo de compra](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) El selector de envíos en el flujo de compra ## Optional: Gestionar transacciones completadas Una vez que el pago se efectúa correctamente, puedes recuperar el importe del envío en el atributo [amount_total](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-amount_total) del [shipping_cost](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-shipping_cost). También puedes recuperar la tarifa de envío seleccionada usando el atributo `shipping_rate` en `shipping_cost`. Para acceder a la propiedad `shipping_cost`, debes [crear un controlador de eventos](https://docs.stripe.com/checkout/fulfillment.md#create-payment-event-handler) para administrar las Checkout Sessions completadas. Puedes probar un controlador [instalando la CLI de Stripe](https://docs.stripe.com/stripe-cli.md) y usando `stripe listen --forward-to localhost:4242/webhook` para [enviar eventos a tu servidor local](https://docs.stripe.com/webhooks.md#test-webhook). En el siguiente ejemplo de código, el controlador permite que el usuario acceda 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: Definir una estimación de envío Puedes configurar tarifas de envío mediante una serie de combinaciones de estimaciones de envío. La siguiente tabla contiene algunos ejemplos de estimaciones de envío en lenguaje sencillo y sus correspondientes valores `delivery_estimate.minimum` y `delivery_estimate.maximum`: | Estimación de envío | Mínimo | Máximo | | ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | | 1 día | ```es6 { unit: 'day', value: 1, } ``` | ```es6 { unit: 'day', value: 1, } ``` | | 1 día hábil | ```es6 { unit: 'business_day', value: 1, } ``` | ```es6 { unit: 'business_day', value: 1, } ``` | | Al menos 2 días hábiles | ```es6 { unit: 'business_day', value: 2, } ``` | ```es6 null ``` | | 3 a 7 días | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | 4 a 8 horas | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | 4 horas a 2 días hábiles | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'business_day', value: 2, } ``` | ## Optional: Cobrar impuesto por envío Puedes usar [Stripe Tax](https://docs.stripe.com/tax/checkout.md) para calcular automáticamente los impuestos sobre las comisiones de envío estableciendo `tax_behavior` y `tax_code` en la tarifa de envío. Stripe Tax determina automáticamente si el envío está sujeto a impuestos, ([ya que esta condición varía según el estado y el país](https://docs.stripe.com/tax/products-prices-tax-codes-tax-behavior.md#shipping-tax-code)), y aplica la tasa impositiva correcta, si corresponde. Cuando creas una tarifa de envío con `shipping_rate_data` o a través de [Crear una tarifa de envío](https://docs.stripe.com/api/shipping_rates/create.md), puedes agregarle los parámetros `tax_behavior` y `tax_code`. Te recomendamos configurar el `tax_code` en `Shipping` (`txcd_92010001`) para asegurarte de que siempre cobres el impuesto que corresponde. También puedes configurar la tarifa de envío `tax_code` en `Nontaxable` (`txcd_00000000`) si no quieres cobrar impuestos. En este ejemplo, establecemos `tax_behavior` en `exclusive`, que es habitual en los EE. UU. Obtén más información sobre el [comportamiento 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" ``` Tu cliente puede ver el importe del impuesto calculado para la tarifa de envío incluido en el impuesto sobre las ventas total en tu flujo de compra: ![Importe del impuesto calculado para la tarifa de envío en la página de confirmación de compra](https://b.stripecdn.com/docs-statics-srv/assets/taxed-shipping.14e1bb580c37e035fcf2f0016680db5a.jpg) Importe del impuesto calculado para la tarifa de envío en el flujo de compra