Advanced Employment Verification
Introduction
The Advanced Employment Verification API is a robust tool designed to retrieve an individual's recent employment details, particularly within the last three months, by cross-referencing with their Provident Fund (PF) information. This API offers versatility, allowing users to input a mobile number, PAN (Permanent Account Number), UAN (Universal Account Number), or basic details such as Name, Date of Birth (DOB), and employer name for verification purposes.
Key Features
- Comprehensive Employment Details: The API provides employment information including the company name, Member ID, date of joining, and date of leaving the company.
- Basic Information Retrieval: Additionally, it offers basic details such as the individual's name, birthdate, gender, and Aadhar verification status.
- Double Check Mechanism: The API performs a double check using EPFO PF filings to validate employment status, especially in cases where the company is non-operative or if the user has left the company without updating their employment status.
- Additional Details: Users can also access extra information such as PAN number, bank account information, and even the name of a relative linked to the individual's UAN number.
Benefits
- Enhanced Verification: By cross-referencing with PF information and providing a wealth of additional details, the API ensures thorough and accurate employment verification.
- Informed Decision-Making: Access to a wide range of information enables users to make well-informed decisions regarding employment-related matters.
Conclusion
The Advanced Employment Verification API offers a comprehensive solution for retrieving recent employment details, backed by a double check mechanism and access to a variety of additional information. This empowers users to conduct thorough verifications and make informed decisions efficiently.
API description
API Endpoint's
curl --location 'https://api.signzy.app/api/v3/api/advance-employment-verification' \
--header 'Authorization: <your-auth-token>' \
--header 'Content-Type: application/json' \
--data '{
"mobileNumber": "8008331337",
"panNumber": "DFYPK1218G",
"uanNumber": "",
"dateOfBirth": "",
"employeeName": "",
"employerName": "",
"nameMatchMethod": "",
"ttl": 0,
"cutOffTime": "",
"employmentLookupPeriod": "",
"callbackUrl": ""
}'Headers
Key | Value | Required | Description |
|---|---|---|---|
Authorization | XXXXXXXXXXXXXXX | Mandatory | An authentication token to authorize the request. Reach out to the Signzy support team to get one created. |
Content-type | application/json | Mandatory | The type of content that the request body contains. |
Request Data
{
"mobileNumber": "8008331337",
"panNumber": "DFYPK1218G",
"uanNumber": "",
"dateOfBirth": "",
"employeeName": "",
"employerName": "",
"nameMatchMethod": "",
"ttl": 0,
"cutOffTime": "",
"employmentLookupPeriod": "",
"callbackUrl": ""
}Details of the request properties
Parameter | Description | Validation Checks | Type | Required |
|---|---|---|---|---|
mobileNumber | 10-digit Mobile number. | 10 digits (only numeric) | String | CM |
panNumber | PAN (Permanent Account Number). | Regex for PAN number | String | CM |
uanNumber | Universal Account Number(UAN). | 12 digits (only numeric) | String | CM |
dateOfBirth | Date of birth of the individual. | Format: DD-MM-YYYY | String | CM |
employeeName | Name of the employee | (Max 500 character) Employee Name can be given as an input to do an employee name match with the details in UAN basic details | String | CM |
employerName | Name of the employer | (Max 500 Character) employerName can be given as input only when employeeName is also given | String | O |
nameMatchMethod | Method used to match employee and employer names | Enum: fuzzy or exact (Default: fuzzy) | String | O |
ttl | Used to specify the ttl, which is the time till the user wants to store the data in cache | (Min Value: ) | Number | O |
employmentLookupPeriod | To check the recent activity of employment of the user | Valid Values (45, 60 and 90) | String | O |
cutOffTime | The time limit till which the data should be tried to post to callbackUrl | (Min Value: 1 and Max Value: 15) | String | O |
callbackUrl | The url at which the data should be posted | | String | O |
CM - Conditionally Mandatory; O -Optional
Note: If UAN, PAN, mobile number, and date of birth are all provided in the request, the search will be performed using the UAN only. PAN, mobile number, and date of birth will be ignored.
Methods of Inquiry
- Phone, or PAN, or Employee Name + DOB
- Any combination of the above are also allowed
- UAN
Response
{
"result": {
"uan": [
"101605561960"
],
"summary": {
"recentEmployerData": {
"establishmentName": "SIGNZY TECHNOLOGIES PRIVATE LIMITED",
"establishmentId": "PUPUN1753022000",
"memberId": "PUPUN17530220000010422",
"dateOfExit": "",
"dateOfJoining": "2023-03-01",
"leaveReason": "",
"employerConfidenceScore": null,
"matchingUan": "101605561960",
"epfo": {
"isRecent": true,
"isNameUnique": true,
"hasPfFilingsDetails": true
}
},
"matchingUan": "101605561960",
"isEmployed": true,
"employeeNameMatch": null,
"employerNameMatch": null,
"uanCount": 1,
"dateOfExitMarked": false,
"employeeConfidenceScore": null
},
"uanDetails": {
"101605561960": {
"basicDetails": {
"gender": "MALE",
"dateOfBirth": "1997-04-04",
"employeeConfidenceScore": null,
"name": "SOURABH KANOJIA",
"mobile": "",
"aadhaarVerificationStatus": 1
},
"employmentDetails": {
"establishmentName": "SIGNZY TECHNOLOGIES PRIVATE LIMITED",
"establishmentId": "PUPUN1753022000",
"memberId": "PUPUN17530220000010422",
"dateOfExit": "",
"dateOfJoining": "2023-03-01",
"leaveReason": "",
"employerConfidenceScore": null
},
"additionalDetails": {
"aadhaar": "",
"memberId": "PUPUN17530220000010422",
"email": "s*************[email protected]",
"pan": "EK******0G",
"bankIfsc": "SBIN*****30",
"bankAccNo": "*******5471",
"bankAddress": "STATE BANK OF INDIA,KATANGA JABALPUR",
"relation": "F",
"relativeName": "PAPPU KANOJIA"
}
}
},
"uanSource": [
{
"uan": "101605561960",
"source": "uan"
}
],
"nameDobFilteringScore": null,
"epfoDetails": {
"matches": [
{
"name": "SOURABH KANOJIA",
"confidence": 1,
"epfHistory": {
"JUN-25": "true",
"MAY-25": "true",
"APR-25": "true"
}
}
],
"pfFilingDetails": [
{
"totalAmount": 4321730,
"employeesCount": 275,
"wageMonth": "JUN-25"
},
{
"totalAmount": 3260682,
"employeesCount": 287,
"wageMonth": "MAY-25"
},
{
"totalAmount": 3437427,
"employeesCount": 294,
"wageMonth": "APR-25"
}
],
"establishmentInfo": {
"establishmentId": "PUPUN1753022000",
"establishmentName": "Signzy Technologies Private Limited",
"dateOfSetup": "2015-11-03",
"ownershipType": "Private Limited Company"
}
}
}
}Details of the response properties
Key | Type | Description |
|---|---|---|
result | Object | The main container for the EPFO API response data. |
result.uan | Array of Strings | An array containing the UAN (Universal Account Number).Might return multiple UAN if DOB and employee name is used as input. |
result.summary | Object | A summary of the individual's EPFO status and employment details. |
result.summary.recentEmployerData | Object | Detailed information about the individual's recent employer |
result.summary.recentEmployerData.memberId | String | Member ID associated with the individual's employment. |
summary.recentEmployerData.establishmentId | String | Establishment ID of the company where the individual is employed. |
result.summary.recentEmployerData.dateOfExit | String | Date of exit from employment in format(YYYY-MM-DD). If date of exit is not provided, then the details provided are the person’s current employment. |
summary.recentEmployerData.dateOfJoining | String | Date of joining the provided company in format (YYYY-MM-DD). |
result.summary.recentEmployerData.dateOfJoining | String | Name of the company where the individual is employed. |
result.summary.recentEmployerData.employerConfidenceScore | Null or Float | Fuzzy matching of ”employerName” in input and “establishmentName” to return Float else returns Null (when employer name is not given as input). Enter the full name of the company to avoid less confidencescore. |
result.summary.recentEmployerData.matchingUan | String | Matching Universal Account Number (UAN) with the Input. |
result.summary.recentEmployerData.epfo | Object | Information related to EPFO details. |
result.summary.recentEmployerData.epfo.isRecent | Boolean | True if employee PF is found for the latest month (at least one month),else False. |
result.summary.recentEmployerData.epfo.isNameUnique | Boolean | True if the employee's name is unique in the organization, else False. |
result.summary.recentEmployerData.epfo.hasPfFilingsDetails | Boolean | True if PF Filings data of each month for which the employee data has been checked, else False. |
result.summary.isEmployed | Boolean | True If “employerNameMatch” is true and “employeeNameMatch” is true and employeehasn’t exited from the company(when date_of_exit is empty) and employee PF filing is found in at least one month in last 3 months(is_recent is true) else False |
result.summary.employeeNameMatch | Boolean | Check if “employeeName” in input and “name” in output matches. Returns True is employeeconfidenceScore is >0.8 else False. |
result.summary.employerNameMatch | Boolean | Check if “employerName” in input and “establishmentName” in output matches. Returns True is employerconfidenceScore is >0.8 else False. |
result.summary.uanCount | Integer | Count of UAN (Universal Account Number) returned as result. (Can be more than 1 when DOB and employee name is used as input). |
result.summary.dateOfExitMarked | Boolean | True if the date of exit has been marked. Else False. |
result.uanDetails | Object | Detailed information about the provided Universal Account Numbers. |
result.uanDetails.[UAN] | Object | UAN-specific details. |
result.uanDetails.[UAN].basicDetails | Object | Basic information about the employee. |
result.uanDetails.[UAN].basicDetails.gender | String | Gender of the employee. |
result.uanDetails.[UAN].basicDetails.dateOfBirth | String | Date of birth of the employee in format (YYYY-MM-DD). |
result.uanDetails. [UAN].basicDetails.employeeConfidenceScore | Null or Float | Fuzzy matching of ”employeeName” in input and “name” to return Float else returns Null when employee name is not given as input. |
result.uanDetails.[UAN].basicDetails.name | String | Name of the employee. |
result.uanDetails.[UAN].basicDetails.mobile | String | Mobile number of the employee. Note: Currently the Mobile number linked with the UAN is not provided by the Source and hence it is given as an empty string. It will only be available once the Source makes it available |
| | |
result.uanDetails.[UAN].employmentDetails | Object | Detailed information about the employee's employment. |
result.uanDetails.[UAN].employmentDetails.memberId | String | Member ID associated with the individual's employment. |
result.uanDetails.[UAN].employmentDetails.establishmentId | String | Establishment ID of the company where the individual is employed |
result.uanDetails.[UAN].employmentDetails.dateOfExit | String | Date of exit from employment in format (YYYY-MM-DD). If date of exit is not provided, then the details provided are the person’s current employment. |
result.uanDetails.[UAN].employmentDetails.dateOfJoining | String | Date of joining the provided company in format (YYYY-MM-DD). |
result.uanDetails.[UAN].employmentDetails.leaveReason | String | Reason for leaving employment, if applicable |
result.uanDetails. [UAN].employmentDetails.establishmentName | String | Name of the establishment where the individual is employed |
result.uanDetails. [UAN].employmentDetails.employerConfidenceScore | Null or Float | Fuzzy matching of ”employerName” in input and “establishmentName” to return Float else returns Null (when employer name is not given as input). Enter the full name of the company to avoid less confidencescore. |
result.uanDetails.[UAN].additionalDetails | Object | Additional details about the employee like Aadhar Number, PAN number, Email ID, Bank details and Relative name. Additional details are provided only if it is present for the UAN number. |
result.uanDetails.[UAN].additionalDetails.aadhaar | String | This parameter is deprecated, and will contain Empty String. |
result.uanDetails.[UAN].additionalDetails.memberId | String | Member ID associated with the individual. |
result.uanDetails.[UAN].additionalDetails.email | String | Email address of the employee. |
result.uanDetails.[UAN].additionalDetails.pan | String | PAN (Permanent Account Number) of the employee. |
result.uanDetails.[UAN].additionalDetails.bankIfsc | String | Bank IFSC code of the employee. |
result.uanDetails.[UAN].additionalDetails.bankAccNo | String | Bank account number of the employee. |
result.uanDetails.[UAN].additionalDetails.bankAddress | String | Bank address of the employee. |
result.uanDetails.[UAN].additionalDetails.relation | String | Relationship of the relative to the individual (F-Father, H-Husband). |
result.uanDetails.[UAN].additionalDetails.relativeName | String | Name of the relative of the employee. |
result.uanSource | Array of Objects | Source through which the UAN was obtained. |
result.uanSource.[index].uan | String | UAN (universal account number) |
result.uanSource.[index].source | String | Source of the UAN (e.g., "mobile"). |
result.nameDobFilteringScore | Null or Float | Filtering score related to the employee's name and date of birth. This is applicable only when DOB and employee is input else return Null. |
result.epfoDetails | Object | EPFO-related details. |
result.epfoDetails.pfFilingDetails | Array of Objects | Details related to PF filings |
result.epfoDetails.pfFilingDetails.[index].totalAmount | Integer | Total amount for PF filings. |
result.epfoDetails.pfFilingDetails.[index].employeesCount | Integer | Number of employees for PF filings. |
result.epfoDetails.pfFilingDetails.[index].wageMonth | String | Month of wage for PF filings. |
Error Codes
Error Code | Description |
|---|---|
200 | Success - The request was processed successfully. |
400 | Bad Request - The request was malformed or invalid. |
404 | Not Found - The requested resource was not found. |
409 | Conflict - The request conflicts with the server state. |
500 | Internal Server Error - An unexpected error occurred. |