Payouts

Create PayPal Link Session

Starts a Log in with PayPal session so PayPal itself can confirm the account holder owns a verified PayPal account. Send the holder to authorize_url; after they log in, PayPal returns them to Whop, and Whop redirects the browser to your return_url with a paypal_link_token query parameter to pass to POST /payouts/methods. If the login fails or is canceled, return_url receives an error query parameter (paypal_login_canceled or paypal_login_failed) instead. The payout method saved this way pays the email on the PayPal account, and its holder name must match the name on the account's payout setup. PayPal login is rolling out per account: until it is enabled for the account this answers 403 forbidden, and supports_paypal_login on GET /payouts/supported_methods is false.

post/payouts/paypal_link_sessions

Request

  • Base URL: https://api.whop.com/api/v1
  • URL: https://api.whop.com/api/v1/payouts/paypal_link_sessions
  • Auth: HTTP bearer

Headers

Idempotency-Keystring
Example:d9105228-4a08-46b1-8b91-42fed586d383

A unique key that makes this request safe to retry. See Idempotent requests.

Request body

account_idstring

The account that will own the PayPal payout method, prefixed biz_. Provide this or user_id.

destination_currencystring

Currency the PayPal payout method will deliver payouts in.

return_urlstring required

Where to send the holder once the PayPal login finishes. Must be an https URL; it receives paypal_link_token on success or error on failure.

supported_payout_method_idstring required

The PayPal supported payout method to connect (a podst_ identifier whose supports_paypal_login is true).

user_idstring

The user who will own the PayPal payout method, prefixed user_. Provide this or account_id.

Example request

{
  "account_id": "biz_xxxxxxxxxxxxxx",
  "destination_currency": "usd",
  "return_url": "https://example.com/settings/payouts",
  "supported_payout_method_id": "podst_xxxxxxxxxxxxxx"
}

Response

PayPal login started

authorize_urlstring required

The PayPal login page to send the account holder to.

expires_atstring date-time required

When the login session stops being accepted, as an ISO 8601 timestamp; start a new one after this.

Example response

{
  "authorize_url": "https://www.paypal.com/connect",
  "expires_at": "2026-01-01T12:00:00.000Z"
}

Changes

No operation changes recorded.