Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
OverviewAccept a paymentUpgrade your integration
Online payments
OverviewFind your use case
Use Payment Links
Build a payments page
Build a custom integration with Elements
Build an in-app integration
Use Managed Payments
    Overview
    Eligibility
    Tax compliance
    How Managed Payments works
    Changelog
    Get started
    Build a Checkout integration with Managed Payments
    Update a Checkout integration
    Mobile app payments
    Use payment links with Managed Payments
Use Checkout studio
Recurring payments
In-person payments
Terminal
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment operations
Analytics
Balances and settlement time
Compliance and security
Currencies
Declines
Disputes
Radar fraud protection
Payouts
ReceiptsRefunds and cancellations
Advanced integrations
Custom payment flows
Flexible acquiring
Off-Session Payments
Multiprocessor orchestration
Beyond payments
Incorporate your company
Crypto
Agentic commerce
Financial Connections
Climate
Verify identities
United States
English (United States)
  1. Home/
  2. Payments/
  3. Use Managed Payments

Update a Stripe Checkout integration to use Managed Payments

Learn how to update your existing Stripe integration to use Managed Payments.

Update your existing Stripe Checkout integration to use Managed Payments. The Stripe merchant of record solution handles indirect tax compliance in more than 80 countries, along with fraud prevention, dispute management, and transaction-level customer support. You can only enable Managed Payments for new subscriptions purchased through a Managed Payments Checkout Session. Existing subscriptions aren’t eligible.

If you don’t have an existing Checkout integration, set up Managed Payments instead.

Before you begin

  • Your hosted page or embedded page integration must accept payments by creating Checkout Sessions in payment or subscription mode.
  • Enable Managed Payments in your Dashboard.
  • Make sure your products meet the eligibility requirements before processing a payment with Managed Payments.
  • Use an API version of 2025-03-31.basil or later.

Terms of service required

You must accept the Managed Payments terms of service in the Dashboard before you can use Managed Payments.

Configure your products for Managed Payments

Use the Dashboard or API to set a tax code for each of your products. To calculate taxes, you must select a tax code that’s eligible for Managed Payments.

To update a product’s tax code:

  1. Go to the Product catalog in the Dashboard.
  2. Click the overflow menu () next to the product you want to update.
  3. Click Edit product.
  4. Select a Product tax code. Eligible tax codes are labeled Eligible for Managed Payments.
  5. Click Update product.
  6. Repeat these steps for every product you want to use with Managed Payments.

If you create your products inline when creating your Checkout Session, include tax_code in the product_data object.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price_data][product_data][name]=Basic subscription" \ -d "line_items[0][price_data][product_data][tax_code]={{TAX_CODE}}" \ -d "line_items[0][price_data][recurring][interval]=month" \ -d "line_items[0][quantity]=1" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success"

Enable Managed Payments when creating your Checkout Session

Set the managed_payments[enabled] parameter by updating your server’s call to the Checkout Session API.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "line_items[0][price]=
{{PRICE_ID}}
" \ -d "line_items[0][quantity]=1" \ -d "managed_payments[enabled]=true" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success"

Remove unsupported parameters
Server-side

To act as the merchant of record, Stripe controls some parts of the Checkout Session. As a result, some parameters aren’t available when using Managed Payments, and you must remove them when creating Managed Payments Checkout Sessions.

CategoryParameterReason
Adaptive Pricing adaptive_pricingAdaptive Pricing is always enabled for Managed Payments.
Tax automatic_taxManaged Payments handles tax calculation and withholding for you.
tax_id_collection
subscription_data.default_tax_rates
Payment methods payment_method_configurationManaged Payments controls the payment methods available in the Checkout Session using dynamic payment methods to display the most relevant payment methods to your customer. Learn more about configuring payment method settings for Managed Payments.
payment_method_options
payment_method_types
Customer update customer_update[name]Managed Payments requires that your customer has a name and a valid billing address to calculate sales tax. If you provide the ID of an existing customer_account or customer when you create the Checkout Session, that object is updated with any changes to the customer’s name or billing address.
customer_update[address]
Shipping shipping_address_collectionManaged Payments only supports digital products, so shipping information is never collected.
shipping_options
Connect subscription_data.application_fee_percentManaged Payments doesn’t support Connect integrations.
subscription_data.on_behalf_of
subscription_data.transfer_data
Post-sale subscription_data.invoice_settingsManaged Payments handles post-sale actions, such as invoicing and confirmation emails.
invoice_creation

Testing

Test that your integration works correctly for your customers. For additional information, see Testing.

Checkout

  1. Start your server and go to your checkout page (for example, http://localhost:4242/checkout.html from Build your checkout).
  2. Click the checkout button to be redirected to the Managed Payments checkout page.
  3. On the checkout page, enter different billing addresses to see how Managed Payments calculates tax for customers in different locations.
  4. To process the payment, enter your email address, phone number, and the test card number 4242 4242 4242 4242 with any CVC and an expiration date in the future.

Payment details

  1. After you confirm the test payment, go to the Transactions page in the Dashboard.
  2. Click your test payment to view the payment details. This page shows the:
    • Product that was purchased
    • Subscription that was created
    • Invoice that was created
    • Amount of tax calculated and withheld through Managed Payments
    • Statement descriptor that displays on your customer’s statements

Customer authorization

When a customer purchases a subscription through Managed Payments, it only authorizes Managed Payments to charge their payment method. Make sure you obtain the appropriate consent from your customer to charge this payment method for any transactions outside of Managed Payments.

Preview the receipt

  1. Under Receipt history, click View receipt.
  2. Click Send receipt to preview the receipt email sent to your customer.

Note

In sandbox mode, you won’t receive receipt emails automatically after purchase, but you can manually send them using the instructions above.

Link

Link acts as the merchant of record at checkout and provides subscription management and transaction support on the Link website.

You can test how Link works during checkout by creating a Link account during an initial Checkout Session. After you create the Link account, attempt another session using the same email address. To authenticate, use the test passcode 000000.

Test purchases won’t appear in the Link app. You can test the order management tools in the Link app by creating a Link account during a live mode Checkout Session.

OptionalConfigure the tax behavior of your prices

The tax_behavior of a price specifies whether tax is added on top of the price you set (tax_behavior: exclusive) or already included in the price (tax_behavior: inclusive).

Managed Payments uses the tax behavior specified on your price. If you don’t specify the price’s tax behavior, Managed Payments adds tax on top of the price you set, by default.

To change the default, go to the Tax settings page in the Dashboard, and update the Include tax in prices setting.

Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Chat with Stripe developers on Discord.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc
On this page