The Timesheet Object

Object Property Required Object Type Description Max Character Length
Year Yes Integer Year Of Timesheet 4
Month Yes Integer Month Of Timesheet 2
Day Yes Integer Day Of Timesheet 2
AccountProjectId Yes Integer Project Id Of Timesheet 10
AccountProjectTaskId Yes Integer Task Id Of Timesheet 10
TotalTime Yes String Total Time Of Timesheet 5
StartTime No String Start Time Of Timesheet 5
EndTime No String End Time Of Timesheet 5
Description No String Description Of Timesheet 100
AccountWorkTypeId No Integer Work Type Id Of Timesheet 10
AccountCostCenterId No Integer Cost Center Id Of Timesheet 10
Latitude No Double Latitude Of Employee 10
Longitude No Double Longitude Of Employee 10
IPAddress No String IPAddress Of Employee 15

Create a Timesheet Entry

Creates a Timesheet Entry in your TimeLive account and returns the Response Message.

POST /API/Timesheets
Object Property Required Object Type Description Max Character Length
Year Yes Integer Year Of Timesheet 4
Month Yes Integer Month Of Timesheet 2
Day Yes Integer Day Of Timesheet 2
AccountProjectId Yes Integer Project Id Of Timesheet 10
AccountProjectTaskId Yes Integer Task Id Of Timesheet 10
TotalTime Yes String Total Time Of Timesheet 5

Example Request

curl "https://demo.livetecs.com/api/Timesheets" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X POST \
      -H "Content-Type: application/json" \
      -d "{'AccountProjectId':00001,'TimesheetName':'Demo Timesheet''Year':2018,'Month':1,'Day':1,'AccountProjectId':00001,'AccountProjectTaskId':00001,'TotalTime':'01:00'}"

Example Response

[			
    {			
        "message": "Insert Record Successfully."		
    }			
]

Update a Timesheet Entry

Update an Timesheet Entry in your TimeLive account and returns the Response Message.

POST /API/Timesheets/{Timesheet_ID}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/00001" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X POST \
      -H "Content-Type: application/json" \
      -d "{'AccountProjectId':00001,'TimesheetName':'Demo Timesheet''Year':2018,'Month':1,'Day':1,'AccountProjectId':00001,'AccountProjectTaskId':00001,'TotalTime':'01:00'}"

Example Response

[			
    {			
          "message": "Update Record Successfully."	
    }			
]

Delete a Timesheet Entry

Delete a Timesheet Entry. Returns a 200 OK response code if the call succeeded.

DELETE /API/Timesheet/{Timesheet_ID}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/00003" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X DELETE \
      -H "Content-Type: application/json"

Example Response

[
  {
    "id": "00003",
    "message": "Deleted Successfully"
  }
]

Get Timesheet Entries By Employee and Date Range

Display Time Entries. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/{Employee_ID}/{Start_Date}/{End_Date}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/TimeEntriesByEmployeeIdAndDateRange/00001/2018-01-01/2018-01-31" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "TimeEntryDate": "2018-01-01T00:00:00+00:00",
        "TotalTime": "2018-01-01T02:03:00+00:00",
        "ProjectName": "Demo Project",
        "ProjectCode": "DP",
        "TaskName": "Demo Task",
        "IsBillable": false,
        "TaskCode": "DT",
        "PartyName": "Demo Client",
        "PartyNick": "DC",
        "EmployeeName": "User 01",
        "EmployeeCode": "U-1",
        "MilestoneDescription": "Default Milestone",
        "AccountEmployeeType": "Administrator",
        "DepartmentName": "Admin Department",
        "AccountWorkType": "Standard",
        "AccountCostCenter": null,
        "ServiceItemName": null,
        "AccountProjectId": 00001,
        "AccountProjectTaskId": 00001,
        "TimeEntryDescription": "",
        "TaskDescription": "",
        "IsVendor": false,
        "AccountEmployeeId": 00001,
        "AccountWorkTypeId": 00001,
        "AccountCostCenterId": null,
        "AccountPartyId": 00001,
        "AccountEmployeeTimeEntryId": 00001,
        "AccountTaskTypeId": 00001,
        "TaskType": "Task",
        "EmployeeManager": "",
        "ApprovalStatus": "Not Submitted",
        "Submitted": false,
        "ProjectType": "Marketing",
        "Approved": false,
        "Rejected": false
    }
]

Get Timesheet Entries By Timesheet Id

Display Time Entries of specific Timesheet Id. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/{Timesheet_Id}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/00000000-0000-0000-0000-000000000000" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

