Skip to main content
Layer tracks a business’s fixed assets, such as vehicles, equipment, right-of-use assets, and goodwill, as first-class records. Each asset gets a dedicated ledger account, and you record changes to its carrying value over time, such as depreciation, improvements, impairments, and revaluations, as value updates. See the Asset object for the full data model and the asset endpoints for the API.
Assets purchased with financing are usually created as part of the loan rather than on their own, via an ASSET loan proceed. See equipment financing and leases in the loan guide. This guide covers assets you track directly.

Create an asset

Create an asset with a name and an asset_type. A dedicated ledger account is created for it under Fixed Assets. Set an external_id so you can reference the asset later without storing Layer’s IDs; re-sending the same external_id upserts the existing asset rather than creating a duplicate. For depreciable assets, set accumulated_depreciation_account (along with original_value and useful_life_months) so you can record depreciation against it. asset_type can be RIGHT_OF_USE_ASSET, VEHICLE, EQUIPMENT, or GOODWILL. All monetary values are in cents.
Request
curl --request POST \
  --url https://sandbox.layerfi.com/v1/businesses/{businessId}/assets \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Forklift",
  "external_id": "forklift-001",
  "asset_type": "EQUIPMENT",
  "original_value": 4000000,
  "useful_life_months": 60,
  "accumulated_depreciation_account": "ACCUMULATED_DEPRECIATION"
}'

Record value changes

Record changes to an asset’s carrying value as value updates. Each value update posts a journal entry between the asset (or its accumulated depreciation account) and a counter_account. Identify the asset with either asset_id or asset_external_id, and give each value update its own external_id for linking.
Value updates only affect accrual-basis books. Under cash accounting, depreciation, impairments, and revaluations are not recognized; see Assets under cash accounting instead.
update_typeEffect on carrying valueTypical counter account
DEPRECIATION_AMORTIZATIONDecreaseDepreciation expense (DEPRECIATION)
IMPAIRMENTDecreaseAn impairment loss expense account
REVALUATION_DOWNDecreaseAn equity or loss account
IMPROVEMENTIncreaseThe cash or payable account that funded it
REVALUATION_UPIncreaseAn equity or gain account

Depreciation

Depreciation requires the asset to have an accumulated_depreciation_account. Record a DEPRECIATION_AMORTIZATION value update each period with counter_account set to a depreciation expense account (the DEPRECIATION stable name maps to the Depreciation Expense account). Layer debits the expense and credits accumulated depreciation. The example below records one month of straight-line depreciation for a $40,000 asset over 60 months ($666.67):
Request
curl --request POST \
  --url https://sandbox.layerfi.com/v1/businesses/{businessId}/assets/value-updates \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "asset_external_id": "forklift-001",
  "external_id": "forklift-001-depreciation-2024-02",
  "amount": 66667,
  "update_type": "DEPRECIATION_AMORTIZATION",
  "counter_account": "DEPRECIATION",
  "date": "2024-02-29T00:00:00Z"
}'
Repeat each period (for example, monthly) for the life of the asset.

Improvements, impairments, and revaluations

Use the other update_type values to record one-off changes. For an improvement, set counter_account to the account that funded the work (such as CASH); for an impairment or downward revaluation, use IMPAIRMENT or REVALUATION_DOWN; for an increase in fair value, use REVALUATION_UP.
Request
curl --request POST \
  --url https://sandbox.layerfi.com/v1/businesses/{businessId}/assets/value-updates \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "asset_external_id": "forklift-001",
  "external_id": "forklift-001-improvement-2024-06",
  "amount": 50000,
  "update_type": "IMPROVEMENT",
  "counter_account": "CASH",
  "date": "2024-06-15T00:00:00Z"
}'

Assets under cash accounting

Value updates only matter for accrual-basis accounting. For cash-basis businesses we recommend a simpler lifecycle:
  • Create the asset whenever you need it. Unless it was created from a loan proceed, a new asset starts with a balance of zero.
  • Let real cash activity build its balance instead of recording value updates. Post to the asset’s ledger account directly: reference the account in bill line items, or categorize bank transactions to it. Use the asset’s ledger_account (returned when you create the asset) as the target account.