Xero: Projects schemas
17 Xero schemas with complete fields and constraints.
← Projects operations · All schemas
Allows you to create a task — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
chargeType | string | Required within parent | Can be `TIME`, `FIXED` or `NON_CHARGEABLE`, defines how the task will be charged. Use `TIME` when you want to charge per hour and `FIXED` to charge as a fixed amount. If the task will not be charged use `NON_CHARGEABLE`. One of: TIME, FIXED, NON_CHARGEABLE |
estimateMinutes | integer | Optional | An estimated time to perform the task |
name | string | Required within parent | Name of the task. Max length 100 characters. Maximum: 100 |
rate | Model | Required within parent | Expand Allows you to create a task — request body — body rate |
Referenced models: Allows you to create a task — request body — body rate
Allows you to create a task — request body — body rate
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
currency | Model | Optional | Expand Allows you to create a task — request body — body rate currency |
value | number | Optional | Format: double |
Referenced models: Allows you to create a task — request body — body rate currency
Allows you to create a task — request body — body rate currency
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | string | Root | 3 letter alpha code for the ISO-4217 currency code, e.g. USD, AUD. One of: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SPL, SRD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TVD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMW, ZMK, ZWD |
Allows you to create a task — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
amountInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
amountToBeInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
chargeType | string | Optional | Can be `TIME`, `FIXED` or `NON_CHARGEABLE`, defines how the task will be charged. Use `TIME` when you want to charge per hour and `FIXED` to charge as a fixed amount. If the task will not be charged use `NON_CHARGEABLE`. Known values: TIME, FIXED, NON_CHARGEABLE |
estimateMinutes | JSON | Optional | |
estimateMinutes (anyOf 1) | integer | Alternative | An estimated time to perform the task |
estimateMinutes (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
fixedMinutes | JSON | Optional | |
fixedMinutes (anyOf 1) | integer | Alternative | Minutes logged against this task if its charge type is `FIXED`. |
fixedMinutes (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
minutesInvoiced | JSON | Optional | |
minutesInvoiced (anyOf 1) | integer | Alternative | Minutes on this task which have been invoiced. |
minutesInvoiced (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
minutesToBeInvoiced | JSON | Optional | |
minutesToBeInvoiced (anyOf 1) | integer | Alternative | Minutes on this task which have not been invoiced. |
minutesToBeInvoiced (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
name | string | Optional | Name of the task. |
nonChargeableMinutes | JSON | Optional | |
nonChargeableMinutes (anyOf 1) | integer | Alternative | Minutes logged against this task if its charge type is `NON_CHARGEABLE`. |
nonChargeableMinutes (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
projectId | string | Optional | Identifier of the project task belongs to. Format: uuid |
rate | Model | Optional | Expand Allows you to create a task — response body — rate |
status | string | Optional | Status of the task. When a task of ChargeType is `FIXED` and the rate amount is invoiced the status will be set to `INVOICED` and can't be modified. A task with ChargeType of `TIME` or `NON_CHARGEABLE` cannot have a status of `INVOICED`. A `LOCKED` state indicates that the task is currently changing state (for example being invoiced) and can't be modified. Known values: ACTIVE, INVOICED, LOCKED |
taskId | string | Optional | Identifier of the task. Format: uuid |
totalAmount | Model | Optional | Expand Allows you to create a task — response body — rate |
totalMinutes | JSON | Optional | |
totalMinutes (anyOf 1) | integer | Alternative | Total minutes which have been logged against the task. Logged by assigning a time entry to a task |
totalMinutes (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Referenced models: Allows you to create a task — response body — rate
Allows you to create a task — response body — rate
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
currency | Model | Optional | Expand Retrieves a single project — response body — currency Code |
value | JSON | Optional | |
value (anyOf 1) | number | Alternative | Format: double |
value (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Referenced models: Retrieves a single project — response body — currency Code
Creates a time entry for a specific project — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
dateUtc | string | Required within parent | Date time entry is logged on. UTC Date Time in ISO-8601 format. Format: date-time |
description | string | Optional | An optional description of the time entry, will be set to null if not provided during update. |
duration | integer | Required within parent | Number of minutes to be logged. Duration is between 1 and 59940 inclusively. |
taskId | string | Required within parent | Identifier of the task that time entry is logged against. Format: uuid |
userId | string | Required within parent | The xero user identifier of the person logging the time. Format: uuid |
Creates a time entry for a specific project — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
dateEnteredUtc | string | Optional | The date time that time entry is created. UTC Date Time in ISO-8601 format. By default it is set to server time. Format: date-time |
dateUtc | string | Optional | The date time that time entry is logged on. UTC Date Time in ISO-8601 format. Format: date-time |
description | string | Optional | A description of the time entry. |
duration | JSON | Optional | |
duration (anyOf 1) | integer | Alternative | The duration of logged minutes. |
duration (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
projectId | string | Optional | Identifier of the project, that the task (which the time entry is logged against) belongs to. Format: uuid |
status | string | Optional | Status of the time entry. By default a time entry is created with status of `ACTIVE`. A `LOCKED` state indicates that the time entry is currently changing state (for example being invoiced). Updates are not allowed when in this state. It will have a status of INVOICED once it is invoiced. Known values: ACTIVE, LOCKED, INVOICED |
taskId | string | Optional | Identifier of the task that time entry is logged against. Format: uuid |
timeEntryId | string | Optional | Identifier of the time entry. Format: uuid |
userId | string | Optional | The xero user identifier of the person who logged time. Format: uuid |
Retrieves a list of all project users — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
items | array | Optional | |
items[] | Model | Each item | Expand Retrieves a list of all project users — response body — items item |
pagination | Model | Optional | Expand Retrieves all projects — response body — pagination |
Referenced models: Retrieves a list of all project users — response body — items item, Retrieves all projects — response body — pagination
Retrieves a list of all project users — response body — items item
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
email | string | Optional | Email address of the user. |
name | string | Optional | Full name of the user. |
userId | string | Optional | Identifier of the user of the project. Format: uuid |
Retrieves a single project — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
contactId | string | Optional | Identifier of the contact this project was created for. Format: uuid |
creditNoteAmount | Model | Optional | Expand Allows you to create a task — response body — rate |
currencyCode | Model | Optional | Expand Retrieves a single project — response body — currency Code |
deadlineUtc | string | Optional | Deadline for the project. UTC Date Time in ISO-8601 format. Format: date-time |
deposit | Model | Optional | Expand Allows you to create a task — response body — rate |
depositApplied | Model | Optional | Expand Allows you to create a task — response body — rate |
estimate | Model | Optional | Expand Allows you to create a task — response body — rate |
estimateAmount | Model | Optional | Expand Allows you to create a task — response body — rate |
expenseAmountInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
expenseAmountToBeInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
minutesLogged | JSON | Optional | |
minutesLogged (anyOf 1) | integer | Alternative | A total of minutes logged against all tasks on the Project. |
minutesLogged (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
minutesToBeInvoiced | JSON | Optional | |
minutesToBeInvoiced (anyOf 1) | integer | Alternative | Minutes which have not been invoiced across all chargeable tasks in the project. |
minutesToBeInvoiced (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
name | string | Required within parent | Name of the project. |
projectAmountInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
projectId | string | Optional | Identifier of the project. Format: uuid |
status | string | Optional | Status for project Known values: INPROGRESS, CLOSED |
taskAmountInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
taskAmountToBeInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
totalExpenseAmount | Model | Optional | Expand Allows you to create a task — response body — rate |
totalInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
totalTaskAmount | Model | Optional | Expand Allows you to create a task — response body — rate |
totalToBeInvoiced | Model | Optional | Expand Allows you to create a task — response body — rate |
Referenced models: Allows you to create a task — response body — rate, Retrieves a single project — response body — currency Code
Retrieves a single project — response body — currency Code
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | string | Root | 3 letter alpha code for the ISO-4217 currency code, e.g. USD, AUD. Known values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, IMP, INR, IQD, IRR, ISK, JEP, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLL, SOS, SPL, SRD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TVD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VND, VUV, WST, XAF, XCD, XDR, XOF, XPF, YER, ZAR, ZMW, ZMK, ZWD |
Retrieves all project tasks — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
items | array | Optional | |
items[] | Model | Each item | Expand Allows you to create a task — response body |
pagination | Model | Optional | Expand Retrieves all projects — response body — pagination |
Referenced models: Retrieves all projects — response body — pagination, Allows you to create a task — response body
Retrieves all projects — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
items | array | Optional | |
items[] | Model | Each item | Expand Retrieves a single project — response body |
pagination | Model | Optional | Expand Retrieves all projects — response body — pagination |
Referenced models: Retrieves a single project — response body, Retrieves all projects — response body — pagination
Retrieves all projects — response body — pagination
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | JSON | Root | |
itemCount | JSON | Optional | |
itemCount (anyOf 1) | integer | Alternative | Number of items returned |
itemCount (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
page | JSON | Optional | |
page (anyOf 1) | integer | Alternative | Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0. |
page (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
pageCount | JSON | Optional | |
pageCount (anyOf 1) | integer | Alternative | Number of pages available |
pageCount (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
pageSize | JSON | Optional | |
pageSize (anyOf 1) | integer | Alternative | 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. |
pageSize (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Retrieves all time entries associated with a specific project — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
items | array | Optional | |
items[] | Model | Each item | Expand Creates a time entry for a specific project — response body |
pagination | Model | Optional | Expand Retrieves all projects — response body — pagination |
Referenced models: Retrieves all projects — response body — pagination, Creates a time entry for a specific project — response body
Updates a specific project — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
contactId | string | Optional | Identifier of the contact this project was created for. Format: uuid |
deadlineUtc | string | Optional | Deadline for the project. UTC Date Time in ISO-8601 format. Format: date-time |
estimateAmount | number | Optional | Format: double |
name | string | Required within parent | Name of the project. |
creates a project for the specified contact — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
status | string | Required within parent | Status for project One of: INPROGRESS, CLOSED |