Assets API
POST/api/v1/assets/{id}/custody
Product availabilityAlgaPSA

Receive an asset into custody

Opens a custody episode for the asset. Never touches stock, billing or time. 409 when an episode is already open.

RBAC · asset

Path parameters

idstring <uuid>Required
Asset UUID from assets.asset_id.

Request body

Content type: application/json · schema OpenAssetCustodyRequest

ticket_idstring <uuid>Nullable
Ticket the equipment was received for; its client must match the asset.
location_idstring <uuid>Required
Active stock location the item is shelved at.
binstringRequired
Free-text bin or shelf label.
max length 64
purposestringRequired
Enum: repairwarranty_evaluationloaner_prepstaging
next_action_partystring
Enum: mspclientvendor
next_action_notestringNullable
max length 2000
follow_up_onstringNullable
Date only, YYYY-MM-DD.
condition_notestringNullable
max length 2000

Response body

Success response 201 · schema AssetCustodyEnvelope

dataobjectRequired

Response codes

201
Custody episode opened.
400
Validation failed (inactive location, client mismatch, invalid date).
401
x-api-key is missing at middleware.
403
Caller lacks asset update permission.
404
Asset not found or not readable.
409
An episode is already open for this asset.
500
Unexpected error.