Time & Attendance
Submit time punches and sync time data between Netchex and a third-party scheduling or T&A system.
This guide covers syncing time-and-attendance data in both directions: retrieving approved punches from Netchex and writing new punches back.
Overview
Four endpoints power the T&A sync workflow:
POST /api/v1/time-punches— submit a single time punch (v1)POST /api/v1/time-punches/byEmpCodeAndComboDept— submit a punch by employee code and department (v1)GET /time-punches— retrieve punches within a date range (v3)POST /api/Timecard/earning— attach earnings to a timecard entry (v1)
Step 1 — Retrieve time punches
GET https://external-api.netchexonline.net/time-punches?start-date=2024-01-01&end-date=2024-01-31&company-ids=101&page-size=250&api-version=3.0
Authorization: ApiKey YOUR_API_KEYKey parameters:
| Parameter | Type | Description |
|---|---|---|
start-date | date | Required. Start of the punch date range |
end-date | date | Required. End of the punch date range |
company-ids | integer[] | Filter to one or more companies |
organization-ids | GUID[] | Filter to organizations |
employee-ids | integer[] | Filter to specific employees |
data-source | string | Filter by data source (e.g., "Swipe", "Manual") |
page-size | integer | Max rows per page (max 250) |
page-number | integer | 1-based page number |
{
"pageNumber": 1,
"pageSize": 250,
"totalItemsCount": 1842,
"items": [
{
"id": 98001,
"employeeId": 5001,
"punchIn": "2024-01-15T08:02:00Z",
"punchOut": "2024-01-15T17:04:00Z",
"departmentId": 10,
"locationId": 3,
"dataSource": "Swipe"
}
]
}The v3 time-punches endpoint supports page-size up to 250 rows. Use pagination when the date range spans several weeks.
Step 2 — Submit a new time punch
POST https://external-api.netchexonline.net/api/v1/time-punches?api-version=1.0
Authorization: ApiKey YOUR_API_KEY
Content-Type: application/json{
"employeeId": 5001,
"punchIn": "2024-01-22T08:00:00Z",
"punchOut": "2024-01-22T17:00:00Z",
"departmentId": 10
}Alternative: submit by employee code and department
If your source system stores employee codes (not IDs), use the combo-dept endpoint:
POST https://external-api.netchexonline.net/api/v1/time-punches/byEmpCodeAndComboDept?api-version=1.0
Authorization: ApiKey YOUR_API_KEY
Content-Type: application/json{
"employeeCode": "EMP-1234",
"comboDept": "DEPT-A/LOC-1",
"punchIn": "2024-01-22T08:00:00Z",
"punchOut": "2024-01-22T17:00:00Z"
}Step 3 — Attach earnings to a timecard
After punches are posted, you can associate earnings codes with a timecard entry:
POST https://external-api.netchexonline.net/api/Timecard/earning?api-version=1.0
Authorization: ApiKey YOUR_API_KEY
Content-Type: application/jsonThe path is /api/Timecard/earning with a capital T — not /api/v1/timecard/earning. This is a v1 endpoint and follows PascalCase conventions for the resource segment.
{
"employeeId": 5001,
"earningCode": "REG",
"hours": 8.0,
"date": "2024-01-22"
}Try it in the playground
Test these endpoints interactively in the API reference: