AccountId | Account | Lookup → Account | | The customer account that owns the asset. Keep it apart from the other three account lookups on this entity: AssetProvidedAccountId is who supplied it, AssetServicedByAccountId is who is contracted to service it, and SellingPartnerAccountId is the partner who sold it. |
AssetCategory | Asset Category | PickList | | Values: IT, Furniture, Office Equipment, Machinary. |
AssetCode | Asset Code | Text | | The business code identifying the unit. When an asset is created automatically from an invoice, AssetService fills it from the item lot's serial number, falling back to the lot's supplier invoice number — so it is often but not always the serial number, and SerialNumber remains the reliable field for that. |
AssetCondition | Asset Condition | Text | | |
AssetId | Root Asset | Lookup → Asset | | A self-referencing lookup to the top of the asset hierarchy, labelled 'Root Asset'. Despite the name this is not the record's own identifier — that is Id — and confusing the two is an easy mistake on this entity. Use it together with ParentAssetId, which points only one level up, and AssetLevel, which records the depth. |
AssetLevel | Asset Level | Number | | The depth of this asset within its parent/child hierarchy, used with ParentAssetId and AssetId to distinguish a top-level unit from its sub-components. |
AssetProvidedAccountId | AssetProvedBy | Lookup → Account | | The account that provided or supplied the asset, which need not be the owner in AccountId nor the seller in SellingPartnerAccountId. Its label is the abbreviated 'AssetProvedBy'. |
AssetServicedByAccountId | Asset Serviced By | Lookup → Account | | The account contracted to service the asset on an ongoing basis. This is the standing servicing relationship and is distinct from LastServicePartnerAccountId, which is meant to record whoever actually performed the most recent job. |
AssetSubCategory | Asset Sub Category | PickList | | Values: LED TV, Tablet, Biometric Machine, Mobile Phone, CCTV Camera, Air Conditioner, Conference Table, Laptop, Desktop, Server, Printer, Scanner, Router, CNC Machines. |
AverageUsage | Average Usage | Decimal | | |
AverageUsageHours | Average Usage (Hours) | Decimal | | |
BatchNo | Batch No | Text, unique | | |
BranchId | Last Service Branch | Lookup → Branch | | The branch that owns or holds the asset. Warning: this field's label reads 'Last Service Branch', but it is not the branch of the most recent service — that is the separate LastServiceBranchId field, whose label confusingly reads 'Branch'. The two labels are transposed relative to the underlying model, and the service-order write-back in AssetService updates LastServiceBranchId, never this field. Select by field name, not by label. |
CompetitorAsset | Is Competitor Product | Boolean | | |
ComponentNumber | Component Number | Text | | |
ConsequenceOfFailure | Consequence Of Failure | PickList | | A criticality rating used to prioritise maintenance, seeded with Insignificant, Minor, Moderate, Major and Critical. It describes the impact if the asset fails, not its current condition — that is AssetCondition. Values: Insignificant, Minor, Moderate, Major, Critical. |
ContactId | Contact | Lookup → Contact | | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
CurrentAmount | Current Amount | Currency | | |
CurrentLifecycleEndDate | Current Lifecycle End Date | Date | | |
CurrentMrr | Current Monthly Recurring Revenue | Currency | | |
CurrentQuantity | Current Quantity | Number | | |
CurrentUsageReading | Current Usage Reading | Decimal | | The asset's usage reading as currently known, distinct from LastUsageReading which is specifically the value captured at the last service. Contract-lapse checks in AssetServiceContractService are evaluated against the reading supplied on the service order or opportunity, not against this field. |
CurrentUsageReadingHours | Current Usage Reading (Hours) | Decimal | | |
DepreciationMethod | Depreciation Method | PickList | | The depreciation basis for this asset. The seeded picklist values are the display strings 'Straight Line' and 'WDV' (written-down value). Note the fixed-assets manuals and the finance engine's own constants use the different tokens StraightLine and WrittenDownValue, so a filter written from the manual will not match the values stored here. Values: Straight Line, WDV. |
DepreciationPolicyId | Depreciation Policy | Lookup → DepreciationPolicy | | The category-level DepreciationPolicy template this asset follows. |
Description | Description | LongMultiLineText | | |
DigitalAssetStatus | Digital Asset Status | PickList | | The health signal reported by a connected or telemetry-enabled asset, seeded with On, Warning and Error. It reflects device telemetry and is independent of the commercial lifecycle held in Status. Values: On, Warning, Error. |
DisposalDate | Disposal Date | Date | | |
DisposalValue | Disposal Value | Currency | | |
GoodsReceiptId | Goods Receipt | Lookup → GoodsReceipt | | |
Id | Id | Guid | Yes | |
InstallationAddressContactAddressId | Installation Address | Lookup → ContactAddress | | |
InstallDate | Install Date | Date | | |
InternalAsset | Is Internal | Boolean | | Marks a unit the company owns and uses itself rather than one sold to a customer. This is the distinction that separates own-use fixed assets from customer install-base records held in the same table. |
InUse | In Use | Boolean | | |
InvoiceId | Invoice | Lookup → Invoice | | The sales invoice the asset was created from, set by AssetService on the automatic creation path. It is the audit trail back to the sale, and it is also how the originating invoice line gets its AssetId stamped in return. |
InvoiceNumber | Invoice Number | Text | | |
IsPDIDone | Is PDI Done | Boolean | | Marks that pre-delivery inspection has been completed. It is set to false when the asset is auto-created from an invoice, and flipped to true in bulk by AssetService.MarkPdiDoneAsync, which is driven from the service orders that carry out the inspection. |
ItemId | Item | Lookup → Item | | |
ItemLotId | Item Lot | Lookup → ItemLot | | The inventory lot or serialised unit this asset was created from. It is mandatory on the automatic creation path: AssetService rejects asset creation for a tracked item whose invoice line has no item lot, and the lot supplies the asset's name, label and code. |
Label | Label | Text | | |
LastServiceBranchId | Branch | Lookup → Branch | | The branch that performed the most recent service on the asset; AssetService.UpdateAssetFromServiceOrderAsync writes the service order's BranchId here on completion, and asset creation from an invoice seeds it with the invoice's branch. Its label reads 'Branch' while the unrelated BranchId field is labelled 'Last Service Branch' — the two labels are transposed, so match on field name. |
LastServiceDate | Last Service Date | Date | | The document date of the most recent completed service order for this asset, written back by AssetService when a service order is saved. On assets created from an invoice it is initially seeded with the invoice's document date rather than an actual service. |
LastServicePartnerAccountId | Last Service Partner | Lookup → Account | | Intended to hold the partner account that last serviced the asset. Treat it as unreliable: the service-order write-back in AssetService writes to the name 'LastServicePartnerId', which is not a property of Asset, so the value lands in a custom field of that name rather than in this column. Only the asset-creation path from an invoice populates this field. If you need the last servicing partner, prefer the most recent related ServiceOrder over reading this. |
LastUsageReading | Last Usage Reading | Decimal | | The odometer-style usage counter captured at the last service, in the asset's distance or count unit. AssetService validates that a new service order's reading is not lower than this value and rejects the save with 'Usage Reading for the Asset seems incorrect' if it is. When a service order sets ResetUsageReading this field is zeroed and the pre-reset value is kept in UsageReadingResetAt, so it is a since-last-reset counter, not a lifetime total. |
LastUsageReadingHours | Last Usage Reading (Hours) | Decimal | | The hour-meter equivalent of LastUsageReading, captured at the last service. It is validated against decreases the same way, and is zeroed with the prior value moved to UsageHoursResetAt when a service order sets ResetUsageHours. |
LifecycleEndDate | Lifecycle End Date | DateAndTime | | |
LifecycleManagedAsset | Has Lifecycle Management | Boolean | | Marks an asset that is managed on a defined replacement lifecycle, which is what makes the LifecycleStartDate, LifecycleEndDate, CurrentLifecycleEndDate and TotalLifecycleAmount fields meaningful. Those lifecycle fields should be ignored when this flag is false. |
LifecycleStartDate | Lifecycle Start Date | Date | | |
LotNumber | Lot Number | Text | | |
ManufactureDate | Manufacture Date | Date | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | | |
NetBookValue | Net Book Value | Calculated | | The asset's carrying value. Unlike PurchaseCost and SalvageValue, which are stored currency amounts, this is declared as a calculated field — but the first-party seed ships no formula for it, so it holds nothing unless a tenant supplies one or a process writes it. AssetDisposalService does set it to zero when a disposal is posted. Do not rely on it as an authoritative book value. |
OwnerId | Owner | Lookup → UserAccount | Yes | |
ParentAssetId | Parent Asset | Lookup → Asset | | The immediate parent in the asset hierarchy, one level up, as distinct from AssetId which points at the root of the whole tree. AssetService sets it when an invoice line belongs to a package line, so the components of a sold package become children of the package's asset. |
Phone | Phone | Text | | |
Price | Price | Currency | | |
ProductCode | Product Code | Text | | |
ProductDescription | Product Description | Text | | |
ProductFamily | Product Family | PickList | | |
ProductSKU | Stock Keeping Unit | Text | | A free-text stock-keeping-unit code carried on the asset. It is not a reference to the SKU entity — that is the separate SKUId lookup — so joining on this text will not resolve a SKU record. |
PurchaseCost | Purchase Cost | Currency | | |
PurchaseDate | Purchase Date | DateAndTime | | |
PutToUseDate | Put To Use Date | Date | | The date the asset was placed into service, which is the date depreciation is meant to run from. It is deliberately separate from PurchaseDate (when it was bought) and InstallDate (when it was physically installed), and the three can legitimately differ. |
Quantity | Quantity | Number | | |
RecordTypeId | Record Type | Guid, hidden | | |
RegistrationDate | Registration Date | DateAndTime | | |
RegistrationNumber | Registration Number | Text | | |
SaleDate | Sale Date | Date | | |
SaleInvoiceNumber | SaleInvoiceNumber | LongMultiLineText | | |
SalvageValue | Salvage Value | Currency | | The residual value the asset is expected to retain at the end of its useful life — the floor that depreciation writes down to, not a disposal proceeds figure. Actual proceeds are recorded in DisposalValue and on the AssetDisposal record. |
SellingBranchId | Selling Branch | Lookup → Branch | | |
SellingPartnerAccountId | Selling Partner Account | Lookup → Account | | |
SerialNumber | Serial Number | Text | | |
SKUId | SKU | Lookup → SKU | | The lookup to the SKU record for this asset, populated from the originating invoice line when the asset is auto-created. Use this rather than the free-text ProductSKU field when you need the actual SKU. |
Status | Status | PickList | | The asset's lifecycle state. The seeded picklist offers Draft, Purchased, Installed and Obsolete. Be aware that AssetDisposalService writes the literal 'Disposed' here when a disposal is posted to the ledger, and that value is not in the picklist — so filtering on the picklist alone will miss retired assets. Values: Installed, Obsolete, Purchased, Draft. |
StatusReason | Status Reason | PickList | | A qualifier on the current Status, seeded with Paused, Not Ready and Off. It explains why an asset is not in service rather than restating the status itself. Values: Paused, Off. |
StorageLocationId | Storage Location | Lookup → StorageLocation | | |
SupplierInvoiceDate | Supplier Invoice Date | Date | | |
SupplierInvoiceNumber | SupplierInvoiceNumber | LongMultiLineText | | |
TestField | TestField | LongMultiLineText | | |
TotalLifecycleAmount | Total Lifecycle Amount | Currency | | |
UIProps | UI Props | Text | | |
UniqueIdentifier | Uu | Text | | A tenant-defined unique identifier for the unit, separate from SerialNumber and RegistrationNumber. Its label is the truncated placeholder 'Uu', which carries no meaning — go by the field name. |
UpdatedDateTime | Modified Date | DateAndTime | | |
UsageEndDate | Usage End Date | Date | | |
UsageHoursResetAt | Usage Hours Reset At | Decimal | | The hour-meter value at the moment the hours counter was last reset, written when a service order sets ResetUsageHours and LastUsageReadingHours is zeroed. The hours counterpart of UsageReadingResetAt. |
UsageReadingResetAt | Usage Reading Reset At | Decimal | | The usage reading at the moment the counter was last reset — written by AssetService when a service order sets ResetUsageReading, at which point LastUsageReading goes to zero. Add this to LastUsageReading to reason about cumulative usage across a reset. |
UsefulLife | Useful Life | Number | | The expected life of the asset in years, used for depreciation. The platform ships indicative Companies Act Schedule II lives per asset class as reference data, but this field is the tenant's own override for the individual asset. |