get
https://test-partner.payu.in/api/v3/merchants//kyc_document/
Show KYC Document — Sub-utility of Step 15
Retrieves full details of a specific uploaded KYC document, including verification status, rejection reasons, and a signed download URL.
Endpoint
GET /api/v3/merchants/{mid}/kyc_document/{kyc_document_uuid}
Path Parameters
| Parameter | Source | Description |
|---|---|---|
{mid} | Step 01 → mid | Numeric merchant ID |
{kyc_document_uuid} | Step 15 Upload response → kyc_document_uuid | UUID of the uploaded document |
The Complete 3-API Document Lifecycle Mapping
This is how the three document APIs connect to each other:
Step 14: Fetch Required Docs → tells you WHAT to upload
GET /api/v3/merchants/{mid}/kyc_document/required_docs
Response:
document_categories[i].name → e.g., "Bank Account Proof"
document_categories[i].uuid → e.g., "11e8-748f-297c6048..."
document_categories[i].document_types[j].name → e.g., "Cancelled Cheque"
document_categories[i].document_types[j].uuid → e.g., "ca0a-9047-28d705a1..."
document_categories[i].kyc_document_status → "required" (needs upload)
document_categories[i].kyc_document → null (nothing uploaded yet)
Step 15: Upload KYC Document → uses the names from Step 14 as input
POST /api/v3/merchants/{mid}/kyc_document
Request (form-data):
merchant[document_category] = "Bank Account Proof" ← from Step 14 category.name
merchant[document_type] = "Cancelled Cheque" ← from Step 14 document_types[j].name
merchant[processed_document] = @file.jpg ← the actual file
Response:
merchant.kyc_document_uuid = "11f1-13a7-6047c1c0..." ← USE THIS in Show KYC Document
merchant.kyc_document_status = "DOCUMENT_SUBMITTED"
merchant.kyc_document_name = "Bank Account Proof"
Show KYC Document (this API) → uses the uuid from Step 15 to check status
GET /api/v3/merchants/{mid}/kyc_document/{kyc_document_uuid}
Path:
{kyc_document_uuid} = "11f1-13a7-6047c1c0..." ← from Step 15 upload response
Response:
kyc_document.status = "Approved" / "DOCUMENT_SUBMITTED" / "DOCUMENT_REJECTED"
kyc_document.document_category_name = "Bank Account Proof" ← confirms category
kyc_document.document_type_name = "Cancelled Cheque" ← confirms type
kyc_document.document_category_id = 95 ← internal numeric ID
kyc_document.document_type_id = 112 ← internal numeric ID
kyc_document.error = null or "rejection reason"
kyc_document.remarks = null or "reviewer notes"
kyc_document.doc_url = "https://...signed_s3_url..." ← download link (30 min expiry)
Complete Data Flow Diagram
Step 14 (required_docs) Step 15 (upload) Show KYC (this API)
───────────────────── ────────────────── ───────────────────
category.name ──────────────→ merchant[document_category]
category.document_types
[j].name ─────────────────→ merchant[document_type]
merchant[processed_document] = file
│
Response: │
kyc_document_uuid ──────────→ {kyc_document_uuid} in URL path
kyc_document_status │
│
Response: ▼
status (Approved/Rejected/Submitted)
document_category_name (confirms)
document_type_name (confirms)
error (rejection reason)
doc_url (signed download URL)
ID Cross-Reference (from live responses)
| Category Name | Category ID | Type Name | Type ID |
|---|---|---|---|
| Bank Account Proof | 95 | Cancelled Cheque | 112 |
| Address Proof of Signing Authority | 103 | Aadhar | 116 |
| Government Issued Certificate | 104 | Certificate of Incorporation | 142 |
| Authorisation Letter | 105 | Power of Attorney | 158 |
| Service Agreement | 107 | Agreement | 148 |
| Memorandum of Association | 115 | Memorandum of Association | 159 |
| Articles of Association | 116 | Articles of Association | 160 |
Document Statuses
| Status | Meaning | Action |
|---|---|---|
DOCUMENT_SUBMITTED | Uploaded, pending review | Wait — poll periodically |
Approved | Verified by PayU | No action needed |
DOCUMENT_REJECTED | Rejected | Read error field, delete doc, re-upload |
Notes
doc_urlis a pre-signed S3 URL valid for ~30 minutes- Auto-generated documents (like Service Agreement after e-sign) may have
document_type_name: null - The
document_category_idanddocument_type_idare internal numeric IDs — usenamefields for display
