Skip to main content
Make sure payouts only reach a PayPal account the holder owns. The holder logs in to PayPal instead of typing an email, and Whop saves PayPal’s email once its name matches their payout setup.
Before you start, you need:
  • An API key with the payout:destination:read and payout:create_destination scopes.
  • PayPal login enabled on the account. Contact Whop to turn it on. Until then, supports_paypal_login is false and step 2 returns 403.
  • A completed payout setup. Whop matches the name on it to the PayPal account.
  • An https page for PayPal to send the holder back to, on a domain added to the account or its platform. Add it with Create Domain and verification: {}. It doesn’t need to finish verifying. https://localhost works for testing.
  • Whop SDK 2.5.0 or later, if you use an SDK.

How the redirect works

It all happens in the holder’s browser, in one tab. You never call PayPal directly.
  1. Your server starts a session and gets an authorize_url on PayPal.
  2. The holder’s browser goes there, and they log in and approve.
  3. PayPal returns the browser to Whop, which reads the account’s email, name, and verification status.
  4. Whop sends the browser to your return_url with ?paypal_link_token=… or ?error=….
  5. Your server passes the token to Whop, which checks the name and saves the method.

1. Find the payout method

List supported payout methods and keep the id of the one with supports_paypal_login: true. The SDKs page through every result for you.

2. Start the login

Create a PayPal link session and redirect the holder to its authorize_url. The session expires in 15 minutes, at expires_at.
The browser comes back to your return_url with one of these: If the holder finishes after expires_at, or after the return_url domain is removed from the account, Whop can’t send them back. They see an “Invalid or expired link” page.

3. Save the payout method

On your server, create the saved payout method with paypal_link_token in place of fields. Use the same account_id, supported_payout_method_id, and destination_currency as the session, since the token only works with those. Whop saves PayPal’s email and names the method after it.
The response is the new payout method, abridged:
You can now send a payout to it.

If Whop refuses the account

Whop answers 400 with a message for the holder, such as a name mismatch. Show it as is.
  • The token survives a refusal, so retry a temporary error with the same token.
  • If the message says to connect PayPal again, start a new session once the holder fixes the problem.
  • An unverified PayPal account or unconfirmed email still saves.

What the holder sees

PayPal’s consent screen names Whop as the app asking for their email, name, and verified status. Every redirect stays in the tab that opened PayPal, so if you use a pop-up, your return page must notify its opener and close.

Next steps

Send a payout

Pay out to the PayPal method you just saved

Payouts API reference

Every payout and payout method endpoint