Timekeeping
Overview
The Timekeeping API provides access to instructor time records and paid activity data from flaik. This enables seamless integration with payroll systems, labor reporting tools, and workforce analytics platforms.
Authentication
All Timekeeping endpoints require authentication. Include your access token in the Authorization header:
Authorization: Bearer {access_token}See the Authentication Guide for details on obtaining access tokens.
Endpoints
Get Paid Activities by Date Range
Retrieves paid activity records for all instructors within a specified date range, with optional filtering by update timestamp.
GET {api-url}/api/timekeeping/paidactivities/paidactivitiesbydaterangeQuery Parameters:
seasonId
integer
Yes
Season identifier (get from )
startDate
string
Yes
Start date for activity search (YYYY-MM-DD format)
endDate
string
Yes
End date for activity search (YYYY-MM-DD format)
updatedAfterLocalDateTime
string
Yes
Only return records updated after this timestamp (YYYY-MM-DDTHH:mm:ss format)
Example Request:
GET {api-url}/api/timekeeping/paidactivities/paidactivitiesbydaterange?seasonId=17&startDate=2024-07-22&endDate=2024-07-25&updatedAfterLocalDateTime=2024-07-22T00:00:00
Authorization: Bearer {access_token}Response Format:
[
{
"seasonId": 17,
"seasonName": "2024/2025",
"payrollId": "EMP123456",
"employeeIdentifier": "11122258",
"employeeName": "Employee Name",
"flaikEmployeeId": 15,
"timesheetId": 46727,
"timesheetStatus": "Finalized",
"timesheetDate": "2024-12-07T00:00:00",
"paidActivityGroupId": 1,
"paidActivityGroupName": "Private",
"paidActivityId": 1,
"paidActivityName": "Private Assigned Lesson",
"startTime": "09:30:00",
"endTime": "12:00:00",
"paidActivityType": "1",
"durationMinutes": 150,
"wageTypeUsedForCalculation": 1,
"calculatedWageValue": 88.925,
"calculatedCommissionValue": 0,
"totalCalculatedValue": 88.925,
"businessStructureId": 1,
"businessStructureName": "Ski School 123456",
"costCentre": "354029",
"exportBusinessStructureName": "123456",
"externalId": "456789",
"locationName": "Ski School",
"parentPath": "Ski & Ride Lessons",
"payCodeId": null,
"payCodeName": "",
"payCodeType": "",
"payCodeCostCentre": "",
"jobCodeId": null,
"jobCodeName": "",
"jobCodeType": "",
"jobCodeCostCentre": ""
},
... ... ...
]
Performance Considerations
Optimize Date Ranges
Maximum range: 31 days per request
Recommended: Request 1-7 days
For historical data: Use multiple smaller requests with appropriate delays
Incremental Sync Strategy
Use
updatedAfterLocalDateTimeto only retrieve changed recordsStore last sync timestamp for each successful operation
Need help with timekeeping data integration? Contact [email protected] with specific questions about data formats or integration patterns.
Last updated
Was this helpful?
