Individual Entity ā SFTP Flow#
Overview#
Bulk CKYC operations for individual records. Upload new records, update existing ones, or download multiple records in a single batch -- all processed asynchronously via CERSAI's SFTP infrastructure.Parent Category: SFTP Flow (Bulk)
APIs: Upload Initialize, Update Initialize, Upload File, Update Status, Upload Status Check, Bulk Download Initialize, Bulk Download Status, Get Client Details, Get Bulk Download Clients, Chart Data, SFTP Health
Endpoints#
Upload & Update#
| Endpoint | Method | Description |
|---|
/ckyc-upload/upload/initialize | POST | Register new CKYC records in the central registry |
/ckyc-upload/update/initialize | POST | Update existing CKYC records |
/ckyc-upload/update/upload-file | POST | Upload a ZIP file containing CSV + images for batch processing |
/ckyc-upload/upload/upload-file | POST | Upload a ZIP file for new record uploads |
/ckyc-upload/update/status | POST | Check processing status of an upload/update request |
/ckyc-upload/update/status-check | POST | Detailed status with merged request + response data per individual |
/ckyc-upload/upload/status-check | POST | Same for upload requests |
Bulk Download#
| Endpoint | Method | Description |
|---|
/ckyc-upload/download/initialize | POST | Start a bulk download of multiple CKYC records |
/ckyc-upload/download/status | POST | Poll download progress and retrieve results |
Management#
| Endpoint | Method | Description |
|---|
/ckyc-upload/get-client-details | GET | List all upload/update requests with pagination and filtering |
/ckyc-upload/get-bulk-download-clients | GET | List all bulk download requests |
/ckyc-upload/chart-data | GET | Time-series chart data for uploads/updates/downloads (7/15/30 days) |
/ckyc-upload/sftp-health | GET | Check SFTP server connectivity status |
Upload / Update Workflow#
Step 1: Initialize#
Submit individual records with personal details, addresses, identity documents, and verifier information via the Initialize endpoint.POST /ckyc-upload/update/initialize (for existing records)
POST /ckyc-upload/upload/initialize (for new records)
data.purpose -- Purpose of the CKYC operation
data.verifier -- Verifier details (name, designation, branch, employment code, organization)
data.individuals[] -- Array of individual records with:Personal details (name, DOB, gender, PAN, mobile, email)
Addresses (permanent + correspondence)
Identity documents (Aadhaar, PAN, Voter ID, etc.)
Photographs (Base64 encoded)
The response includes a client_id and initial state (pending).Step 2: Upload File (Optional)#
For operations requiring document images, upload a ZIP file:POST /ckyc-upload/update/upload-file
POST /ckyc-upload/upload/upload-file
batch.zip
āāā batch-details.csv
āāā individuals.csv
āāā documents/
āāā photo_1.jpg
āāā aadhaar_1.pdf
āāā ...
Step 3: Poll Status#
Poll until the state reaches a terminal state (upload_succeeded or upload_failed):POST /ckyc-upload/update/status
For detailed per-individual results:POST /ckyc-upload/update/status-check
Bulk Download Workflow#
Step 1: Initialize#
Submit an array of CKYC IDs with verification parameters:POST /ckyc-upload/download/initialize
Each individual requires:ckyc_id -- CKYC Number or Reference ID (from Search API)
dob -- Date of birth (conditional, required if mobile_number not provided)
mobile_number -- Registered mobile (conditional, required if dob not provided)
Step 2: Poll Status#
POST /ckyc-upload/download/status
Returns batch data with individual records and parsed CKYC personal data when complete.Polling rate limit -- Don't poll status more frequently than every 30 seconds.
Terminal states -- Once a request reaches upload_succeeded, the response is cached and returned from DB without hitting CERSAI again.
Billing -- Billed per individual record in the batch (not per API call).
180-day TTL -- Upload/update records are automatically deleted after 6 months.
:::
Management Endpoints#
List Requests#
GET /ckyc-upload/get-client-details?page=1&page_size=20&status_type=update
| Parameter | Type | Required | Description |
|---|
| page | int | No | Page number (default: 1) |
| page_size | int | No | Results per page (default: 20) |
| status_type | string | Yes | "upload" or "update" |
| start_date | string | No | Filter by start date |
| end_date | string | No | Filter by end date |
| state | string | No | Filter by state enum |
| search | string | No | Search by client_id or batch_file_name |
Chart Data#
GET /ckyc-upload/chart-data?days=30&type=update
| Parameter | Type | Required | Description |
|---|
| days | int | No | Time range: 7, 15, or 30 (default: 30) |
| type | string | Yes | "update", "upload", or "download" |
SFTP Health#
GET /ckyc-upload/sftp-health
Returns the current SFTP server connectivity status. Use this to check if bulk operations can proceed.