Skip to main content
Let your connected accounts complete Know Your Customer (KYC) verification, add payout methods, and withdraw their funds on their own. You can mount the Whop Elements wallet surfaces directly in your app or redirect users to a Whop-hosted portal.

Embedded payout portal

Server side implementation

To mount the wallet elements, generate an access token for the connected account on your server. The elements read that account’s balance and payouts with it. See Auth & API keys for how to scope that token and how it compares to Whop’s other credential types.

Create Access Token API

See the full API reference for generating access tokens and all available parameters

Client side setup

Client side implementation

Create one Wallet handle for the connected account and mount the surfaces you need under it. The handle sends its access token to every element beneath it, so mint one token that carries every scope those elements read.
On iOS, the wallet SDK ships BalanceElement, ListElement, and ActivityElement. See Getting Started with Elements and pick the Swift tab.

Identity verification

A connected account must verify its identity before it can withdraw. Mount the KYC element for the full in-page flow, which collects the details, runs the hosted provider session, and reports the result. Or mount the RequiredActions element to show every outstanding action, verification included, and let the user start each one.
React

Wallet options

Every option, event, and method is listed on the Wallet reference.

Scopes

The elements read with the token you mint, so grant every scope they need on that one token:
  • Balances and Activity read company:balance:read.
  • Withdraw needs payout:withdraw_funds, payout:destination:read, and payout:create_destination to add a bank.
  • KYC needs identity:read and identity:write.
A token created without scoped_actions inherits every permission of your API key.

Refreshing the token

Access tokens expire after one hour by default and three hours at most. Set a fresh one on the handle before it expires:
In React, pass the new value as the accessToken prop.
accessToken is a value you set, not a callback the SDK calls. Verifications is the exception: it takes a getToken callback and calls it before the element mounts.

Hosted payout portal

Instead of embedding the payout portal in your app, you can redirect users to a Whop-hosted payout portal. This is useful when you don’t want to build a custom UI or need a quick integration. Create an account link and redirect the user to the returned URL:
In this example:
  • company_id is the platform or connected account
  • use_case specifies the portal type
  • return_url is where Whop redirects the user when they want to return to your site
  • refresh_url is where Whop redirects the user if the session expires

Available use cases

After creating the account link, redirect the user to the url returned in the response. The user completes the payout flow on the Whop-hosted portal, then Whop redirects them to your return_url.

Wallet elements

Every wallet surface with its options, events, and scopes

Pay connected accounts

Transfer funds to connected accounts