/api/v1/assets/{record}/acquisitions
Record an asset acquisition
Record how an asset was acquired and update its acquisition details.
Last updated
Request
POST /api/v1/assets/{record}/acquisitions
Requires assets:lifecycle. 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. |
acquired_from |
string or null | Optional. Up to 255 characters. |
price |
number or null | Optional purchase price, 0–999,999,999.99. Defaults to cost when omitted. |
cost |
number or null | Optional amount paid at acquisition; down payment for financed acquisitions. 0–999,999,999.99. |
salvage_value |
number or null | Optional. 0–999,999,999.99. |
finance_amount |
number or null | Optional when enabled by the event type. 0–999,999,999.99. |
payment |
number or null | Optional when enabled by the event type. 0–999,999,999.99. |
billing_frequency |
string or null | Required with payment. monthly, Quarterly, or yearly; type must support payments. |
number_of_payments |
integer or null | Optional when supported. 1–1,000,000. |
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 --request POST "https://my.assetcenter.app/api/v1/assets/123/acquisitions" \
--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,"acquired_from":"Example supplier","price":1200,"cost":1200}'
Response
201 Created. Illustrative response structure. Event arrays, to-do/space values, and current state depend on the action and the record.
{
"data": {
"asset_id": 123,
"asset_event_ids": [
901
],
"subscription_event_ids": [],
"todo": null,
"tracker_disconnect_pending": false,
"state": {
"status": "available",
"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": null
}
}
}
Behavior and constraints
State changes reject future timestamps (422) and dates preceding newer relevant state changes (409). Omit event_date to use now. Use an acquisition event type. Required fields vary by type. A new acquisition can reactivate a decommissioned asset, subject to plan limits; the response can contain more than one event ID.
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.