### Example Response for Get Job Time Entries (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time An example of the XML response when retrieving time sheet entries for a specific job. This format details each time entry with associated job, task, and staff information. ```xml OK ``` -------------------------------- ### Example Project Response Source: https://developer.xero.com/documentation/api/projects/projects This is an example of the JSON response when retrieving projects with the specified filters. It includes project details, financial summaries, and status. ```JSON { "pagination": { "page": 1, "pageSize": 50, "pageCount": 1, "itemCount": 1 } }, "items": [ { "projectId": "254553fa-2be8-4991-bd5e-70a97ea12ef8", "contactId": "01234567-89ab-cdef-0123-456789abcdef", "name": "New Kitchen", "currencyCode": "", "minutesLogged": 0, "totalTaskAmount": { "currency": "NZD", "value": 0 }, "totalExpenseAmount": { "currency": "NZD", "value": 0 }, "minutesToBeInvoiced": 0, "taskAmountToBeInvoiced": { "currency": "NZD", "value": 0 }, "taskAmountInvoiced": { "currency": "NZD", "value": 0 }, "expenseAmountToBeInvoiced": { "currency": "NZD", "value": 0 }, "expenseAmountInvoiced": { "currency": "NZD", "value": 0 }, "projectAmountInvoiced": { "currency": "NZD", "value": 0 }, "deposit": { "currency": "NZD", "value": 0 }, "depositApplied": { "currency": "NZD", "value": 0 }, "creditNoteAmount": { "currency": "NZD", "value": 0 }, "deadlineUtc": "", "totalInvoiced": { "currency": "NZD", "value": 0 }, "totalToBeInvoiced": { "currency": "NZD", "value": 0 }, "estimate": { "currency": "NZD", "value": 99.99 }, "status": "INPROGRESS" } ] } ``` -------------------------------- ### Example Response for Get Job Time Entries (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time An example of the JSON response when retrieving time sheet entries for a specific job. This format details each time entry with associated job, task, and staff information, including conditional fields like start, end, and invoiceTaskUuid. ```json { "status": "OK", "times": [ { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "faabafbe-1a8c-4172-b4a5-d989dda44ab5", "name": "Design & Layout" }, "staff": { "uuid": "c2014300-12a3-4d98-9b83-0ff84ae1c72b", "name": "Chris Spence" }, "date": "2008-10-29T00:00:00", "minutes": 240, "note": "", "billable": true, "start": "13:00", "end": "17:00", "invoiceTaskUuid": "" }, { "uuid": "17cea522-77a8-4b38-912a-7bc6f6c6eca9", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "378300a7-dcb3-43ba-901d-d40c1fe14ba9", "name": "Copywriting" }, "staff": { "uuid": "a6d22d8b-752b-4b50-854f-8ca5559061b4", "name": "John Smith" }, "date": "2008-11-04T00:00:00", "minutes": 180, "note": "", "billable": true } ] } ``` -------------------------------- ### Example JSON Response for Time Entry Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time This JSON response illustrates the structure of a detailed time entry. The 'start', 'end', and 'invoiceTaskUuid' fields are present only when applicable. ```JSON { "status": "OK", "time": { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "faabafbe-1a8c-4172-b4a5-d989dda44ab5", "name": "Design & Layout" }, "staff": { "uuid": "c2014300-12a3-4d98-9b83-0ff84ae1c72b", "name": "Chris Spence" }, "date": "2008-10-29T00:00:00", "minutes": 240, "note": "", "billable": true, "start": "13:00", "end": "17:00", "invoiceTaskUuid": "" } } ``` -------------------------------- ### Example XML Response for Time Entry Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time This XML response shows the structure of a detailed time entry, including job, task, staff, date, minutes, and billable status. Fields like 'Start', 'End', and 'InvoiceTaskUUID' are conditionally included. ```XML OK ``` -------------------------------- ### Get Specific Client Group Response (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Example XML response for retrieving a client group. The 'Taxable' field is included if the Practice Management module is enabled. ```xml OK f8235e1a-d383-48b7-9139-ba97ab8ca889 Bloggs Family Yes c2490566-78e2-4898-ad30-a3b220e98f47 Jo Bloggs d9d3be65-9eb2-4cd4-ace4-e3089f28cfad Bloggs Widget Ltd ``` -------------------------------- ### GET projects Source: https://developer.xero.com/documentation/api/projects/projects Retrieves a list of projects. This endpoint allows users to fetch all available projects. ```APIDOC ## GET projects ### Description Retrieves a list of projects. ### Method GET ### Endpoint /projects ### Parameters #### Query Parameters (No query parameters documented) #### Path Parameters (No path parameters documented) ### Request Example (No request example documented) ### Response #### Success Response (200) (No response fields documented) #### Response Example (No response example documented) ``` -------------------------------- ### Get Specific Client Group Response (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Example JSON response for retrieving a client group. The 'taxable' field is returned if the Practice Management module is enabled. ```json { "status": "OK", "group": { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "name": "Bloggs Family", "taxable": "Yes", "clients": [ { "uuid": "c2490566-78e2-4898-ad30-a3b220e98f47", "name": "Jo Bloggs" }, { "uuid": "d9d3be65-9eb2-4cd4-ace4-e3089f28cfad", "name": "Bloggs Widget Ltd" } ] } } ``` -------------------------------- ### GET list Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Return a list of all time sheet entries. ```APIDOC ## GET list ### Description Return a list of all time sheet entries. ### Method GET ### Endpoint /practicemanager/3.1/time.api/list ### Response #### Success Response (200) - **status** (string) - The status of the response. - **times** (array) - An array of time entry objects (structure similar to GET job/[job number] response). ### Response Example **JSON** ```json { "status": "OK", "times": [ { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "faabafbe-1a8c-4172-b4a5-d989dda44ab5", "name": "Design & Layout" }, "staff": { "uuid": "c2014300-12a3-4d98-9b83-0ff84ae1c72b", "name": "Chris Spence" }, "date": "2008-10-29T00:00:00", "minutes": 240, "note": "", "billable": true, "start": "13:00", "end": "17:00", "invoiceTaskUuid": "" } ] } ``` ``` -------------------------------- ### GET Projects with Filters Source: https://developer.xero.com/documentation/api/projects/projects Retrieve a list of projects with specified filters for contact, status, and pagination. Ensure the contactId is valid and states are either INPROGRESS or CLOSED. ```HTTP GET https://api.xero.com/projects.xro/2.0/projects?contactId=01234567-89ab-cdef-0123-456789abcdef&states=INPROGRESS&page=1&pageSize=50 ``` -------------------------------- ### List Client Groups Response (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Example XML response for the 'list' endpoint, showing client group details including UUID, Name, and Taxable status. ```xml OK f8235e1a-d383-48b7-9139-ba97ab8ca889 Bloggs Family Yes 46e1db32-6c94-43f6-b5eb-fa082feb1fc4 Smith Family No ``` -------------------------------- ### List Client Groups Response (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Example JSON response for the 'list' endpoint. The 'taxable' field is included if the Practice Management module is enabled. ```json { "status": "OK", "groups": [ { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "name": "Bloggs Family", "taxable": "Yes" }, { "uuid": "46e1db32-6c94-43f6-b5eb-fa082feb1fc4", "name": "Smith Family", "taxable": "No" } ] } ``` -------------------------------- ### GET get/[uuid] Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Detailed information for a specific time entry, identified by its UUID. ```APIDOC ## GET get/[uuid] ### Description Detailed information for a specific time entry, identified by its UUID. ### Method GET ### Endpoint /practicemanager/3.1/time.api/get/[uuid] #### Path Parameters - **uuid** (string) - Required - The UUID of the time entry. ### Response #### Success Response (200) - **status** (string) - The status of the response. - **time** (object) - The detailed time entry object (structure similar to GET job/[job number] response, but for a single entry). ### Response Example **JSON** ```json { "status": "OK", "time": { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "faabafbe-1a8c-4172-b4a5-d989dda44ab5", "name": "Design & Layout" }, "staff": { "uuid": "c2014300-12a3-4d98-9b83-0ff84ae1c72b", "name": "Chris Spence" }, "date": "2008-10-29T00:00:00", "minutes": 240, "note": "", "billable": true, "start": "13:00", "end": "17:00", "invoiceTaskUuid": "" } } ``` ``` -------------------------------- ### GET get/[uuid] Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Retrieves detailed information for a specific time entry using its unique identifier. ```APIDOC ## GET get/[uuid] ### Description Detailed information for a specific time entry. ### Method GET ### Endpoint /practicemanager/3.1/time.api/get/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier for the time entry. ### Response #### Success Response (200) - **status** (string) - The status of the response (e.g., "OK"). - **time** (object) - An object containing the details of the time entry. - **uuid** (string) - The unique identifier for the time entry. - **job** (object) - Information about the associated job. - **id** (string) - The ID of the job. - **name** (string) - The name of the job. - **task** (object) - Information about the associated task. - **uuid** (string) - The UUID of the task. - **name** (string) - The name of the task. - **staff** (object) - Information about the staff member. - **uuid** (string) - The UUID of the staff member. - **name** (string) - The name of the staff member. - **date** (string) - The date of the time entry (ISO 8601 format). - **minutes** (integer) - The duration of the time entry in minutes. - **note** (string) - Any notes associated with the time entry. - **billable** (boolean) - Indicates if the time entry is billable. - **start** (string) - Optional - The start time of the entry (HH:MM format), included if recorded. - **end** (string) - Optional - The end time of the entry (HH:MM format), included if recorded. - **invoiceTaskUuid** (string) - Optional - The UUID of the invoiced task, included if the time was invoiced. ### Response Example ```json { "status": "OK", "time": { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "faabafbe-1a8c-4172-b4a5-d989dda44ab5", "name": "Design & Layout" }, "staff": { "uuid": "c2014300-12a3-4d98-9b83-0ff84ae1c72b", "name": "Chris Spence" }, "date": "2008-10-29T00:00:00", "minutes": 240, "note": "", "billable": true, "start": "13:00", "end": "17:00", "invoiceTaskUuid": "" } } ``` ``` -------------------------------- ### Get Specific Time Entry by UUID Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Retrieve detailed information for a specific time entry using its unique identifier (UUID). ```URL https://api.xero.com/practicemanager/3.1/time.api/get/f8235e1a-d383-48b7-9139-ba97ab8ca889 ``` -------------------------------- ### GET get/[uuid] Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Detailed information for a specific client group identified by its UUID. ```APIDOC ## GET get/[uuid] ### Description Detailed information for a specific client group. ### Method GET ### Endpoint /practicemanager/3.1/clientgroup.api/get/[uuid] ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the client group. ``` -------------------------------- ### POST add Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Adds a time sheet entry to a job. Supports specifying time by duration (in minutes) or by start and end times. ```APIDOC ## POST add ### Description Add a time sheet entry to a job. ### Method POST ### Endpoint https://api.xero.com/practicemanager/3.1/time.api/add ### Request Body #### JSON Example (by duration) ```json { "job": "J000309", "taskUuid": "f73c82da-c1f3-4fa2-b2c3-eaa6397d300b", "staffUuid": "fa0cb4d8-9b7f-42db-8b89-596681519afa", "date": "20081030", "minutes": 60, "note": "Detailed note about the time sheet entry" } ``` #### JSON Example (by duration - negative time) ```json { "job": "J000310", "taskUuid": "f73c82da-c1f3-4fa2-b2c3-eaa6397d300b", "staffUuid": "fa0cb4d8-9b7f-42db-8b89-596681519afa", "date": "20141030", "minutes": -60, "note": "Negative time entry" } ``` #### JSON Example (by start/end time) ```json { "job": "J000311", "taskUuid": "f73c82da-c1f3-4fa2-b2c3-eaa6397d300b", "staffUuid": "fa0cb4d8-9b7f-42db-8b89-596681519afa", "date": "20081030", "start": "13:00", "end": "13:30", "note": "Detailed note about the time sheet entry" } ``` ### Response #### Success Response (200) The response will include the detailed information of the time entry per the GET get/[identifier] method. ``` -------------------------------- ### Add Client Group Message (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Example JSON message body for adding a client group. The 'taxable' field is optional, and 'clientUuid' specifies the client to add. ```json { "name": "Smith Group", "taxable": "No", "clientUuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889" } ``` -------------------------------- ### GET list Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Return a list of all client groups. The 'taxable' field is returned if the Practice Management module is enabled. ```APIDOC ## GET list ### Description Return a list of all client groups. The `taxable` field is returned if the Practice Management module is enabled. ### Method GET ### Endpoint /practicemanager/3.1/clientgroup.api/list ### Response #### Success Response (200) - **groups** (array) - A list of client groups. - **uuid** (string) - The unique identifier for the client group. - **name** (string) - The name of the client group. - **taxable** (string) - Indicates if the client group is taxable (returned if Practice Management module is enabled). ### Response Example ```json { "status": "OK", "groups": [ { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "name": "Bloggs Family", "taxable": "Yes" }, { "uuid": "46e1db32-6c94-43f6-b5eb-fa082feb1fc4", "name": "Smith Family", "taxable": "No" } ] } ``` ``` -------------------------------- ### GET projects Source: https://developer.xero.com/documentation/api/projects/projects Retrieves a list of projects. This endpoint can be filtered by various parameters such as projectId, projectIds, contactID, and states. Pagination is also supported. ```APIDOC ## GET projects ### Description Retrieves a list of projects. This endpoint can be filtered by various parameters such as projectId, projectIds, contactID, and states. Pagination is also supported. ### Method GET ### Endpoint https://api.xero.com/projects.xro/2.0/projects ### Parameters #### Query Parameters - **projectId** (string) - Optional - You can specify an individual project by appending the projectId to the endpoint, i.e. `GET https://.../projects/{projectId}` - **projectIds** (string) - Optional - Search for all projects that match a comma separated list of projectIds, i.e. `GET https://.../projects?projectIDs={projectId},{projectId}` - **contactID** (string) - Optional - Filter for projects for a specific contact - **states** (string) - Optional - Filter for projects in a particular state (INPROGRESS or CLOSED) - **page** (integer) - Optional - Set to 1 by default. The requested number of the page in paged response – Must be a number greater than 0. - **pageSize** (integer) - Optional - It is set to 50 by default. The number of items to return per page in a paged response – Must be a number between 1 and 500. ### Response #### Success Response (200) - **projectId** (string) - Identifier of the project. - **contactId** (string) - Identifier of the contact this project was created for. See Contacts. - **name** (string) - Name of the project. - **currencyCode** (string) - A project's currency code in ISO-4217 format. Will be set to the organisation's default currency, until a time where Projects supports multi-currency projects. - **minutesLogged** (integer) - A total of minutes logged against all tasks on the Project. - **totalTaskAmount** (object) - A summation of the total actuals amount of each project task. An object containing currency and value. - **totalExpenseAmount** (object) - A summation of the total actuals amount of each project expense. An object containing currency and value. - **minutesToBeInvoiced** (integer) - Minutes which have not been invoiced across all chargeable tasks in the project. - **taskAmountToBeInvoiced** (object) - A summation of `amountToBeInvoiced` of each task in the project. An object containing currency and value. - **taskAmountInvoiced** (object) - A summation of `amountInvoiced` of each task in the project. An object containing currency and value. - **expenseAmountToBeInvoiced** (object) - A summation of 'total' of each expense which is not invoiced in the project. An object containing currency and value. - **expenseAmountInvoiced** (object) - A summation of 'total' of each expense which is invoiced in the project. An object containing currency and value. - **projectAmountInvoiced** (object) - A summation of project amount invoices that is invoiced in the project. An object containing currency and value. - **deposit** (object) - Deposit for the project. An object containing currency and value. - **depositApplied** (object) - Deposit amounts which have been applied to invoice/s as credit. An object containing currency and value. - **creditNoteAmount** (object) - A summation of credit notes in the project. An object containing currency and value. - **deadlineUTC** (string) - Deadline for the project. UTC Date Time in ISO-8601 format. - **totalInvoiced** (object) - A summation of the values `taskAmountInvoiced`, `expenseAmountInvoiced`, `projectAmountInvoiced`, `deposit`, `depositApplied` and `creditNoteAmount`. An object containing currency and value. - **totalToBeInvoiced** (object) - A summation of the values values `taskAmountToBeInvoiced` and `expenseAmountToBeInvoiced`. An object containing currency and value. - **estimate** (object) - Estimate for the project (currency and value). An object containing currency and value. - **status** (string) - Status of the project. INPROGRESS or CLOSED. A project is created with status of `INPROGRESS`. To change the status of a project see PATCH. ### Request Example GET https://api.xero.com/projects.xro/2.0/projects?contactId=01234567-89ab-cdef-0123-456789abcdef&states=INPROGRESS&page=1&pageSize=50 ### Response Example ```json { "pagination": { "page": 1, "pageSize": 50, "pageCount": 1, "itemCount": 1 } }, "items": [ { "projectId": "254553fa-2be8-4991-bd5e-70a97ea12ef8", "contactId": "01234567-89ab-cdef-0123-456789abcdef", "name": "New Kitchen", "currencyCode": "", "minutesLogged": 0, "totalTaskAmount": { "currency": "NZD", "value": 0 }, "totalExpenseAmount": { "currency": "NZD", "value": 0 }, "minutesToBeInvoiced": 0, "taskAmountToBeInvoiced": { "currency": "NZD", "value": 0 }, "taskAmountInvoiced": { "currency": "NZD", "value": 0 }, "expenseAmountToBeInvoiced": { "currency": "NZD", "value": 0 }, "expenseAmountInvoiced": { "currency": "NZD", "value": 0 }, "projectAmountInvoiced": { "currency": "NZD", "value": 0 }, "deposit": { "currency": "NZD", "value": 0 }, "depositApplied": { "currency": "NZD", "value": 0 }, "creditNoteAmount": { "currency": "NZD", "value": 0 }, "deadlineUtc": "", "totalInvoiced": { "currency": "NZD", "value": 0 }, "totalToBeInvoiced": { "currency": "NZD", "value": 0 }, "estimate": { "currency": "NZD", "value": 99.99 }, "status": "INPROGRESS" } ] } ``` ``` -------------------------------- ### Update Time Sheet Entry by Start/End Time (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time This JSON structure is used to update a time sheet entry by providing the start and end times. The 'start' and 'end' fields should be in HH:MM format. ```json { "uuid": "f5d334b2-c07f-424c-89b4-2c2aabc09edd", "job": "J000311", "taskUuid": "f73c82da-c1f3-4fa2-b2c3-eaa6397d300b", "staffUuid": "fa0cb4d8-9b7f-42db-8b89-596681519afa", "date": "20081030", "start": "13:00", "end": "13:30", "note": "Detailed note about the time sheet entry" } ``` -------------------------------- ### Update Time Sheet Entry by Start/End Time (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Use this XML format to update a time sheet entry by specifying the start and end times. Ensure the Date, Start, and End fields are correctly formatted. ```xml f5d334b2-c07f-424c-89b4-2c2aabc09edd J000311 f73c82da-c1f3-4fa2-b2c3-eaa6397d300b fa0cb4d8-9b7f-42db-8b89-596681519afa 20081030 13:00 13:30 Detailed note about the time sheet entry ``` -------------------------------- ### GET get/[uuid] Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Retrieves detailed information for a specific client group using its unique identifier. ```APIDOC ## GET get/[uuid] ### Description Detailed information for a specific client group. ### Method GET ### Endpoint /practicemanager/3.1/clientgroup.api/get/[uuid] ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier of the client group. ### Response #### Success Response (200) - **status** (string) - The status of the response (e.g., "OK"). - **group** (object) - Contains the client group details: - **uuid** (string) - The unique identifier of the client group. - **name** (string) - The name of the client group. - **taxable** (string) - Indicates if the group is taxable. Returned if the Practice Management module is enabled. - **clients** (array) - A list of clients within the group: - **uuid** (string) - The unique identifier of the client. - **name** (string) - The name of the client. ### Response Example (JSON) { "status": "OK", "group": { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "name": "Bloggs Family", "taxable": "Yes", "clients": [ { "uuid": "c2490566-78e2-4898-ad30-a3b220e98f47", "name": "Jo Bloggs" }, { "uuid": "d9d3be65-9eb2-4cd4-ace4-e3089f28cfad", "name": "Bloggs Widget Ltd" } ] } } ``` -------------------------------- ### Add Client Group Message (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups Example XML message body for adding a client group. The 'Taxable' field is optional for Practice Manager users, and 'ClientUUID' specifies the client to add. ```xml Smith Group No f8235e1a-d383-48b7-9139-ba97ab8ca889 ``` -------------------------------- ### Add Time Sheet Entry by Start/End Time (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Use this XML format to add a time sheet entry by specifying the start and end times. Ensure the Date, Job, TaskUUID, and StaffUUID are provided. ```xml J000311 f73c82da-c1f3-4fa2-b2c3-eaa6397d300b fa0cb4d8-9b7f-42db-8b89-596681519afa 20081030 13:00 13:30 Detailed note about the time sheet entry ``` -------------------------------- ### Get Specific Client Group URL Source: https://developer.xero.com/documentation/api/practice-manager-3-1/client-groups The URL to retrieve detailed information for a specific client group using its UUID. ```http https://api.xero.com/practicemanager/3.1/clientgroup.api/get/f8235e1a-d383-48b7-9139-ba97ab8ca889 ``` -------------------------------- ### GET staff/[uuid] Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Return a list of time sheet entries for a specific staff member, identified by their UUID. ```APIDOC ## GET staff/[uuid] ### Description Return a list of time sheet entries for a specific staff member, identified by their UUID. ### Method GET ### Endpoint /practicemanager/3.1/time.api/staff/[uuid] #### Path Parameters - **uuid** (string) - Required - The UUID of the staff member. ### Response #### Success Response (200) - **status** (string) - The status of the response. - **times** (array) - An array of time entry objects (structure similar to GET job/[job number] response). ### Response Example **JSON** ```json { "status": "OK", "times": [ { "uuid": "f8235e1a-d383-48b7-9139-ba97ab8ca889", "job": { "id": "J000001", "name": "Brochure Template" }, "task": { "uuid": "faabafbe-1a8c-4172-b4a5-d989dda44ab5", "name": "Design & Layout" }, "staff": { "uuid": "c2014300-12a3-4d98-9b83-0ff84ae1c72b", "name": "Chris Spence" }, "date": "2008-10-29T00:00:00", "minutes": 240, "note": "", "billable": true, "start": "13:00", "end": "17:00", "invoiceTaskUuid": "" } ] } ``` ``` -------------------------------- ### GET staff/[uuid] Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Returns a list of time sheet entries for a specific staff member, filtered by a date range. ```APIDOC ## GET staff/[uuid] ### Description Return a list of time sheet entries for a specific staff member. ### Method GET ### Endpoint /practicemanager/3.1/time.api/staff/{uuid} ### Parameters #### Path Parameters - **uuid** (string) - Required - The unique identifier for the staff member. #### Query Parameters - **from** (YYYYMMDD) - Required - Return time sheet entries created on or after this date. - **to** (YYYYMMDD) - Required - Return time sheet entries created on or before this date. ### Request Example ``` https://api.xero.com/practicemanager/3.1/time.api/staff/f8235e1a-d383-48b7-9139-ba97ab8ca889?from=20090801&to=20090901 ``` ``` -------------------------------- ### Add Time Sheet Entry by Start/End Time (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Use this JSON format to add a time sheet entry by specifying the start and end times. Ensure the date, job, taskUuid, and staffUuid are provided. ```json { "job": "J000311", "taskUuid": "f73c82da-c1f3-4fa2-b2c3-eaa6397d300b", "staffUuid": "fa0cb4d8-9b7f-42db-8b89-596681519afa", "date": "20081030", "start": "13:00", "end": "13:30", "note": "Detailed note about the time sheet entry" } ``` -------------------------------- ### GET list Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time Returns a list of time sheet entries. The maximum date range between the 'from' and 'to' parameters is one year. ```APIDOC ## GET list ### Description Return a list of time sheet entries. The maximum date range between the from and to parameters is one year. ### Method GET ### Endpoint /practicemanager/3.1/time.api/list ### Parameters #### Query Parameters - **from** (YYYYMMDD) - Required - Return time sheet entries created on or after this date. - **to** (YYYYMMDD) - Required - Return time sheet entries created on or before this date. ### Request Example ``` https://api.xero.com/practicemanager/3.1/time.api/list?from=20090801&to=20090901 ``` ``` -------------------------------- ### Add Time Sheet Entry by Duration - Negative Time (XML) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time This XML example demonstrates adding a time sheet entry with a negative duration. This might be used for corrections or adjustments. ```xml J000310 f73c82da-c1f3-4fa2-b2c3-eaa6397d300b fa0cb4d8-9b7f-42db-8b89-596681519afa 20141030 -60 Negative time entry ``` -------------------------------- ### Add Time Sheet Entry by Duration - Negative Time (JSON) Source: https://developer.xero.com/documentation/api/practice-manager-3-1/time This JSON example demonstrates adding a time sheet entry with a negative duration. This might be used for corrections or adjustments. ```json { "job": "J000310", "taskUuid": "f73c82da-c1f3-4fa2-b2c3-eaa6397d300b", "staffUuid": "fa0cb4d8-9b7f-42db-8b89-596681519afa", "date": "20141030", "minutes": -60, "note": "Negative time entry" } ```