> For the complete documentation index, see [llms.txt](https://docs.skhokho.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skhokho.ai/assets/assets.md).

# 🏭 Assets

Company asset tracking and management

## List assets

> Get a paginated list of assets with optional filters

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Assets","description":"Company asset tracking and management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"AssetList":{"type":"object","description":"Lightweight serializer for asset lists.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","readOnly":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Original purchase price"},"purchase_date":{"type":"string","format":"date"},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"image_url":{"type":"string","nullable":true,"readOnly":true},"is_warranty_expired":{"type":"boolean","readOnly":true},"date_created":{"type":"string","format":"date-time","nullable":true}},"required":["assigned_to","image_url","is_warranty_expired","name","purchase_date","purchase_price"]},"AssetPersonMini":{"type":"object","description":"Lightweight serializer for Person references.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/assets/":{"get":{"operationId":"organisation_assets_list","description":"Get a paginated list of assets with optional filters","summary":"List assets","parameters":[{"in":"query","name":"asset_type","schema":{"type":"string"},"description":"Filter assets by asset type"},{"in":"query","name":"assigned_to","schema":{"type":"string"},"description":"Filter assets by assigned person unique_id"},{"in":"query","name":"category","schema":{"type":"string"},"description":"Filter assets by category"},{"in":"query","name":"condition","schema":{"type":"string"},"description":"Filter assets by condition"},{"in":"query","name":"name","schema":{"type":"string"},"description":"Filter assets by name (case-insensitive partial match)"},{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"query","name":"search","schema":{"type":"string"},"description":"Search assets by name, asset code, or serial number"},{"in":"query","name":"status","schema":{"type":"string"},"description":"Filter assets by status (active, inactive, disposed, etc.)"}],"tags":["Assets"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AssetList"}}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

## Create asset

