> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simplifi.work/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a timesheet

> Returns a single timesheet by its ID, wrapped in the standard paginated response envelope with a single-item data array.



## OpenAPI

````yaml /simplifi_openapi.json get /timesheets/{timesheet_id}
openapi: 3.0.3
info:
  title: Simplifi API
  version: 1.0.0
  description: Workforce management API
  termsOfService: >-
    https://apps.staffsync.co.nz/static/StaffSyncUserTermsOfService.pdf?openexternal=true
  contact:
    name: Simplifi
    email: support@simplifi.work
    url: https://simplifi.work
servers:
  - url: https://{base_url}/api/v1
    description: Simplifi API Server
    variables:
      base_url:
        description: Your Simplifi instance base URL
        default: example.com
security:
  - BearerAuth: []
externalDocs:
  url: https://docs.simplifi.work/authentication
  description: The Simplifi API Documentation
paths:
  /timesheets/{timesheet_id}:
    get:
      tags:
        - Timesheets
      summary: Get a timesheet
      description: >-
        Returns a single timesheet by its ID, wrapped in the standard paginated
        response envelope with a single-item data array.
      operationId: getTimesheet
      parameters:
        - name: timesheet_id
          in: path
          description: The unique identifier of the timesheet to retrieve
          required: true
          schema:
            type: string
            example: '2240_11417925'
      responses:
        '200':
          description: A paginated envelope containing the single requested timesheet
          content:
            application/json:
              schema:
                type: object
                properties:
                  __type:
                    type: string
                    description: Internal type identifier
                    example: SSJSON_API_PaginatedDataArray
                  data:
                    type: array
                    description: Array containing the single requested timesheet
                    items:
                      $ref: '#/components/schemas/Timesheet'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
              example:
                __type: SSJSON_API_PaginatedDataArray
                data:
                  - __type: SSJSON_API_Timesheet
                    id: '2240_11417925'
                    approvedHours: null
                    approvedPayroll: null
                    casualJob: false
                    clockIn: null
                    clockOut: null
                    contractedHoursId: '2924_294328'
                    date: '2026-04-21'
                    department:
                      id: '2784_119'
                      name: Deli
                    details:
                      - id: '2759_52442232'
                        activity: '2760_183'
                        alternateDepartment: ''
                        alternateOrganisation: ''
                        finishTime: '2026-04-21T07:00:00.000Z'
                        hours: 6
                        mealBreak: false
                        restBreak: false
                        startTime: '2026-04-21T01:00:00.000Z'
                    employeeId: '2095_1144974'
                    finishTime: '2026-04-21T07:00:00.000Z'
                    hoursToPay: 6
                    includesLeave: false
                    organisationPayRollId: '2089_9531'
                    organisationWorkedId: '2089_9531'
                    overnight: false
                    processed: null
                    role:
                      id: '2213_6559'
                      name: Retail Assistant
                    shift: null
                    startTime: '2026-04-21T01:00:00.000Z'
                pagination:
                  nextPage: ''
                  page: 1
                  pageSize: 1
                  previousPage: ''
                  totalPages: 1
                  totalRecords: 1
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '502':
          $ref: '#/components/responses/BadGateway'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  schemas:
    Timesheet:
      type: object
      properties:
        __type:
          type: string
          description: Internal type identifier
          example: SSJSON_API_Timesheet
        id:
          type: string
          description: The unique identifier for the timesheet
          example: '2240_11417925'
        approvedHours:
          type: string
          format: date-time
          nullable: true
          description: >-
            The timestamp at which the timesheet was approved, as an ISO 8601
            string. Null if not yet approved. Note: despite the name, this field
            represents an approval timestamp, not a count of hours — use
            hoursToPay for the payable hours value.
          example: null
        approvedPayroll:
          type: string
          nullable: true
          description: The approved payroll reference. Null if not yet approved.
          example: null
        casualJob:
          type: boolean
          description: Whether this timesheet is for a casual job
          example: false
        clockIn:
          type: object
          nullable: true
          description: >-
            Clock-in record for this timesheet. Null if the employee has not
            clocked in.
          properties:
            id:
              type: string
              description: The unique identifier for this clock record
              example: '2762_26262536'
            beacon:
              type: boolean
              description: Whether the clock event was triggered by a beacon
              example: false
            kiosk:
              type: boolean
              description: Whether the clock event was triggered via a kiosk
              example: false
            localTime:
              type: string
              format: date-time
              nullable: true
              description: The local time of the clock event. Null if not recorded.
              example: null
            overrideEmployee:
              type: string
              nullable: true
              description: >-
                The employee who performed an override, if applicable. Null if
                no override.
              example: null
            overrideOrganisation:
              type: string
              nullable: true
              description: >-
                The organisation associated with an override, if applicable.
                Null if no override.
              example: null
            variance:
              type: number
              description: >-
                The variance in minutes between the scheduled and actual clock
                time
              example: 0
        clockOut:
          type: object
          nullable: true
          description: >-
            Clock-out record for this timesheet. Null if the employee has not
            clocked out.
          properties:
            id:
              type: string
              description: The unique identifier for this clock record
              example: '2762_26262536'
            beacon:
              type: boolean
              description: Whether the clock event was triggered by a beacon
              example: false
            kiosk:
              type: boolean
              description: Whether the clock event was triggered via a kiosk
              example: false
            localTime:
              type: string
              format: date-time
              nullable: true
              description: The local time of the clock event. Null if not recorded.
              example: null
            overrideEmployee:
              type: string
              nullable: true
              description: >-
                The employee who performed an override, if applicable. Null if
                no override.
              example: null
            overrideOrganisation:
              type: string
              nullable: true
              description: >-
                The organisation associated with an override, if applicable.
                Null if no override.
              example: null
            variance:
              type: number
              description: >-
                The variance in minutes between the scheduled and actual clock
                time
              example: 0
        contractedHoursId:
          type: string
          description: >-
            The ID of the contracted hours entry this timesheet was generated
            from. Empty string if the timesheet was not generated from a
            contracted hours entry (e.g. casual timesheets).
          example: '2924_294328'
        date:
          type: string
          format: date
          description: The date of the timesheet in YYYY-MM-DD format
          example: '2026-04-21'
        department:
          allOf:
            - $ref: '#/components/schemas/ContractedHoursDepartment'
          nullable: true
          description: >-
            The department associated with this timesheet. Null if no department
            is assigned.
        details:
          type: array
          description: >-
            A list of detail entries breaking down the timesheet into activity
            segments
          items:
            $ref: '#/components/schemas/TimesheetDetail'
        employeeId:
          type: string
          description: The ID of the employee this timesheet belongs to
          example: '2095_1144974'
        finishTime:
          type: string
          format: date-time
          description: The overall finish time of the timesheet in ISO 8601 format
          example: '2026-04-21T07:00:00.000Z'
        hoursToPay:
          type: number
          description: The total payable hours for this timesheet
          example: 6
        includesLeave:
          type: boolean
          description: Whether this timesheet includes any leave
          example: false
        organisationPayRollId:
          type: string
          description: The ID of the organisation responsible for payroll
          example: '2089_9531'
        organisationWorkedId:
          type: string
          description: The ID of the organisation where the work was performed
          example: '2089_9531'
        overnight:
          type: boolean
          description: Whether this timesheet spans overnight
          example: false
        processed:
          type: string
          nullable: true
          description: >-
            The date/time the timesheet was processed for payroll. Null if not
            yet processed.
          example: null
        role:
          allOf:
            - $ref: '#/components/schemas/ContractedHoursRole'
          nullable: true
          description: >-
            The role associated with this timesheet. Null if no role is
            assigned.
        shift:
          allOf:
            - $ref: '#/components/schemas/ContractedHoursShift'
          nullable: true
          description: >-
            The shift template applied to this timesheet. Null if not
            shift-based.
        startTime:
          type: string
          format: date-time
          description: The overall start time of the timesheet in ISO 8601 format
          example: '2026-04-21T01:00:00.000Z'
    Pagination:
      type: object
      properties:
        nextPage:
          type: string
          description: >-
            Endpoint path for the next page. Prepend your instance base URL to
            construct a full request URL. Empty string if there is no next page.
          example: ''
        page:
          type: integer
          description: The current page number
          example: 1
        pageSize:
          type: integer
          description: The number of records per page
          example: 200
        previousPage:
          type: string
          description: >-
            Endpoint path for the previous page. Prepend your instance base URL
            to construct a full request URL. Empty string if on page 1.
          example: ''
        totalPages:
          type: integer
          description: The total number of pages available
          example: 1
        totalRecords:
          type: integer
          description: The total number of records across all pages
          example: 1
    ContractedHoursDepartment:
      type: object
      description: A minimal department reference used within contracted hours
      properties:
        id:
          type: string
          description: The unique identifier of the department
          example: '2784_119'
        name:
          type: string
          description: The display name of the department
          example: Deli
    TimesheetDetail:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for this timesheet detail entry
          example: '2759_52442232'
        activity:
          type: string
          description: The ID of the activity associated with this detail entry
          example: '2760_183'
          nullable: true
        alternateDepartment:
          type: string
          description: An alternate department for this entry. Empty string if not set.
          example: ''
          nullable: true
        alternateOrganisation:
          type: string
          description: An alternate organisation for this entry. Empty string if not set.
          example: ''
          nullable: true
        finishTime:
          type: string
          format: date-time
          description: The finish time of this detail entry in ISO 8601 format
          example: '2026-04-21T07:00:00.000Z'
        hours:
          type: number
          description: The number of hours for this detail entry
          example: 6
        mealBreak:
          type: boolean
          description: Whether this entry includes a meal break
          example: false
        restBreak:
          type: boolean
          description: Whether this entry includes a rest break
          example: false
        startTime:
          type: string
          format: date-time
          description: The start time of this detail entry in ISO 8601 format
          example: '2026-04-21T01:00:00.000Z'
    ContractedHoursRole:
      type: object
      description: A minimal role reference used within contracted hours
      properties:
        id:
          type: string
          description: The unique identifier of the role
          example: '2213_6559'
        name:
          type: string
          description: The display name of the role
          example: Retail Assistant
    ContractedHoursShift:
      type: object
      description: A minimal shift reference used within contracted hours
      properties:
        id:
          type: string
          description: The unique identifier of the shift
          example: '2786_12120'
        name:
          type: string
          description: The display name of the shift
          example: Morning
  responses:
    BadRequest:
      description: Bad Request - malformed request syntax or invalid parameters
    Unauthorized:
      description: Unauthorized - missing or invalid token
    Forbidden:
      description: Forbidden - valid token but insufficient permissions
    NotFound:
      description: Not Found - the requested resource does not exist
    Conflict:
      description: Conflict - the request conflicts with the current state of the resource
    UnprocessableEntity:
      description: >-
        Unprocessable Entity - the request was well-formed but contains semantic
        errors
    TooManyRequests:
      description: Too Many Requests - rate limit exceeded
    InternalServerError:
      description: Internal Server Error
    BadGateway:
      description: Bad Gateway - upstream service failed
    ServiceUnavailable:
      description: Service Unavailable
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Access token obtained from /oauth/token. Pass as Authorization: Bearer
        {token}

````