---
title: "Creates a timesheet"
method: POST
path: "/Timesheets"
tags: ["PayrollAu"]
---

# Creates a timesheet

`POST /Timesheets`

## Headers

- `Idempotency-Key` string

## Request body

- Timesheet[]
  - `EmployeeID` string, uuid, required — The Xero identifier for an employee
  - `StartDate` string, required — Period start date (YYYY-MM-DD)
  - `EndDate` string, required — Period end date (YYYY-MM-DD)
  - `Status` 'DRAFT' | 'PROCESSED' | 'APPROVED' | 'REJECTED' | 'REQUESTED'
  - `Hours` number, double — Timesheet total hours
  - `TimesheetID` string, uuid — The Xero identifier for a Payroll Timesheet
  - `TimesheetLines` TimesheetLine[]
    - `EarningsRateID` string, uuid — The Xero identifier for an Earnings Rate
    - `TrackingItemID` string, uuid — The Xero identifier for a Tracking Category. The TrackingOptionID must belong to the TrackingCategory selected as TimesheetCategories under Payroll Settings.
    - `NumberOfUnits` number[] — The number of units on a timesheet line
    - `UpdatedDateUTC` string — Last modified timestamp
  - `UpdatedDateUTC` string — Last modified timestamp
  - `ValidationErrors` ValidationError[] — Displays array of validation error messages from the API
    - `Message` string — Validation error message

## Response `200`

A successful request

- Timesheets
  - `Timesheets` Timesheet[]
    - `EmployeeID` string, uuid, required — The Xero identifier for an employee
    - `StartDate` string, required — Period start date (YYYY-MM-DD)
    - `EndDate` string, required — Period end date (YYYY-MM-DD)
    - `Status` 'DRAFT' | 'PROCESSED' | 'APPROVED' | 'REJECTED' | 'REQUESTED'
    - `Hours` number, double — Timesheet total hours
    - `TimesheetID` string, uuid — The Xero identifier for a Payroll Timesheet
    - `TimesheetLines` TimesheetLine[]
      - `EarningsRateID` string, uuid — The Xero identifier for an Earnings Rate
      - `TrackingItemID` string, uuid — The Xero identifier for a Tracking Category. The TrackingOptionID must belong to the TrackingCategory selected as TimesheetCategories under Payroll Settings.
      - `NumberOfUnits` number[] — The number of units on a timesheet line
      - `UpdatedDateUTC` string — Last modified timestamp
    - `UpdatedDateUTC` string — Last modified timestamp
    - `ValidationErrors` ValidationError[] — Displays array of validation error messages from the API
      - `Message` string — Validation error message

## Other responses

- `400` — invalid input, object invalid - TODO

---

[API](https://skmtc.net/xeroapi/apis/xero-payroll-au-api.md) · [All operations](https://skmtc.net/xeroapi/apis/xero-payroll-au-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xeroapi/xero-payroll-au-api/versions/35651d98854e/schema)
