Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
Security
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
How Checkout works
Quickstart
Fulfill your orders
Migrate payment methods to the Dashboard
Manage limited inventory
Migrate from legacy Checkout
Migrate Checkout to use Prices
Additional features
Add discounts
Add shipping
Make line item quantities adjustable
Collect taxes
Collect tax IDs
Collect phone numbers
Customize your integration
Font compatibility
Use your custom domain
Customize success page
Configure subscription upsells
Configure cross-sells
Recover abandoned carts
Collect consent for promotional emails
Analyze conversion funnel
Embed a pricing table (Beta)
Start a free trial without collecting payment details (Beta)
Testing
No-code options
checkout
·
HomePaymentsCustomize your integration

Use your custom domain

Learn how to bring your own custom domain to Stripe Checkout.

Custom domains is a paid Checkout feature, and costs 10 USD per month while active.

In this article you’ll learn how to connect your own custom domain to Stripe Checkout by:

  1. Adding your domain to the Stripe Dashboard
  2. Creating DNS records to point at Stripe
  3. Verifying your DNS setup
  4. Setting your domain as active

Add your custom domain to the Stripe Dashboard

First decide what subdomain to use with your Checkout Sessions.

If your domain is example.com we recommend you use checkout.example.com as your custom Checkout subdomain, but you can replace checkout with whatever you like as long as it’s a valid subdomain. Note that you can’t use a path (like example.com/checkout), you must specify a subdomain of your existing domain.

After you decide on a subdomain, visit the Custom domains settings page to start the domain connection process.

On the settings page, find the Checkout box, and click Add your own. You now see a form with an input to enter your desired subdomain:

What you'll see when you land on the settings page.

Enter your desired subdomain, and click Connect. You’ll see a Connecting indicator, and a popup with instructions for setting up your DNS records.

When will my domain be Connected?

When your domain is in the Connecting... state, we’re waiting to verify your DNS records that you’ll set up in the next step. After Stripe verifies the DNS records, we create TLS certificates for your subdomain, set up the correct CDN routing, and then your domain is ready to enable and use.

Identify your DNS Provider

To start, figure out what service is managing your DNS records, so you know exactly where to login and create the new records.

If you already know your DNS provider, you can move on to the next section.

Often, it’s the same place you registered your domain, but sometimes the DNS provider is different from your domain registrar.

If you’re not certain who your DNS provider is, try looking up your domain’s nameservers, replacing stripe.com with your own domain in this command:

Terminal
nslookup -querytype=NS stripe.com

You’ll see a list of nameservers for your domain in the output. Here’s some example output for stripe.com:

nslookup output
# Looks like AWS is providing our DNS here: stripe.com nameserver = ns-423.awsdns-52.com. stripe.com nameserver = ns-705.awsdns-24.net. stripe.com nameserver = ns-1087.awsdns-07.org. stripe.com nameserver = ns-1882.awsdns-43.co.uk.

If you’re more comfortable using a browser-based tool, go to MXLookup’s DNS Lookup tool and enter your domain. It might be able to tell you who your DNS provider is (but not always).

Create required DNS records

In this section, you’ll create the DNS records you need to connect your domain. As you go through each step, check each checkbox to keep track of where you are in the process.

Select the tab that matches your DNS provider from the tabs below—this gives you specific, guided instructions for creating the required DNS records. If your DNS provider isn’t an option, follow the Standard instructions:

These are standard instructions for creating your DNS records. If you have issues with any of the steps, please contact your DNS provider for more assistance.

