Explore the Xero Projects data model

See how the various Xero Projects endpoints relate to each other, using our handy Entity Relationship Diagram.

Pulling data from Xero Projects is only the first part of your reporting. You also need to understand the relationships between different endpoints - something that APIs typically fail to convey.

At SyncHub, we not only pull your Xero Projects endpoints down into a reportable format, we also describe their relationships (e.g. in terms of foreign keys) so that you can quickly get a grasp of your data and how it fits together. This page is intended as technical documentation of these relationships.

Endpoints

Project

Documentation: https://developer.xero.com/documentation/api/projects/projects

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
ProjectID guid - -
ContactID guid - -
CurrencyCode string - -
MinutesLogged int - -
MinutesToBeInvoiced int - -
DeadlineUtc datetime - -
Status string - -
TotalTaskAmountCurrency string - -
TotalTaskAmountValue decimal - -
TotalExpenseAmountCurrency string - -
TotalExpenseAmountValue decimal - -
TaskAmountToBeInvoicedCurrency string - -
TaskAmountToBeInvoicedValue decimal - -
TaskAmountInvoicedCurrency string - -
TaskAmountInvoicedValue decimal - -
ExpenseAmountToBeInvoicedCurrency string - -
ExpenseAmountToBeInvoicedValue decimal - -
ExpenseAmountInvoicedCurrency string - -
ExpenseAmountInvoicedValue decimal - -
ProjectAmountInvoicedCurrency string - -
ProjectAmountInvoicedValue decimal - -
DepositCurrency string - -
DepositValue decimal - -
DepositAppliedCurrency string - -
DepositAppliedValue decimal - -
CreditNoteAmountCurrency string - -
CreditNoteAmountValue decimal - -
TotalInvoicedCurrency string - -
TotalInvoicedValue decimal - -
TotalToBeInvoicedCurrency string - -
TotalToBeInvoicedValue decimal - -
EstimateCurrency string - -
EstimateValue decimal - -

Task

Documentation: https://developer.xero.com/documentation/api/projects/tasks

Column Type Relates to Notes
RemoteID string - -
ProjectRemoteID string Project → RemoteID -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
TaskID guid - -
ProjectID guid Project → ProjectID -
ChargeType string - -
Status string - -
EstimateMinutes int - -
TotalMinutes int - -
MinutesToBeInvoiced int - -
MinutesInvoiced int - -
NonChargeableMinutes int - -
FixedMinutes int - -
RateCurrency string - -
RateValue decimal - -
TotalAmountCurrency string - -
TotalAmountValue decimal - -
AmountToBeInvoicedCurrency string - -
AmountToBeInvoicedValue decimal - -
AmountInvoicedCurrency string - -
AmountInvoicedValue decimal - -

Time

Documentation: https://developer.xero.com/documentation/api/projects/time

Column Type Relates to Notes
RemoteID string -
  • 17 Nov 2022 We include the projectID in the RemoteID so that we can resync it manually later
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
TimeEntryID guid - -
UserID guid User → UserID -
ProjectID guid Project → ProjectID -
TaskID guid Task → TaskID -
DateUtc datetime - -
DateEnteredUtc datetime - -
Duration decimal - -
Status string - -

User

Documentation: https://developer.xero.com/documentation/api/projects/users

Column Type Relates to Notes
RemoteID string - -
MirrorRemoteID int - -
IsDeleted boolean - -
WhenCreated datetime - -
WhenModified datetime - -
Name string - -
UserID guid - -
Email string - -

Need more?

SyncHub lives and breathes APIs and data. Keep exploring using the links below.