> Create a new asset

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Assets","description":"Company asset tracking and management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"AssetRequest":{"type":"object","description":"Full serializer for Asset creation and updates.\nHandles translatable fields correctly.","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","nullable":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"Asset type is required.\n\n* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Purchase price is required and must be non-negative."},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date","description":"Purchase date is required."},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to_id":{"type":"string","writeOnly":true,"nullable":true,"minLength":1,"description":"Unique ID of person to assign asset to"},"image":{"type":"string","format":"binary","nullable":true,"title":"Asset Image","description":"Asset image for identification"},"receipt_document":{"type":"string","format":"binary","nullable":true,"title":"Receipt/Invoice Document","description":"Upload receipt, invoice, or purchase document (PDF, DOC, DOCX, JPG, PNG)"},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100}},"required":["asset_type","name","purchase_date","purchase_price"]},"AssetDetail":{"type":"object","description":"Detailed serializer for single asset retrieval.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Original purchase price"},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date"},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"image_url":{"type":"string","nullable":true,"readOnly":true},"receipt_document_url":{"type":"string","nullable":true,"readOnly":true},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100},"created_by":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"is_warranty_expired":{"type":"boolean","readOnly":true},"years_since_purchase":{"type":"integer","nullable":true,"readOnly":true},"date_created":{"type":"string","format":"date-time","nullable":true},"last_updated":{"type":"string","format":"date-time","nullable":true}},"required":["assigned_to","created_by","description","image_url","is_warranty_expired","name","purchase_date","purchase_price","receipt_document_url","years_since_purchase"]},"AssetPersonMini":{"type":"object","description":"Lightweight serializer for Person references.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/assets/create/":{"post":{"operationId":"organisation_assets_create_create","description":"Create a new asset","summary":"Create asset","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true}],"tags":["Assets"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AssetRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/AssetRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDetail"}}},"description":""},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"}}}}}}
```

## Retrieve asset

> Get detailed information about a specific asset

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Assets","description":"Company asset tracking and management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"AssetDetail":{"type":"object","description":"Detailed serializer for single asset retrieval.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Original purchase price"},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date"},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"image_url":{"type":"string","nullable":true,"readOnly":true},"receipt_document_url":{"type":"string","nullable":true,"readOnly":true},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100},"created_by":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"is_warranty_expired":{"type":"boolean","readOnly":true},"years_since_purchase":{"type":"integer","nullable":true,"readOnly":true},"date_created":{"type":"string","format":"date-time","nullable":true},"last_updated":{"type":"string","format":"date-time","nullable":true}},"required":["assigned_to","created_by","description","image_url","is_warranty_expired","name","purchase_date","purchase_price","receipt_document_url","years_since_purchase"]},"AssetPersonMini":{"type":"object","description":"Lightweight serializer for Person references.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/assets/{unique_id}/":{"get":{"operationId":"organisation_assets_retrieve","description":"Get detailed information about a specific asset","summary":"Retrieve asset","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Assets"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDetail"}}},"description":""},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Update asset

> Update asset information (PUT for full update, PATCH for partial)

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Assets","description":"Company asset tracking and management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"AssetRequest":{"type":"object","description":"Full serializer for Asset creation and updates.\nHandles translatable fields correctly.","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","nullable":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"Asset type is required.\n\n* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Purchase price is required and must be non-negative."},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date","description":"Purchase date is required."},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to_id":{"type":"string","writeOnly":true,"nullable":true,"minLength":1,"description":"Unique ID of person to assign asset to"},"image":{"type":"string","format":"binary","nullable":true,"title":"Asset Image","description":"Asset image for identification"},"receipt_document":{"type":"string","format":"binary","nullable":true,"title":"Receipt/Invoice Document","description":"Upload receipt, invoice, or purchase document (PDF, DOC, DOCX, JPG, PNG)"},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100}},"required":["asset_type","name","purchase_date","purchase_price"]},"AssetDetail":{"type":"object","description":"Detailed serializer for single asset retrieval.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Original purchase price"},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date"},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"image_url":{"type":"string","nullable":true,"readOnly":true},"receipt_document_url":{"type":"string","nullable":true,"readOnly":true},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100},"created_by":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"is_warranty_expired":{"type":"boolean","readOnly":true},"years_since_purchase":{"type":"integer","nullable":true,"readOnly":true},"date_created":{"type":"string","format":"date-time","nullable":true},"last_updated":{"type":"string","format":"date-time","nullable":true}},"required":["assigned_to","created_by","description","image_url","is_warranty_expired","name","purchase_date","purchase_price","receipt_document_url","years_since_purchase"]},"AssetPersonMini":{"type":"object","description":"Lightweight serializer for Person references.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/assets/{unique_id}/update/":{"put":{"operationId":"organisation_assets_update_update","description":"Update asset information (PUT for full update, PATCH for partial)","summary":"Update asset","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Assets"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/AssetRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/AssetRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDetail"}}},"description":""},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Update asset

> Update asset information (PUT for full update, PATCH for partial)

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Assets","description":"Company asset tracking and management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"PatchedAssetRequest":{"type":"object","description":"Full serializer for Asset creation and updates.\nHandles translatable fields correctly.","properties":{"name":{"type":"string","minLength":1,"maxLength":300},"description":{"type":"string","nullable":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"Asset type is required.\n\n* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Purchase price is required and must be non-negative."},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date","description":"Purchase date is required."},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to_id":{"type":"string","writeOnly":true,"nullable":true,"minLength":1,"description":"Unique ID of person to assign asset to"},"image":{"type":"string","format":"binary","nullable":true,"title":"Asset Image","description":"Asset image for identification"},"receipt_document":{"type":"string","format":"binary","nullable":true,"title":"Receipt/Invoice Document","description":"Upload receipt, invoice, or purchase document (PDF, DOC, DOCX, JPG, PNG)"},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100}}},"AssetDetail":{"type":"object","description":"Detailed serializer for single asset retrieval.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Original purchase price"},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date"},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"image_url":{"type":"string","nullable":true,"readOnly":true},"receipt_document_url":{"type":"string","nullable":true,"readOnly":true},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100},"created_by":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"is_warranty_expired":{"type":"boolean","readOnly":true},"years_since_purchase":{"type":"integer","nullable":true,"readOnly":true},"date_created":{"type":"string","format":"date-time","nullable":true},"last_updated":{"type":"string","format":"date-time","nullable":true}},"required":["assigned_to","created_by","description","image_url","is_warranty_expired","name","purchase_date","purchase_price","receipt_document_url","years_since_purchase"]},"AssetPersonMini":{"type":"object","description":"Lightweight serializer for Person references.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/assets/{unique_id}/update/":{"patch":{"operationId":"organisation_assets_update_partial_update","description":"Update asset information (PUT for full update, PATCH for partial)","summary":"Update asset","parameters":[{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Assets"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedAssetRequest"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedAssetRequest"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedAssetRequest"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDetail"}}},"description":""},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```

## Perform action on asset

> Perform actions on an asset (deactivate, mark\_disposed). Uses query parameters.

