---
title: "Add Update Asset"
method: POST
path: "/assets/AddUpdateAsset"
tags: ["Assets"]
---

# Add Update Asset

`POST /assets/AddUpdateAsset`

## Request

- Base URL: `https://sb2api.servicechannel.com/v3`
- URL: `https://sb2api.servicechannel.com/v3/assets/AddUpdateAsset`
- 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/AddUpdateAsset/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- ServiceChannelServicesMessagingAssetsAddUpdateAssetRequest
  - `OriginalTagId` string: Tag Id of an existing asset. If is empty, it means a new Asset should be created
  - `NewTagId` string, required: In case of asset update it should be a new Tag Id value In case of asset creation it should be Tag ID of created asset
  - `LocationNoteHeaderName` string
  - `LocationNoteHeaderValue` string, required
  - `BrandId` integer, required
  - `BrandName` string, required
  - `AssetTypeId` integer, required
  - `ApplyEmptyFields` boolean
  - `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.
  - `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
  - `ModelNo` string
  - `SerialNo` string
  - `Area` string
  - `WorkOrderArea` string
  - `InstallDateStr` string
  - `PurchaseDateStr` string
  - `ManufacturedDateStr` string
  - `EnergyEfficiency` string
  - `Capacity` string
  - `Description` string
  - `AssetTag` string
  - `LeaseDate` string
  - `UsesRefrigerant` integer
  - `TradeId` integer
  - `LifeExpectancy` integer
  - `LeasePeriod` integer
  - `Condition` integer
  - `ParentId` integer
  - `Currency` integer
  - `OriginalValue` number, double
  - `ClearAssetTag` boolean
  - `IsInspection` boolean
  - `ApplyCustom` boolean
  - `HasLeakDetector` boolean
  - `Active` boolean
  - `IsLeased` boolean
  - `HasComponents` boolean
  - `HasCircuits` boolean
  - `IsCarbReporting` boolean
  - `AssetUpdatesStatus` string, byte
  - `ProcessDuplicatedAssetTag` boolean

## Response `200`

The ID of the updated asset is in the response.

- SystemObject

## Other responses

- `400`: The request is not accepted due to bad syntax, missing parameters, insufficient data, etc. <br/>Error codes: 502 — No asset to update 502 — Asset is not found 503 — Unknown Brand name 503 — Request is empty or null 503 — Do not have rights for editing Asset 503 — Unknown Equipment type 503 — 'Uses Refrigerant' attribute can not be changed 503 — Asset location can not be changed: There are active PM services for this asset.
- `401`: The request is not authorized. <br>Error codes: 504 — API call rejected by security permissions
- `500`: The server was unable to complete the request due to an internal error. <br>Error codes: 501 — Object reference is not set to an instance of an object.
- `502`: The server, while acting as a gateway or proxy, received an invalid response from the upstream server.

---

[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)
