---
title: "Update Daily TimeSheet"
method: PUT
path: "/v1/timesheets/daily"
tags: ["Timesheets"]
---

# Update Daily TimeSheet

`PUT /v1/timesheets/daily`

## Request

- Base URL: `https://api.avionte.com/front-office`
- URL: `https://api.avionte.com/front-office/v1/timesheets/daily`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Creates or updates a daily timesheet entry for a specific placement and day. Supports daily hours and mobile punch time capture methods with multiple breaks per day.

## Headers

- `RequestId` string, uuid: Unique request identifier in UUID format used to correlate request data to log entries and events.
- `FrontOfficeTenantId` integer
- `Tenant` string

## Request body

- DailyTimeSheetDto: Represents a daily timesheet entry for single-day timesheet find-or-create operations. Supports daily hours and mobile punch time capture methods with multiple breaks per day.
  - `dayWorked` string, date-time, required: The date for the time entry. This should be just a date stamp. No time should be included.
  - `timeIn` string: The start time of the day. Format: 12-hour format (e.g., "9:00 AM"). Optional for "Saved" status, required for "Submitted" and "Approved" statuses.
  - `timeOut` string: The end time of the day. Format: 12-hour format (e.g., "5:00 PM"). Optional for "Saved" status, required for "Submitted" and "Approved" statuses. Supports overnight shifts where TimeOut appears earlier than TimeIn.
  - `breaks` DailyBreakDto[]: List of breaks for the day. Supports 0 to many breaks per day. Each break must have both BreakStart and BreakEnd times or both empty. Break times must fall within the work shift period.
    - `breakStart` string: The break start time. Format: 12-hour format (e.g., "12:00 PM"). Must be provided if BreakEnd is provided (both required or both empty). Must fall within the work shift period.
    - `breakEnd` string: The break end time. Format: 12-hour format (e.g., "1:00 PM"). Must be provided if BreakStart is provided (both required or both empty). Must be after BreakStart time and within the work shift period.
  - `placementId` integer, required: The identifier for the placement. It allows the timesheet to be correlated with the talent to whom the time belongs.
  - `status` string, required: The status of the timesheet. Accepted Values are: Saved, Submitted and Approved. - "Saved": Allows partial time entry (flexible validation) - "Submitted": Requires all times to be present and valid - "Approved": Requires all times to be present and valid
  - `useRounding` boolean: Whether to round time values to the configured timesheet minute spread. - false: Validates that time values match the configured timesheet minute spread exactly - true: Automatically rounds time values to the nearest configured minute spread

## Response `200`

The daily timesheet entry that was successfully created or updated.

- DailyTimeSheetResponseDto: Enhanced response model for daily timesheet operations. Provides detailed validation feedback, warnings, and auto-corrections.
  - `success` boolean: An indication of whether the operation was successful.
  - `statusCode` 'Success' | 'BadRequest' | 'NotFound' | 'Unauthorized' | 'Forbidden' | 'Conflict' | 'InternalServerError' | 'FeatureNotAvailable': Status codes for service operation results.
  - `data` TimesheetDataDto: Represents the timesheet data structure in the response following BOLD MyCompas patterns.
    - `week_ID` integer: The weekly timesheet identifier.
    - `cand_ID` integer: The candidate/talent identifier.
    - `req_hired_ID` integer: The placement identifier.
    - `req_ID` string: The job requisition identifier.
    - `weekStart` string, date-time: The week start date.
    - `weekEnd` string, date-time: The week ending date.
    - `mon` number: Monday hours worked.
    - `tues` number: Tuesday hours worked.
    - `wed` number: Wednesday hours worked.
    - `thurs` number: Thursday hours worked.
    - `fri` number: Friday hours worked.
    - `sat` number: Saturday hours worked.
    - `sun` number: Sunday hours worked.
    - `weekTotal` number: Total weekly hours.
    - `timesheetFormat` string: Time capture format (DAILY_TIME or MOBILE_PUNCH).
    - `mondayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `tuesdayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `wednesdayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `thursdayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `fridayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `saturdayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `sundayBreaks` BreakDto[]
      - `breakStart` string: The break start time.
      - `breakEnd` string: The break end time.
    - `mondayPunchIn` string
    - `mondayPunchOut` string
    - `tuesdayPunchIn` string
    - `tuesdayPunchOut` string
    - `wednesdayPunchIn` string
    - `wednesdayPunchOut` string
    - `thursdayPunchIn` string
    - `thursdayPunchOut` string
    - `fridayPunchIn` string
    - `fridayPunchOut` string
    - `saturdayPunchIn` string
    - `saturdayPunchOut` string
    - `sundayPunchIn` string
    - `sundayPunchOut` string
    - `submitted` boolean: An indication of whether the timesheet has been submitted.
    - `approved` boolean: An indication of whether the timesheet has been approved.
  - `error` string: Primary error message (present on failures).
  - `messages` string[]: Array of informational messages about the operation.
  - `warnings` string[]: Array of non-blocking warning messages for potential issues.
  - `validationErrors` ValidationErrorDto[]: Detailed validation error information with field-level context.
    - `field` string: The field that failed validation.
    - `message` string: The validation error message.
    - `value` object: The value that failed validation.
    - `day` string: The day of week for date-specific errors.
    - `severity` string: The severity level of the validation error (Error, Warning, Info).
    - `details` object: Additional details about the validation error.
  - `corrections` string[]: Auto-corrections made by the system (e.g., time format corrections).
  - `requestId` string: Unique request identifier for error tracking and debugging.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Access Denied
- `404`: Not found
- `405`: Unsupported method
- `406`: Unsupported format(s) indicated by Accept header
- `409`: Operation could not be completed due to conflict.
- `415`: Unsupported format(s) indicated by the Content-Type header
- `429`: Too many requests
- `500`: An unexpected error occurred
- `502`: Service Unavailable
- `504`: Gateway Timeout

---

[API](https://skmtc.dev/avionte/apis/bold-front-office-api.md) - [All operations](https://skmtc.dev/avionte/apis/bold-front-office-api/llms.txt) - [OpenAPI document](https://skmtc.dev/avionte/apis/bold-front-office-api/revisions/bd5996cbaa0f?raw)