To track your progress, go through each step and check it off when you’ve completed it.

  • Most DNS providers have a control panel you can sign into to manage your DNS. Find your provider’s control panel page and sign in.

  • Now that you’re logged in, find where you can manage the DNS records for your domain in your provider’s control panel.

    If you’re having issues finding the right page, you can:

    • See if your DNS provider has a help article for adding new DNS records that can point you in the right direction.
    • Contact your DNS provider for additional support.
  • From your DNS control panel, add a new record that maps your desired subdomain to Checkout. Most DNS providers ask you for the record type, name, value, and TTL or expiration when creating a new record.

    This record is what connects your subdomain to Stripe Checkout.

    Enter these values and save the new DNS record:

    Field
    Instructions
    Description
    TypeSelect CNAME from the dropdownWhat kind of DNS record this is.
    Name

    If your custom subdomain is checkout.powdur.me, enter checkout

    For CNAME records, this field is the first part of your subdomain (the part leading up to the first period).

    Value

    Enter

    This is what the new subdomain record points to–in this case, Stripe.

    Some providers may expect a trailing period (.) after the CNAME value. Make sure to verify that your CNAME value matches the format your provider expects.

    TTL/ExpiryEnter 300An expiration of 5 minutes (300 seconds) is OK. Your DNS provider might not allow you to change the TTL value. If this field is missing or you can’t change it, it’s safe to ignore this part of the configuration.
  • From your DNS control panel, add a new TXT record.

    This TXT record lets us verify that you’re the owner of this domain. This is required to issue TLS certificates for your domain, so you can continue to accept payments securely.

    Enter these values and save the new DNS record:

    Field
    Instructions
    Description
    TypeSelect TXT from the dropdownWhat kind of DNS record this is.
    Name

    If your custom domain is checkout.powdur.me, enter _acme-challenge.checkout

    For TXT records, this field is the subdomain portion of your domain.
    Value

    Visit the Dashboard settings and click View instructions to copy the correct TXT value record.

    This is a long, unique string used for domain verification.
    TTL/ExpiryEnter 300An expiration of 5 minutes (300 seconds) is OK. Your DNS provider might not allow you to change the TTL value. If this field is missing or you can’t change it, it’s safe to ignore this part of the configuration.
  • After you save your DNS record, verify that it has the correct values.

    1. Wait up to 10 minutes for your DNS provider to update its nameservers.
    2. Replace checkout.powdur.me with your custom domain in the following command and run it from your terminal:
    Terminal
    nslookup -querytype=CNAME checkout.powdur.me

    You should see output like:

    nslookup output
    <your subdomain> canonical name = hosted-checkout.stripecdn.com.

    When you see that output, move onto the next step.

  • After you save your DNS record, verify that it has the correct values.

    1. Wait up to 10 minutes for your DNS provider to update its nameservers.
    2. Replace checkout.powdur.me with your custom domain in the following command and run it from your terminal:
    Terminal
    nslookup -querytype=TXT _acme-challenge.checkout.powdur.me

    You should see output like this:

    nslookup output
    _acme-challenge.<your domain> text = "<your unique TXT record value>"

    If you don’t see your unique TXT record value in the output, wait a bit longer and try running the command again.

    When you finish this step, your DNS records are configured.

Now that you’ve created your DNS records and verified them, Stripe verifies the connection and provisions your domain on our end. We’ll send you an email and a Dashboard notification when the domain is ready for you to enable it. You can also visit the Dashboard settings at any time to see the current status of your custom domain connection.

Test your domain before switching

  • Before going live, it’s good to check that your new CNAME is available around the world.

    1. Open the DNSChecker.org propagation tool.
    2. Enter your custom domain in the search box.
    3. Click Search.

    If your CNAME is available worldwide, you’ll see success checkmarks next to each DNS server, along with the correct record value (hosted-checkout.stripecdn.com):

    What a successful search looks like

    A fully propagated DNS record looks like this example.

    If your DNS record hasn’t propagated to every server yet, keep checking back every few hours until every DNS server has a success checkmark next to it.

  • When you’ve been notified that your custom domain is ready, you can test out the domain if you have an existing Checkout integration:

    1. Go back to the Dashboard settings.
    2. Make sure the Dashboard is in test mode.
    3. Click the radio button next to your custom domain name to enable it in test mode.
    4. Create a Checkout Session in test mode.
    5. Visit the url for the Checkout Session.

    You’ll see your new custom domain in the address bar of your browser.

Switch to your custom domain

Before completing this section, read back through the documentation and make sure you’ve checked off every action item.

To enable your custom domain for your Checkout Sessions:

  1. Go back to the Dashboard settings
  2. Make sure the Dashboard is in live mode.
  3. Click the radio button next to your custom domain name to enable it in live mode:
Screenshot of what the Dashboard looks like when your domain is ready to be selected

In this example, click the radio button next to checkout.powdur.me to activate the domain.

After clicking the radio button, your custom domain is now active. To see it live in action, create a Checkout Session in live mode using your existing integration and redirect to it. You’ll see your newly active custom domain in the address bar of your browser.

OptionalDisabling your custom domain

OptionalRemoving your custom domain

OptionalTroubleshooting your integration

OptionalTroubleshooting CAA DNS records

OptionalTroubleshooting a blocked domain

Was this page helpful?
Questions? Contact us.
View developer tutorials on YouTube.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Add your custom domain to the Stripe Dashboard
Identify your DNS Provider
Create required DNS records
Test your domain before switching
Switch to your custom domain
Disabling your custom domain
Removing your custom domain
Troubleshooting your integration
Troubleshooting CAA DNS records
Troubleshooting a blocked domain
Stripe Shell
Test mode
▗▄ ▄▟█ █▀▀ ▗▟████▙▖ ██████ ███▗▟█ ███ ███▗▟██▙▖ ▗▟█████▙▖ ███▖ ▀▀ ███ ███▀▀▀ ███ ███▀ ███ ███ ███ ▝▜████▙▖ ███ ███ ███ ███ ███ █████████ ▄▄ ▝███ ███ ▄ ███ ███ ███▄ ███ ███ ▄▄ ▝▜████▛▘ ▝▜███▛ ███ ███ ███▝▜██▛▘ ▝▜█████▛▘ ███ ▀▘
Welcome to the Stripe Shell! This is a graphical user interface of the Stripe CLI. You can use it to discover webhook events and manage your Stripe resources. By pressing ctrl + ` you can toggle it open from any page within the Stripe documentation. - View supported commands: - Listen for webhook events: - Trigger webhook events: - Call Stripe APIs: stripe [api resource] [api operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$