{
    "Timesheets": {
        "ID": "00000000-0000-0000-0000-000000000000",
        "EmployeeId": 00001,
        "EmployeeName": "User 01",
        "StartDate": "2018-01-01T00:00:00",
        "EndDate": "2018-01-31T00:00:00",
        "TimesheetType": "Weekly",
        "Status": "Submitted",
        "SubmittedDate": "",
        "TotalHours": 2,
        "TotalMinutes": 120,
        "TotalSeconds": 7200,
        "ApprovalDate": "",
        "TimeEntryRows": [
            {
                "TimeEntryDate": "2018-01-01T00:00:00",
                "ProjectId": 00001,
                "ProjectName": "Demo Project",
                "TaskId": 00001,
                "TaskName": "Demo Task",
                "StartTime": null,
                "EndTime": null,
                "TotalTime": "2018-01-01T01:00:00",
                "Minutes": 60,
                "Hours": 1,
                "Description": "",
                "ClientId": 00001,
                "ClientName": "Demo Client",
                "BillingType": "Hourly",
                "IsBillable": false,
                "BillingRate": 0,
                "EmployeeRate": 50
            },
            {
                "TimeEntryDate": "2018-01-10T00:00:00",
                "ProjectId": 00002,
                "ProjectName": "Sample Project",
                "TaskId": 00002,
                "TaskName": "Sample Task",
                "StartTime": null,
                "EndTime": null,
                "TotalTime": "2018-01-10T01:00:00",
                "Minutes": 60,
                "Hours": 1,
                "Description": null,
                "ClientId": 00002,
                "ClientName": "Client 2",
                "BillingType": "Hourly",
                "IsBillable": false,
                "BillingRate": 0,
                "EmployeeRate": 50
            }
        ]
    }
}

Get Timesheet Period From Date

Display Time Period of specific Date. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetTimesheetPeriod/{ Year }/{ Month }/{ Day }

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetTimesheetPeriod/2018/01/01" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

{
    "StartDate": "2018-01-01T00:00:00+00:00",
    "EndDate": "2018-01-07T00:00:00+00:00",
    "TimesheetPeriodType": "Weekly",
    "TimesheetPeriodId": "00000000-0000-0000-0000-000000000000",
    "TimesheetStatus": "Not Submitted",
    "DisableTimeEntry": "No"
}

Get All Timesheet Entries by Date Range

Display Timesheet Entries within Date Range. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetAllTimeEntriesByDateRange/{Start_Date}/{End_Date}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetAllTimeEntriesByDateRange/2018-01-01/2018-01-02" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "TimeEntryDate": "2018-01-01T00:00:00+00:00",
        "TotalTime": "2018-01-01T01:00:00+00:00",
        "ProjectName": "Demo Project",
        "ProjectCode": "DP",
        "TaskName": "Demo Task",
        "TaskCode": "DT",
        "AccountClientName": "Demo Client",
        "AccountClientNick": "DC",
        "EmployeeName": "User 01",
        "EmployeeCode": "U-1",
        "MilestoneDescription": "Default Milestone",
        "AccountEmployeeType": "Administrator",
        "DepartmentName": "Admin Department",
        "AccountWorkType": "Standard",
        "AccountCostCenter": "Default Cost Center",
        "ServiceItemName": null,
        "AccountProjectId": 00001,
        "AccountProjectTaskId": 00001,
        "TimeEntryDescription": "Sample Time Entry Description",
        "TaskDescription": "Sample Task Description",
        "AccountEmployeeId": 00001,
        "AccountWorkTypeId": 00001,
        "AccountCostCenterId": 0001,
        "AccountPartyId": 00001,
        "AccountEmployeeTimeEntryId": 00001,
        "AccountTaskTypeId": 00001,
        "TaskType": "Task",
        "EmployeeManager": "",
        "ApprovalStatus": "Not Submitted",
        "ProjectType": "Marketing",
        "IsBillable": "No",
        "IsVendor": "No",
        "Submitted": "No",
        "Approved": "No",
        "Rejected": "No"
    },
    {
        "TimeEntryDate": "2018-01-02T00:00:00+00:00",
        "TotalTime": "2018-01-01T01:00:00+00:00",
        "ProjectName": "Demo Project",
        "ProjectCode": "DP",
        "TaskName": "Demo Task",
        "TaskCode": "DT",
        "AccountClientName": "Demo Client",
        "AccountClientNick": "DC",
        "EmployeeName": "User 01",
        "EmployeeCode": "U-1",
        "MilestoneDescription": "Default Milestone",
        "AccountEmployeeType": "Administrator",
        "DepartmentName": "Admin Department",
        "AccountWorkType": "Standard",
        "AccountCostCenter": "Default Cost Center",
        "ServiceItemName": null,
        "AccountProjectId": 00001,
        "AccountProjectTaskId": 00001,
        "TimeEntryDescription": "Sample Time Entry Description",
        "TaskDescription": "Sample Task Description",
        "AccountEmployeeId": 00001,
        "AccountWorkTypeId": 00001,
        "AccountCostCenterId": 0001,
        "AccountPartyId": 00001,
        "AccountEmployeeTimeEntryId": 00001,
        "AccountTaskTypeId": 00001,
        "TaskType": "Task",
        "EmployeeManager": "",
        "ApprovalStatus": "Not Submitted",
        "ProjectType": "Marketing",
        "IsBillable": "No",
        "IsVendor": "No",
        "Submitted": "No",
        "Approved": "No",
        "Rejected": "No"
    }
]

