API reference

Fixed assets

Equipment in the register, depreciated by every close straight line over its useful life, and disposed of by one entry that posts the gain or loss.

Guides: Depreciate equipment and sell it

List fixed assets

GET/v1/fixed_assets

client.fixedAssets.list()

The fixed asset register, the newest first: what each asset cost, what the closes have depreciated, and its book value.

Parameters

NameTypeDescription
statusQuerystring or null

Only assets in this state.

One of in_service, disposed
limitQueryinteger

Page size, 1–200.

Default 50
cursorQuerystring or null

The next_cursor of the previous page.

Response

200FixedAssetPage

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl "https://api.ledgerit.ai/v1/fixed_assets" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

Register a fixed asset

POST/v1/fixed_assets· Idempotent

client.fixedAssets.create()

Put an asset in the register and start depreciating it.

Its cost is already in the books, filed to the asset account when it was bought; registering posts nothing. Every close from the month it went into service posts that month's depreciation, straight line, and a month already closed is caught up at the next close, carrying the department named. Refused with fixed_asset_terms for salvage at or above cost, an account of the wrong type, or a source transaction that is not filed to the asset account or is already another asset's.

Request body

FixedAssetCreate

Response

201FixedAssetDetailOut

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl -X POST "https://api.ledgerit.ai/v1/fixed_assets" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"cost":0,"name":"…","placed_in_service_on":"2026-09-30","useful_life_months":0}'

Get a fixed asset month by month

GET/v1/fixed_assets/{asset_id}

client.fixedAssets.get()

A fixed asset with its depreciation month by month: what each month takes, and the entry that posted it.

Parameters

NameTypeDescription
asset_idPath · Requiredstring

An id that starts with asset_.

Response

200FixedAssetDetailOut

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl "https://api.ledgerit.ai/v1/fixed_assets/{asset_id}" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN"

Rename a fixed asset

PATCH/v1/fixed_assets/{asset_id}· Idempotent

client.fixedAssets.update()

Rename a fixed asset or change its memo. Its cost, life and accounts stay as registered: delete it before the first close depreciates it, or dispose of it and register it again.

Parameters

NameTypeDescription
asset_idPath · Requiredstring

An id that starts with asset_.

Request body

FixedAssetChange

Response

200FixedAssetDetailOut

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl -X PATCH "https://api.ledgerit.ai/v1/fixed_assets/{asset_id}" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'

Delete a fixed asset no close has depreciated

DELETE/v1/fixed_assets/{asset_id}· Idempotent

client.fixedAssets.delete()

Take an asset out of the register before any close has depreciated it. Refused with fixed_asset_in_use once its depreciation is in the books: dispose of it instead.

Parameters

NameTypeDescription
asset_idPath · Requiredstring

An id that starts with asset_.

Response

204No content

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl -X DELETE "https://api.ledgerit.ai/v1/fixed_assets/{asset_id}" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"

Dispose of a fixed asset

POST/v1/fixed_assets/{asset_id}/dispose· Idempotent

client.fixedAssets.dispose()

Sell, scrap or give away a fixed asset.

Depreciation is caught up through the month before (none is taken in the month of disposal), then one entry on the disposal day takes it off the books: its accumulated depreciation and any proceeds against its cost, the difference a gain or a loss. Reverse that entry from the ledger to put it back in service. Refused with fixed_asset_not_disposable when it was already disposed of, or its depreciation is posted past the day.

Parameters

NameTypeDescription
asset_idPath · Requiredstring

An id that starts with asset_.

Request body

DisposalIn

Response

200FixedAssetDetailOut

Errors

400
The request was malformed or a parameter is invalid.
401
No valid credential was sent.
403
The credential or the member's role does not allow this.
404
No such resource in this ledger.
409
A conflicting request, e.g. one with the same Idempotency-Key still running.
422
A well-formed request a business rule refused.
429
Too many requests; retry after the Retry-After header.
500
Something failed on our side; the request_id identifies it.

Example

curl
curl -X POST "https://api.ledgerit.ai/v1/fixed_assets/{asset_id}/dispose" \
  -H "Authorization: Bearer $LEDGERIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"disposed_on":"2026-09-30"}'

Objects

The objects these operations take and return.

FixedAssetPage

NameTypeDescription
dataRequiredarray of FixedAssetOut
has_moreRequiredboolean
next_cursorRequiredstring or null

FixedAssetCreate

NameTypeDescription
accumulated_depreciation_account_idstring or null

An id that starts with gla_.

asset_account_idstring or null

An id that starts with gla_.

costRequirednumber | string

What it cost, in the books' currency, already in the asset account.

department_value_idstring or null

An id that starts with dimv_.

depreciation_expense_account_idstring or null

An id that starts with gla_.

memostring or null
nameRequiredstring

What it is, e.g. MacBook Pro, Ana.

placed_in_service_onRequiredstring (date)

The day it went into use.

salvage_valuenumber | string

What it will be worth at the end; less than its cost.

Default 0
source_event_idstring or null

An id that starts with txn_.

useful_life_monthsRequiredinteger

How many months it lasts: 36 for a laptop.

FixedAssetDetailOut

NameTypeDescription
accumulated_depreciationRequiredstring

What the closes have depreciated so far.

accumulated_depreciation_accountRequiredAccountRef

Where its depreciation builds up.

asset_accountRequiredAccountRef

Where its cost sits, e.g. 1600 Computer equipment.

book_valueRequiredstring

Cost less accumulated depreciation; zero once disposed of.

costRequiredstring

