Skip to main content
An RFI (Request for Information) is raised when Whop needs something extra from a user — a document, a tax ID, a business detail. Each open RFI appears as an item in the verification’s requested_information array, and the verification’s status becomes action_required until every item is answered. Every item tells you exactly what to collect: a stable field key, an input type, a human-readable label and description, allowed options for select fields, and the exact upload slots for document requests. See every RFI field for the full catalog.

How RFIs work

1

Information is requested

Whop flags that something is needed. The verification status changes to action_required and an identity_profile.needs_action webhook fires.
2

You read the items

Call GET /api/v1/verifications?account_id={biz_ tag}. The requested_information array on each verification lists what’s needed and what type of answer to collect.
3

You collect and submit

Get the info from your user and send it back via PATCH /api/v1/verifications/{id} with a requested_information array. We route each answer to the right place.
4

Review continues

Answered items leave the array. Once it’s empty, the status returns to approved. If an answer is rejected, the item reappears with error_message explaining why — resubmit it.

Reading RFIs

cURL
When RFIs are outstanding, the verification looks like:

Item fields

Only open items are returned — answered items leave the array, so anything still present is owed. The verification stays action_required until the array is empty.

Answering RFIs

Send a PATCH to the verification’s idpf_ tag with a requested_information array. Each entry needs the item id and exactly one answer payload matching the item’s type: You can answer several items in one request:
cURL

Text, date, phone, and select values

Pass the answer as value. Dates use YYYY-MM-DD, phone numbers use E.164 format (+12125550123), and select values must be one of the item’s options.

Addresses

Pass an address object:
cURL
PO boxes are not accepted for personal or business addresses.

Documents

Upload the file first, then reference it in the answer. Fill one entry per slot in requested_files, copying the slot’s category and kind:
cURL
Each file entry takes either an attachment_id (a file_ ID from the upload flow) or a direct_upload_id from a direct upload. Documents must be JPEG, PNG, or PDF, up to 32 MB. When requested_files lists more than one slot with is_optional: true — for example several accepted document kinds — providing any one of them satisfies the request. Slots with is_optional: false are all required, such as the front and back of an ID.

Sensitive values

Tax and government ID numbers (ssn, ein, company_tax_id, personal_id_number) are submitted like any other value. They are tokenized in transit before reaching Whop’s systems, and only the tokenized reference is ever stored:
cURL
If you already tokenize values yourself (Basis Theory), pass the token ID with value_type: "vault_token" instead.

Rejected answers

If a submitted answer is rejected, the item returns to requested_information with error_message set:
Fix the underlying issue and resubmit with the same item id. The verification stays action_required until the corrected answer is accepted.

Every RFI field

Each item’s field key is one of the values below.

Personal details

Tax and government ID numbers

These values are tokenized in transit — see sensitive values.

Identity documents

Business details

Business documents

Payout account documents

Review questions