Clocking Report Endpoint Follow
This endpoint returns information about clockings in the system.
https://api.workwelltech.com/reports/punch
Filter
A filter can be applied by specifying any of the following parameters in the body of the request:
| Field | Type | Optional | Description | Example |
| StartDate | String | No | 2026-01-01 | |
| EndDate | String | No | 2026-01-01 | |
| UserIds | Array | Yes | Which users’ data to return | [2160023] |
| UsePaging | Boolean | Yes | Enable/Disable paging | True |
| PageSize | Integer | Yes | Number of records to return per page | 10 |
| PageNumber | Integer | Yes | Allows specification of a certain page index | 0 |
An example request body with a filter might look like the following:
{
"StartDate": "2026-01-01",
"EndDate": "2026-01-02",
"UserIds": [
2160023
],
"UsePaging": true,
"PageSize": 30,
"PageNumber": 0
}This would return all clockings on the 1st Jan 2026 for UserId 2160023
Response Object
The response object contains two properties, the Product, which will always return “uAttend” and the Body.
{
"Product": "uAttend",
"Body": {
"PunchReportLineItems": [
{
"Id": "1",
"StartDate": "2026-01-01T00:00:00",
"EndDate": "2026-01-01T00:00:00",
"WeekStartDate": "0001-01-01T00:00:00",
"FirstName": "Dan",
"LastName": "Ford",
"PayrollNumber": "5026",
"UserId": "2160023",
"DepartmentId": "46960",
"PunchDay": 738524,
"PaycodeId": 0,
"DayAbbrev": "Tue",
"PunchDate": "2026-01-01T00:00:00",
"DepartmentCode": "SU01",
"DepartmentName": "Support Office",
"InDate": "2026-01-01T00:00:00",
"InTime": "08:24:00",
"OutDate": "2026-01-01T00:00:00",
"OutTime": "17:05:00",
"Tot": "8:41",
"InPunchLocation": "Reception CLL DR2500",
"OutPunchLocation": "Reception CLL DR2500",
"InPunchMethod": "Time Clock",
"OutPunchMethod": "Time Clock"
},
{
"Id": "2",
"StartDate": "2022-01-02T00:00:00",
"EndDate": "2022-01-02T00:00:00",
"WeekStartDate": "0001-01-01T00:00:00",
"FirstName": "Dan",
"LastName": "Ford",
"PayrollNumber": "5026",
"UserId": "2160023",
"DepartmentId": "46960",
"PunchDay": 738530,
"PaycodeId": 0,
"DayAbbrev": "Mon",
"PunchDate": "2026-01-02T00:00:00",
"DepartmentCode": "SU01",
"DepartmentName": "Support Office",
"InDate": "2026-01-02T00:00:00",
"InTime": "08:27:00",
"OutDate": null,
"OutTime": null,
"Tot": null,
"InPunchLocation": "Reception CLL DR2500",
"OutPunchLocation": "",
"InPunchMethod": "Time Clock",
"OutPunchMethod": ""
}
],
"UsePaging": true,
"PageSize": 30,
"PageNumber": 0,
"Total": 2,
"Response": {
"$id": "1",
"PkId": "0",
"PkFieldName": null,
"Success": true,
"Keys": {},
"Messages": {}
},
"UserIds": [
"2160023"
]
}
}
Data Types
The detail for each property can be found below:
| PropertyName | Type | Description |
| UserId | Integer | User identifier which punches are attributed to |
| DepartmentId | Integer | User's department (identifier) which punches are attributed to |
| PaycodeId | Integer | Paycode identifier (1 = Regular, 2 = Vacation, 3 = Sick, 4 = Holiday, 5 = Other) |
| PunchDay | Integer | The unix integer date of the workday that the punch falls on |
| PunchDate | Date | The PunchDay represented as a Date. (The workday that the punch falls on) |
| DayAbbrev | String | The day of week of PunchDay represented as a three letter abbreviation. (Mon, Tue, Wed, Thu, Fri, Sat, Sun) |
| DepartmentCode | String | Department code of the department which punch is attributed to |
| DepartmentName | String | Department name of department which punches are attributed to |
| FirstName | String | First name of user |
| LastName | String | Last Name of User |
| PayrollNumber | String | The payroll number for the user if present |
| InDate | Date | Date of in punch |
| InTime | Time | Time of in punch |
| OutDate | Date | Date of out punch |
| OutTime | Time | Time of out punch |
| Tot | String | total time of punch pair represented as a string in hh:mm format. EG: 4:15 |
| InPunchLocation | String | The information on where IN punch was made based on punch method. If from web it will be the IP. If from timeclock it will be timeclock ID. If from smartphone it will be geolocation. If from website it will be empty |
| OutPunchLocation | String | The information on where OUT punch was made based on punch method. If from web it will be the IP. If from timeclock it will be timeclock ID. If from smartphone it will be geolocation. If from website it will be empty |
| InPunchMethod | String | the punch method which was used for the IN punch. (Time Clock, Manual Edit, Smartphone App, Website) |
| OutPunchMethod | String | the punch method which was used for the OUT punch. (Time Clock, Manual Edit, Smartphone App, Website) |