Skip to main content
A Verification represents a legal identity for a person or business. Accounts and users complete verification when Whop needs to confirm who they are before enabling payouts or compliance-sensitive workflows. Use the Verifications API to start or resume a hosted verification session, check review status, and submit requested details or documents. If requested_information contains items, submit answers with Update Verification.
Replaces the Legacy Verifications resource. Existing Legacy integrations keep working; see API versions for the stability contract.

Endpoints

Attributes

string
Verification profile ID, prefixed idpf_.
object | null
Address on the verification profile. null when no address is set.

Properties

string | null
string | null
Two-letter ISO 3166-1 country code, for example US, DE, or GB.
string
First line of the street address.
string | null
Second line of the street address.
string | null
Postal or ZIP code.
string | null
State, province, or region code, for example CA.
string | null
Legal business name.
string | null
Legal entity structure of the business, such as private_corporation or sole_proprietorship. Supported values vary by country of incorporation — see Business structures.
string | null
Two-letter ISO 3166-1 country code, for example US, DE, or GB.
string
When the verification profile was created, as an ISO 8601 timestamp.
string | null
Formatted as YYYY-MM-DD.
string | null
Email address on the verification profile.
string | null
string
Available options: individual, business
string | null
object[]
required
Owners of the business and the progress of each one’s own verification. Empty for individual verifications.

Properties

string
required
Owner ID, prefixed own_. Send it in Update Verification’s owners to change or remove the owner, including one added in the hosted session.
string | null
required
string | null
required
number | null
required
Share of the business the person owns, from 0 to 100.
object[]
required
The owner’s documents and their progress. Empty for an owner added with verification_id.

Properties

string
Document slot key, such as id_card_front, id_card_back, or selfie.
string | null
Why the previous submission was rejected, when the provider requested new documents or declined the verification.
string
pending_upload until the document has been relayed for review; submitted afterwards.Available options: pending_upload, submitted
string[]
required
What the person is to the business.Available options: ubo, director, representative, shareholder
string
required
Where the owner’s own verification stands, in the same states as status. action_required when their documents need sending again.Available options: not_started, pending, processing, manual_review, approved, rejected, action_required
string | null
Phone number on the verification profile.
string | null
Number the business was registered under in its place of incorporation, such as a state file number in the US or a Company Number in the UK. Business verifications only; null until the business verification is approved.
object[]
What Whop still needs before review can continue — one requirement per entry. Answer with Update Verification; nothing from the response is echoed back. Keys that don’t apply are omitted.

Properties

string
required
Requested information item ID, prefixed inrqi_.
string
URL for a related action, such as completing liveness verification or viewing a payment. Absent when no action is available.
string
A document that answers this item in place of value, such as an IRS EIN letter when the EIN could not be matched. Send its pages in files, with or without a corrected value. Absent when only value is accepted.
string
Follow-up prompt shown with this requirement.
boolean
Whether the follow-up response is required when visible.
string[]
Selected option values that make the follow-up prompt visible.
object[]
Present after a rejected submission.

Properties

string
Stable error code.
string
Why it was rejected.
string
required
Instruction to show the user. Carries the reviewer’s note verbatim when there is one.
boolean
true when the item can be skipped.
string[]
The values value may take on a select item. On an id_document item these are the ID types accepted, and the chosen one decides which documents slots to send. Absent when the item has no choice to make.
string
required
What is needed: a document name such as bank_statement, or a field key such as ssn or identity_document. Handle unrecognized values by type.
string
Optional native input format for a text response.Available options: yes_no, yes_no_na, date, url, number, tel
string
Whether a question with options accepts one value or multiple values.Available options: single, multiple
object[]
Documents supplied with the requirement for context.

Properties

string
required
The file’s ID, prefixed file_.
string | null
required
BlurHash placeholder for an image or video. Null when unavailable or removed by moderation.
string | null
required
The original file’s MIME type, preserved when removed by moderation, e.g. application/pdf.
string
required
When the file was created, as an ISO 8601 timestamp.
number | null
required
Audio or video duration in seconds. Null when unavailable or removed by moderation.
string | null
required
The original filename, including its extension.
integer | null
required
Image or video height in pixels. Null when unavailable or removed by moderation.
integer | null
The byte size each part (except the last) must be. Present only on create, and only for multipart uploads.
string | null
The ID of the multipart upload, passed back to complete. Present only on create, and only for multipart uploads.
object[] | null
The presigned URL for each part. Present only on create, and only for multipart uploads.

Properties

integer
required
The 1-based index of this part within the multipart upload.
string
required
The presigned URL to PUT this part’s bytes to.
string
required
The type of this object, always file.
boolean
required
Whether moderation removed the file. When true, url serves a replacement image; filename, size, and content type still describe the original file.
integer | null
required
The file size in bytes. null until the upload has finished.
object
Headers to send with the upload PUT. Present only on create.
string
required
Where the file is in its upload lifecycle.Available options: pending, processing, ready, failed
string | null
Presigned URL to PUT the file’s bytes to. Present only on create, and only for single-part uploads.
string | null
required
A URL to download the file: a permanent CDN URL for public files, a signed expiring URL for private ones. Null until the upload has finished; a replacement image URL when removed by moderation.
string
required
public files are served via an unsigned CDN URL; private files via a signed, expiring URL.Available options: public, private
string | null
required
Audio waveform URL. Null when unavailable or removed by moderation.
integer | null
required
Image or video width in pixels. Null when unavailable or removed by moderation.
boolean
Whether a written explanation may replace required supporting files.
boolean
Whether this requirement also needs supporting files.
string[]
Selected option values that make the supporting-file input visible.
string
required
What to send as the answer, so you never have to infer it: files (a document, as a list of its pages), id_document (send documents with the slot keys for the ID you are uploading), text, date, phone or select (send value), text_with_files (send value and optional files), address (send address), or liveness (open action_url, then send value as true after completion).
object[]
Documents for a document-upload verification and their progress. Present only on individual verifications created by sending documents. pending_upload documents were not accepted yet — send the full set again with another Create Verification call.

Properties

string
Document slot key, such as id_card_front, id_card_back, or selfie.
string | null
Why the previous submission was rejected, when the provider requested new documents or declined the verification.
string
pending_upload until the document has been relayed for review; submitted afterwards.Available options: pending_upload, submitted
string | null
Hosted verification session URL for the user to complete identity checks. Expires 7 days after creation.
string
Current verification state. not_started before any session exists; pending while a session needs the user’s input; processing while the provider’s automated checks run on a fresh submission; action_required when requested_information needs answers; manual_review while information already sent is under review — an audit answer, or a document the payout provider holds — nothing to submit, usually done within 3 business days; approved on success; rejected on failure. Call Create Verification again to start a new session.Available options: not_started, pending, processing, manual_review, approved, rejected, action_required
string
When the verification profile was last updated, as an ISO 8601 timestamp.
Verification