Hamara HR data API: punches, payslips, KYC
Hamara HR — listed on Google Play as Hamara Jobs (Qjobs) — is Quess Corp's employee self-service app for associates on the Heptagon PeopleDesk stack. After picking a company tenant, an associate signs in with email and password (Truecaller OTP is offered on some tenants) and lands on a home dashboard that opens GPS attendance punch, monthly payslips, leave apply-and-track, Aadhaar and bank KYC, expense claims, a digital ID card, and — for team leaders — reportee details and manager self-service. Quess Corp is a Bengaluru-headquartered Indian staffing and workforce-management company; the app is the white-label phone for Quess associates and other PeopleDesk tenants in India, sitting next to Darwinbox, greytHR and ADP Mobile as the staffing-vertical ESS. Support routes to [email protected].
Payslip month lists stamp each associate's dateOfJoin against a defaultYear, then expose a monthList of downloadable slips keyed by payslipType, filename and url (incentive and reimbursement types ride alongside). GPS punches land as checkInTime / checkOutTime on a shiftDate, tied to shiftName, outletId and attendance_type, after a pre-check that can set block_checkin. Leave rows carry fromDate, toDate, noOfDays, leaveTypeName and approvalFlag.
Identity and pay-account fields sit next to that time record. KYC rows return labelName / value with qcStatus and isVerified; bank verification adds aadhaarNumber, validAadhaar, faceScore, upiId and the IFSC directory shape (IFSC, BANK, BRANCH, MICR). Expense claims list claimNo, claimAmount, billNo and cityName. The digital ID card exposes employeeId, designation and validUpto; a team-leader lookup adds reportee contactNo, pincode, latitude and longitude. Session bootstrap hangs off token, companyCode and companyUrl after the tenant picker returns subDomainName and customerId.
Payroll, onboarding and field-ops systems all need this per-associate record. Finance joins payslipType and the month PDF url with day-wise checkInTime so a missing punch is caught before the slip is issued. Onboarding tools confirm aadhaarNumber and the IFSC / upiId account before the first pay run. T&E bots reconcile claimAmount against the same day's outletId. Field-ops plots reportee latitude / longitude and overlays leave approvalFlag. openData Studio turns this attendance, payslip, KYC and claims record into callable open data for those integrations.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
List tenant domains
POST
/v1/tenants/resolveopendataReturns the PeopleDesk tenants matching an associate email so the app can set the runtime company host before login.
Auth: Unauthenticated tenant picker. JSON body carries the associate email so the app can list matching company tenants before sign-in.
- company
- subDomainName
- customerId
- quessCompany
- quessCompanyFlag
- quessLabel
- mobileLogin
- companyHelpline
- companyHelplineEmail
- privacyPolicyLink
- termsAndConditionLink
- isFindEnable
- isDropdownFlag
- userLoginDisableFlag
POST /v1/tenants/resolve HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "platform": "Android" }{ "status": true, "message": "ok", "domains": [ { "company": "Quess Corp", "subDomainName": "quess", "customerId": 23, "quessCompany": 1, "quessCompanyFlag": 1, "quessLabel": "Hamara HR", "mobileLogin": 1, "companyHelpline": "1800-000-000", "companyHelplineEmail": "[email protected]", "privacyPolicyLink": "https://example.invalid/privacy", "termsAndConditionLink": "https://example.invalid/terms", "isFindEnable": 0, "isDropdownFlag": 1, "userLoginDisableFlag": 0 } ] }Associate login
POST
/v1/identity/sessionosintAuthenticates the associate and returns the session token plus company, self-service URLs, geo and MFA flags that personalize the home dashboard.
Auth: Email + password (optional customerId when the tenant picker already resolved one). No prior Bearer. Response token is sent as Authorization Bearer on later calls.
- token
- userId
- loginUserId
- loggedUserId
- companyCode
- companyName
- companyUrl
- customerName
- employeeMobileNumber
- logo
- profilePicture
- mssUrl
- attendanceMssUrl
- shiftRosterMssUrl
- otpFlag
- mfaLoginFlag
- timeZone
- supportEmailId
- trueCallerFlag
- mobileVerifyFlag
- geoLocation
- beatFlag
- gpsGlag
POST /v1/identity/session HTTP/1.1 Content-Type: application/json { "email": "[email protected]", "password": "******", "customerId": 23, "platform": "Android" }{ "status": true, "message": "Login successful", "token": "<session_token>", "userId": "U-10432", "loginUserId": "[email protected]", "loggedUserId": 10432, "companyCode": "QUESS", "companyName": "Quess Corp", "companyUrl": "https://tenant.example.invalid/", "customerName": "Quess Corp", "employeeMobileNumber": "9876543210", "logo": "https://cdn.example.invalid/logo.png", "profilePicture": "https://cdn.example.invalid/profile.png", "mssUrl": "https://mss.example.invalid/", "attendanceMssUrl": "https://mss.example.invalid/attendance", "shiftRosterMssUrl": "https://mss.example.invalid/roster", "otpFlag": 0, "mfaLoginFlag": 0, "timeZone": "Asia/Kolkata", "supportEmailId": "[email protected]", "trueCallerFlag": 1, "mobileVerifyFlag": 1, "geoLocation": [{"latitude": "12.9716", "longitude": "77.5946"}], "beatFlag": 0, "gpsGlag": "1" }Home dashboard (main)
POST
/v1/home/overviewopendataLoads the signed-in associate's home envelope — identity, join date, currency, digital-ID and face-detection flags, and the attendance/leave self-service URLs behind the dashboard tiles.
Auth: Bearer session token from associate login.
- employeeId
- employeeName
- employee_ref_id
- companyCode
- companyName
- companyUrl
- customerName
- dateOfBirth
- dateOfJoin
- currency
- attendanceMessage
- digitalIdCard
- faceDetectionFlag
- locationTracking
- blockCheckin
- leaveMssUrl
- attendanceMssUrl
POST /v1/home/overview HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "platform": "Android" }{ "status": true, "employeeId": "E-10432", "employeeName": "Priya Sharma", "employee_ref_id": "QC10432", "companyCode": "QUESS", "companyName": "Quess Corp", "companyUrl": "https://tenant.example.invalid/", "customerName": "Quess Corp", "dateOfBirth": "1994-03-12", "dateOfJoin": "2021-06-01", "currency": "INR", "attendanceMessage": "Shift starts at 09:00", "digitalIdCard": 1, "faceDetectionFlag": 1, "locationTracking": 1, "blockCheckin": 0, "leaveMssUrl": "https://mss.example.invalid/leave", "attendanceMssUrl": "https://mss.example.invalid/attendance" }Attendance pre-check
POST
/v1/time/punch-gateopendataGates the punch button: returns whether check-in is blocked, the previous attendance action, and a prompt before the associate posts a GPS punch.
Auth: Bearer session token from associate login.
- block_checkin
- previous_Action
- prompt_message
- status
POST /v1/time/punch-gate HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432", "latitude": "12.9716", "longitude": "77.5946" }{ "status": true, "block_checkin": 0, "previous_Action": "checkout", "prompt_message": "You can check in now" }GPS attendance punch (check-in)
POST
/v1/time/clock-inopendataRecords the associate's GPS check-in punch and returns the stamped checkInTime, assigned shift and outlet used by the attendance tile.
Auth: Bearer session token from associate login.
- checkInTime
- shiftName
- shiftid
- outletId
- attendance_type
- status
- message
POST /v1/time/clock-in HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432", "latitude": "12.9716", "longitude": "77.5946", "outletId": "OUT-12" }{ "status": true, "message": "Checked in", "checkInTime": "09:02:11", "shiftName": "General", "shiftid": 4, "outletId": "OUT-12", "attendance_type": "P" }Attendance detail (day-wise)
POST
/v1/time/day-ledgeropendataPulls the associate's day-wise punches, breaks, shift assignment and regularisation flags for a date window — the record behind the You-tab attendance calendar.
Auth: Bearer session token from associate login.
- employeeId
- employeeJoinDate
- from
- to
- attendanceType
- fullDayHours
- halfDayHours
- halfDayFlag
- overtimeFlag
- multiShiftFlag
- autoShiftFlag
- regularizeCount
- timesheetFlag
- checkInTime
- checkOutTime
- breakInTime
- breakOutTime
- shiftName
- shiftid
- shiftDate
- outletId
- allowRegularisation
- allowOtRequest
- od_flag
POST /v1/time/day-ledger HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432", "from": "2026-09-01", "to": "2026-09-30" }{ "status": true, "employeeId": "E-10432", "employeeJoinDate": "2021-06-01", "from": "2026-09-01", "to": "2026-09-30", "attendanceType": "monthly", "fullDayHours": 8, "halfDayHours": 4, "halfDayFlag": 1, "overtimeFlag": 1, "multiShiftFlag": 0, "autoShiftFlag": 1, "regularizeCount": 2, "timesheetFlag": 1, "attendanceDetails": [ { "shiftDate": "2026-09-12", "checkInTime": "09:02:11", "checkOutTime": "18:11:04", "checkOutFlag": 1, "breakInTime": "13:00:00", "breakOutTime": "13:30:00", "attendance_type": "P", "shiftName": "General", "shiftid": 4, "shiftType": "fixed", "shiftTotalDuration": "09:00", "outletId": "OUT-12", "allowRegularisation": 1, "allowOtRequest": 1, "od_flag": 0 } ] }Payslip months + PDF
POST
/v1/pay/statementsopenfinanceLists the associate's available payslip months (and related incentive/reimbursement types) and returns the PDF filename/url used by the My Documents payslip screen.
Auth: Bearer session token from associate login.
- dateOfJoin
- defaultYear
- filename
- folderName
- url
- payslipType
- incentiveType
- reimbursementType
- monthList
- display
- month
- year
- signatureFlag
- documentsWithSignature
- widgetTitle
- widgetCategories
- categoryName
- categoryUrl
POST /v1/pay/statements HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432", "year": 2026 }{ "status": true, "message": "ok", "dateOfJoin": "2021-06-01", "defaultYear": 2026, "filename": "payslip_Sep_2026.pdf", "folderName": "payslips", "url": "https://cdn.example.invalid/payslips/E-10432/2026-09.pdf", "payslipType": "salary", "incentiveType": "variable", "reimbursementType": "claim", "monthList": [ { "display": "Sep 2026", "month": 9, "year": 2026, "icon": "pdf", "signatureFlag": 1, "documentsWithSignature": 1 } ], "dashData": { "payslipWidget": { "widgetTitle": "Payslips", "widgetIcon": "payslip", "widgetCategories": [ {"categoryName": "Salary", "categoryUrl": "salary"} ] } } }Leave list
POST
/v1/time-off/requestsopendataReturns the associate's leave applications with type, day count, half-day flag and approval state — the list behind the leave tile.
Auth: Bearer session token from associate login.
- id
- employeeId
- customerId
- fromDate
- toDate
- allDate
- noOfDays
- leaveType
- leaveTypeName
- isHalfDayFlag
- approvalFlag
- reason
- createdAt
- createdBy
- leaveTypeCount
- attendanceStartCycle
- attendanceEndCycle
- halfDayFlag
- leaveBreFlag
- totalCount
POST /v1/time-off/requests HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432", "approvalFlag": 0 }{ "status": true, "totalCount": 2, "leaveType": "CL", "leaveTypeCount": 6, "attendanceStartCycle": "2026-09-01", "attendanceEndCycle": "2026-09-30", "halfDayFlag": 1, "leaveBreFlag": 0, "list": [ { "id": 88120, "employeeId": "E-10432", "customerId": 23, "fromDate": "2026-10-05", "toDate": "2026-10-06", "allDate": "2026-10-05,2026-10-06", "noOfDays": 2, "leaveType": "CL", "leaveTypeName": "Casual Leave", "isHalfDayFlag": 0, "approvalFlag": 0, "reason": "Family function", "createdAt": "2026-09-28 11:04:00", "createdBy": "E-10432" } ] }KYC details
POST
/v1/identity/kyc-profileosintReads the associate's KYC field rows (Aadhaar and bank proofs) with QC status, OTP flags and the IFSC helper URLs used to fill bank details.
Auth: Bearer session token from associate login.
- qcStatus
- otpFlag
- otpNote
- pendingRequestFlag
- pendingRequestNote
- id
- labelName
- value
- isVerified
- isEdit
- bankVerifyUrl
- bankVerifyToken
- bankGetOtherDetailsUrl
POST /v1/identity/kyc-profile HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432" }{ "status": true, "qcStatus": "pending", "otpFlag": 1, "otpNote": "OTP sent to registered mobile", "pendingRequestFlag": 1, "pendingRequestNote": "Bank proof under review", "response": [ { "id": 1, "labelName": "Aadhaar", "value": "XXXX-XXXX-3210", "isVerified": 0, "isEdit": 1, "otpFlag": 1, "bankDetails": { "bankVerifyUrl": "https://ifsc.example.invalid/", "bankVerifyToken": "<bank_verify_token>", "bankGetOtherDetailsUrl": "https://ifsc.example.invalid/SBIN0001234" } } ] }Bank / Aadhaar verification
POST
/v1/identity/account-checkopenfinanceVerifies the associate's Aadhaar and bank account, returning demographic fields, face-match score, UPI id and the IFSC directory record (BANK, BRANCH, MICR, IMPS/NEFT/RTGS/UPI).
Auth: Bearer session token from associate login.
- aadhaarNumber
- validAadhaar
- fullName
- fatherName
- dob
- gender
- faceScore
- faceStatus
- accountExists
- upiId
- zip
- careOf
- otpSent
- IFSC
- BANK
- BANKCODE
- BRANCH
- ADDRESS
- CITY
- STATE
- DISTRICT
- MICR
- IMPS
- NEFT
- RTGS
- UPI
POST /v1/identity/account-check HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432", "aadhaarNumber": "XXXXXXXX3210", "ifsc": "SBIN0001234" }{ "status": true, "data": { "aadhaarNumber": "XXXXXXXX3210", "validAadhaar": true, "fullName": "Priya Sharma", "fatherName": "Ramesh Sharma", "dob": "1994-03-12", "gender": "F", "faceScore": 92, "faceStatus": true, "accountExists": true, "upiId": "priya@sbi", "zip": "560001", "careOf": "Ramesh Sharma", "otpSent": true, "kycBankDetailsResult": { "IFSC": "SBIN0001234", "BANK": "State Bank of India", "BANKCODE": "SBIN", "BRANCH": "MG Road", "ADDRESS": "MG Road, Bengaluru", "CITY": "Bengaluru", "STATE": "Karnataka", "DISTRICT": "Bengaluru Urban", "CENTRE": "Bengaluru", "CONTACT": "08012345678", "MICR": "560002002", "IMPS": true, "NEFT": true, "RTGS": true, "UPI": true } } }Expense claim list
POST
/v1/expense/claimsopenfinanceLists the associate's expense claims with claim number, amount, category, bill and approval flag — the ledger behind the claims tile.
Auth: Bearer session token from associate login.
- id
- claimNo
- claimAmount
- totalAmount
- categoryName
- subCategoryName
- categoryId
- subCategoryId
- billNo
- claimReason
- status
- approvalFlag
- employeeId
- employeeName
- fromDate
- toDate
- cityName
- expenseId
- expenseName
- activityDate
- branchId
POST /v1/expense/claims HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432" }{ "status": true, "claims": [ { "id": 4401, "claimNo": "CLM-4401", "claimAmount": 1850.5, "totalAmount": 1850.5, "categoryName": "Travel", "subCategoryName": "Local conveyance", "categoryId": 2, "subCategoryId": 9, "billNo": "B-7781", "claimReason": "Client site commute", "status": "pending", "approvalFlag": 0, "employeeId": "E-10432", "employeeName": "Priya Sharma", "fromDate": "2026-09-10", "toDate": "2026-09-10", "cityName": "Bengaluru", "expenseId": 12, "expenseName": "Auto", "activityDate": "2026-09-10", "branchId": 7 } ] }Digital ID card
POST
/v1/badge/currentosintReturns the associate's digital ID card — employee id, name, designation, photo and validity — shown on the home digital-ID tile.
Auth: Bearer session token from associate login.
- employeeId
- employeeName
- designation
- profilePicture
- validUpto
- companyLogo
- generateFlag
POST /v1/badge/current HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "employeeId": "E-10432" }{ "status": true, "companyLogo": "https://cdn.example.invalid/logo.png", "generateFlag": 1, "idCard": { "employeeId": "E-10432", "employeeName": "Priya Sharma", "designation": "Associate", "profilePicture": "https://cdn.example.invalid/profile.png", "validUpto": "2027-03-31" } }Team-leader employee details
POST
/v1/team/member-profileosintFor a team leader, returns a reportee's contact, branch geo (latitude/longitude, pincode) and manager chain — the record behind My Team employee detail.
Auth: Bearer session token from associate login (team-leader / manager self-service session).
- empId
- employeeName
- contactNo
- doj
- roleName
- branchName
- branchCode
- branchId
- branchStreet
- buildingName
- cityName
- state
- country
- pincode
- latitude
- longitude
- managerEmpId
- managerId
- managerName
- managerUserId
- segmentName
- profilePicture
POST /v1/team/member-profile HTTP/1.1 Authorization: Bearer <session_token> Content-Type: application/json { "empId": "E-10432" }{ "status": true, "empDetails": { "empId": "E-10432", "employeeName": "Priya Sharma", "contactNo": "9876543210", "doj": "2021-06-01", "roleName": "Associate", "branchName": "Bengaluru MG Road", "branchCode": "BLR-01", "branchId": 7, "branchStreet": "MG Road", "buildingName": "Quess Tower", "cityName": "Bengaluru", "state": "Karnataka", "country": "India", "pincode": "560001", "latitude": "12.9716", "longitude": "77.5946", "managerEmpId": "E-2001", "managerId": 2001, "managerName": "Anita Rao", "managerUserId": "anita.rao", "segmentName": "Staffing", "profilePicture": "https://cdn.example.invalid/profile.png" } }
Data categories
- tenant domains
- associate profile
- GPS attendance
- payslips
- leave requests
- KYC / Aadhaar
- bank IFSC
- expense claims
- digital ID card
- team roster
Where teams use this data
Payroll month-close against punches
Finance joins each associate's payslipType and monthList url with day-wise checkInTime / checkOutTime and fullDayHours so a missing punch is caught before the PDF is issued.
Aadhaar and IFSC onboarding checks
Workforce onboarding tools read aadhaarNumber, validAadhaar, faceScore and the IFSC / BANK / MICR / upiId record to confirm the salary account before the first pay run.
Expense-claim audit trail
T&E bots pull claimNo, claimAmount, billNo, cityName and approvalFlag to reconcile local-conveyance claims against the attendance outletId for the same activityDate.
Team-leader geo roster
Field-ops dashboards plot reportee latitude / longitude and pincode from team employee details, then overlay GPS punches to see who is on-site versus on leave (leaveTypeName, approvalFlag).
Frequently asked questions
What data does the Hamara HR interface expose?
Per-associate PeopleDesk records: tenant picker (subDomainName, customerId, quessLabel), login session (token, companyCode, companyUrl), dashboard identity (employeeId, dateOfJoin, currency), GPS attendance (checkInTime, outletId, shiftName), payslip months (payslipType, filename, url), leave (leaveTypeName, noOfDays, approvalFlag), KYC/Aadhaar and IFSC bank fields, expense claims (claimNo, claimAmount), digital ID card, and team-leader reportee geo.
How does the app authenticate its requests?
An associate first resolves the company tenant from their work email, then signs in with email and password (some tenants offer Truecaller OTP). The session token from that sign-in is sent as Authorization Bearer on later calls. MFA and mobile-verify flags on the session tell the home screen whether a second factor is required.
Which calls carry payroll and KYC?
Payslip months return dateOfJoin, payslipType, filename and the PDF url for each available month. KYC field rows expose labelName, value, qcStatus and isVerified; the bank/Aadhaar check adds validAadhaar, faceScore, upiId and the IFSC directory record (BANK, BRANCH, MICR, UPI).
Is the API host the same for every company?
No. Each PeopleDesk tenant has its own host, chosen during the tenant picker and returned as companyUrl at sign-in, so associates at different customers do not share a single API host.
Apps similar to Hamara HR
- Darwinbox — Darwinbox is an India-built end-to-end HCM platform whose employee app covers attendance punches, leave and payslips for Darwinbox tenants.
- greytHR — greytHR is an India HRMS and payroll suite whose employee app is one-tap access to leave, attendance and payslips for greytHR companies.
- ADP Mobile Solutions — ADP Mobile Solutions is ADP's employee self-service app for pay, time and HR tasks at companies that run payroll on ADP.
- Keka HR — Keka is a Hyderabad-built HR and payroll platform whose mobile app lets employees mark attendance, apply for leave and view pay on one tenant.
- Zoho People — Zoho People is Zoho's cloud HRMS with an employee self-service portal for leave, attendance check-in/out and everyday HR tasks.
- PagarBook — PagarBook is an India staff-attendance and payroll app that SMEs use to mark attendance, run salary and handle statutory payments.
- Workday — Workday is an enterprise HCM suite whose mobile app lets employees check in and out, view team attendance, and handle time, pay and HR tasks.
Topics
- Hamara HR API
- Hamara Jobs Qjobs API
- Quess Corp employee app
- PeopleDesk attendance API
- payslip months API
- Aadhaar KYC IFSC
- expense claim list
- associate self-service API
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use