Assets API
An Asset represents any physical or financial item being evaluated, financed, or managed as part of a deal. Whether it's equipment, vehicles, real estate, machinery, or inventory, Assets provide structured tracking of items that require evaluation, valuation, and documentation.
Assets are always linked to a Deal through the dealId field. Just as a Deal can involve multiple parties (through Deal Contacts), a Deal can involve multiple Assets—each representing a distinct item being financed or managed.
Each Asset serves as a container for:
- Asset Fields: Store the specifics about the asset—make, model, year, condition, valuation, serial numbers, location
- Attachments: Link supporting documents—photos, appraisals, inspection reports, title documents, certificates
- Activity History: Track every change and evaluation made to the asset throughout its lifecycle
The Asset Object
The Asset object represents a physical or financial item associated with a deal in our system. When equipment financing, vehicle leasing, or property-backed lending requires tracking specific items, each item becomes an Asset.
The Asset object holds core identifying information: label, description, and an optional externalId for integration with external systems. The dealId links the asset to its parent deal.
Attributes
| Attribute | Description | Type |
|---|---|---|
id | Unique identifier of the asset | String |
dealId | Associated deal's ID | String |
externalId | External reference identifier (optional) | String |
label | Name or title of the asset | String |
description | Description of the asset | String |
group | Asset group key (must be a valid asset_group data model) | String |
hasAttachments | Whether the asset has any attachments | Boolean |
createdAt | Date and time of asset creation | String (ISO 8601) |
updatedAt | Date and time of the last asset update | String (ISO 8601) |
Endpoints
Create an Asset
Creates a new asset associated with a deal.
Input Parameters:
| Parameter | Description | Type | Required |
|---|---|---|---|
dealId | Deal's ID | String | Yes |
label | Name of the asset | String | Yes |
description | Description of the asset | String | No |
externalId | External reference ID | String | No |
group | Asset group key (must exist as an asset_group data model) | String | No |
Example Request:
If a group is provided, the API validates that an asset_group data model with that key exists. If the group doesn't exist, a 400 Bad Request error is returned.
Successful Response:
Status code: 201 (Created)
Get an Asset
Retrieves information of a specific asset.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset to retrieve |
Successful Response:
The response will be the complete Asset object.
Update an Asset
Updates an existing asset's label or description.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset to update |
Input Parameters:
| Parameter | Description | Type |
|---|---|---|
label | New name | String |
description | New description | String |
Example Request:
Successful Response:
The response will be the updated Asset object.
Delete an Asset
Deletes an asset from the system.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset to delete |
Successful Response:
Status code 204 (No Content) if the deletion was successful.
List Assets
Retrieves a paginated list of assets with filtering and sorting options.
Query Parameters:
| Parameter | Description | Type |
|---|---|---|
deal-id | Filter by deal ID | String |
external-id | Filter by external ID (exact match) | String |
group | Filter by asset group key | String |
search | Text to search in assets | String |
page | Page number (default: 1) | Integer |
per-page | Items per page (default: 10) | Integer |
sort-by | Field to sort by | String |
sort-direction | Sorting direction (asc or desc) | String |
Successful Response:
The response will be a paginated list of Asset objects with an X-Total-Count header indicating the total number of matching assets.
Special Case - External ID Lookup:
When the external-id query parameter is provided, the API performs an exact match lookup and returns either:
- A single-item array containing the matching asset (with
X-Total-Count: 1) - An empty array if no match is found (with
X-Total-Count: 0)
This behavior bypasses pagination and other filters.
Update External ID
Updates or sets the external ID for an asset.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset to update |
Input Parameters:
| Parameter | Description | Type | Required |
|---|---|---|---|
externalId | External ID value | String | Yes |
Example Request:
Successful Response:
Status code 204 (No Content) if successful.
Asset Attachments
Assets support file attachments for storing supporting documents such as photos, appraisals, inspection reports, and title documents.
Add Attachment by URL
Attach a document to an asset using a URL.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset |
Input Parameters:
| Parameter | Description | Type | Required |
|---|---|---|---|
url | URL of the file to attach | String | Yes |
label | Label for the attachment | String | No |
metadata | Additional metadata (JSON object) | Object | No |
Example Request:
Successful Response:
Returns the created attachment object with its ID.
Upload Attachment
Upload a file directly to attach to an asset.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset |
Input Parameters (multipart/form-data):
| Parameter | Description | Type | Required |
|---|---|---|---|
file | File to upload | File | Yes |
label | Label for the attachment | String | No |
metadata | Additional metadata (JSON string) | String | No |
Successful Response:
Returns the created attachment object with its ID.
List Attachments
Retrieve all attachments for an asset.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset |
Successful Response:
Returns an array of attachment objects.
Delete Attachment
Remove an attachment from an asset.
Path Parameters:
| Parameter | Description |
|---|---|
asset_id | ID of the asset |
attachment_id | ID of the attachment to delete |
Successful Response:
Status code 204 (No Content) if successful.
Asset Groups
Asset Groups allow you to categorize assets into logical categories for better organization and filtering. Before assigning assets to a group, you must first create the group as a Data Model with entityType: "asset_group".
Creating an Asset Group
First, create the asset group using the Data Models API:
Using Asset Groups
Once the group exists, you can assign assets to it:
And filter assets by group:
Common Use Cases
Equipment Financing
Track multiple pieces of equipment in a single deal:
Vehicle Fleet
Track a fleet of vehicles with consistent structure:
Then add asset fields for detailed specifications:
Error Handling
The API may return the following error codes:
| Code | Description |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
Errors will include a descriptive message in the response body.