---
title: "Add an asset"
method: POST
path: "/assets"
tags: ["Assets"]
---

# Add an asset

`POST /assets`

## Request

- Base URL: `https://sb2api.servicechannel.com/v3`
- URL: `https://sb2api.servicechannel.com/v3/assets`
- Auth: OAuth 2
  - Authorization code: `https://sb2login.servicechannel.com/oauth/authorize`
  - Token URL: `https://sb2login.servicechannel.com/oauth/token`
- TypeScript: <https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3/docs/assets/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new asset for the existing asset type. Since you need to specify which type an asset will belong to, you can:
            <br /> • use the [GET /AssetTypes](/swagger/ui/index?version=3#/AssetTypes/GETv3_AssetTypes) method to get a list of asset types of the current provider.
            <br /> • create a new asset type by sending the [POST /AssetTypes](/swagger/ui/index?version=3#/AssetTypes/POSTv3_AssetTypes) request.
            <br />You can learn more about [adding and editing assets](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/573178120/Adding+and+Editing+Assets) in ServiceChannel University.

## Request body

- ServiceChannelServicesMessagingAssetsAddAssetRequest
  - `Tag` string, required: Required, Should be unique for subscriber
  - `ParentAssetTagId` string
  - `Manufacturer` string, required: Required, Must be existing manufacturer name
  - `ModelNo` string: Model Number of asset
  - `SerialNo` string: Serial Number of asset
  - `LocationId` integer: ID of location, Ignored. Use StoreId to setup Location
  - `Area` string
  - `WorkOrderArea` string
  - `StoreId` string, required: Required, Should be unique for subscriber
  - `Trade` string: Trade of asset. Examples: HVAC, DOORS, ELECTRICAL
  - `TradeId` integer
  - `Type` string, required: Required, Type of asset. Examples: Refrigerator, Computer Monitor and etc
  - `AssetTypeId` integer
  - `BrandId` integer
  - `Active` boolean
  - `InstallDate` string: If not specified the current date is taken
  - `PurchaseDate` string: If not specified the current date is taken
  - `ManufacturedDate` string: If not specified the current date is taken
  - `Warranty` ServiceChannelServicesMessagingAssetsWarrantyInfo
    - `NTE` number, double: Maximum amount of money to be spent on warranty services in USD. Value -1 means that the amount is not applicable.
    - `Priority` string: Defines how quickly warranty services should be provided, for example, *Emergency-4 Hours*, *Normal-48 Hours*, *7 Days*.
    - `PriorityId` integer
    - `Category` string: Warranty category, for example, *ADVISE ONLY*, *REPAIR*, *DISASTER*.
    - `CategoryId` integer
    - `Provider` ServiceChannelServicesMessagingAssetsWarrantyProvider: Object containing warranty provider details.
      - `Type` 'Fixed' | 'PrimaryRanked' | 'FixedRanked': Defines the provider type responsible for warranty services. **Possible values**: `0` - Fixed provider, `1`- Primary rank provider, `2` - Fixed rank provider.
      - `Value` integer: Provider type value. Displays provider ID for the fixed provider type; provider rank number — from 1 to 100 — for the fixed rank type; 1 for a primary rank provider.
      - `ProviderName` string: Name of the provider who is in charge of warranty services.
    - `Expiration` ServiceChannelServicesMessagingAssetsWarrantyExpiration: Object containing warranty expiration details.
      - `Type` 'FromPurchaseDate' | 'FromInstallDate': Warranty expiration calculation type. **Possible values**: 0 - the expiration date is calculated starting from the asset purchase data; 1 - the expiration date is calculated starting from the asset installation date.
      - `Period` integer: Warranty period in months.
  - `UsesRefrigerant` integer: Refrigerant Usage options
  - `IsLeased` boolean: Is Leased
  - `LifeExpectancy` integer: Life Expectancy
  - `OriginalValue` number, double: Original Value
  - `LeaseDate` string: Lease Date
  - `LeasePeriod` integer: Lease Period
  - `Condition` integer
  - `EnergyEfficiency` string
  - `Capacity` string
  - `HasLeakDetector` boolean: Has Leak Detector
  - `ParentId` integer: Parent Id
  - `Description` string
  - `HasComponents` boolean
  - `HasCircuits` boolean
  - `ClearAssetTag` boolean
  - `AssetTag` string
  - `IsInspection` boolean
  - `ProcessDuplicatedAssetTag` boolean
  - `IsCarbReporting` boolean
  - `ApplyCustom` boolean
  - `CustomAttributes` ServiceChannelServicesMessagingEquipmentsEquipmentAttributeDescription[]
    - `EquipmentAttributeId` integer
    - `EquipmentTypeAttributeId` integer
    - `ValueType` integer
    - `EquipmentId` integer
    - `Value` SystemObject
    - `ValueText` string
    - `SelectedOptionsText` string
    - `Visible` boolean
    - `Editable` boolean
    - `Required` boolean
    - `Name` string
    - `Custom` boolean
  - `AssetUpdatesStatus` string, byte
  - `LocationNoteHeader` string: Location Note Header
  - `LocationNoteValue` string: Location Note Value
  - `Currency` integer

## Response `201`

The created asset ID is in the response.

## Other responses

- `400`: The request is not accepted due to bad syntax, missing parameters, insufficient data, etc. <br/>Error codes: 503 — Unknown Brand name 503 — Asset Tag ID is empty 503 — Request is empty or null 503 — No Store ID in the request 503 — Trade not found 503 — Unknown Equipment type 503 — Unknown Store ID 503 — Other Trade in Asset Type
- `401`: The request is not authorized. <br/>Error codes: 504 — API call rejected by security permissions

---

[API](https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3.md) - [All operations](https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3/llms.txt) - [OpenAPI document](https://skmtc.dev/servicechannel/apis/servicechannel-api-v-3/revisions/d490d6596809?raw)