```json
{"openapi":"3.0.3","info":{"title":"Skhokho API","version":"v1.0"},"tags":[{"name":"Assets","description":"Company asset tracking and management"}],"servers":[{"url":"https://skhokho.ai","description":"Production"},{"url":"http://102.209.118.152:8000/","description":"Local"},{"url":"https://dev.skhokho.ai","description":"Development"}],"security":[{"cookieAuth":[]},{"basicAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"AssetDetail":{"type":"object","description":"Detailed serializer for single asset retrieval.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"name":{"type":"string","readOnly":true},"description":{"type":"string","readOnly":true},"asset_code":{"type":"string","nullable":true,"maxLength":100},"serial_number":{"type":"string","nullable":true,"maxLength":200},"asset_type":{"enum":["ppe","equipment","furniture","vehicle","computer","software","building","land","intangible","other"],"type":"string","description":"* `ppe` - Property, Plant & Equipment\n* `equipment` - Equipment\n* `furniture` - Furniture & Fixtures\n* `vehicle` - Vehicle\n* `computer` - Computer & IT Equipment\n* `software` - Software\n* `building` - Building\n* `land` - Land\n* `intangible` - Intangible Asset\n* `other` - Other"},"category":{"type":"string","nullable":true,"maxLength":200},"brand":{"type":"string","nullable":true,"maxLength":200},"model":{"type":"string","nullable":true,"maxLength":200},"purchase_price":{"type":"string","format":"decimal","pattern":"^-?\\d{0,13}(?:\\.\\d{0,2})?$","description":"Original purchase price"},"useful_life_years":{"type":"integer","maximum":100,"minimum":1,"title":"Useful Life (Years)","description":"Expected useful life in years"},"purchase_date":{"type":"string","format":"date"},"warranty_expiry_date":{"type":"string","format":"date","nullable":true},"disposal_date":{"type":"string","format":"date","nullable":true},"status":{"enum":["active","inactive","disposed","sold","damaged","under_repair","stolen"],"type":"string","description":"* `active` - Active\n* `inactive` - Inactive\n* `disposed` - Disposed\n* `sold` - Sold\n* `damaged` - Damaged\n* `under_repair` - Under Repair\n* `stolen` - Stolen"},"condition":{"enum":["excellent","good","fair","poor","damaged"],"type":"string","description":"* `excellent` - Excellent\n* `good` - Good\n* `fair` - Fair\n* `poor` - Poor\n* `damaged` - Damaged"},"location":{"type":"string","nullable":true,"maxLength":300},"assigned_to":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"image_url":{"type":"string","nullable":true,"readOnly":true},"receipt_document_url":{"type":"string","nullable":true,"readOnly":true},"supplier_name":{"type":"string","nullable":true,"maxLength":300},"purchase_order_number":{"type":"string","nullable":true,"maxLength":100},"invoice_number":{"type":"string","nullable":true,"maxLength":100},"created_by":{"allOf":[{"$ref":"#/components/schemas/AssetPersonMini"}],"readOnly":true},"is_warranty_expired":{"type":"boolean","readOnly":true},"years_since_purchase":{"type":"integer","nullable":true,"readOnly":true},"date_created":{"type":"string","format":"date-time","nullable":true},"last_updated":{"type":"string","format":"date-time","nullable":true}},"required":["assigned_to","created_by","description","image_url","is_warranty_expired","name","purchase_date","purchase_price","receipt_document_url","years_since_purchase"]},"AssetPersonMini":{"type":"object","description":"Lightweight serializer for Person references.","properties":{"unique_id":{"type":"string","nullable":true,"maxLength":100},"full_name":{"type":"string","readOnly":true}},"required":["full_name"]}}},"paths":{"/api/v1.0/organisation/{org_uid}/assets/{unique_id}/action/":{"get":{"operationId":"organisation_assets_action_retrieve","description":"Perform actions on an asset (deactivate, mark_disposed). Uses query parameters.","summary":"Perform action on asset","parameters":[{"in":"query","name":"action","schema":{"type":"string","enum":["deactivate","mark_disposed"]},"description":"Action to perform: deactivate or mark_disposed","required":true},{"in":"path","name":"org_uid","schema":{"type":"string"},"required":true},{"in":"path","name":"unique_id","schema":{"type":"string"},"required":true}],"tags":["Assets"],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetDetail"}}},"description":""},"400":{"description":"Bad Request - Invalid action"},"401":{"description":"Unauthorized"},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}}}}
```
