MCP is live.Set upAsk on Discord
OmniDimension
Reseller

Get KYC requirements for a region

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

Reseller accounts only. Request access.

GET/reseller/kyc/requirements
Query parameters
regionstring · enumrequired

Region to get verification requirements for.

carrierstringrequired

Which carrier's steps to return: carriers in a region do not share a step list. Always required, even where a region holds one, and omitting it returns 409 carrier_required naming that region's carriers.

curl -X GET 'https://backend.omnidim.io/api/v1/reseller/kyc/requirements?region=IN&carrier=carrier-1' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Example response
{
  "success": true,
  "region": "IN",
  "steps": [
    {
      "step": "register",
      "required": [
        "email",
        "name",
        "phone"
      ],
      "cooldown": false,
      "choices": {},
      "method": "submit"
    },
    {
      "step": "verify-otp",
      "required": [
        "email_otp",
        "mobile_otp"
      ],
      "cooldown": false,
      "method": "submit"
    },
    {
      "step": "resend-otp",
      "required": [],
      "cooldown": false,
      "method": "submit"
    },
    {
      "step": "verify-pan",
      "required": [
        "business_type",
        "pan"
      ],
      "cooldown": false,
      "method": "submit"
    },
    {
      "step": "aadhaar-otp",
      "required": [
        "aadhaar"
      ],
      "cooldown": true,
      "method": "otp"
    },
    {
      "step": "aadhaar-verify",
      "required": [
        "otp"
      ],
      "cooldown": true,
      "method": "otp"
    },
    {
      "step": "verify-gst",
      "required": [
        "gst"
      ],
      "cooldown": false,
      "method": "submit"
    },
    {
      "step": "skip-gst",
      "required": [],
      "cooldown": false,
      "method": "submit"
    },
    {
      "step": "preview",
      "required": [],
      "cooldown": false,
      "method": "submit"
    },
    {
      "step": "accept",
      "required": [],
      "cooldown": false,
      "method": "submit"
    }
  ]
}

Authorization

BearerAuth
AuthorizationBearer <token>

Bearer token authentication. Obtain your API key from the OmniDimension dashboard.

In: header

Query Parameters

region*string

Region to get verification requirements for.

Value in"IN" | "US"
carrier*string

Which carrier's steps to return: carriers in a region do not share a step list. Always required, even where a region holds one, and omitting it returns 409 carrier_required naming that region's carriers.

Response body

application/json

Response Body

application/json

application/json

application/json

application/json

application/json

Call this before you build anything. The steps, the fields each one needs, and the method telling you how to perform it all come from here. A region can have more than one carrier, and carriers do not run the same checks, so the sequence is data rather than something to hard-code. Written against this response, one integration works for every carrier and keeps working when a carrier's flow changes.

How a client is checked depends on the carrier: a code sent to the customer, a link they open themselves, or business details the carrier reviews. method on each step tells you which, and Run a KYC step explains how to handle each kind.

Read it per carrier, and carrier is always required:

  • carrier-1 (region IN): landline numbers. OTP pair, then Aadhaar by OTP, ending in a preview you accept.
  • carrier-2-new (region IN): mobile numbers. No OTP step at all, Aadhaar through a DigiLocker link the customer opens.
  • carrier-us (region US): business verification. No OTP, no PAN, no Aadhaar.

Calling without a carrier returns 409 carrier_required listing that region's carriers with what each one stocks, so you can discover them at runtime rather than hard-coding the list.

A region we cannot verify through the API returns 404 not_available rather than an empty list. Check kyc_required on KYC status to know whether a region needs verification at all before a purchase.

The full loop is in the Reseller API guide.