# Get KYC requirements for a region (/docs/api-reference/reseller/getResellerKycRequirements)

> Get the ordered list of verification steps for a region and the fields each step needs, so your integration can build a verification form without hardcoding the sequence.

> **Reseller accounts only.** [Request access](https://omnidim.io/contact-us?reason=reseller_api\&lock=1).

**GET** `/reseller/kyc/requirements`

Get the ordered list of verification steps for a region and
the fields each step needs, so your integration can build a
verification form without hardcoding the sequence.

```yaml
operationId: getResellerKycRequirements
parameters:
  - name: region
    in: query
    required: true
    description: Region to get verification requirements for.
    schema:
      type: string
      enum:
        - IN
        - US
    example: IN
responses:
  '200':
    description: Verification requirements for the region.
    content:
      application/json:
        schema:
          type: object
          properties:
            success:
              type: boolean
            region:
              type: string
              enum:
                - IN
                - US
            steps:
              type: array
              items:
                type: object
                properties:
                  step:
                    type: string
                    enum:
                      - register
                      - verify-otp
                      - resend-otp
                      - verify-pan
                      - aadhaar-otp
                      - aadhaar-verify
                      - verify-gst
                      - skip-gst
                      - preview
                      - accept
                  required:
                    type: array
                    items:
                      type: string
                    description: Body fields this step requires, beyond `user_id` and `region`.
                  cooldown:
                    type: boolean
                    description: >-
                      Whether this step is rate-limited. When true, wait about 30 seconds between
                      attempts.
        example:
          success: true
          region: IN
          steps:
            - step: register
              required:
                - email
                - name
                - phone
              cooldown: false
            - step: verify-otp
              required:
                - email_otp
                - mobile_otp
              cooldown: false
            - step: resend-otp
              required: []
              cooldown: false
            - step: verify-pan
              required:
                - business_type
                - pan
              cooldown: false
            - step: aadhaar-otp
              required:
                - aadhaar
              cooldown: true
            - step: aadhaar-verify
              required:
                - otp
              cooldown: true
            - step: verify-gst
              required:
                - gst
              cooldown: false
            - step: skip-gst
              required: []
              cooldown: false
            - step: preview
              required: []
              cooldown: false
            - step: accept
              required: []
              cooldown: false
  '401':
    description: Missing or invalid API key.
  '403':
    description: The caller's account cannot use the reseller API.
    content:
      application/json:
        schema:
          type: object
          properties:
            error:
              type: string
              description: Machine-readable error code.
            error_description:
              type: string
              description: Human-readable explanation.
        example:
          error: forbidden
          error_description: Access denied. Only reseller accounts can use this endpoint.
  '404':
    description: No verification flow is configured for this region.
    content:
      application/json:
        schema:
          type: object
          properties:
            error:
              type: string
              description: Machine-readable error code.
            error_description:
              type: string
              description: Human-readable explanation.
        example:
          error: not_available
          error_description: Verification is not available for this region.
  '500':
    description: Unexpected server error.
    content:
      application/json:
        schema:
          allOf:
            - type: object
              properties:
                error:
                  type: string
                  description: Machine-readable error code.
                error_description:
                  type: string
                  description: Human-readable explanation.
            - type: object
              properties:
                ref:
                  type: string
                  description: Reference to quote to support.
        example:
          error: server_error
          error_description: >-
            Something went wrong on our side. Please try again shortly, or contact support with
            reference a1b2c3d4e5f6.
          ref: a1b2c3d4e5f6
```

**curl**

```bash
curl -X GET "https://omnidim.io/api/v1/reseller/kyc/requirements?region=IN" \
  -H "Authorization: Bearer $OMNIDIM_API_KEY"
```

Step-by-step verification exists for regions that require it. India is the one
today, and the check is an Aadhaar eKYC.

A region that returns an empty `steps` list has no step-based verification.
Check `kyc_required` on
[KYC status](/docs/api-reference/reseller/getResellerKycStatus) to know whether
that region needs verification at all before a purchase.

The full loop is in the [Reseller API guide](/docs/reseller-api).