Skip to main content
Whop apps are embedded into the site using iFrames. This SDK provides a type-safe way for you to communicate with the Whop application using a request/response style API powered by window.postMessage. Since this package relies on window.postMessage, it only works in Client Components or client side javascript.

Relevant Packages

  • @whop/iframe - The main package for the iframe SDK.
  • @whop/react - A React wrapper for Whop Apps including helpers for the iframe SDK.

Setup

The main function exported from the @whop/iframe package is the createSdk function. When called, this function sets up a listener for messages from the main Whop site, using window.on('message', ...). It is also exposed through the WhopIframeSdkProvider component from @whop/react.

React

If you’re using React, it is recommended to use the WhopIframeSdkProvider component from @whop/react to provide the iframe SDK to all child components.
1

Mount provider in root layout

2

Consume the iframe SDK in a component

Other Frameworks

For other frameworks, you can use the createSdk function from @whop/iframe to create an instance of the iframe SDK.
1

Create the iframe SDK instance

2

Use the iframe SDK instance

We have now setup the SDK and iFrame.
Once the iframe SDK is initialized, you can use it to open external links. This will close your app and navigate to a new website.

Opening User Profiles

If you want to display a Whop user profile, you can use the openExternalUrl method and pass their profile page link which looks like https://whop.com/@username. The Whop app will intercept this and display a modal containing their user profile instead of navigating away.
You can also use a user ID instead of username. The final link should look like this: https://whop.com/@user_XXXXXXXX

In-App Purchases

The iframe SDK provides a method to trigger in-app purchases directly within your app. This allows you to accept payments for one-time purchases or subscriptions using Whop’s checkout. To process in-app purchases, you’ll need to:
  1. Create a checkout configuration on your server (with plan details and metadata)
  2. Use the iframe SDK’s inAppPurchase method to open the payment modal
  3. Handle the response and validate the payment via webhooks
For a complete guide on setting up in-app purchases including creating checkout configurations, handling webhooks, and validating payments, see the Accept payments documentation.