Manual Submissions
Submit an individual national ID for manual verification in eligible countries (e.g. RW, TZ). Only country, type, and id are required; biodata and supporting files are optional. Fetch results with GET /api/v1/kyc/manual/{batch_token}. Use the sandbox sample IDs below when testing against the sandbox host.
Sandbox test data
Use these values against the sandbox host. Click a value to copy it.
Submit verification
{{baseUrl}}/api/v1/kyc/manualHeader
Body Parameters
Sandbox sample β Complete (RW)
Sample request body for Sandbox sample β Complete (RW):
{
"country": "RW",
"type": "national_id",
"id": "85940685"
}Sample response for Sandbox sample β Complete (RW):
{
"success": true,
"response_code": 202,
"message": "Manual verification submitted successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "in_progress",
"submitted_at": "2026-08-27T10:56:00.000000Z",
"note": "This verification requires manual processing and is typically completed within 24-48 hours."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Sandbox sample β Complete (TZ)
Sample request body for Sandbox sample β Complete (TZ):
{
"country": "TZ",
"type": "national_id",
"id": "8594068345"
}Sample response for Sandbox sample β Complete (TZ):
{
"success": true,
"response_code": 202,
"message": "Manual verification submitted successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "in_progress",
"submitted_at": "2026-08-27T10:56:00.000000Z",
"note": "This verification requires manual processing and is typically completed within 24-48 hours."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Sandbox sample β Processing (RW)
Sample request body for Sandbox sample β Processing (RW):
{
"country": "RW",
"type": "national_id",
"id": "MANUAL0001"
}Sample response for Sandbox sample β Processing (RW):
{
"success": true,
"response_code": 202,
"message": "Manual verification submitted successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "in_progress",
"submitted_at": "2026-08-27T10:56:00.000000Z",
"note": "This verification requires manual processing and is typically completed within 24-48 hours."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}With optional biodata and files (TZ sandbox)
Sample request body for With optional biodata and files (TZ sandbox):
{
"country": "TZ",
"type": "national_id",
"id": "8594068345",
"first_name": "Jane",
"last_name": "Doe",
"date_of_birth": "1991-06-12",
"gender": "Female",
"files": [
{
"filename": "id-front.jpg",
"mime_type": "image/jpeg",
"content": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU"
}
]
}Sample response for With optional biodata and files (TZ sandbox):
{
"success": true,
"response_code": 202,
"message": "Manual verification submitted successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "in_progress",
"submitted_at": "2026-08-27T10:56:00.000000Z",
"note": "This verification requires manual processing and is typically completed within 24-48 hours."
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Duplicate in-progress request (HTTP 200)
Sample request body for Duplicate in-progress request (HTTP 200):
{
"country": "RW",
"type": "national_id",
"id": "85940685"
}Sample response for Duplicate in-progress request (HTTP 200):
{
"success": true,
"response_code": 200,
"message": "Manual verification already in progress",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "in_progress",
"submitted_at": "2026-08-27T10:56:00.000000Z"
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Response Fields
Fetch results
Fetch results using the batch_token from the submit response. On sandbox, use the sample IDs above β complete IDs return verification_result; MANUAL0001/MANUAL0002 stay in_progress; UNKNOWN999/UNKNOWN888 return unable_to_verify.
{{baseUrl}}/api/v1/kyc/manual/{token}Sandbox β Complete (RW Β· ${MANUAL_RW_COMPLETE_ID})
{
"success": true,
"response_code": 200,
"message": "Status retrieved successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "complete",
"submitted_at": "2026-08-27T10:56:00.000000Z",
"verification_result": {
"first_name": "John",
"last_name": "Doe",
"other_name": null,
"gender": "Male",
"dob": "1990-01-08",
"citizenship": "Rwandan",
"id_number": "85940685",
"valid": true,
"name": "Doe John"
}
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Sandbox β Complete (TZ Β· ${MANUAL_TZ_COMPLETE_ID})
{
"success": true,
"response_code": 200,
"message": "Status retrieved successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "complete",
"submitted_at": "2026-08-27T10:56:00.000000Z",
"verification_result": {
"first_name": "Jane",
"last_name": "Doe",
"other_name": null,
"gender": "Female",
"dob": "1991-06-12",
"citizenship": "Tanzanian",
"id_number": "8594068345",
"valid": true,
"name": "Doe Jane"
}
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Sandbox β Processing (RW Β· ${MANUAL_RW_PROCESSING_ID})
{
"success": true,
"response_code": 200,
"message": "Status retrieved successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "in_progress",
"submitted_at": "2026-08-27T10:56:00.000000Z"
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Sandbox β Unable (RW Β· ${MANUAL_RW_UNABLE_ID})
{
"success": true,
"response_code": 200,
"message": "Status retrieved successfully",
"data": {
"batch_token": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"type": "national_id",
"status": "unable_to_verify",
"submitted_at": "2026-08-27T10:56:00.000000Z"
},
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}Set {{baseUrl}} to https://api.peleza.com (production) or https://sandbox.peleza.com (sandbox). Authenticated calls need a Bearer token from POST /api/v1/oauth/token.
