ServiceChannel Parts API

The Parts API from ServiceChannel — 7 operation(s) for parts.

Operations 10

GET /workorders/{workorderId}/parts Get a Work order parts #
PUT /workorders/{workorderId}/parts Update Work order parts #
POST /workorders/{workorderId}/parts Create Work order parts #
DELETE /workorders/{workorderId}/parts Delete Work order parts #
GET /workorders/{workorderId}/{includeConnectorParts}/partsV1 Get a Work order parts #
GET /workorders/{workorderId}/inventory/refrigerantusage #
POST /workorders/inventory/parts/bulkPartUsage Update multiple part uses for a work order and an asset #
GET /workorders/{workorderId}/partsUsage Retrieve work order parts usage #
GET /parts/isTechCertificationUsedOnRefrigerantTracking Verifies that user is associated with parts usage #
GET /parts/workorders/wasmaterialsused Checks materials usage across multiple work orders #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/servicechannel-parts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

servicechannel-parts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: bearer.v1
  title: Fixxbook.Bearer.Api.V1 AfterHours Parts API
  isOdataApi: false
  relativePath: ''
  discoveryPath: docs/bearer.v1
  _isAuthorizedAccess: true
servers:
- url: https://sb2fixxbook.servicechannel.com:443/api
security:
- oauth2: []
tags:
- name: Parts
paths:
  /workorders/{workorderId}/parts:
    get:
      tags:
      - Parts
      summary: Get a Work order parts
      description: "Get a Work order parts. Returns Work order parts collection for successful request.\n            <br /><br />Available for provider and subscriber usage."
      operationId: GETv3_workorders_{workorderId}_parts
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
    put:
      tags:
      - Parts
      summary: Update Work order parts
      description: Available only for provider.
      operationId: PUTv3_workorders_{workorderId}_parts
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded.
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>502 - WorkOrder not found;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.UpdateWorkOrderPartsCollectionRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.UpdateWorkOrderPartsCollectionRequest'
        description: The Work order parts collection for update
        required: true
    post:
      tags:
      - Parts
      summary: Create Work order parts
      description: Available only for provider.
      operationId: POSTv3_workorders_{workorderId}_parts
      parameters:
      - name: workorderId
        in: path
        description: A new Work order identity
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '201':
          description: Indicates that the request succeeded.
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>502 - WorkOrder not found;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.CreateWorkOrderPartsCollectionRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.CreateWorkOrderPartsCollectionRequest'
        description: A new Work order parts collection
        required: true
    delete:
      tags:
      - Parts
      summary: Delete Work order parts
      description: Available only for provider.
      operationId: DELETEv3_workorders_{workorderId}_parts?ids[0]={ids[0]}&ids[1]={ids[1]}
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        schema:
          type: integer
          format: int32
      - name: ids
        in: query
        description: The Work order part identity collection for delete
        required: true
        style: form
        explode: true
        schema:
          type: array
          items:
            type: integer
            format: int32
      responses:
        '200':
          description: Indicates that the request succeeded.
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>502 - WorkOrder not found;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
  /workorders/{workorderId}/{includeConnectorParts}/partsV1:
    get:
      tags:
      - Parts
      summary: Get a Work order parts
      description: "Get a Work order parts. Returns Work order parts collection for successful request.\n            <br /><br />Available for provider and subscriber usage."
      operationId: GETv3_workorders_{workorderId}_{includeConnectorParts}_partsV1
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        schema:
          type: integer
          format: int32
      - name: includeConnectorParts
        in: path
        description: Include Connector Parts
        required: true
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /workorders/{workorderId}/inventory/refrigerantusage:
    get:
      tags:
      - Parts
      summary: ''
      operationId: GETv3_workorders_{workorderId}_inventory_refrigerantusage
      parameters:
      - name: workorderId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Parts.RefrigerantUsageResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Parts.RefrigerantUsageResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>502 - WorkOrder not found;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /workorders/inventory/parts/bulkPartUsage:
    post:
      tags:
      - Parts
      summary: Update multiple part uses for a work order and an asset
      description: "Creates, updates, or deletes multiple part uses for the **work order + asset** pair.\n             • Supports both refrigerant and non-refrigerant parts. \n             • Supports inventory and vendor-supplied parts.\n            <br />**Example request for removing part use records:**\n            \n               { \n                \"DeleteItems\": [\n                { \n                    \"PartId\": 58069830,\n                    \"DeletionReason\": \"Incorrect Quantity\",\n                    \"InventoryPartId\": 80467,\n                    \"IsInventoryPart\": true\n                },\n                { \n                    \"PartId\": 58069831,\n                    \"DeletionReason\": \"Wrong Part\",\n                    \"IsInventoryPart\": false\n                }\n               ]\n               }"
      operationId: POSTv3_workorders_inventory_parts_bulkPartUsage
      responses:
        '200':
          description: Part use records have been successfully modified.
        '400':
          description: "The request was not accepted due to bad syntax, missing parameters, insufficient data, etc.\n            <br/>Error codes:\n            3227 &mdash; Inventory part cannot be changed\n            5027 &mdash; Refrigerant tracking is not available for the location\n            503 &mdash; Refrigerant type entered is not defined. Part usage was blocked\n            3205 &mdash; Entered inventory parts don’t correspond to the asset refrigerant\n            3235 &mdash; Failed to process the inventory request\n            3219 &mdash; MOE number is required; part usage cannot be processed\n            3222 &mdash; Inventory part IDs and location IDs or GUIDs should not be null\n            3309 &mdash; There are uncompleted leak records in another WO\n            3306 &mdash; Refrigerant Tracking Connector is turned on. Only the external client's assets can be processed \n            3307 &mdash; Refrigerant Tracking Connector is not supported. Only the client's assets can be processed \n            3304 &mdash; Inventory usage is not allowed on refrigerant tracking for Connected Subscribers and Subcontractors \n            3237 &mdash; Another WO part use request is in processing now. Please try later \n            3236 &mdash; Duplicated parts detected \n            3327 &mdash; The same part is passed for update and removal in the same request \n            3207 &mdash; Parts with specified part IDs were not found \n            503 &mdash; Refrigerant usage cannot be processed. There are no refrigerant settings \n            503 &mdash; Only one asset can be processed in the request \n            3213 &mdash; Asset is not assigned to the work order \n            3305 &mdash; External WO currently doesn’t exist. Refrigerant usage is blocked \n            3212 &mdash; Add part usage: Either remove the Reason Code and the IsRefrigerant flag or specify an asset \n            3212 &mdash; Asset is not using refrigerant. Reason Code and IsRefrigerant values are not allowed \n            3213 &mdash; Either the asset is deactivated or you don’t have access to it \n            503 &mdash; Asset is not connected to any rack \n            809 &mdash; Work order is in the completed status. Only RT Admins can process \n            3230 &mdash; Incorrect refrigerant type entered \n            4003 &mdash; Asset uses refrigerant. RT setting is required \n            503 &mdash; There are no any charge records with the date earlier than the use date \n            3303 &mdash; A closed leak record exists for this work order. Only one leak record can exist per work order. Please enter additional part usage on a new work order \n            3232 &mdash; Leak record part usages cannot be attached to the Retro/Retire plan leak record \n            503 &mdash; Asset doesn’t contain charge prior to the given date \n            503 &mdash; Work order refrigerant leak part usages should belong to the same asset charge \n            3218 &mdash; Use date cannot be after the completed/scheduled date and earlier than the call date \n            3315 &mdash; Used reason code Retrofit cannot be selected for non-retrofit work orders \n            503 &mdash; Description field length cannot be more than 250 symbols \n            503 &mdash; Part number field length cannot be more than 50 symbols \n            3208 &mdash; Request should contain only one work order ID. Work order IDs found: \n            3206 &mdash; Incorrect work order \n            3201 &mdash; Incorrect reason code for the subscriber was entered \n            3209 &mdash; Invalid IsRefrigerant and Reason Code combination \n            3210 &mdash; IsRefrigerant flag cannot be changed \n            3211 &mdash; Reason code change is not allowed \n            3224 &mdash; Add part usages are not allowed after the Retrofit/Retire creation \n            3223 &mdash; Part removal is not allowed on the Retrofit/Retire WO \n            3319 &mdash; Zero charge value. Leak event calculation cannot be executed \n            3226 &mdash; Initial charge or system expansion are not allowed on “Connected to the rack” assets \n            3201 &mdash; System expansion and the leak repair cannot be processed in one WO \n            3215 &mdash; Asset doesn’t contain charge \n            3217 &mdash; Leak record is currently in processing on another work order \n            3229 &mdash; Duplicated request detected. Please wait a minute and try again \n            3227 &mdash; Inventory part cannot be changed \n            3228 &mdash; Inventory location cannot be changed \n            3231 &mdash; Part usage date is not allowed in the Retire/Retrofit date interval  \n            503 &mdash; Broken date order in part usages for the system expansion"
          content:
            application/json:
              schema:
                type: string
            text/json:
              schema:
                type: string
        '500':
          description: Something went wrong, and the server was unable to complete your request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantBulkChangeRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantBulkChangeRequest'
        description: Request model to modify part use records in bulk.
        required: true
  /workorders/{workorderId}/partsUsage:
    get:
      tags:
      - Parts
      summary: Retrieve work order parts usage
      operationId: GETv3_workorders_{workorderId}_partsUsage
      parameters:
      - name: workorderId
        in: path
        description: ''
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>502 - WorkOrder not found;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /parts/isTechCertificationUsedOnRefrigerantTracking:
    get:
      tags:
      - Parts
      summary: Verifies that user is associated with parts usage
      operationId: GETv3_parts_isTechCertificationUsedOnRefrigerantTracking?authUserId={authUserId}&technicianId={technicianId}&certificationNumber={certificationNumber}
      parameters:
      - name: authUserId
        in: query
        description: ''
        required: true
        schema:
          type: integer
          format: int64
      - name: technicianId
        in: query
        description: ''
        required: true
        schema:
          type: integer
          format: int32
      - name: certificationNumber
        in: query
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates that the request succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Assets.TechnicianAssociatedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Assets.TechnicianAssociatedResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
  /parts/workorders/wasmaterialsused:
    get:
      tags:
      - Parts
      summary: Checks materials usage across multiple work orders
      operationId: GETv3_parts_workorders_wasmaterialsused?recIds={recIds}
      parameters:
      - name: recIds
        in: query
        description: ''
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates that the request succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.WebApi.Models.Response.WasMaterialUsedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.WebApi.Models.Response.WasMaterialUsedResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
components:
  schemas:
    ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantResponse:
      type: object
      properties:
        Id:
          format: int32
          type: integer
        AssetId:
          format: int32
          type: integer
        TagId:
          type: string
        RecId:
          format: int32
          type: integer
        CertifiedTechnicianId:
          format: int32
          type: integer
        Quantity:
          format: double
          type: number
        QuantityMetrics:
          format: double
          type: number
        QuantityStr:
          type: string
        UnitCost:
          format: double
          type: number
        IsRefrigerant:
          default: false
          type: boolean
        IsInventoryPart:
          default: false
          type: boolean
        UseDate:
          format: date-time
          type: string
        ReasonCode:
          format: int32
          type: integer
        ReasonCodeId:
          format: int32
          type: integer
        PartNumber:
          type: string
        Description:
          type: string
        WOStatus:
          type: string
        ProblemType:
          type: string
        InventoryLocationId:
          format: int32
          type: integer
        InventoryLocationGuid:
          description: GUID of inventory part location
          type: string
        InventoryLocationName:
          type: string
        InventoryPartId:
          format: int32
          type: integer
        PartName:
          type: string
        PartGroup:
          type: string
        SupplierName:
          type: string
        RefrigerantChargeOptionsId:
          format: int32
          type: integer
        RefrigerantChargeVendor:
          type: string
        ReasonCodeStr:
          type: string
        RefrigerantUsePurpose:
          format: int32
          type: integer
        RefrigerantTypeName:
          type: string
        RefrigerantTypeId:
          format: int32
          type: integer
        IsSupplierPart:
          default: false
          type: boolean
        IsConnectorWOPart:
          default: false
          type: boolean
        SubscriberTrackingNumber:
          format: int32
          type: integer
        SubscriberAssetId:
          format: int32
          type: integer
        CreatedByUserId:
          type: string
        ModifiedByUserId:
          type: string
        IsRetrofit:
          format: byte
          type: string
        RefrigerantPartNumber:
          type: string
        InventoryLocations:
          type: array
          items:
            $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Inventory.InventoryLocation'
        SupplierPartId:
          type: string
        LeakRate:
          format: double
          type: number
    ServiceChannel.Services.Messaging.Workorders.CreateWorkOrderPartRequest:
      type: object
      properties:
        Quantity:
          format: double
          type: number
        Description:
          type: string
        Price:
          format: double
          type: number
    ServiceChannel.Services.WebApi.Models.Response.WasMaterialUsedApiModel:
      type: object
      properties:
        RecId:
          format: int32
          type: integer
        WasMaterialsUsed:
          default: false
          type: boolean
    ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantBulkChangeRequest:
      description: Object for modifying part use records in bulk
      type: object
      properties:
        AddItems:
          type: array
          items:
            $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.AddWorkOrderPartRefrigerantItem'
        UpdateItems:
          type: array
          items:
            $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.UpdateWorkOrderPartRefrigerantItem'
        DeleteItems:
          type: array
          items:
            $ref: '#/components/schemas/ServiceChannel.Services.Messaging.RefrigerantTracking.DeleteWorkOrderPartRefrigerantItem'
        IsLocalTime:
          description: "Specifies whether the `UseDate` should be converted based on the work order location time zone. Possible values:\n             • `true`: `UseDate` will not be converted to the location time zone.\n             • `false`: `UseDate` is provided in UTC (global standard time zone) and automatically converted to the local time zone."
          default: false
          type: boolean
        SubmitQuantityExceeded:
          description: When the part use meets or exceeds the threshold, set the parameter’s value to `true` to be able to proceed with the request.
          default: false
          type: boolean
        SubmitMoeQtyExceeded:
          description: For Canadian locations. When the part use meets or exceeds the threshold, set the parameter’s value to `true` to be able to proceed with the request.
          default: fals

# --- truncated at 32 KB (117 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/servicechannel/refs/heads/main/openapi/servicechannel-parts-api-openapi.yml