Get All Timesheet WorkDays with Hours by Week of Specific Date

Display Timesheet WorkDays and Hours by Week of Specific Date. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetTimesheetWorkingDaysWithHours/{ Year }/{ Month }/{ Day }

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetTimesheetWorkingDaysWithHours/2018/08/01" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "TimeEntryDate": "2018-01-01T00:00:00+00:00",
        "TotalHours": "01:00",
        "ShowClientInTimesheet": "No",
        "ShowWorkTypeInTimesheet": "No",
        "ShowClockStartEnd": "No",
        "ShowCostCenterInTimesheet": "No"
    },
    {
        "TimeEntryDate": "2018-01-02T00:00:00+00:00",
        "TotalHours": "01:00",
        "ShowClientInTimesheet": "No",
        "ShowWorkTypeInTimesheet": "No",
        "ShowClockStartEnd": "No",
        "ShowCostCenterInTimesheet": "No"
    }
]

Get Timesheet Entry Details of Specific Date

Display Timesheet Entry Details of Specific Date. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetTimeEntryDetail/{ Year }/{ Month }/{ Day }

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetTimeEntryDetail/2018/08/01" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "AccountEmployeeTimeEntryID": 00001,
        "AccountProjectID": 00001,
        "AccountProjectTaskID": 00001,
        "ProjectName": "Demo Project",
        "TaskName": "Demo Task",
        "Description": "Sample Time Entry Description",
        "StartTime": "01/01/2018 1:00:00 PM",
        "EndTime": "01/01/2018 4:00:00 PM",
        "TotalHours": "03:00",
        "ShowClientInTimesheet": "No",
        "ShowWorkTypeInTimesheet": "No",
        "ShowCostCenterInTimesheet": "No",
        "ShowClockStartEnd": "No",
        "AccountClientId": 00001,
        "ClientName": "Demo Client",
        "WorkTypeName": "Standard",
        "AccountWorkTypeID": 0001,
        "TaskTypeID": 00001,
        "TaskType": "Task"
    },
    {
        "AccountEmployeeTimeEntryID": 00002,
        "AccountProjectID": 00001,
        "AccountProjectTaskID": 00001,
        "ProjectName": "Demo Project",
        "TaskName": "Demo Task",
        "Description": "Sample Time Entry Description",
        "StartTime": "01/01/2018 9:00:00 AM",
        "EndTime": "01/01/2018 11:00:00 AM",
        "TotalHours": "02:00",
        "ShowClientInTimesheet": "No",
        "ShowWorkTypeInTimesheet": "No",
        "ShowCostCenterInTimesheet": "No",
        "ShowClockStartEnd": "No",
        "AccountClientId": 00001,
        "ClientName": "Demo Client",
        "WorkTypeName": "Standard",
        "AccountWorkTypeID": 0001,
        "TaskTypeID": 00001,
        "TaskType": "Task"
    }
]

Get Types of Timesheet Approvals

Display Approvals of Time Sheet. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetTimesheetApprovalTypes

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetTimesheetApprovalTypes" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "AccountApprovalTypeId": 00001,
        "ApprovalTypeName": "Team Lead --> Project Manager",
        "IsTimeOffApprovalTypes": "No"
    },
    {
        "AccountApprovalTypeId": 00002,
        "ApprovalTypeName": "Team Lead",
        "IsTimeOffApprovalTypes": "No"
    }
]

Get List of Submitted Timesheets Who are Not Approved Yet

Display Approvable Time Sheet. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetTimesheetApprovals

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetTimesheetApprovals" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "AccountEmployeeTimeEntryPeriodId": "00000000-0000-0000-0000-000000000000",
        "TimeEntryAccountEmployeeId": 00001,
        "TimeEntryStartDate": "2018-01-01T00:00:00+00:00",
        "TimeEntryEndDate": "2018-01-07T00:00:00+00:00",
        "TimeEntryViewType": "Weekly",
        "EmployeeName": "Employee 01",
        "TotalMinutes": 120,
        "TimeEntryDate": "2018-01-01T00:00:00+00:00",
        "BillableTotalMinutes": 60,
        "NonBillableTotalMinutes": 60,
        "EMailAddress": "someone@example.com",
        "AccountProjectId": 00001,
        "Percentage": 50,
        "SystemApproverTypeId": 1
    }
]

