POS Time Cards
Aggregate and indexed time card information from your POS system. Time cards track employee working hours for labor management and payroll.
Overview
The POS Time Card API provides access to employee time tracking data. Time cards record when employees clock in and out, including breaks and job changes during shifts.
Time Card Structure
Time cards have a hierarchical structure:
- TimeCard - Main record for an employee's work period
- TimeCardSegment (1 or more) - Individual clock-in/clock-out segments
A single time card may contain multiple segments if an employee:
- Takes breaks
- Changes jobs during their shift
- Clocks in and out multiple times
API Endpoints
Retrieve Time Cards
Returns time card records for a specific location.
Method: GET
Endpoint: /pos/v2/{locationId}/time-cards
Authentication: Bearer token required
Retrieve employee time cards for a location. Use query parameters to filter by date range, employee, or status.
Path Parameters
| Name | Type | Description |
|---|---|---|
locationId * | integer | The unique identifier for the location |
Query Parameters
| Name | Type | Description |
|---|---|---|
page | integer | Page number for pagination (default: 1) |
pageSize | integer | Number of results per page (default: 50, max: 100) |
startDate | date | Filter time cards starting on or after this date |
endDate | date | Filter time cards ending on or before this date |
employeeRef | string | Filter by specific employee |
status | string | Filter by status: OPEN, CLOSED |
Request
curl -X GET "https://conecto-api.shift4payments.com/pos/v2/12345/time-cards?startDate=2024-01-01&endDate=2024-01-31" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Response
{
"results": [
{
"posRef": "TC-12345",
"employeeRef": "EMP-001",
"employeeName": "Jane Smith",
"jobRef": "JOB-SERVER",
"jobName": "Server",
"status": "CLOSED",
"clockInAt": "2024-01-15T10:00:00Z",
"clockOutAt": "2024-01-15T18:00:00Z",
"totalHours": 7.5,
"regularHours": 7.5,
"overtimeHours": 0,
"breakMinutes": 30,
"locationId": 12345,
"timeCardSegments": [
{
"posRef": "TCS-001",
"clockInAt": "2024-01-15T10:00:00Z",
"clockOutAt": "2024-01-15T14:00:00Z",
"jobRef": "JOB-SERVER",
"jobName": "Server",
"hours": 4.0
},
{
"posRef": "TCS-002",
"clockInAt": "2024-01-15T14:30:00Z",
"clockOutAt": "2024-01-15T18:00:00Z",
"jobRef": "JOB-SERVER",
"jobName": "Server",
"hours": 3.5
}
]
},
{
"posRef": "TC-12346",
"employeeRef": "EMP-002",
"employeeName": "John Doe",
"jobRef": "JOB-COOK",
"jobName": "Cook",
"status": "OPEN",
"clockInAt": "2024-01-15T11:00:00Z",
"clockOutAt": null,
"totalHours": null,
"regularHours": null,
"overtimeHours": null,
"breakMinutes": 0,
"locationId": 12345,
"timeCardSegments": [
{
"posRef": "TCS-003",
"clockInAt": "2024-01-15T11:00:00Z",
"clockOutAt": null,
"jobRef": "JOB-COOK",
"jobName": "Cook",
"hours": null
}
]
}
],
"meta": {
"page": 1,
"pageSize": 50,
"totalCount": 150
}
}
Models
TimeCard
The main time card record representing an employee's work period.
- Name
posRef- Type
- string
- Description
Unique POS system reference ID for the time card
- Name
employeeRef- Type
- string
- Description
Reference to the employee
- Name
employeeName- Type
- string
- Description
Name of the employee
- Name
jobRef- Type
- string
- Description
Primary job reference for this time card
- Name
jobName- Type
- string
- Description
Primary job name
- Name
status- Type
- string
- Description
Status of the time card:
OPEN(currently clocked in) orCLOSED(clocked out)
- Name
clockInAt- Type
- datetime
- Description
When the employee first clocked in
- Name
clockOutAt- Type
- datetime
- Description
When the employee clocked out (null if still clocked in)
- Name
totalHours- Type
- number
- Description
Total hours worked (null if status is OPEN)
- Name
regularHours- Type
- number
- Description
Regular hours worked
- Name
overtimeHours- Type
- number
- Description
Overtime hours worked
- Name
breakMinutes- Type
- integer
- Description
Total break time in minutes
- Name
declaredTips- Type
- number
- Description
Tips declared by employee for this time card
- Name
locationId- Type
- integer
- Description
Location ID where time was tracked
- Name
businessDate- Type
- date
- Description
Business day this time card belongs to
- Name
timeCardSegments- Type
- array
- Description
Array of TimeCardSegment objects
- Name
createdAt- Type
- datetime
- Description
When the time card was created
- Name
updatedAt- Type
- datetime
- Description
When the time card was last updated
TimeCardSegment
Individual clock-in/clock-out segments within a time card.
- Name
posRef- Type
- string
- Description
Unique POS system reference ID for the segment
- Name
clockInAt- Type
- datetime
- Description
When this segment started
- Name
clockOutAt- Type
- datetime
- Description
When this segment ended (null if currently active)
- Name
jobRef- Type
- string
- Description
Job reference for this segment
- Name
jobName- Type
- string
- Description
Job name for this segment
- Name
hours- Type
- number
- Description
Hours worked in this segment (null if clockOutAt is null)
- Name
isBreak- Type
- boolean
- Description
Whether this segment represents a break (unpaid time)
- Name
departmentRef- Type
- string
- Description
Department reference for this segment
Use Cases
Labor Cost Analysis
Calculate and analyze labor costs:
- Total Labor Hours - Sum hours across all employees
- Labor Cost - Calculate total labor cost using wage rates
- Labor Percentage - Calculate labor as percentage of sales
- Overtime Tracking - Monitor overtime hours by employee
Payroll Processing
Export time card data for payroll:
- Regular vs. Overtime - Separate hours for different pay rates
- Tip Reporting - Include declared tips for payroll
- Department Breakdown - Track hours by department for cost allocation
- Break Time - Account for paid vs. unpaid breaks
Compliance & Reporting
Ensure labor law compliance:
- Hours Tracking - Monitor employee hours for overtime rules
- Break Compliance - Ensure required breaks are taken
- Minor Restrictions - Track hours for minor employees
- Audit Trail - Maintain records for labor law audits
Scheduling Optimization
Optimize labor scheduling:
- Actual vs. Scheduled - Compare scheduled to actual hours
- Labor Efficiency - Analyze labor efficiency by shift
- Peak Hours - Identify staffing needs by time of day
- Cross-Training - Track employees working multiple jobs
Best Practices
- Name
Open Time Cards- Description
Handle open time cards (status: OPEN) appropriately. These represent employees currently clocked in and don't have final hour calculations.
- Name
Break Time- Description
Account for break time when calculating paid hours. Some breaks may be paid, others unpaid depending on local laws and company policy.
- Name
Overtime Calculations- Description
Use the overtime hours provided by the POS rather than calculating yourself. POS systems handle complex overtime rules specific to the jurisdiction.
- Name
Job Changes- Description
Handle time cards with multiple segments at different pay rates. Sum hours by job for accurate cost calculation.
- Name
Business Date- Description
Use the
businessDatefield rather than clock-in date for reporting. Shifts that cross midnight should be reported on the business day they started.
- Name
Synchronization- Description
Sync time card data regularly, especially before payroll processing. Changes to time cards (edits, additions) should be reflected in your system.