This page assumes the X-Api-Key header and the ?companyId= parameter described in the REST API for developers overview.
These endpoints expose the data produced by physical inventory counts, asset transfers, check-out /
check-in operations and reservations. They are all GET only, require X-Api-Key and
?companyId=, and return the standard paging envelope ({items, total, skip, take}) - except
GET /api/v1/count-sessions/{id}, which returns the object directly.
A paged list of physical inventory Count sessions.
curl -s "https://acme.activohq.cloud/api/v1/count-sessions?companyId=3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "X-Api-Key: $ACTIVOHQ_API_KEY"
Response item fields:
{
"id": "...",
"code": "CNT-2025-001",
"name": "Mid-year physical count",
"openedDate": "2025-06-01",
"status": "Reconciled",
"expectedCount": 312,
"reconciledDate": "2025-06-05",
"notes": "Annual mid-year audit."
}
A single count session - the same fields as above (without the paging envelope).
A paged list of count result lines. Use ?sessionId= to get one session's results.
Response item fields:
{
"id": "...",
"countSessionId": "...",
"assetId": "...",
"epc": "E28011700000020F4B1C0D5A",
"status": "Found",
"expectedLocationId": "...",
"readLocationId": "...",
"transferApplied": false
}
Possible status values: Found, Missing, Unexpected, Moved.
A paged list of asset Location transfers (including those generated automatically from a count). Filter with ?assetId=.
Response item fields:
{
"id": "...",
"assetId": "...",
"fromLocationId": "...",
"toLocationId": "...",
"transferDate": "2025-06-05",
"reason": "Moved during count reconciliation.",
"sourceCountResultId": "..."
}
sourceCountResultId is null on manually created transfers.
A paged list of asset check-out / check-in records. Filter with ?assetId=.
Response item fields:
{
"id": "...",
"assetId": "...",
"employeeId": "...",
"checkoutDate": "2025-06-10",
"expectedReturnDate": "2025-06-17",
"actualReturnDate": "2025-06-16",
"notes": "Required for field visit.",
"returnCondition": "Good",
"damageNotes": null
}
actualReturnDate is null while the asset is still checked out.
returnCondition values: Good, MinorWear, Damaged, Lost.
A paged list of Asset reservations. Filter with ?assetId=.
Response item fields:
{
"id": "...",
"assetId": "...",
"employeeId": "...",
"startDate": "2025-07-01",
"endDate": "2025-07-05",
"status": "Confirmed",
"notes": "Reserved for training session."
}
status values: Pending, Confirmed, Cancelled.
The following POST endpoints run asset life-cycle transitions and record the same journal
entries the web application does. They all require X-Api-Key and ?companyId=. On success they
return 200 {"status":"ok"}. Business rule violations return 400 with {"error":"...message..."};
"not found" returns 404.
Check an asset out to an employee.
| Field | Type | Required | Notes |
|---|---|---|---|
employeeId |
guid | Yes | The employee receiving the asset. Use GET /api/v1/Employees to list the ids. |
expectedReturnDate |
date (ISO) | No | For example "2025-07-15". |
notes |
string | No | Free-text notes for the check-out. |
An example 400 business-rule error: {"error":"Asset is already checked out"}.
curl -s -X POST "https://acme.activohq.cloud/api/v1/Assets/f47edba8-67fe-42ce-8209-0e20e1abc17e/checkout?companyId=3fa85f64-5717-4562-b3fc-2c963f66afa6" \
-H "X-Api-Key: $ACTIVOHQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"employeeId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"expectedReturnDate": "2025-07-15",
"notes": "Required for field visit."
}'
Response (200 OK):
{ "status": "ok" }
Check a checked-out asset back in.
| Field | Type | Required | Notes |
|---|---|---|---|
notes |
string | No | Return notes. |
condition |
string | No | The return condition by enum name: Good, MinorWear, Damaged or Lost. Defaults to Good. |
damageNotes |
string | No | A description of the damage (relevant when condition is Damaged or Lost). |
Reserve an asset for an employee over a date range.
| Field | Type | Required | Notes |
|---|---|---|---|
employeeId |
guid | Yes | The employee the reservation is for. |
startDate |
date (ISO) | Yes | The reservation's first day. |
endDate |
date (ISO) | Yes | The reservation's last day. |
notes |
string | No | Free-text notes. |
An example 400 business-rule error: {"error":"Reservation conflicts with an existing reservation"}.
Cancel an existing reservation. No request body is needed.
Dispose of (retire or sell) an asset. It records the disposal's journal entry.
| Field | Type | Required | Notes |
|---|---|---|---|
date |
date (ISO) | Yes | The disposal date. |
proceeds |
decimal | Yes | The sale proceeds (use 0 for a write-off / retirement). |
retirement |
boolean | Yes | true for a retirement / write-off; false for a sale. |
notes |
string | No | Free-text notes. |
An example 400 business-rule error: {"error":"Only active Assets can be disposed"}.
Record an asset revaluation or impairment.
| Field | Type | Required | Notes |
|---|---|---|---|
date |
date (ISO) | Yes | The effective date. |
type |
string | Yes | Revaluation (an upward adjustment) or Impairment (a reduction in value). |
amount |
decimal | Yes | The adjustment amount (always positive; type sets the direction). |
notes |
string | No | Free-text notes. |
Was this page helpful?