API Reference

Key concepts

  • We use your Stripe & Paddle accounts
  • You need to create separate Stripe & PayPal account and set API keys in web2wave
  • After the payment a user receives a deeplink to download app
  • You only code in your app reading user_id from deeplink value and using that to tier the user in app with web subscription
  • We manage the rest – multiple payment systems, cancellations, RevenueCat, Adapty, etc

Why do we need separate Stripe account? Can't we use our existing one?

  • Separate account is easy to create for the same company and same bank accounts
  • Your are the owner of the account
  • Stipe webhooks are sent only to required endpoints

Can web2wave handle just Quizes and Paywalls, and Stripe will be used from our side?

To integrate Stripe with web2wave effectively, access to your Stripe keys is mandatory. This is crucial for the following reasons:

  • Fetching Prices: We need to retrieve price information via the Stripe API.
  • Discount Management: Creating and managing discounts for your products.
  • Customer & Payment Handling: Creating customers, payment methods, and managing subscription schedules like trials and introductory offers.
  • Subscription Analytics: Gathering invoice details for better analytics, such as calculating customer lifetime value (LTV).
  • Webhook Handling: Receiving webhooks for subscription status updates.
  • Payment Processing: Managing subscription payments and schedules directly.

Can we just give you Stripe Checkout link from our Stripe?

The proposed approach using Stripe Checkout will not work efficiently for the following reasons:

  • Stripe Checkout doesn't support subscription schedules, and buttons like Apple Pay cannot be placed directly on paywalls but are redirected to Stripe's external form.
  • Stripe Price details (currency, amount, period) still require Stripe keys for access.
  • It lacks PayPal integration, which can boost revenue by 10-15%.

User and tech flows



General Flow of deeplinks


  • The user purchases a subscription on the web.
  • Receives a link and instructions for installation.
    • Without MMP: The instructions will state "Install the app via the link and then REVISIT the link."
  • In the mobile app, upon receiving the deep link, the user_id and email are obtained and saved.
  • Then, the obtained user_id and email are used:
    • Either for user identification in billing (Adapty/AppHud/your own billing system).
    • Or for direct requests to the web2wave API.

Passing user_id and email via Deep Links

With AppsFlyer, Adjust, Branch, etc

Without MMP

After a purchase, the user receives an app installation link in the format:

https://quiz.YOURDOMAIN.com/deeplink?user_id={GUID}&email={EMAIL}

Example: https://quiz.momslab.app/deeplink

This link:

  • If the user opens the page on the web, displays a QR code for the same page.
  • If the app is not installed, redirects them to the AppStore/Google Play based on the platform.
  • If the app is installed, passes their user_id and email to the app via a custom URL scheme, e.g.,
    yourappscheme://web2wave?user_id={GUID}&email={EMAIL}
    In the app, you create a handler for your scheme and extract data from the provided URL.

For iOS – Defining a Custom URL Scheme

For Android – Deep Linking

You can also add handling for deep links like https://quiz.YOURDOMAIN.com/deeplink along with the scheme.


Billing integrations

Integration with Our API from the App (Without Server Integration)

Receiving Subscription Information via Webhook to Your Backend

You can receive subscription information from web2wave through a webhook to your backend – Webhook Formats - Subscription Type and apply the subscription to the user in your backend.