Get Timesheet Period of Specific Employee by Date

Display Timesheet Period for the Week by Date of Employee . Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/GetTimesheetPeriodByEmployeeId/{Employee_Id}/{ Year }/{ Month }/{ Day }

Example Request

curl "https://demo.livetecs.com/api/Timesheets/GetTimesheetPeriodByEmployeeId/00001/2018/01/01" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "StartDate": "2018-01-01T00:00:00+00:00",
        "EndDate": "2018-01-07T00:00:00+00:00",
        "TimesheetPeriodType": "Weekly",
        "TimesheetPeriodId": "00000000-0000-0000-0000-000000000000",
        "TimesheetStatus": "Not Submitted",
        "DisableTimeEntry": "No"
    }
]

GET Submit Timesheet Of Employee

Submit Timesheet for specific PeriodId of Employee . Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/SubmitTimesheetByEmployeeId/{Employee_Id}/{AccountEmployeeTimeEntryPeriod_Id}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/SubmitTimesheetByEmployeeId/00001/00000000-0000-0000-0000-000000000000" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "Message": "Record Updated"
    }
]

GET Submit Own Timesheet

Submit Own Timesheet for specific PeriodId. Returns a 200 OK response code if the call succeeded.

GET /API/Timesheet/SubmitTimesheetByEmployeeId/{ AccountEmployeeTimeEntryPeriodId }

Example Request

curl "https://demo.livetecs.com/api/Timesheets/SubmitTimesheetByEmployeeId/00000000-0000-0000-0000-000000000000" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X GET \
      -H "Content-Type: application/json"

Example Response

[
    {
        "Message": "Record Updated"
    }
]

Approve or Reject Timesheet

Approve or Reject Timesheet for specific PeriodId. Returns a 200 OK response code if the call succeeded. Valid Values for Status are “Approve” or “Reject”

POST /API/Timesheets/ApproveTimeSheet

Example Request

curl "https://demo.livetecs.com/api/Timesheets/ApproveTimeSheet" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X POST \
      -H "Content-Type: application/json" \
      -d "{'TimeEntryPeriodId':'00000000-0000-0000-0000-000000000000','Status':'Approve'}"

Example Response

[
    {
        "Message": "TimeEntryPeriod Approved Successfully"
    }
]

Get Timesheet Periods by Date Range

Display a list of Timesheet Periods by Date range. Returns a 200 OK response code if the call succeeded.

Parameters Required Input Style Description Default Value
Start Date Yes MM-DD-YYYY Start Date for Period List
End Date Yes MM-DD-YYYY End Date for Period List
OutputType No Digit Period List Output Type range as 1=Entered, 2=Both, 3=Not Entered 1
ApprovalStatus No Digit Period List Approval Status range as 0=All Timesheet Periods, 1=All Open Timesheet Periods, 2=Not Submitted, 3=Submitted,4=Approved, 5=Rejected 1
POST /API/Timesheets/TimeEntryPeriodList/{Start Date}/{End Date}?OutputType={Output Type}&ApprovalStatus={Approval Status}

Example Request

curl "https://demo.livetecs.com/api/Timesheets/TimeEntryPeriodList/11-1-2018/11-30-2018?OutputType=1&ApprovalStatus=1" \
      -H "APIKey: {Your API Key}" \
      -H "AuthToken: {Your Authentication Token}" \
      -H "User-Agent: MyApp (yourname@example.com)" \
      -X POST \
      -H "Content-Type: application/json" \

Example Response

[
    {
        "TimeEntryStartDate": "2018-10-29T00:00:00+00:00",
        "TimeEntryEndDate": "2018-11-04T00:00:00+00:00",
        "TimeEntryViewType": "Weekly",
        "AccountEmployeeTimeEntryPeriodId": "00000000-0000-0000-0000-000000000000",
        "AccountId": 1,
        "AccountEmployeeId": 1,
        "EmployeeName": "Demo Employee",
        "IsEntered": "No",
        "Submitted": false,
        "Approved": false,
        "Rejected": false,
        "InApproval": false,
        "SubmittedDate": null,
        "ApprovedOn": null,
        "ApprovedByEmployeeId": null,
        "RejectedOn": null,
        "RejectedByEmployeeId": null,
        "TotalHours": 0,
        "TotalMinutes": 0
    }
]