UAN Passbook Without OTP
Introduction:
The UAN Passbook Without OTP service allows employees to conveniently access their EPF passbook details without requiring an OTP-based login. By providing UAN, 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' \
--header 'Content-Type: application/json' \
--header 'Authorization: <auth-token>' \
--data '{
"uan": "100601362414",
"consentFlag": "Y",
"callBackUrl": "",
"cutOffTime": "",
"ttl": 0
}'Request Headers:
Key | Value |
|---|---|
Authorization | shared by Signzy |
Content-type | application/json |
Request Body
{
"uan": "",
"consentFlag": "Y",
"callBackUrl": "",
"cutOffTime": "",
"ttl": 0
}PARAMETERS | DESCRIPTION | TYPE | VALUE (MANDATORY OR OPTIONAL) |
|---|---|---|---|
uan | 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 | 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. |  | OPTIONAL |

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 |
result.name | 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": "ERROR",
"status": 500,
"message": "Internal Server Error",
"type": "Internal Server Error",
"statusCode": 500,
"name": "error"
}
}FAQ
Q1. What are the popular methods of EPFO deductions
Ans : Companies make contribution for their emplopyees under 3 categories
- 12% of basic salary : this is a max amount an employee can contribute toward their EPFO
- INR 1800 : this is the min amount an employee can contribute towards their EPFO
- Nil : this option is not offered by most employers.
Note: Basic Salary is typically 40 or 50% of total salary. So the EPFO deductions can help identify salary of an employee.