PagarBook 考勤、CTC 与员工借款记录
PagarBook:Attendance & Payroll 是 Staff Payroll & Attendance Khata App(pagarbook.com)面向印度中小企业主的安卓客户端,用来做数字化员工账本。店主用手机号 OTP 或 Truecaller 登录后,可添加员工、登记每日考勤、申请休假、配置 CTC 薪资结构、发放工资(含在线收款)并跟踪员工借款,全部落在同一本店面账里。Play 评分 4.37,约 9.2 万条评价,下载量逾一千万。它与 greytHR、Darwinbox、ADP Mobile Solutions 并列,但定位是中小企业员工账本,而不是按租户交付的企业 HRIS。
班组考勤日把 workedMinutes 与 punchTime 落成可对账行,同一载荷再把 present、absent、halfDay、fineMinutes 与 overTimeMinutes 汇总,并用 hasOddPunches、previousDatesApprovalPending 标出待批异常。休假账本并列 totalAccruedLeaves、totalAvailedLeaves 与 totalEncashableLeaves,申请带 startDate、endDate、leaveCategoryId 与 fromSession。
名册给出 totalStaff、onboardingPendingStaffCount 与每人的 companyStaffId。在职 CTC 卡给出 ctc、hasBreakup、templateId 与 statutoryTemplateId;工资明细拆 earnings、deductions 与带 paymentDate、onlineId 的 payments;借款台账用 loan / repayment 合计对照 records。
薪资运营、劳动合规与垫资对账可据此核对工时、应发与借款。openData Studio 把这些对象做成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
校验手机 OTP 并加载会话
POST
/v1/khata/session/phone-otposint用 phone 与 otp 换取登录用户 KmpUser,含后续员工、考勤与薪资调用所用的 token、businessId 与 businessName。
认证方式: 无需事先令牌。请求体为 phone 与短信 otp。返回的 KmpUser.token 作为后续请求的 Authorization: Bearer。
- id
- name
- token
- fcmToken
- phone
- businessId
- businessName
- language
- userPin
- currentAppFlavour
- adminCount
- businessStartDate
- employeeStartDate
POST /v1/khata/session/phone-otp HTTP/1.1 Content-Type: application/json { "phone": "9876543210", "otp": "482916" }{ "id": 44102, "name": "Ramesh Patel", "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9", "fcmToken": "fcm-8f21c4a0", "phone": "9876543210", "businessId": 9104, "businessName": "Patel Textiles", "language": 1, "email": "[email protected]", "userPin": null, "currentAppFlavour": "pagarbook", "adminCount": 2, "businessStartDate": "2019-06-01", "employeeStartDate": "2019-06-01" }列出全部员工
GET
/v1/khata/crew/rosteropendata分页返回企业员工名册,含 totalStaff、onboardingPendingStaffCount 与每人的 companyStaffId。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- sections
- summary
- cursor
- balance
- firstStartDate
- self
- workBasisStaffExists
- onboardingPendingStaffCount
- totalStaff
- id
- name
- companyStaffId
GET /v1/khata/crew/roster HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "sections": [{ "title": "Active", "employees": [{ "id": 55201, "name": "Anita Rao", "companyStaffId": "EMP-1024" }] }], "summary": { "balance": 18450.0, "firstStartDate": "2019-06-01", "self": {"id": 44102, "name": "Ramesh Patel", "companyStaffId": "OWNER"}, "workBasisStaffExists": true, "onboardingPendingStaffCount": 3, "totalStaff": 42 }, "cursor": "c-19f2" }按员工读取考勤
GET
/v1/khata/attendance/worker/{staffId}opendata返回一名员工的考勤行,以及 present、absent、workedMinutes、fineMinutes 与 overTimeMinutes 汇总。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- summary
- items
- sections
- previousDatesApprovalPending
- staffId
- companyStaffId
- attendanceDate
- workedMinutes
- effectiveWorkedMinutes
- present
- absent
- halfDay
- fineMinutes
- overTimeMinutes
- hasOddPunches
- hasUntaggedPunches
GET /v1/khata/attendance/worker/55201 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "summary": { "present": 18.0, "absent": 2, "halfDay": 1, "neutral": 0, "workedMinutes": 8640, "fineMinutes": 45, "overTimeMinutes": 120, "leaveCount": 1.0, "paidHoliday": 0.0, "paidWeeklyHoliday": 4.0, "onDuty": 0, "totalPendingApprovals": 1 }, "items": [{ "staffId": 55201, "companyStaffId": "EMP-1024", "attendanceDate": "2026-10-03", "workedMinutes": 480, "effectiveWorkedMinutes": 465, "leaveType": null, "leaveName": null, "leaveCategoryId": null, "isCompOffLeave": false, "hasUntaggedPunches": false, "hasOddPunches": false }], "sections": [], "previousDatesApprovalPending": false }按日期读取全员考勤
GET
/v1/khata/attendance/day/{date}opendata加载某一自然日的全员考勤看板,含待审批标记。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- summary
- items
- previousDatesApprovalPending
- present
- absent
- workedMinutes
- fineMinutes
- fineStaffCount
- overTimeMinutes
- overTimeStaffCount
- msaStaffCount
- totalPendingApprovals
- staffId
- attendanceDate
GET /v1/khata/attendance/day/2026-10-03 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "summary": { "present": 38.0, "absent": 3, "halfDay": 1, "neutral": 0, "workedMinutes": 18240, "fineMinutes": 90, "fineStaffCount": 4, "overTimeMinutes": 240, "overTimeStaffCount": 6, "onDuty": 1, "msaStaffCount": 2, "totalPendingApprovals": 2 }, "items": [{ "staffId": 55201, "companyStaffId": "EMP-1024", "attendanceDate": "2026-10-03", "workedMinutes": 480, "hasOddPunches": false, "hasUntaggedPunches": false }], "sections": [], "previousDatesApprovalPending": true }创建考勤打卡
POST
/v1/khata/attendance/punchopendata按 attendanceId 在 punchTime 写入一条 AMS 打卡。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- attendanceId
- punchTime
POST /v1/khata/attendance/punch HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Content-Type: application/json { "attendanceId": 880341, "punchTime": "2026-10-03T09:12:00+05:30" }{}读取员工休假余额
GET
/v1/khata/leave/balance/{staffId}opendata返回一名 staffId 的已计提、已休、结余与可兑现假期合计,可按 date 截取。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- summary
- leaveCategories
- staff
- availedWeeklyOffs
- leaveTemplate
- totalAccruedLeaves
- totalAvailedLeaves
- totalBalancedLeaves
- totalEncashableLeaves
- leaveBalance
- encashableLeaves
- accruedLeaves
- availedLeaves
- toBeAccrued
- templateLeaveCount
- isCompOffLeave
GET /v1/khata/leave/balance/55201?date=2026-10-03 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "summary": { "totalAccruedLeaves": 18.0, "totalAvailedLeaves": 6.5, "totalBalancedLeaves": 11.5, "totalEncashableLeaves": 4.0 }, "leaveCategories": [{ "id": 3, "name": "Casual Leave", "leaveBalance": 11.5, "encashableLeaves": 4.0, "templateLeaveCount": 18.0, "accruedLeaves": 18.0, "availedLeaves": 6.5, "toBeAccrued": 1.5, "isCompOffLeave": false }], "staff": {"id": 55201, "name": "Anita Rao"}, "availedWeeklyOffs": 4, "leaveTemplate": {"id": 12, "name": "Shop floor"} }提交休假申请
POST
/v1/khata/leave/requestopendata为 staffId 在 startDate/endDate 区间创建休假申请,并返回审批流信封。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- staffId
- startDate
- endDate
- leaveCategoryId
- fromSession
- toSession
- description
- customFields
- isCompOffLeave
- oldLeaveApplicationId
- staff
- approver
- approvers
- leaveApplication
- applicationApprovalFlow
POST /v1/khata/leave/request HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Content-Type: application/json { "staffId": 55201, "startDate": "2026-10-14", "endDate": "2026-10-16", "leaveCategoryId": 3, "fromSession": "FULL_DAY", "toSession": "FULL_DAY", "description": "Family function", "oldLeaveApplicationId": null, "customFields": [], "isCompOffLeave": false }{ "staff": {"id": 55201, "name": "Anita Rao"}, "approver": {"id": 44102, "name": "Ramesh Patel"}, "approvers": [{"id": 44102, "name": "Ramesh Patel"}], "leaveApplication": { "id": 77321, "startDate": "2026-10-14", "endDate": "2026-10-16", "description": "Family function", "fromSession": "FULL_DAY", "toSession": "FULL_DAY", "isCompOffLeave": false, "leaveAppliedDate": "2026-10-04", "attachments": [] }, "applicationApprovalFlow": {"status": "PENDING"} }读取员工当前薪资结构
GET
/v1/khata/ctc/active/{staffId}openfinance读取员工当前生效的 CTC 卡:ctc、period、是否拆分、模板 id 与法定配置。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- id
- staffId
- ctc
- startDate
- period
- hasBreakup
- fbpPlanId
- templateId
- statutoryTemplateId
- active
- components
- scheduledRevision
- statutoryConfig
GET /v1/khata/ctc/active/55201 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "id": 22011, "staffId": 55201, "ctc": 360000.0, "startDate": "2026-04-01", "period": "MONTHLY", "hasBreakup": true, "fbpPlanId": 0, "templateId": 44, "statutoryTemplateId": 7, "active": true, "components": [{ "name": "Basic", "amount": 15000.0 }], "scheduledRevision": null, "statutoryConfig": {"pfEnabled": true, "esiEnabled": true} }工资明细(应发、扣款、发放)
GET
/v1/khata/wage-detailopenfinance返回工资明细信封:earnings、deductions 以及带 paymentDate、onlineId 的 PaymentLog。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- payments
- adjustments
- earnings
- deductions
- id
- amount
- paymentType
- category
- paymentDate
- description
- onlineId
- employerId
- employeeId
- reportId
- canUpdate
- component
- entryDate
GET /v1/khata/wage-detail?staffId=55201 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "payments": [{ "id": 90112, "amount": 14250.0, "paymentType": 1, "category": "SALARY", "paymentDate": "2026-09-30", "description": "September salary", "onlineId": "pay_Mz8k21", "employerId": 9104, "employeeId": 55201, "reportId": 33001, "canUpdate": false }], "adjustments": {}, "earnings": [{ "id": 1, "component": "Basic", "amount": 15000.0, "description": null, "reportId": 33001, "entryDate": "2026-09-01", "canUpdate": false }], "deductions": [{ "id": 2, "component": "PF", "amount": 1800.0, "reportId": 33001, "entryDate": "2026-09-01", "canUpdate": false }] }员工借款台账
GET
/v1/khata/staff-advancesopenfinance列出员工借款与还款记录,并给出 totals.loan 与 totals.repayment。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- records
- totals
- id
- amount
- type
- description
- transactionDate
- employeeId
- employerId
- reportId
- createdAt
- updatedAt
- loan
- repayment
GET /v1/khata/staff-advances?employeeId=55201 HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "records": [{ "id": 6104, "amount": 5000.0, "type": "LOAN", "description": "Festival advance", "transactionDate": "2026-09-12", "employeeId": 55201, "employerId": 9104, "reportId": 33001, "createdAt": "2026-09-12T11:04:00+05:30", "updatedAt": "2026-09-12T11:04:00+05:30" }], "totals": { "loan": 5000.0, "repayment": 1500.0 } }全员工资汇总报表
GET
/v1/khata/wage-boardopenfinance返回全员工资报表:每人的 salaryTillDate、paymentsTotal、projectedSalary 以及班组合计。
认证方式: 手机 OTP 会话返回的 KmpUser.token,作为 Authorization: Bearer。
- employees
- total
- id
- name
- startDate
- endDate
- balance
- salaryType
- paymentsTotal
- salaryTillDate
- projectedSalary
GET /v1/khata/wage-board HTTP/1.1 Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Accept: application/json{ "employees": [{ "id": 55201, "name": "Anita Rao", "startDate": "2026-04-01", "endDate": "2026-09-30", "balance": 18450.0, "salaryType": "monthlyRegular", "paymentsTotal": 85500.0, "salaryTillDate": 71250.0, "projectedSalary": 85500.0 }], "total": { "balance": 512000.0, "paymentsTotal": 498000.0, "salaryTillDate": 415000.0, "projectedSalary": 498000.0 } }
数据类别
- 员工名册
- 考勤打卡
- 休假余额
- 薪资结构
- 工资发放
- 员工借款
数据使用场景与案例
中小企业发薪对账
薪资运营拉取 CTC 卡、应发/扣款与 PaymentLog(paymentDate、onlineId),把账户实付与每个 companyStaffId 的应付对齐。
考勤与加班审计
合规把 workedMinutes、fineMinutes、overTimeMinutes、hasOddPunches 与日期看板的 previousDatesApprovalPending 联起来,在锁薪前抓住未批异常。
假期负债与兑现
人事账本读取 totalAccruedLeaves、totalAvailedLeaves、totalEncashableLeaves 以及申请的 startDate/endDate,计提未休并办理兑现。
员工垫资回收
记账或垫资方用 totals.loan 减 totals.repayment,并把 LoanRecord 的 transactionDate 挂到下一期工资 reportId,以便发薪日扣回。
常见问题
PagarBook:Attendance & Payroll 是什么?
它是 Staff Payroll & Attendance Khata App 面向印度中小企业主的安卓员工账本:考勤、休假、CTC 薪资结构、工资发放与员工借款都在同一本账里。
谁在用 PagarBook?
自己给班组记考勤和发工资的印度店主与小企业主,而不是挂在 greytHR、Darwinbox 租户下的雇员。
店主如何登录?
用手机号 OTP,或走 Truecaller 校验。会话 token 随后授权该企业的员工、考勤与薪资调用。
里面有哪些员工记录?
带 companyStaffId 的名册、每日打卡与 workedMinutes、含可兑现天数的休假余额、在职 CTC 卡、应发/扣款/发放,以及员工借款台账。
和 greytHR、ADP 有何不同?
后两者是雇主租户下发的企业或中型市场 HRIS;PagarBook 是中小企业自己给班组跑的店主侧账本。
与 PagarBook:Attendance & Payroll 相似的应用
- greytHR — 班加罗尔做的雇员自助 HRIS,印度企业发给员工打卡、休假和看工资单。
- Darwinbox — 较大印度雇主使用的云端 HCM,覆盖从入职到离职的员工端。
- ADP Mobile Solutions — 全球薪资商 ADP 的雇员端,用于打卡、看薪与税表。
- Paylocity — 美国中型企业云薪资与 HCM 移动端,面向员工和薪资管理员。
相关主题
- PagarBook
- 员工考勤
- 中小企业工资
- 员工账本
- CTC 薪资结构
- 休假余额
- 员工借款
- 印度工资应用
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业