Employment History by UAN — EPFO Records
Retrieve the full employment history linked to a UAN — employer names, joining/exit dates, and PF contributions from EPFO records.
curl -X GET "https://production.deepvue.tech/v2/verification/epfo/uan-to-employment-history?uan_number=example_string&generate_pdf=true" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN (JWT)" \
-H "x-api-key: YOUR_API_KEY"
import requests
import json
url = "https://production.deepvue.tech/v2/verification/epfo/uan-to-employment-history?uan_number=example_string&generate_pdf=true"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"x-api-key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://production.deepvue.tech/v2/verification/epfo/uan-to-employment-history?uan_number=example_string&generate_pdf=true", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN (JWT)",
"x-api-key": "YOUR_API_KEY"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://production.deepvue.tech/v2/verification/epfo/uan-to-employment-history?uan_number=example_string&generate_pdf=true", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN (JWT)")
req.Header.Set("x-api-key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://production.deepvue.tech/v2/verification/epfo/uan-to-employment-history?uan_number=example_string&generate_pdf=true')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN (JWT)'
request['x-api-key'] = 'YOUR_API_KEY'
response = http.request(request)
puts response.body
{
"code": 200,
"timestamp": 1738342015371,
"transaction_id": "a00ad6a679d549d6bd002afdf2b226c0",
"sub_code": "SUCCESS",
"message": "Employment History fetched successfully",
"data": {
"pdf_url": null,
"employment_history": [
{
"name": "TAHIR AHMED CHOUDHURY",
"guardian_name": "JOBUR AHMED CHOUDHURY",
"establishment_name": "MODERN VEER RAYS SECURITY FORCE (INDIA) PVT LTD",
"member_id": "BGBNG00420230000027886",
"date_of_joining": "2024-04-12",
"date_of_exit": null,
"last_pf_submitted": "2025-01-15"
}
]
}
}
{
"code": 200,
"timestamp": 1745493111117,
"transaction_id": "7066b2de80b942b9b2839cf6c6d5e01a",
"sub_code": "DETAILS_NOT_FOUND",
"message": "No linked employment history found",
"data": null
}
{
"detail": "Inactive client_id"
}
{
"detail": "Not authenticated"
}
{
"detail": "Not a valid token"
}
{
"code": 422,
"timestamp": 1745493058587,
"transaction_id": "0d083294e47b4e288b45a80eefe2231d",
"sub_code": "INVALID_UAN_NUMBER",
"message": "Invalid UAN Number"
}
{
"code": 500,
"timestamp": 1745493217008,
"transaction_id": "27102776e67647a79c29ec20f2a2961e",
"sub_code": "SOURCE_FAILURE",
"message": "Source failure. Unable to validate."
}
/v2/verification/epfo/uan-to-employment-history
ACCESS_TOKEN generated from the authorize endpoint. Should be included in the header as Bearer .
The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token (JWT). ACCESS_TOKEN generated from the authorize endpoint. Should be included in the header as Bearer .
API Key for authentication. The CLIENT_SECRET provided to you. This header parameter is required for authentication purposes.
Query Parameters
Responses
Overview
This API retrieves comprehensive employment history records linked to a Universal Account Number (UAN). You can use this endpoint to fetch detailed employment data associated with a given UAN identifier.
What's new in V2
The V2 iteration introduces three notable improvements over the previous version:
- Better uptime -- Backend enhancements ensure more consistent availability.
- Reduced source failures -- Improved handling of upstream dependencies for smoother performance.
- Date of exit -- Get clearer employment histories with the newly added
date_of_exitfield in each record.
Successful requests return either employment history records or a notification that no linked history exists for the provided UAN. Both responses carry an HTTP 200 status code.
Last updated 4 weeks ago
Built with Documentation.AI