Feature

Web checkout for iOS and Android apps with Stripe

RevenueDot hosts web checkout for your app's subscriptions and runs every payment on your own Stripe account. You connect Stripe with a restricted key, create web products, put them in an offering, and share a purchase link or a funnel. Buyers pay on Stripe Checkout and open the app with a redemption link, so you write no checkout code.

Free up to $10,000 a month in tracked revenue. Works with the RevenueCat SDK you already ship.

The RevenueDot Web page with one Stripe provider named Scanner Web, a four-step checklist with every step ticked (connect Stripe, add a web config, create web products and prices, create an offering), and a table of web products starting with Pro monthly at $9.99 a month with a 7-day free trial.
The Web page: four checks, then you can share a purchase link or publish a funnel.

Your Stripe account

Products, prices, coupons and Checkout Sessions are created in your Stripe account. Money goes to you.

Four setup steps

Connect Stripe, add a web config, create web products and put them in an offering. The Web page checks each one.

Same entitlements

A web purchase is recorded like any Stripe purchase, so entitlements, webhooks, integrations and charts work as before.

Back into the app

The buyer opens a redemption link, and the SDK's redeemWebPurchase moves the purchase to the app user.

Steps

How to sell app subscriptions on the web with Stripe

Open Web in the dashboard and work through the checklist. You need a Stripe account and a RevenueDot project with your app.

  1. 01

    Connect Stripe

    Add a web provider and pick Stripe, then save a restricted API key from your Stripe Dashboard. Add the RevenueDot webhook endpoint in Stripe and select checkout.session.completed.

  2. 02

    Add a web config

    Set the app name, logo, theme colors, Terms and Privacy links, support email, your app's URL scheme and what happens after payment.

  3. 03

    Create web products

    RevenueDot creates a Stripe Product and a Price in your account and a RevenueDot product whose store identifier is the Stripe price id. You can also use a price you already have.

  4. 04

    Put web products in an offering

    A package can hold your App Store product, your Google Play product and your web product. The web pages show the packages that have a web product.

  5. 05

    Share a link or publish a funnel

    Send buyers to a purchase link or a funnel. They pay on Stripe Checkout and get a redemption link on the success page and by email.

How does a web purchase reach the app?

Each purchase arrives as INITIAL_PURCHASE (TRIAL during a trial) or NON_RENEWING_PURCHASE with store: STRIPE. Renewals, cancellations and refunds follow from Stripe's webhooks.

  • The buyer opens a purchase link or funnel and picks a plan.
  • RevenueDot creates a Stripe Checkout Session with your key and sends the buyer to Stripe's payment page.
  • Stripe returns the buyer to the success page. RevenueDot reads the session from Stripe and records the purchase once, whichever of the success page or the webhook arrives first.
  • The buyer opens the redemption link, the app calls redeemWebPurchase, and the entitlement is active.
  • If the page already knows the app user id (?app_user_id= or the iOS SDK's web checkout), the purchase goes straight to that user and no redemption is needed.

How do you create a web product with the API?

Billing periods are P1W, P1M, P3M, P6M and P1Y. trial_days adds a free trial to each checkout. type is subscription, consumable or non_consumable.

Create a web productcurl
curl -s -X POST "$REVENUEDOT_URL/v2/projects/$PROJECT_ID/apps/$APP_ID/web_products" \
  -H "Authorization: Bearer $SECRET_KEY" -H "Content-Type: application/json" \
  -d '{"display_name":"Pro monthly","type":"subscription","price":{"amount":9.99,"currency":"USD"},"duration":"P1M","trial_days":7,"entitlement_ids":["entl1a2b3c4d5e"]}'

Which Stripe key permissions does web billing need?

Create a restricted key in your Stripe Dashboard and leave everything else at None. Web billing needs write access because RevenueDot creates products, prices, Checkout Sessions, coupons and promotion codes for you.

Stripe resourcePermission
ProductsWrite
PricesWrite
Checkout SessionsWrite
CouponsWrite
Promotion CodesWrite
Subscriptions, Invoices, Charges, CustomersRead

What does the buyer see, and can you use your own domain?

Check the App Store and Google Play rules for linking to external purchases in each country before you send buyers from inside an app to web checkout.

  • Pages use your logo, app name and colors, with your Terms, Privacy and support links.
  • The success page shows Open the app and the App Store and Google Play buttons. With success_mode: redirect, RevenueDot sends the buyer to your own page with the redemption link in the query.
  • Buyers can use a discount code or get an automatic discount. See web discounts in the docs.
  • Pages live at /pay/<project>/<page> on the API host, or on a custom domain you verify with a CNAME and a TXT record.
  • Use a test-mode Stripe key first. Purchases are then sandbox data, kept out of production charts.

What is not built yet?

  • Connect with Stripe (OAuth). Until then you paste a restricted key.
  • Paddle as a web provider.
  • An embedded checkout, such as Stripe Elements on your own page, and the purchases-js in-SDK Web Billing checkout. RevenueDot's checkout is a hosted page.
  • Apple Pay domain registration for a custom domain.

FAQ

Web billing: questions people ask

How do I add web payments to my iOS app?

Connect your Stripe account to RevenueDot with a restricted key, create web products, put them in an offering, and share a purchase link or publish a funnel. Buyers pay on a hosted Stripe Checkout page and open your app with a redemption link. The app calls the SDK's redeemWebPurchase to activate the entitlement.

Does RevenueDot use my own Stripe account?

Yes. Every product, price, coupon and Checkout Session is created in your Stripe account, and the money goes to you. RevenueDot stores the restricted key encrypted and reads the session back from Stripe to record each purchase.

How does a web buyer get the subscription in my app?

Through a redemption link. The success page shows it and RevenueDot emails it. Opening it launches your app, and the app passes it to redeemWebPurchase, which moves the purchase to the signed-in user. If you send buyers a link with app_user_id, they need no redemption.

Can I give discounts at web checkout?

Yes. Each web discount is a Stripe coupon and each code a Stripe promotion code in your account. Buyers can type a code, or a purchase link or funnel can apply a discount automatically. RevenueDot checks expiry, caps, plan and eligibility.

Does RevenueDot support Paddle or other web payment providers?

Not yet. Stripe is the only web provider today. Connect with Stripe through OAuth, Paddle and an embedded checkout are not built.

Get started

Run subscriptions without the revenue share.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue, or move an existing RevenueCat app with one line of code.

Already have an account? Sign in · Prefer your own servers? Self-host free