What it cost, in the books' currency.

created_atRequiredstring (date-time)
currencyRequiredstring
department_nameRequiredstring or null

That department's name; null for none.

department_value_idRequiredstring or null

An id that starts with dimv_.

depreciates_throughRequiredstring (date)

The last day of its last month of depreciation.

depreciation_expense_accountRequiredAccountRef

Where each month's depreciation is expensed.

disposal_entry_idRequiredstring or null

An id that starts with je_.

disposal_proceedsRequiredstring or null

What the disposal brought in.

disposed_onRequiredstring (date) or null

The day it was sold, scrapped or given away.

fully_depreciatedRequiredboolean

Whether the closes have taken all of its cost less salvage into depreciation.

gain_loss_account_idRequiredstring or null

An id that starts with gla_.

gain_or_lossRequiredstring or null

Proceeds less book value at disposal: positive is a gain, negative a loss.

idRequiredstring

An id that starts with asset_.

memoRequiredstring or null
methodRequiredstraight_line

straight_line: the same share of cost less salvage every month.

monthly_depreciationRequiredstring

A full month's depreciation: cost less salvage over its useful life, rounded to the currency's minor unit. The months posted even out the rounding, so they add up to cost less salvage exactly.

monthsRequiredarray of DepreciationMonthOut

Every month it depreciates in, oldest first. A disposed asset's stop at the month before.

nameRequiredstring

What it is, e.g. MacBook Pro, Ana.

placed_in_service_onRequiredstring (date)

The day it went into use. Depreciation starts that month, a full month.

proceeds_account_idRequiredstring or null

An id that starts with gla_.

salvage_valueRequiredstring

What it will be worth at the end of its useful life.

schedule_idRequiredstring

Its depreciation schedule, which every close posts.

source_event_dateRequiredstring (date) or null

That transaction's date; null without one.

source_event_descriptionRequiredstring or null

That transaction's description, as the books name it; null without one.

source_event_idRequiredstring or null

An id that starts with txn_.

statusRequiredstring

in_service while it is on the books, disposed once sold or scrapped.

One of in_service, disposed
useful_life_monthsRequiredinteger

How many months it depreciates over.

FixedAssetChange

Only what is sent changes. Its terms stay as registered.

NameTypeDescription
memostring or null
namestring or null

DisposalIn

NameTypeDescription
disposed_onRequiredstring (date)

The day it was sold, scrapped or given away.

gain_loss_account_idstring or null

An id that starts with gla_.

proceedsnumber | string

What it brought in. Leave it at zero when the money arrives through a connected bank, and file that deposit to gain or loss on disposal.

Default 0
proceeds_account_idstring or null

An id that starts with gla_.

FixedAssetOut

NameTypeDescription
accumulated_depreciationRequiredstring

What the closes have depreciated so far.

accumulated_depreciation_accountRequiredAccountRef

Where its depreciation builds up.

asset_accountRequiredAccountRef

Where its cost sits, e.g. 1600 Computer equipment.

book_valueRequiredstring

Cost less accumulated depreciation; zero once disposed of.

costRequiredstring

What it cost, in the books' currency.

created_atRequiredstring (date-time)
currencyRequiredstring
department_nameRequiredstring or null

That department's name; null for none.

department_value_idRequiredstring or null

An id that starts with dimv_.

depreciates_throughRequiredstring (date)

The last day of its last month of depreciation.

depreciation_expense_accountRequiredAccountRef

Where each month's depreciation is expensed.

disposal_entry_idRequiredstring or null

An id that starts with je_.

disposal_proceedsRequiredstring or null

What the disposal brought in.

disposed_onRequiredstring (date) or null

The day it was sold, scrapped or given away.

fully_depreciatedRequiredboolean

Whether the closes have taken all of its cost less salvage into depreciation.

gain_loss_account_idRequiredstring or null

An id that starts with gla_.

gain_or_lossRequiredstring or null

Proceeds less book value at disposal: positive is a gain, negative a loss.

idRequiredstring

An id that starts with asset_.

memoRequiredstring or null
methodRequiredstraight_line

straight_line: the same share of cost less salvage every month.

monthly_depreciationRequiredstring

A full month's depreciation: cost less salvage over its useful life, rounded to the currency's minor unit. The months posted even out the rounding, so they add up to cost less salvage exactly.

nameRequiredstring

What it is, e.g. MacBook Pro, Ana.

placed_in_service_onRequiredstring (date)

The day it went into use. Depreciation starts that month, a full month.

proceeds_account_idRequiredstring or null

An id that starts with gla_.

salvage_valueRequiredstring

What it will be worth at the end of its useful life.

schedule_idRequiredstring

Its depreciation schedule, which every close posts.

source_event_dateRequiredstring (date) or null

That transaction's date; null without one.

source_event_descriptionRequiredstring or null

That transaction's description, as the books name it; null without one.

source_event_idRequiredstring or null

An id that starts with txn_.

statusRequiredstring

in_service while it is on the books, disposed once sold or scrapped.

One of in_service, disposed
useful_life_monthsRequiredinteger

How many months it depreciates over.

AccountRef

NameTypeDescription
codeRequiredstring
idRequiredstring

An id that starts with gla_.

nameRequiredstring

DepreciationMonthOut

NameTypeDescription
amountRequiredstring

The month's depreciation.

ends_onRequiredstring (date)

The month's last day.

journal_entry_idRequiredstring or null

An id that starts with je_.

recognized_onRequiredstring (date) or null

The day of the entry that posted it: a later close's, when the month was caught up.