Skip to main content
Whop embeds apps into the site using iframes. This SDK provides a type-safe way for you to communicate with the Whop application through a request-and-response API that uses 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’s also exposed through the WhopIframeSdkProvider component from @whop/react.

React

If you use React, add 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

The SDK and iframe are now set up.
After you initialize the iframe SDK, you can use it to open external links. This closes your app and navigates 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 lets you 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 inAppPurchase method from the iframe SDK 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.