Verifications

Create Verification

Starts a hosted verification session for an account or user, or returns the active session when one already exists. Any fields you include in the request body are used to prefill the session. Send documents (with document_type) to instead verify the person from identity documents included in this request — no hosted session involved. Send share_token to reuse a verification another Sumsub account has already completed for this person, instead of verifying them again. Send verification_id to reuse a verification the signed-in user already completed on Whop. Every mode except verification_id is rejected once the account has an approved verification — unlink it first to start a new one — while verification_id replaces whichever verification of that kind the account currently has.

post/verifications

Query parameters

account_idstring

Business account whose identity you want to verify, prefixed biz_. Provide this or user_id.

user_idstring

The caller's own user ID, prefixed user_, for a personal verification. Provide this or account_id.

Headers

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

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

Request body

OR

Example request

{
  "address": {
    "city": "Austin",
    "country": "US",
    "line1": "4180 Burnet Rd",
    "line2": "Suite 2",
    "postal_code": "78756",
    "state": "TX"
  },
  "business_name": "Shine Time Auto Detailing LLC",
  "business_structure": "private_corporation",
  "business_tax_identification_number": "12-3456789",
  "business_website": "https://shinetime.example",
  "country": "US",
  "date_of_birth": "2026-01-01",
  "document_type": "RESIDENCE_PERMIT",
  "documents": {
    "drivers_back": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "drivers_front": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "id_card_back": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "id_card_front": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "passport_front": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "residence_permit_back": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "residence_permit_front": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k=",
    "selfie": "/9j/4GFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh/9k="
  },
  "first_name": "Marcus",
  "kind": "individual",
  "last_name": "Webb",
  "phone": "+xxxxxxxxxxx",
  "share_token": "_act-sbx-jwt-eyJhbGciOiJub25l",
  "tax_identification_number": "123456789",
  "verification_id": "idpf_xxxxxxxxxxxxxx"
}

Response

OK

business_namestring nullable

Legal business name.

business_structurestring nullable

Legal entity structure of the business, such as private_corporation or sole_proprietorship. Supported values vary by country of incorporation — see Business structures.

countrystring nullable

Two-letter ISO 3166-1 country code, for example US, DE, or GB.

created_atstring

When the verification profile was created, as an ISO 8601 timestamp.

date_of_birthstring nullable

Formatted as YYYY-MM-DD.

emailstring nullable

Email address on the verification profile.

first_namestring nullable
idstring

Verification profile ID, prefixed idpf_.

kind'individual' | 'business'
last_namestring nullable
phonestring nullable

Phone number on the verification profile.

session_urlstring nullable

Hosted verification session URL for the user to complete identity checks. Expires 7 days after creation.

status'not_started' | 'pending' | 'processing' | 'manual_review' | 'approved' | 'rejected' | 'action_required'

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.

updated_atstring

When the verification profile was last updated, as an ISO 8601 timestamp.

Example response

{
  "address": {
    "city": "Austin",
    "country": "US",
    "line1": "4180 Burnet Rd",
    "line2": "Suite 2",
    "postal_code": "78756",
    "state": "TX"
  },
  "business_name": "Shine Time Auto Detailing, LLC",
  "business_structure": "sole_proprietorship",
  "country": "US",
  "created_at": "2026-06-01T12:00:00.000Z",
  "date_of_birth": "1990-01-01",
  "email": "marcus@shinetime.example",
  "first_name": "Marcus",
  "id": "idpf_xxxxxxxxxxxx",
  "kind": "individual",
  "last_name": "Webb",
  "phone": "+15551234567",
  "requested_information": [
    {
      "errors": [
        {
          "code": "document_not_readable",
          "reason": "The uploaded image was too blurry to read."
        }
      ],
      "id": "inrqi_xxxxxxxxxxx",
      "label": "Bank Statement or a check for account ending in 4242",
      "optional": true,
      "options": [
        "sole_proprietorship"
      ],
      "requirement": "bank_statement",
      "response_type": "yes_no",
      "selection_mode": "single",
      "supporting_documents": [
        {
          "content_type": "application/pdf",
          "created_at": "2026-01-01T12:00:00.000Z",
          "filename": "evidence.pdf",
          "id": "file_xxxxxxxxxxxxxx",
          "multipart_chunk_size": 5242880,
          "multipart_upload_id": "upload-id",
          "multipart_upload_urls": [
            {
              "part_number": 1,
              "url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf"
            }
          ],
          "object": "file",
          "size": 9670,
          "upload_headers": {},
          "upload_status": "pending",
          "upload_url": "https://whop-assets-example.s3.amazonaws.com/uploads/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/application.pdf",
          "url": "https://whop-assets-example.s3.amazonaws.com/uploads/audio/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
          "visibility": "private"
        }
      ],
      "type": "files"
    }
  ],
  "required_documents": [
    {
      "document": "id_card_front",
      "rejection_reason": "Document image was too blurry to read.",
      "status": "submitted"
    }
  ],
  "session_url": "https://sumsub.com/session/abc",
  "status": "action_required",
  "updated_at": "2026-06-02T12:00:00.000Z"
}

Changes

Changed in 13 of the 74 revisions of this API.21475

    • ○

      added the new optional query request parameter user_id

      new-optional-request-parameter

    • ○

      the query request parameter account_id became optional

      request-parameter-became-optional

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the new optional request property /

      new-optional-request-property

    • ○

      added the new optional request property /

      new-optional-request-property

    This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the new optional request property /

      new-optional-request-property

    • ○

      added the new optional request property /

      new-optional-request-property

    • ○

      added the new optional request property /

      new-optional-request-property

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      the request property // became nullable

      request-property-became-nullable

    • ○

      added the non-success response with the status

      response-non-success-status-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    This revision also has 9 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

  • a602de67ab25814See the full diff
    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property // from the response with the status

      response-optional-property-removed

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      added the optional property // to the response with the status

      response-optional-property-added

    • ○

      the response property // became required for the status

      response-property-became-required

    • ○

      the response property // became required for the status

      response-property-became-required

    • ○

      the response property // became required for the status

      response-property-became-required

    • ○

      the response property // became required for the status

      response-property-became-required

    • ○

      the response property // became required for the status

      response-property-became-required

    • ○

      the response property // became required for the status

      response-property-became-required

    • ○

      added the required property // to the response with the status

      response-required-property-added

    • ○

      added the required property // to the response with the status

      response-required-property-added

    • ▲

      the //// response's property type changed from string null to array for status

      response-property-type-changed

    • ▲

      the //// response's property type changed from string null to array for status

      response-property-type-changed

    This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

    • ○

      added the new optional request property /

      new-optional-request-property

    • ○

      added the new optional request property /

      new-optional-request-property

    This revision also has 16 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog

Of the 74 revisions, 1 has no diff computed.