Skip to main content
This page documents @whop/elements@1.0.0-beta.3 and @whop/elements-react@1.0.0-beta.3.
Pre-release, not yet part of a stable release.

Playground

Assemble the elements with example data. Drive the controls, add and arrange elements, and watch events fire live:

Options

Pass these to whop.verifications.create({ … }), or as props on <Verifications> in React.
"individual" | "business"
Use individual for KYC or business for KYB. The mounted element owns the matching intake form. Defaults to "individual".
string
required
The account being verified: a company biz_… tag or the viewer’s own user_… tag.
(() => Promise<string>)
Called on your page before the element mounts. Return a fresh bearer credential with identity:read and identity:write; omit it only for a same-origin Whop session.
Appearance
Visual customization for this group’s elements. Overrides the global WhopElements({ appearance }). Change it live with update({ appearance }).
WhopElementsLocale
Locale for this group’s element UI text. Set it to one of the app’s built locales to override the global configuration. Any other value falls back to the default locale.

Events

Pass callbacks in the create options or React props.

onLoadingChange

Runs when the grouped loading state changes. The value is true while any mounted element is still loading. Signature: ((loading: boolean) => void)

Methods

Call these on the Verifications handle from whop.verifications.create({ … }) or useVerifications().

update

Merges new handle options into every mounted element. In React, change the namespace props instead. Signature: (options: Partial<VerificationsOptions>) => void

destroy

Destroys every element and sub-controller this handle created, removes the controller frame, and releases its subscriptions. You can call it more than once, but a destroyed handle refuses any other call — create a new handle to start over. React removes the group automatically when the provider unmounts. Signature: () => void

Types

Named types used throughout this page.

ActionRequiredItem

Fields on ActionRequiredItem.

id

Signature: string

requirement

Signature: string

type

Signature: string

label

Signature: string

source

Signature: "identity" | "payout" | "audit" | "card_issuing" | "bank" | "ads" | "application" | undefined

optional

Signature: boolean | undefined

options

Signature: string[] | undefined

errors

Signature: { code: string; reason: string; }[] | undefined

Elements

The elements this group mounts. Each has its own page:

KycElement

A complete identity-verification flow. It collects individual KYC or business KYB details, starts or resumes the hosted provider session, handles follow-up information and document requests, polls status, and renders the final result without requiring the host to build verification UI.

CapabilitiesElement

The account’s verification standing: whether individual and business verification are done, and which capabilities that unlocks. Read-only — pressing a verify button reports verificationRequested and stays put, so the host mounts its own flow, such as this namespace’s kyc element. Both halves can be hidden, so a host that only wants the capability list, or only the two verification rows, can drop the other.

RfiElement

Everything the account still owes compliance, and the forms to answer it. Each row is one group of requirements — grouped by the system that asked, because each relays to its provider once its own items are answered — and pressing it opens that group’s form in place. Rows already with a reviewer are shown but not answerable. Renders an all-clear once nothing is outstanding, so it can sit permanently in a settings page.