post
https://test-partner.payu.in/api/v3/merchants/kyc_document/verify_ckyc_otp
Verify CKYC OTP — Step 03B of 16
Verifies the OTP sent in Step 03A and returns CKYC identity data.
Endpoint
POST /api/v3/merchants/kyc_document/verify_ckyc_otp
Prerequisite Steps
- Step 03A: OTP sent successfully, merchant has received OTP
Entity Applicability
Individual and Sole Proprietorship only.
Request Body (JSON)
| Parameter | Type | Required | Validation | Description |
|---|---|---|---|---|
merchant_id | string | Yes | Numeric mid from Step 01 | Merchant ID |
otp | string | Yes | Exactly 6 digits | OTP received by merchant on mobile. Must be sent as a string to preserve leading zeros (e.g. "014645", not 14645). |
Response (200 OK)
Returns CKYC data: name, DOB, address (city, state, pincode), masked mobile.
Response-to-Request Mapping
CKYC success status affects Step 09 (DigiLocker):
- If this succeeds → DigiLocker is optional for Individual/Sole Prop
- Track via GetMerchant →
ckyc_status
Error Handling
| Error Code | Cause | Recovery |
|---|---|---|
422 - "OTP should be of 6 digits" | OTP was sent as a number (stripping leading zeros) or is not 6 digits | Ensure OTP is sent as a string, not parsed with parseInt() |
422 - "OTP is invalid" | Wrong OTP | Ask merchant to re-check; resend OTP via Step 03A |
422 - "OTP expired" | OTP validity window passed | Resend OTP via Step 03A |
Next Step
Proceed to Step 04 — Update merchant with business details.
