How it works
1
Start a verification
Call
POST /api/v1/verifications with the account you want to verify. You get back a session_url.2
Send the user to complete KYC
Redirect your user to the
session_url. They upload their ID, take a selfie, and verify their identity on a hosted page. You don’t build any UI for this.3
Listen for the result
Subscribe to the
identity_profile.updated webhook — it fires on every change to the profile (approved, rejected, needs action, or a review opening or clearing). The webhook tells you which profile changed, not its new state, so call GET /api/v1/verifications?account_id={biz_ tag} to read the current status and verified identity data.Quick example
cURL
Response
You need a Company API key with the
identity:write scope. Go to your dashboard → Settings → API Keys to create one.Pre-fill the identity verification form
Pass identity fields to skip steps for your user. These seed the verification form so they don’t have to retype their name and address:cURL
tax_identification_number is the person’s tax identification number — their SSN for US
individuals — and is required when country is US: the payout account
can’t be created without it. Send it as-is. It’s tokenized in transit, and
the raw value is never stored on Whop’s systems.Reuse a verification you already have
If you already verified this person with Sumsub, send their share token instead of putting them through KYC a second time. Whop imports the identity your Sumsub account attested and checks it with Whop’s own requirements:cURL
Response
1
Agree on Reusable KYC with Whop
Sumsub only releases applicant data between clients that have a Reusable KYC agreement. Whop
gives you the client ID to share with once that’s in place.
2
Generate a share token for the applicant
Call
POST https://api.sumsub.com/resources/accessTokens/shareToken on your own Sumsub account
with the applicant’s ID and Whop’s client ID as forClientId.3
Send it to Whop
Pass the token as
share_token. Each token works once.approved means your verification covered everything Whop
needs and there is nothing left to do. pending with a session_url means it covered part of it —
send the user to that URL to finish only what’s still missing. Whop rejects a token whose data
covers none of the requirements with a 400.
share_token can’t be combined with documents or document_type — each is a complete
alternative to the hosted flow.Two types of verification
An account can have one of each — an individual KYC and a business KYB.
What’s next
Check status
Check verification status and read verified identity data.
Handle RFIs
Respond when Whop needs additional information like a bank statement.
Update & delete
Update identity fields or remove a verification.
API Reference
Full field reference for the verification object.

