to navigate · to open See all results
POST /api/v1/assets/{record}/decommission

Decommission an asset

Take an asset out of service while preserving its history.

Last updated

Request

POST /api/v1/assets/{record}/decommission

Requires assets:lifecycle, assets:delete. See token permissions. Every listed permission is required for this endpoint.

Send Authorization: Bearer YOUR_API_TOKEN and Accept: application/json. Send request bodies as JSON with Content-Type: application/json. This workflow write requires Idempotency-Key. Reuse the same key only when retrying the same action.

record is the numeric asset ID in your token’s organization.

Request body

Field Type Usage
event_date string Optional. ISO 8601 timestamp with seconds and an explicit offset, such as 2026-09-01T10:30:00-07:00. Defaults to now.
description string or null Optional. Plain text, up to 10,000 characters.
event_type_id integer Required. An eligible event type ID from this action’s options.
field_values object Optional unless the event type requires custom values. Keys are field IDs; values follow each field’s datatype and allowed option IDs.
cost number or null Optional. 0–999,999,999.99; supported only when the event type enables it.
person_id integer or null Optional active responsible person when enabled by the type.
police_report_number string or null Optional, up to 255 characters, when enabled by the type.

Fetch available values before choosing IDs. IDs and required fields vary by organization.

Example

Set ASSETCENTER_API_TOKEN as described in the quick start. Replace example record and option IDs with values from your organization. Set IDEMPOTENCY_KEY to a new UUID for this action; keep it for retries.

cURL / Bash
curl --request POST "https://my.assetcenter.app/api/v1/assets/123/decommission" \
  --header "Authorization: Bearer $ASSETCENTER_API_TOKEN" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: $IDEMPOTENCY_KEY" \
  --data '{"event_type_id":12,"description":"Removed from service."}'

Response

201 Created. Illustrative response structure. Event arrays, to-do/space values, and current state depend on the action and the record.

JSON
{
  "data": {
    "asset_id": 123,
    "asset_event_ids": [
      901
    ],
    "subscription_event_ids": [],
    "todo": null,
    "tracker_disconnect_pending": false,
    "state": {
      "status": "decommissioned",
      "person_id": null,
      "location_id": null,
      "sublocation_id": null,
      "is_in_storage": false,
      "person_loan_due": null,
      "location_loan_due": null,
      "condition_id": null,
      "decommission_event_type_id": 12
    }
  }
}

Behavior and constraints

State changes reject future timestamps (422) and dates preceding newer relevant state changes (409). Omit event_date to use now. Removes person, ordinary location, and subscription assignments and records their removal. Stored assets keep their storage location and space. The tracker is disconnected locally; tracker_disconnect_pending indicates queued remote disabling. Use a new acquisition to reactivate, subject to plan limits. This preserves the asset, unlike inventory DELETE.

Errors

401 means the token is missing, expired, revoked, or not a customer API token. 403 means a required permission or administrator access is missing. 404 means the record or child record is unavailable in this organization. 422 identifies invalid or unsupported input; inspect the errors object when present. 409 indicates a conflicting state or concurrent change; inspect the message and refresh the record before deciding how to proceed. Reusing an idempotency key with a different method, path, or body also returns 409. 429 means a rate limit was reached. See error handling and rate limits.