UAN Passbook Without OTP V2
Introduction:
The UAN Passbook Without OTP service allows employees to conveniently access their EPF passbook details without requiring an OTP-based login. By providing essential details such as mobile number, PAN, UAN, date of birth, and employee name, users can securely retrieve their passbook information. This feature simplifies access to EPF account transactions, including contributions, withdrawals, and balance details, ensuring a seamless experience for employees managing their provident fund accounts.
Sample cURL
curl --location 'https://api-preproduction.signzy.app/api/v3/underwriting/uan-passbook-without-otp-v2' \
--header 'Content-Type: application/json' \
--header 'Authorization: <auth-token>' \
--data '{
"mobileNumber": "9876543210",
"panNumber": "ABCDE1234F",
"uanNumber": "123456789012",
"dateOfBirth": "15-06-1990",
"employeeName": "John Doe",
"consentFlag": "Y",
"callBackUrl": "",
"cutOffTime": "5",
"ttl": 10
}'Request Headers:
Key | Value |
|---|---|
Authorization | shared by Signzy |
Content-type | application/json |
Request Body
{
"mobileNumber": "9876543210",
"panNumber": "ABCDE1234F",
"uanNumber": "123456789012",
"dateOfBirth": "15-06-1990",
"employeeName": "John Doe",
"consentFlag": "Y",
"callBackUrl": "",
"cutOffTime": "5",
"ttl": 10
}PARAMETERS | DESCRIPTION | TYPE | VALUE (COMPULSORY OR OPTIONAL) |
|---|---|---|---|
uanNumber | UAN stands for Universal Account Number. It is a unique 12-digit identification number assigned to employees contributing to the Employees' Provident Fund (EPF) in India. | String | Conditional Mandatory |
mobileNumber | 10-digit Mobile number of the individual | String | Conditional Mandatory |
panNumber | PAN number of the individual | String | Conditional Mandatory |
dateOfBirth | Date of Birth of the individual in format: DD-MM-YYYY | String | Conditional Mandatory |
employeeName | Name of the individual | String | Conditional Mandatory |
consentFlag | "Y" or "N" | String | Mandatory |
callBackUrl | Optional webhook URL to receive the async response once passbook data is ready. | String | Optional |
cutOffTime | Optional max wait time (in minutes) before the request times out. | String | Optional |
ttl | Optional cache duration (in days, 0-30) to serve previously fetched data instead of a fresh call. | Number | Optional |
Search Methods:
- Only PAN number
- Only Mobile number
- Only UAN number
- PAN (mandatory) with mobile (optional)
- PAN (mandatory) with mobile (optional), dob (optional) and employeeName.
Response Data
{
"result": {
"uan": "101300XXXXX",
"name": "JOHN DOE",
"dateOfBirth": "1990-01-01",
"mobile": "987654XXXX",
"gender": "MALE",
"guardianName": "JANE DOE",
"employers": [
{
"establishmentName": "ABC FINANCE LTD",
"memberId": "XYZ123456789",
"organizationType": "NON_EXEMPTED",
"totalEmployerShare": 2000,
"totalEmployeeShare": 7000,
"totalPensionShare": 5000,
"dateOfJoining": "2024-09-11",
"servicePeriod": "5 Months",
"passbookEntries": [
{
"status": "Credited",
"description": "Cont. For Due-Month 012025",
"employeeShare": "1,800",
"employerShare": "550",
"pensionShare": "1,250",
"month": "12",
"year": "2024",
"dateOfApproval": "2025-01-07"
}
]
},
{
"establishmentName": "XYZ CAPITAL LTD",
"memberId": "ABC987654321",
"organizationType": "EXEMPTED",
"dateOfJoining": "2024-01-01",
"dateOfExit": "2024-09-10",
"servicePeriod": "8 Months"
},
{
"establishmentName": "DEF SERVICES PVT. LTD.",
"memberId": "LMN654321987",
"organizationType": "NON_EXEMPTED",
"totalEmployerShare": 28000,
"totalEmployeeShare": 1200,
"totalPensionShare": 46000,
"dateOfJoining": "2019-06-21",
"dateOfExit": "2022-09-08",
"servicePeriod": "38 Months",
"passbookEntries": [
{
"status": "Credited",
"description": "Cont. For Due-Month 102022",
"employeeShare": "530",
"employerShare": "160",
"pensionShare": "370",
"month": "09",
"year": "2022",
"dateOfApproval": "2022-10-14"
}
]
}
]
}
}
In the response we would an array of objects, where each object details are as follows:


PARAMETERS | DESCRIPTION | TYPE |
|---|---|---|
result | The main object containing details about UAN data, recent employer data, passbook details and additional employment-related information. | Object |
result.uan | UAN of the employee | String |
 | Name of the employee registered under that establishment | String |
result.dateOfBirth | Date of birth of the employee registered under that establishment | String |
result.mobile | Mobile number of the employee | String |
result.gender | Gender of the employee | String |
result.guardianName | Guardian name of the employee | String |
result.employers | Employers associated with given data | Object |
result.employers[].establishmentName | Name of the establishment | String |
result.employers[].memberId | Member ID of the employee in the establishment | String |
result.employers[].organizationType | Type of organization (EXEMPTED/NON_EXEMPTED) | String |
result.employers[].totalEmployerShare | Total Employer Share | Number |
result.employers[].totalEmployeeShare | Total Employee Share | Number |
result.employers[].totalPensionShare | Total Pension Share | Number |
result.employers[].dateOfJoining | Date of Joining of employee for that particular establishment | String |
result.employers[].dateOfExit | Date of Exit of employee for that particular establishment | String |
result.employers[].servicePeriod | Service period in that establishment | String |
result.employers[].passbookEntries | Passbook entries for that establishment | Object |
result.employers[].passbookEntries[].status | Status of the passbook entry (Credited) | String |
result.employers[].passbookEntries[].description | Description of the passbook entry | String |
result.employers[].passbookEntries[].employeeShare | Employee Share in the passbook entry | String |
result.employers[].passbookEntries[].employerShare | Employer Share in the passbook entry | String |
result.employers[].passbookEntries[].pensionShare | Pension Share in the passbook entry | String |
result.employers[].passbookEntries[].month | Month of the passbook entry | String |
result.employers[].passbookEntries[].year | Year of the passbook entry | String |
result.employers[].passbookEntries[].dateOfApproval | Date of approval of the passbook entry | String |

NOTE: Above fields are Compulsory during 200 OK Response.
Sample Status Codes And Messages
{
"error": {
"reason": "VALIDATION_ERROR",
"status": 400,
"message": "\"mobileNumber\" is not allowed to be empty",
"type": "Bad Request",
"statusCode": 400,
"name": "error"
}
}
Messages:
1. "\"mobileNumber\" is not allowed to be empty"
2. "\"panNumber\" is not allowed to be empty"
3. "Invalid PAN number format"
4. "\"uanNumber\" with value \"10130018829\" fails to match the required pattern: /^\\d{12}$/"
5. "\"uanNumber\" is not allowed to be empty"
6. "\"dateOfBirth\" with value \"08-07-202\" fails to match the required pattern: /^(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-\\d{4}$/",
7. "\"dateOfBirth\" is not allowed to be empty"
8. "\"employeeName\" is not allowed to be empty"