# Cobra por el envío Crea diferentes tarifas de envío para tus clientes. Las tarifas de envío te permiten mostrar distintas opciones de envío, como estándar, urgente y al día siguiente, con estimaciones de entrega más precisas. Cobra a tu cliente por el envío utilizando diferentes productos de Stripe. Antes de crear una tasa de envío, descubre cómo [recopilar las direcciones de facturación y 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. ## Crea una tarifa de envío [Dashboard] [Lado del servidor] Las tasas de envío solo admiten valores de importe fijos para todo el pedido. No puedes ajustar la tasa de envío en función del número de artículos del pedido. #### Dashboard Para añadir una [tarifa de envío](https://dashboard.stripe.com/test/shipping-rates) usando el Dashboard, haz lo siguiente: 1. Haz clic en **Crear 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 tu tarifa de envío ### Actualiza una tarifa de envío No puedes actualizar un importe de una divisas que ya se ha establecido en una tasa de envío. Después de establecer una divisas y un importe en una tasa de envío, solo se puede actualizar para incluir nuevas divisas. Para actualizar una tasa de envío en el Dashboard, debes archivar la tasa de envío 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 desbordamiento ⋯ y selecciona **Archivar**. Para desarchivar la tarifa de envío, haz clic en el menú de desbordamiento ⋯ y selecciona **Desarchivar tarifa de envío**. #### API > #### ¿Te interesan las actualizaciones dinámicas de las tasas de envío? > > Checkout te permite actualizar dinámicamente las tasas de envío en función de la dirección que proporcione tu cliente o del valor del pedido. Consulta [Personalizar dinámicamente las opciones de envío](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) sobre esta función de la versión beta. [Crea una tarifa de envío](https://docs.stripe.com/api/shipping_rates.md), que requiere, como mínimo, 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 tasa 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. ## Crea una sesión de Checkout [Lado del servidor] Para crear una sesión de Checkout que incluya tu tarifa de envío, pasa el ID de la tarifa de envío generado al parámetro [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Si quieres crear la tasa de envío al mismo tiempo que una sesión de Checkout, usa el parámetro `shipping_rate_data` con `shipping_options`. Solo Checkout Sessions en [modo de pago](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) aceptan opciones de envío. En el siguiente ejemplo de código, se añaden dos opciones de envío a la sesión de Checkout: - Envío gratuito, con una entrega estimada de 5 a 7 días hábiles. - Next Day Air, con un coste de 15,00 USD y una entrega estimada de un día hábil. En este ejemplo, la primera opción de la matriz `shipping_options` está elegida previamente para el cliente en la página del proceso 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ío aparecerá en tu flujo del proceso de compra: ![El selector de envíos en el flujo del proceso de compra](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) El selector de envíos en el flujo del proceso de compra ## Optional: Gestiona las transacciones completadas Una vez que el pago se realiza 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 elegida con 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 gestionar Checkout Sessions completadas. Puedes probar un controlador [instalando la CLI de Stripe](https://docs.stripe.com/stripe-cli.md) y utilizando `stripe listen --forward-to localhost:4242/webhook` para [reenviar 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 al `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 entrega Puedes configurar tarifas de envío usando una serie de combinaciones de estimación de envío. La siguiente tabla contiene algunos ejemplos de estimaciones de envío y sus correspondientes valores de `delivery_estimate.minimum` y `delivery_estimate.maximum`: | Estimación de entrega | Cantidad mínima | Cantidad máxima | | ------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 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 ``` | | De 3 a 7 días | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | De 4 a 8 horas | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | De 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 impuestos automáticamente sobre las comisiones de envío configurando un `tax_code` y un `tax_behavior` 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 el tipo impositivo correcto, en su caso. Al crear 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 añadir los parámetros `tax_behavior` y `tax_code` a la tarifa de envío. Te recomendamos que definas el `tax_code` en `Shipping` (`txcd_92010001`) para asegurarte de que siempre cobres el impuesto que corresponde. También puedes establecer la tasa de envío `tax_code` como `Nontaxable` (`txcd_00000000`) si no quieres cobrar impuestos. En este ejemplo, establecimos `tax_behavior` en `exclusive`, que es lo habitual en los EE. UU. 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 tasa de envío incluido en el total del impuesto sobre las ventas en tu flujo del proceso de compra: ![Importe del impuesto calculado para la tarifa de envío en la página del proceso 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 del proceso 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. ## Crea una tarifa de envío [Dashboard] [Lado del servidor] Las tasas de envío solo admiten valores de importe fijos para todo el pedido. No puedes ajustar la tasa de envío en función del número de artículos del pedido. #### Dashboard Para añadir una [tarifa de envío](https://dashboard.stripe.com/test/shipping-rates) usando el Dashboard, haz lo siguiente: 1. Haz clic en **Crear 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 tu tarifa de envío ### Actualiza una tarifa de envío No puedes actualizar un importe de una divisas que ya se ha establecido en una tasa de envío. Después de establecer una divisas y un importe en una tasa de envío, solo se puede actualizar para incluir nuevas divisas. Para actualizar una tasa de envío en el Dashboard, debes archivar la tasa de envío 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 desbordamiento ⋯ y selecciona **Archivar**. Para desarchivar la tarifa de envío, haz clic en el menú de desbordamiento ⋯ y selecciona **Desarchivar tarifa de envío**. #### API > #### ¿Te interesan las actualizaciones dinámicas de las tasas de envío? > > Checkout te permite actualizar dinámicamente las tasas de envío en función de la dirección que proporcione tu cliente o del valor del pedido. Consulta [Personalizar dinámicamente las opciones de envío](https://docs.stripe.com/payments/checkout/custom-shipping-options.md) sobre esta función de la versión beta. [Crea una tarifa de envío](https://docs.stripe.com/api/shipping_rates.md), que requiere, como mínimo, 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 tasa 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. ## Crea una sesión de Checkout [Lado del servidor] Para crear una sesión de Checkout que incluya tu tarifa de envío, pasa el ID de la tarifa de envío generado al parámetro [shipping_options](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-shipping_options). Si quieres crear la tasa de envío al mismo tiempo que una sesión de Checkout, usa el parámetro `shipping_rate_data` con `shipping_options`. Solo Checkout Sessions en [modo de pago](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-mode) aceptan opciones de envío. En el siguiente ejemplo de código, se añaden dos opciones de envío a la sesión de Checkout: - Envío gratuito, con una entrega estimada de 5 a 7 días hábiles. - Next Day Air, con un coste de 15,00 USD y una entrega estimada de un día hábil. En este ejemplo, la primera opción de la matriz `shipping_options` está elegida previamente para el cliente en la página del proceso 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ío aparecerá en tu flujo del proceso de compra: ![El selector de envíos en el flujo del proceso de compra](https://b.stripecdn.com/docs-statics-srv/assets/example-checkout-session.5807984bdc0a25ddb53aab00768dd079.jpg) El selector de envíos en el flujo del proceso de compra ## Optional: Gestiona las transacciones completadas Una vez que el pago se realiza 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 elegida con 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 gestionar Checkout Sessions completadas. Puedes probar un controlador [instalando la CLI de Stripe](https://docs.stripe.com/stripe-cli.md) y utilizando `stripe listen --forward-to localhost:4242/webhook` para [reenviar 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 al `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 entrega Puedes configurar tarifas de envío usando una serie de combinaciones de estimación de envío. La siguiente tabla contiene algunos ejemplos de estimaciones de envío y sus correspondientes valores de `delivery_estimate.minimum` y `delivery_estimate.maximum`: | Estimación de entrega | Cantidad mínima | Cantidad máxima | | ------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | | 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 ``` | | De 3 a 7 días | ```es6 { unit: 'day', value: 3, } ``` | ```es6 { unit: 'day', value: 7, } ``` | | De 4 a 8 horas | ```es6 { unit: 'hour', value: 4, } ``` | ```es6 { unit: 'hour', value: 8, } ``` | | De 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 impuestos automáticamente sobre las comisiones de envío configurando un `tax_code` y un `tax_behavior` 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 el tipo impositivo correcto, en su caso. Al crear 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 añadir los parámetros `tax_behavior` y `tax_code` a la tarifa de envío. Te recomendamos que definas el `tax_code` en `Shipping` (`txcd_92010001`) para asegurarte de que siempre cobres el impuesto que corresponde. También puedes establecer la tasa de envío `tax_code` como `Nontaxable` (`txcd_00000000`) si no quieres cobrar impuestos. En este ejemplo, establecimos `tax_behavior` en `exclusive`, que es lo habitual en los EE. UU. 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 tasa de envío incluido en el total del impuesto sobre las ventas en tu flujo del proceso de compra: ![Importe del impuesto calculado para la tarifa de envío en la página del proceso 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 del proceso de compra