---
title: "Get Punch Detail Data"
method: GET
path: "/apiHub/time/v2/companies/{companyId}/punchDetails/{resourceId}"
tags: ["Company Punch Details"]
---

# Get Punch Detail Data

`GET /apiHub/time/v2/companies/{companyId}/punchDetails/{resourceId}`

**Summary Description**

The Get Punch Detail Data endpoint represents the final step in the process to retrieve punch details for all employees within a company. This endpoint retrieves punch detail results for all employees in a company using the resourceId generated in the previous step of the process. The endpoint returns completed results and supports filtering by relative start and end dates. Responses are paginated and require iteration through all pages to access the full data set.

**Use Cases**
- Retrieve all employee punch details for a company after the asynchronous process has finished.
- Filter punch detail records by relative start and end dates to limit results to a specific time range.
- Iterate through paginated responses using offset-based pagination to obtain the complete set of punch detail records.

## Path parameters

- `companyId` string, required
- `resourceId` string, uuid, required

## Query parameters

- `includeTotalCount` boolean
- `limit` integer
- `offset` integer
- `sort` 'relativeStart' | 'relativeEnd' | 'relativeStart:asc' | 'relativeEnd:asc' | 'relativeStart:desc' | 'relativeEnd:desc'
- `testFlag` boolean

## Headers

- `Authorization` string, required

## Response `200`

Success

- PunchDetailRecordV2Model[]
  - `employeeId` string, nullable — The Paylocity Employee ID. This is a unique value per Paylocity Company ID.
  - `companyId` string, nullable — The Paylocity Company ID. This is the unique value provided by Paylocity to each specific Payroll Entity.
  - `badgeNumber` integer — The Time and Labor badge number
  - `relativeStart` string, date-time, nullable — The relative DateTime for the beginning of the WorkedShift
  - `relativeEnd` string, date-time, nullable — The relative DateTime for the end of the WorkedShift
  - `segments` WorkedShiftsSegmentV2Model[], nullable — Breakdown of the worked shift's durations by time card entry. The entire span of time from beginning of worked shift to end of worked shift is represented in this breakdown.
    - `punchID` string, uuid, nullable — A unique identifier assigned to each punch or time entry, ensuring that each entry is distinct, traceable, and easily referenced for tracking purposes.
    - `origin` string, nullable — The associated origin of the time entry.
    - `date` string, date — Date the worked shift segment took place. In the case of over night shifts, this is the date these worked hours apply to in payroll and can play a role in some overtime calculations.
    - `punchType` string, nullable — The type of punch recorded indicating whether it was recorded for categories such as work, lunch break etc
    - `relativeStart` string, date-time, nullable — Relative DateTime of the beginning of this segment after payroll policy rules are applied. Null if the segment began with a missed punch.
    - `relativeEnd` string, date-time, nullable — Relative DateTime of the end of this segment after payroll policy rules are applied. Null if the segment ended with a missed punch.
    - `relativeOriginalStart` string, date-time, nullable — Relative DateTimeOffset of the beginning of this segment before payroll policy rules are applied. Null if the segment began with a missed punch.
    - `relativeOriginalEnd` string, date-time, nullable — Relative DateTime of the end of this segment before payroll policy rules are applied. Null if the segment ended with a missed punch.
    - `durationHours` number, double, nullable — The total hours worked by the employee for a particular punch or time entry, reflecting the duration of their work.
    - `earnings` number, double — Earnings is equal to the gross estimated earnings. Earnings is calculated using synced base rate + synced additional rates + shift differentials or any other rates configured in TLM x hours worked = gross estimated earnings.
    - `costCenters` CostCenterDto[], nullable — List of cost centers, at most one per cost center level, that this segment of the worked shift is allocated to.
      - `id` string, uuid — unique Guid
      - `costCenterId` integer — Cost center id
      - `level` integer — Cost center level
      - `code` string, nullable — Cost center code
      - `name` string, nullable — Cost center name
      - `isActive` boolean — The boolean value indicates whether the cost center is active or not.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Server Error

---

[API](https://skmtc.net/paylocity/apis/assessments-api.md) · [All operations](https://skmtc.net/paylocity/apis/assessments-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paylocity/assessments-api/revisions/dd22ab229153/schema)
