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.
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.
Each step lists its fixed values in choices, the shape a value must match in patterns, fields
needed only for some answers in required_if, and fields it accepts but never needs in
optional. An upload step carries document: the form field, the accepted formats and the
size limit.
Calling without a carrier returns 409 carrier_required listing the region's carriers with what
each one stocks, so you discover them at runtime rather than hard-coding the list. A region we
cannot verify returns 404 not_available.
The per-carrier steps and the full loop are on the Verify a client guide.
regionstring · enumrequiredRegion to get verification requirements for.
carrierstringWhich carrier's steps to return: carriers in a region do not share a step list. Required where a region has more than one carrier; omitting it there returns 409 carrier_required naming the 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'
{ "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" } ] }
BearerAuthAuthorizationBearer <token>Bearer token authentication. Obtain your API key from the OmniDimension dashboard.
region*stringRegion to get verification requirements for.
"IN""US"carrier?stringWhich carrier's steps to return: carriers in a region do not share
a step list. Required where a region has more than one carrier;
omitting it there returns 409 carrier_required naming the
region's carriers.
Response body
application/jsonVerification requirements for the region.
application/jsonsuccess?booleanregion?string"IN""US"steps?Get KYC status
Get the identity verification status of a client for every carrier it can verify on. Use next_step to know which step to call next, so you drive the whole flow off one poll instead of hardcoding the sequence.
Submit a KYC verification step
Run one step of a client's identity verification. One endpoint handles every step: the step path parameter names the step, and the body carries user_id, region, carrier, and whatever that step needs. The example below is the register step on carrier-1.
