# Fixed Asset Types

Group: Accounting › Asset Management

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/groups/invFixedAssetTypes)

Fixed asset types: the master data a fixed asset is created from, carrying the depreciation defaults it inherits — read one, or walk the collection with structured filters.

A fixed asset type is master data: the template a fixed asset is created from. It carries the depreciation defaults — above all `defaultUsefulLife` — that a new asset inherits, and it is what `typeId` on a fixed asset points at.

**Two read routes, one item schema.** `GET fixed-asset-types/{id}` reads one type and `GET fixed-asset-types` walks the collection with filters in the query string. Both return the same fields, so a caller can move between them without remapping anything. There is no `POST .../search` on this resource: every field it publishes is a URL-safe scalar, so the collection route can already express every query, and adding a search body would duplicate the contract in two places.

**`name` is filterable here, unlike on most resources.** An asset type name is a classification label chosen by whoever configures the module — 'Machinery', 'Vehicles' — not a person, a counterparty or physical property, so it is not identifying data that has to stay out of a query string. It is exact-match only; there is no free-text search on this resource.

**The hierarchy is one level as published here.** `groupId` and `groupName` name the FixedAssetTypeGroup a type belongs to. That group may itself have a parent, and this API does not walk it — a caller needing the full tree reads the groups themselves.

**`defaultUsefulLife` is a count of periods, not an amount and not a duration.** It is read together with the depreciation interval on the asset that inherits it; the number alone does not say whether it means months or years.

**Inactive types are returned by both routes.** `active` is on every response and filterable on the collection: a type is deactivated rather than deleted once assets reference it, and an integration reconciling historical assets still has to resolve the type they point at. Filter `active` when populating a picker.

**Incremental sync** is `filter[lastModifiedDate][gte]=…&sort=lastModifiedDate` on the collection. It tracks the FixedAssetType row only: renaming the group a type belongs to does not move it.

Every request carries an `Api-Version` header — `v1` — alongside the bearer token. It is required, with no default: a missing or empty header, or one naming a version this company does not have, is answered with 400; a route that exists but not in the requested version is answered with 404.

One thing to know before writing error handling: a business failure such as `NOT_FOUND` arrives under HTTP 400, not 404, because a route cannot yet declare a status per diagnostic code. Branch on the `code` in the error body.

## Endpoints

- [Fixed Asset Types](https://docs.api.lensing.ai/reference/lensing/v1/endpoints/fixedAssetTypes.html): `GET /fixed-asset-types`
- [Get Fixed Asset Type](https://docs.api.lensing.ai/reference/lensing/v1/endpoints/getFixedAssetType.html): `GET /fixed-asset-types/{id}`
