> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whop.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Verification

> Starts a hosted verification session for an account or user, or returns the active session when one already exists.



## OpenAPI

````yaml /openapi/api-v1-native.yml post /verifications
openapi: 3.1.0
info:
  title: Whop API
  description: >-
    Hand-written V1 endpoints. Merged into the GraphqlRestProxy-generated schema
    at build time.
  version: v1
servers:
  - url: https://{defaultHost}
    variables:
      defaultHost:
        default: api.whop.com/api/v1
security: []
paths:
  /verifications:
    parameters:
      - $ref: '#/components/parameters/ApiVersionDate'
    post:
      tags:
        - Verifications
      summary: Create Verification
      description: >-
        Starts a hosted verification session for an account or user, or returns
        the active session when one already exists.
      operationId: createVerification
      parameters:
        - name: account_id
          in: query
          schema:
            type: string
          required: true
          description: >-
            Account or user ID whose identity you want to verify. Use a `biz_`
            account ID for account verifications, or the caller's `user_` ID for
            personal verification.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  type: string
                  enum:
                    - individual
                    - business
                  description: Verification type. Defaults to `individual`.
                restart:
                  type: boolean
                  description: >-
                    Set to `true` to abandon the current in-flight session and
                    start a new one.
                tax_identification_number:
                  type: string
                  description: >-
                    Tax ID for the individual or business, such as an SSN or
                    EIN. Tokenized in transit and never stored raw.
                first_name:
                  type: string
                  description: First name to prefill in the hosted verification session.
                last_name:
                  type: string
                  description: Last name to prefill in the hosted verification session.
                date_of_birth:
                  type: string
                  description: Date of birth to prefill in the hosted verification session.
                business_name:
                  type: string
                  description: Legal business name to prefill for a business verification.
                business_structure:
                  type: string
                  description: Business entity type, such as `llc` or `corporation`.
                place_of_incorporation:
                  type: string
                  description: State or region where the business is incorporated.
                business_website:
                  type: string
                  description: >-
                    Business website URL used during verification. Whop store
                    pages are not accepted.
                phone:
                  type: string
                  description: Phone number to prefill in the hosted verification session.
                country:
                  type: string
                  description: >-
                    ISO 3166-1 alpha-2 country code. For businesses, use the
                    country of incorporation.
                address:
                  type: object
                  description: Address to prefill in the hosted verification session.
                  additionalProperties: true
      responses:
        '200':
          description: existing in-flight verification session resumed
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Verification profile ID, prefixed `idpf_`.
                  kind:
                    type: string
                    enum:
                      - individual
                      - business
                    description: >-
                      Verification type: `individual` for a person or `business`
                      for a business.
                  status:
                    type: string
                    enum:
                      - not_started
                      - pending
                      - approved
                      - rejected
                      - action_required
                    description: >-
                      Current verification state. `not_started` before any
                      session has been created; `pending` while a session is in
                      progress; `action_required` when items in
                      `requested_information` need answers before review can
                      continue; `approved` once verification succeeds;
                      `rejected` if it fails. Call the Create Verification
                      endpoint again to start a new session.
                  first_name:
                    type:
                      - string
                      - 'null'
                    description: First name on an individual verification.
                  last_name:
                    type:
                      - string
                      - 'null'
                    description: Last name on an individual verification.
                  date_of_birth:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Date of birth for an individual verification, formatted as
                      `YYYY-MM-DD`.
                  business_name:
                    type:
                      - string
                      - 'null'
                    description: Legal business name on a business verification.
                  business_structure:
                    type:
                      - string
                      - 'null'
                    description: Business entity type, such as `llc` or `corporation`.
                  country:
                    type:
                      - string
                      - 'null'
                    description: >-
                      ISO 3166-1 alpha-2 country code for the individual or
                      business being verified.
                  address:
                    type:
                      - object
                      - 'null'
                    description: >-
                      Personal or business address on the verification profile,
                      with `line1`, `line2`, `city`, `state`, `postal_code`, and
                      `country`. `null` when no address is set.
                  session_url:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Hosted verification session URL for the user to complete
                      identity checks. Expires 7 days after creation. Omitted
                      unless this verification's own status is `pending`; `null`
                      if `pending` with no active session.
                  access_token:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Token for embedding the verification session directly in
                      your own UI, as an alternative to redirecting to
                      `session_url`. Follows the same presence rules as
                      `session_url`.
                  requested_information:
                    type: array
                    description: >-
                      Fields or documents Whop still needs before review can
                      continue. Submit answers with the Update Verification
                      endpoint.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: >-
                            Requested information item ID, prefixed `inrqi_`.
                            Include this ID when submitting an answer.
                        field:
                          type: string
                          description: >-
                            Stable field key, such as `ssn` or
                            `business_description`.
                        type:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Input type expected for this item: `text`, `date`,
                            `phone`, `address`, `files`, or `select`.
                        label:
                          type: string
                          description: >-
                            Human-readable label for the field, such as `Social
                            Security Number`.
                        description:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Additional instructions for this requested item, or
                            `null`.
                        requested_files:
                          type: array
                          description: >-
                            Document upload slots for this item. Present when
                            `type` is `files`; upload one file for each required
                            slot and include the slot's `category` when
                            submitting the answer.
                          items:
                            type: object
                            properties:
                              label:
                                type: string
                                description: >-
                                  Label for this upload slot, such as `Front of
                                  ID Document`.
                              category:
                                type:
                                  - string
                                  - 'null'
                                description: >-
                                  File category to include with the uploaded
                                  file so Whop can route the document correctly.
                                  `null` for a generic upload.
                              kind:
                                type:
                                  - string
                                  - 'null'
                                description: >-
                                  Specific document type requested, such as
                                  `Bank Statement`. `null` for standard identity
                                  and business document uploads.
                              is_optional:
                                type: boolean
                                description: Whether this slot can be left empty.
                              multiple:
                                type: boolean
                                description: Whether this slot accepts more than one file.
                        options:
                          type: array
                          description: >-
                            Allowed values for a `select` field (e.g.
                            account_type, business_structure) — the submitted
                            value must be one of these; empty for other types.
                          items:
                            type: string
                        error_message:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Reason a previously submitted value was rejected.
                            `null` if no submitted value has been rejected.
                  created_at:
                    type: string
                    description: >-
                      When the verification profile was created, as an ISO 8601
                      timestamp.
                  updated_at:
                    type: string
                    description: >-
                      When the verification profile was last updated, as an ISO
                      8601 timestamp.
        '201':
          description: verification created
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Verification profile ID, prefixed `idpf_`.
                  kind:
                    type: string
                    enum:
                      - individual
                      - business
                    description: >-
                      Verification type: `individual` for a person or `business`
                      for a business.
                  status:
                    type: string
                    enum:
                      - not_started
                      - pending
                      - approved
                      - rejected
                      - action_required
                    description: >-
                      Current verification state. `not_started` before any
                      session has been created; `pending` while a session is in
                      progress; `action_required` when items in
                      `requested_information` need answers before review can
                      continue; `approved` once verification succeeds;
                      `rejected` if it fails. Call the Create Verification
                      endpoint again to start a new session.
                  first_name:
                    type:
                      - string
                      - 'null'
                    description: First name on an individual verification.
                  last_name:
                    type:
                      - string
                      - 'null'
                    description: Last name on an individual verification.
                  date_of_birth:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Date of birth for an individual verification, formatted as
                      `YYYY-MM-DD`.
                  business_name:
                    type:
                      - string
                      - 'null'
                    description: Legal business name on a business verification.
                  business_structure:
                    type:
                      - string
                      - 'null'
                    description: Business entity type, such as `llc` or `corporation`.
                  country:
                    type:
                      - string
                      - 'null'
                    description: >-
                      ISO 3166-1 alpha-2 country code for the individual or
                      business being verified.
                  address:
                    type:
                      - object
                      - 'null'
                    description: >-
                      Personal or business address on the verification profile,
                      with `line1`, `line2`, `city`, `state`, `postal_code`, and
                      `country`. `null` when no address is set.
                  session_url:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Hosted verification session URL for the user to complete
                      identity checks. Expires 7 days after creation. Omitted
                      unless this verification's own status is `pending`; `null`
                      if `pending` with no active session.
                  access_token:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Token for embedding the verification session directly in
                      your own UI, as an alternative to redirecting to
                      `session_url`. Follows the same presence rules as
                      `session_url`.
                  requested_information:
                    type: array
                    description: >-
                      Fields or documents Whop still needs before review can
                      continue. Submit answers with the Update Verification
                      endpoint.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: >-
                            Requested information item ID, prefixed `inrqi_`.
                            Include this ID when submitting an answer.
                        field:
                          type: string
                          description: >-
                            Stable field key, such as `ssn` or
                            `business_description`.
                        type:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Input type expected for this item: `text`, `date`,
                            `phone`, `address`, `files`, or `select`.
                        label:
                          type: string
                          description: >-
                            Human-readable label for the field, such as `Social
                            Security Number`.
                        description:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Additional instructions for this requested item, or
                            `null`.
                        requested_files:
                          type: array
                          description: >-
                            Document upload slots for this item. Present when
                            `type` is `files`; upload one file for each required
                            slot and include the slot's `category` when
                            submitting the answer.
                          items:
                            type: object
                            properties:
                              label:
                                type: string
                                description: >-
                                  Label for this upload slot, such as `Front of
                                  ID Document`.
                              category:
                                type:
                                  - string
                                  - 'null'
                                description: >-
                                  File category to include with the uploaded
                                  file so Whop can route the document correctly.
                                  `null` for a generic upload.
                              kind:
                                type:
                                  - string
                                  - 'null'
                                description: >-
                                  Specific document type requested, such as
                                  `Bank Statement`. `null` for standard identity
                                  and business document uploads.
                              is_optional:
                                type: boolean
                                description: Whether this slot can be left empty.
                              multiple:
                                type: boolean
                                description: Whether this slot accepts more than one file.
                        options:
                          type: array
                          description: >-
                            Allowed values for a `select` field (e.g.
                            account_type, business_structure) — the submitted
                            value must be one of these; empty for other types.
                          items:
                            type: string
                        error_message:
                          type:
                            - string
                            - 'null'
                          description: >-
                            Reason a previously submitted value was rejected.
                            `null` if no submitted value has been rejected.
                  created_at:
                    type: string
                    description: >-
                      When the verification profile was created, as an ISO 8601
                      timestamp.
                  updated_at:
                    type: string
                    description: >-
                      When the verification profile was last updated, as an ISO
                      8601 timestamp.
        '400':
          $ref: '#/components/responses/InvalidParameters'
          description: missing account_id
        '401':
          $ref: '#/components/responses/Unauthorized'
          description: missing or invalid authentication
        '403':
          $ref: '#/components/responses/Forbidden'
          description: credential lacks the required identity-write scope
        '404':
          $ref: '#/components/responses/NotFound'
          description: account not found
      security:
        - bearerAuth:
            - identity:write
components:
  parameters:
    ApiVersionDate:
      name: Api-Version-Date
      in: header
      required: false
      schema:
        type: string
        format: date
        example: '2026-07-01'
      description: Pins the request to a dated API version.
  responses:
    InvalidParameters:
      description: Invalid Parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V1ErrorResponse'
  schemas:
    V1ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: Machine-readable error code.
            message:
              type: string
              description: Human-readable error message.
          required:
            - type
            - message
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: auth-scheme
      description: >-
        An account API key, account scoped JWT, app API key, or user OAuth
        token.

````