Tasks
Stores and manages tasks associated with projects in Xero. You can query, insert, update, and delete tasks, which include details like task name, description, assigned personnel, and deadlines.
Table-Specific Information
Creating Tasks
A Task must be created with a ProjectId, Name, RateCurrency, RateValue, and ChargeType. The ProjectId and RateCurrency must come from the project (ProjectId and CurrencyCode respectively). ChargeType determines how the RateValue is applied to the cost of the project:
- TIME charges the project the amount in RateValue every hour.
- FIXED charges the project the amount in RateValue once.
- NON_CHARGEABLE does not charge the project. RateValue must be set to 0.
The EstimateMinutes may also be provided to set the time estimate for the task:
INSERT INTO Tasks (ProjectId, Name, RateCurrency, RateValue, ChargeType, EstimateMinutes) VALUES ('1de78bad-5a81-4cb8-ab53-5a1a3bc73b29', 'Pave Sidewalks', 'USD', 25000, 'FIXED', 1000)
Updating Tasks
Once a Task has been created, its RateCurrency, RateValue, ChargeType or EstimateMinutes may be updated:
UPDATE Tasks SET RateValue = 250, ChargeType = 'TIME', EstimateMinutes = 2000 WHERE Id = '1de78bad-5a81-4cb8-ab53-5a1a3bc73b29/d15810a1-9324-4765-a357-80d160a0b87c'
Deleting Tasks
Tasks may also be deleted by specifying their Id:
DELETE FROM Tasks WHERE Id = '1de78bad-5a81-4cb8-ab53-5a1a3bc73b29/d15810a1-9324-4765-a357-80d160a0b87c'
Columns
| Name | Type | ReadOnly | Description |
| Id [KEY] | String | False |
A unique combination of the project and task identifiers, ensuring that each task is distinctly identified within the project. |
| TaskId | String | True |
The unique Xero identifier for the task, which is automatically assigned when the task is created in Xero. |
| ProjectId | String | False |
The unique identifier for the project to which this task belongs, providing context for the task's association with a specific project. |
| Name | String | False |
The name of the task, which provides a human-readable label for identifying the task. |
| ChargeType | String | False |
Indicates how the task is billed. Possible values include 'TIME' (charged based on hours worked), 'FIXED' (a predetermined amount for the task), or 'NON_CHARGEABLE' (the task cannot be billed). |
| RateValue | Decimal | False |
The per-hour rate that is charged for the task, applicable only if the ChargeType is TIME. This value represents the hourly cost for the task. |
| RateCurrency | String | False |
The currency in which the RateValue is measured, specifying the monetary unit for the rate (such as USD or EUR). |
| EstimateMinutes | Int | False |
The estimated number of minutes required to complete the task, providing a time forecast for project planning. |
| TotalMinutes | Int | True |
The actual total number of minutes logged against the task, indicating how much time has been spent on the task to date. |
| TotalAmountValue | Decimal | True |
The total value of the task, calculated as the product of TotalMinutes and RateValue, reflecting the total cost for the task based on the time spent and the rate. |
| TotalAmountCurrency | String | True |
The currency in which the TotalAmountValue is expressed, specifying the monetary unit for the total task value. |
| MinutesToBeInvoiced | Int | True |
The number of minutes associated with the task that have not yet been invoiced, indicating outstanding work that needs to be billed. |
| MinutesInvoiced | Int | True |
The number of minutes associated with the task that have already been invoiced, showing the work that has been billed. |
| NonChargeableMinutes | Int | True |
The number of minutes for the task that cannot be billed to the client, typically indicating work that is non-billable or covered under a fixed rate. |
| AmountToBeInvoicedValue | Decimal | True |
The total amount of the task that has not been invoiced, calculated as the product of MinutesToBeInvoiced and RateValue, representing the outstanding charge for the task. |
| AmountToBeInvoicedCurrency | String | True |
The currency of the AmountToBeInvoicedValue, indicating the monetary unit for the outstanding invoice amount. |
| AmountInvoicedValue | Decimal | True |
The total amount for the task that has been invoiced, calculated as the product of MinutesInvoiced and RateValue, showing how much has already been billed for the task. |
| AmountInvoicedCurrency | String | True |
The currency of the AmountInvoicedValue, specifying the monetary unit for the amount that has been invoiced. |
| Status | String | True |
The current status of the task. Possible values include 'ACTIVE' (the task is ongoing), 'INVOICED' (the task has been billed), or 'LOCKED' (the task is complete and cannot be modified). |
| TenantId | String | False |
The unique identifier for the tenant to query, allowing you to specify which tenant's data should be returned, useful for multi-tenant environments. |