ServiceChannel Parts API

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

OpenAPI Specification

servicechannel-parts-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: bearer.v1
  title: Fixxbook.Bearer.Api.V1 AfterHours Parts API
  isOdataApi: false
  relativePath: ''
  discoveryPath: docs/bearer.v1
  _isAuthorizedAccess: true
host: sb2fixxbook.servicechannel.com:443
basePath: /api
schemes:
- https
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.\r\n            <br /><br />Available for provider and subscriber usage."
      operationId: GETv3_workorders_{workorderId}_parts
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\r\n            <br/>Error codes:\r\n            <br/> 504 - API call rejected by security permissions;"
          schema:
            $ref: '#/definitions/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
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The Work order parts collection for update
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.UpdateWorkOrderPartsCollectionRequest'
      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;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
    post:
      tags:
      - Parts
      summary: Create Work order parts
      description: Available only for provider.
      operationId: POSTv3_workorders_{workorderId}_parts
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: A new Work order identity
        required: true
        type: integer
        format: int32
      - name: requestModel
        in: body
        description: A new Work order parts collection
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.CreateWorkOrderPartsCollectionRequest'
      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;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
    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]}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        type: integer
        format: int32
      - name: ids
        in: query
        description: The Work order part identity collection for delete
        required: true
        type: array
        items:
          type: integer
          format: int32
        collectionFormat: multi
      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;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/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.\r\n            <br /><br />Available for provider and subscriber usage."
      operationId: GETv3_workorders_{workorderId}_{includeConnectorParts}_partsV1
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The Work order identity
        required: true
        type: integer
        format: int32
      - name: includeConnectorParts
        in: path
        description: Include Connector Parts
        required: true
        type: boolean
        default: false
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\r\n            <br/>Error codes:\r\n            <br/> 504 - API call rejected by security permissions;"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /workorders/{workorderId}/inventory/refrigerantusage:
    get:
      tags:
      - Parts
      summary: ''
      operationId: GETv3_workorders_{workorderId}_inventory_refrigerantusage
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: ''
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Indicates that the request succeeded.
          schema:
            $ref: '#/definitions/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;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/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.\r\n             • Supports both refrigerant and non-refrigerant parts. \r\n             • Supports inventory and vendor-supplied parts.\r\n            <br />**Example request for removing part use records:**\r\n            \r\n               { \r\n                \"DeleteItems\": [\r\n                { \r\n                    \"PartId\": 58069830,\r\n                    \"DeletionReason\": \"Incorrect Quantity\",\r\n                    \"InventoryPartId\": 80467,\r\n                    \"IsInventoryPart\": true\r\n                },\r\n                { \r\n                    \"PartId\": 58069831,\r\n                    \"DeletionReason\": \"Wrong Part\",\r\n                    \"IsInventoryPart\": false\r\n                }\r\n               ]\r\n               }"
      operationId: POSTv3_workorders_inventory_parts_bulkPartUsage
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: request
        in: body
        description: Request model to modify part use records in bulk.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.RefrigerantTracking.WorkOrderPartRefrigerantBulkChangeRequest'
      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.\r\n            <br/>Error codes:\r\n            3227 &mdash; Inventory part cannot be changed\r\n            5027 &mdash; Refrigerant tracking is not available for the location\r\n            503 &mdash; Refrigerant type entered is not defined. Part usage was blocked\r\n            3205 &mdash; Entered inventory parts don’t correspond to the asset refrigerant\r\n            3235 &mdash; Failed to process the inventory request\r\n            3219 &mdash; MOE number is required; part usage cannot be processed\r\n            3222 &mdash; Inventory part IDs and location IDs or GUIDs should not be null\r\n            3309 &mdash; There are uncompleted leak records in another WO\r\n            3306 &mdash; Refrigerant Tracking Connector is turned on. Only the external client's assets can be processed \r\n            3307 &mdash; Refrigerant Tracking Connector is not supported. Only the client's assets can be processed \r\n            3304 &mdash; Inventory usage is not allowed on refrigerant tracking for Connected Subscribers and Subcontractors \r\n            3237 &mdash; Another WO part use request is in processing now. Please try later \r\n            3236 &mdash; Duplicated parts detected \r\n            3327 &mdash; The same part is passed for update and removal in the same request \r\n            3207 &mdash; Parts with specified part IDs were not found \r\n            503 &mdash; Refrigerant usage cannot be processed. There are no refrigerant settings \r\n            503 &mdash; Only one asset can be processed in the request \r\n            3213 &mdash; Asset is not assigned to the work order \r\n            3305 &mdash; External WO currently doesn’t exist. Refrigerant usage is blocked \r\n            3212 &mdash; Add part usage: Either remove the Reason Code and the IsRefrigerant flag or specify an asset \r\n            3212 &mdash; Asset is not using refrigerant. Reason Code and IsRefrigerant values are not allowed \r\n            3213 &mdash; Either the asset is deactivated or you don’t have access to it \r\n            503 &mdash; Asset is not connected to any rack \r\n            809 &mdash; Work order is in the completed status. Only RT Admins can process \r\n            3230 &mdash; Incorrect refrigerant type entered \r\n            4003 &mdash; Asset uses refrigerant. RT setting is required \r\n            503 &mdash; There are no any charge records with the date earlier than the use date \r\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 \r\n            3232 &mdash; Leak record part usages cannot be attached to the Retro/Retire plan leak record \r\n            503 &mdash; Asset doesn’t contain charge prior to the given date \r\n            503 &mdash; Work order refrigerant leak part usages should belong to the same asset charge \r\n            3218 &mdash; Use date cannot be after the completed/scheduled date and earlier than the call date \r\n            3315 &mdash; Used reason code Retrofit cannot be selected for non-retrofit work orders \r\n            503 &mdash; Description field length cannot be more than 250 symbols \r\n            503 &mdash; Part number field length cannot be more than 50 symbols \r\n            3208 &mdash; Request should contain only one work order ID. Work order IDs found: \r\n            3206 &mdash; Incorrect work order \r\n            3201 &mdash; Incorrect reason code for the subscriber was entered \r\n            3209 &mdash; Invalid IsRefrigerant and Reason Code combination \r\n            3210 &mdash; IsRefrigerant flag cannot be changed \r\n            3211 &mdash; Reason code change is not allowed \r\n            3224 &mdash; Add part usages are not allowed after the Retrofit/Retire creation \r\n            3223 &mdash; Part removal is not allowed on the Retrofit/Retire WO \r\n            3319 &mdash; Zero charge value. Leak event calculation cannot be executed \r\n            3226 &mdash; Initial charge or system expansion are not allowed on “Connected to the rack” assets \r\n            3201 &mdash; System expansion and the leak repair cannot be processed in one WO \r\n            3215 &mdash; Asset doesn’t contain charge \r\n            3217 &mdash; Leak record is currently in processing on another work order \r\n            3229 &mdash; Duplicated request detected. Please wait a minute and try again \r\n            3227 &mdash; Inventory part cannot be changed \r\n            3228 &mdash; Inventory location cannot be changed \r\n            3231 &mdash; Part usage date is not allowed in the Retire/Retrofit date interval  \r\n            503 &mdash; Broken date order in part usages for the system expansion"
          schema:
            type: string
        '500':
          description: Something went wrong, and the server was unable to complete your request.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /workorders/{workorderId}/partsUsage:
    get:
      tags:
      - Parts
      summary: Retrieve work order parts usage
      operationId: GETv3_workorders_{workorderId}_partsUsage
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: ''
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Indicates that the request succeeded.
          schema:
            type: array
            items:
              $ref: '#/definitions/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;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/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}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: authUserId
        in: query
        description: ''
        required: true
        type: integer
        format: int64
      - name: technicianId
        in: query
        description: ''
        required: true
        type: integer
        format: int32
      - name: certificationNumber
        in: query
        description: ''
        required: true
        type: string
      responses:
        '200':
          description: Indicates that the request succeeded.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.Assets.TechnicianAssociatedResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/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}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: recIds
        in: query
        description: ''
        required: true
        type: string
      responses:
        '200':
          description: Indicates that the request succeeded.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.WebApi.Models.Response.WasMaterialUsedResponse'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br/> 504 - API call rejected by security permissions;
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: Error while processing request.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
definitions:
  ServiceChannel.Services.Messaging.Workorders.WorkOrderPartResponse:
    type: object
    properties:
      Id:
        format: int32
        type: integer
      Quantity:
        format: float
        type: number
      RecId:
        format: int32
        type: integer
      Description:
        type: string
      Price:
        format: double
        type: number
      Reason:
        type: string
      SupplierPartId:
        type: string
      SupplierPartAuxiliaryId:
        type: string
      DefaultNte:
        format: double
        type: number
      NteMultiplier:
        format: double
        type: number
      IsSupplierPart:
        default: false
        type: boolean
      IsInventoryPart:
        default: false
        type: boolean
      InventoryLocationName:
        type: string
  ServiceChannel.Services.Messaging.ErrorResponse:
    description: The error response object
    type: object
    properties:
      ErrorCodes:
        description: The list of error codes. Go to /basics/general/response-codes/#internal-error-codes-and-messages to map error codes to error reasons.
        type: array
        items:
          enum:
          - NotAllowed
          - EmptyProvider
          - InvalidProviderId
          - UnknownProvider
          - ProviderAlreadyExists
          - ProviderIdNotExists
          - TimeoutExpiredError
          - EmptyContract
          - ContractUndefined
          - EmptySubscriber
          - InvalidSubscriberId
          - UnknownSubscriber
          - InactiveSubscriber
          - EmptySubscriberId
          - SubscriberIdNotExists
          - InternalError
          - DataNotFound
          - BadRequest
          - UnAuthorized
          - UnSupportedApplication
          - SubsidiaryUserDisabled
          - EmptyLocation
          - InvalidLocationId
          - UnknownLocation
          - LocationNotBelongsToSubscriber
          - EmptyLocationCountry
          - LocationAlreadyExists
          - InvalidStoreId
          - LocationEmptyState
          - NoAccessToLocation
          - LocationAddressValidationError
          - LocationAddressRequestValidationError
          - InvalidLocationNoteHeader
          - NoAccessToUpdateProtectedNote
          - InvalidBusinessHoursFormat
          - WorkingHoursIntersect
          - InvalidDayOfWeek
          - DuplicateDayOfWeek
          - InvalidBusinessHoursInitialSetup
          - BusinessHoursIsEmpty
          - InvalidHolidayRepeatByType
          - EmptyHolidayListOfDays
          - EmptyHolidayListOfMonths
          - InvalidHolidayMonthName
          - InvalidHolidayNameLength
          - InvalidHolidayRepeatEvery
          - DuplicateMonth
          - InvalidHolidayFrequency
          - InvalidHolidayStartDate
          - InvalidCloseAllDay
          - HolidayDoesNotExist
          - InvalidFormatParameter
          - InvalidLocationCity
          - InvalidLocationZip
          - InvalidLocationLatitude
          - InvalidLocationLongitude
          - InvalidLocationEmail
          - InvalidLocationName
          - InvalidLocationState
          - InvalidLocationAddlAddress
          - InvalidLocationMainAddress
          - InvalidLocationCountry
          - InvalidLocationRegion
          - InvalidLocationDistrict
          - InvalidLocationPhone
          - InvalidLocationContact
          - InvalidLocationFaxNumber
          - LocationCountryNotFound
          - LocationStateNotFound
          - LocationCityNotFound
          - LocationIdNotExists
          - InvalidLocationEmailLength
          - LocationStateIdNotFound
          - IncorrectCombinationStateAndStateId
          - InvalidSubscriberIds
          - InvalidLocalizationSettings
          - LandlordResponsibilityNotFound
          - LandlordResponsibilityAlreadyExists
          - EmptyLocationIds
          - AttachmentNotExist
          - InvalidTradeId
          - InvalidCategoryId
          - InvalidOverrideCategoryId
          - InvalidOverridePriorityId
          - LeaseNoteExceedMaxLength
          - InvalidOverrideProviderRank
          - InvalidOverrideNTE
          - DuplicateRows
          - InvalidPriorityId
          - LocationNotFound
          - EmptyTrade
          - InvalidTrade
          - TradeNotBelongsToSubscriber
          - InvalidPrimaryTrade
          - InvalidTradeForSubscriber
          - InvalidCategoryForSubscriber
          - GlCodeAlreadyExists
          - GlCodeNotExists
          - InvalidGlCodeUpdate
          - EmptyGlCode
          - TradeAlreadyExists
          - InvalidNTETrade
          - TradeNotExists
          - TradeAlreadyInUse
          - TradeWithTheSameNameHasBeenDeleted
          - TradeInUsePMServices
          - TradeInUseProposalError
          - TradeInUseRFPError
          - TradeInUseChecklistError
          - TradeInUseBudgetControl
          - TradeInUseGlCode
          - TradeInUseDynamicProviderAssignments
          - TradeInUseInvoice
          - TradeInUseLandlordResponsibilities
          - TradeInUseWO
          - TradeInUseEquipmentType
          - TradeInUseRFP
          - TradeInUseConnector
          - TradeInUseContractedService
          - TradeInUseIVR
          - TradeInUseSiteAccess
          - TradeInUseGLCodes
          - TradeInUseCIWO
          - TradeInUseOrganizationPermissions
          - TradeСreationError
          - EmptyUser
          - EmptyCreatedBy
          - InvalidUserName
          - NotProviderUser
          - UserHasNoPermissions
          - RestrictedAccount
          - UserAlreadyExists
          - UserHasNoPermissionsEditWO
          - UserEmailAddressIsMissing
          - UserIsNotRTAdmin
          - InvalidSubsriberProviderId
          - LanguageNameNotFound
          - InvalidLanguageId
          - LanguageIdNotFound
          - UseBothSubscriberIdProviderId
          - EmptyWoProblem
          - InvalidWoProblemSource
          - InvalidWoProblemDescription
          - InvalidWoProblemCode
          - InvalidWoStatus
          - InvalidWoNte
          - InvalidWoCaller
          - InvalidWoCallDate
          - InvalidWoScheduledDate
          - InvalidWoScheduledDateGreaterThanMaxAllowed
          - EmptyWoCategory
          - InvalidWoCategory
          - EmptyWoPriority
          - InvalidWoPriority
          - InvalidWoCurrency
          - InvalidWoSetupId
          - AttachmentsRequired
          - InvalidWoIdentifier
          - EquipmentRequired
          - WoNteOverflow
          - InvalidWoPurchaseNumber
          - InvalidWoStateForUpdate
          - InvalidPagingParameter
          - InvalidWoNumber
          - CheckInDenied
          - CheckOutDenied
          - WoScheduledDateLessThenReassignDate
          - WoScheduledDateLessThenCallDate
          - InvalidWoActionReason
          - EmptySubscriberProperty
          - WorkOrderUpdateError
          - MissedWoNteDetails
          - InvalidLinkedWoIdentifier
          - WoIsOnHold
          - InvalidWoTrade
          - InvalidStarScore
          - WorkOrderAlreadyRated
          - AttachmentThumbnailNotAvailable
          - InvalidWoIdentifierOrPin
          - InvalidTimeZoneHeader
          - RefrigerantWasUsedShouldBeYesOrNo
          - CheckInDeniedOutsideGeolocation
          - CheckOutDeniedOutsideGeolocation
          - LeakDetectorAuditShouldBeCreated
          - CheckInOutPremature
          - WorkOrderAttachmentsSizeExceeded
          - WorkOrderNotFound
          - WorkOrderCreateError
          - InvalidWoProjectedCompletionDate
          - InvalidFollowUpWo
          - InvalidWeatherEventId
          - InvalidSiteAuditLinkedWo
          - InvalidSetupId
          - IssueListNotFound
          - InvalidIssueListField
          - SiteAuditCompleted
          - CheckSiteAuditError
          - SaveSiteAuditError
          - RemoveSiteAuditError
          - InactiveTemplateType
          - SiteAuditNotFound
          - SiteAuditUpdateError
          - InvalidSiteAuditParameters
          - InvalidAdditionalApprovalCode
          - InvalidAdditionalApprovalCodeValue
          - AdditionalApprovalCodeIsDisabled
          - InvalidOtherDesc
          - InvalidTax2Name
          - InvoiceInconsistentAmounts
          - InvoiceInvalidTotal
          - InvoiceTotalGreaterNte
          - InvoiceExists
          - CreatingInvoiceError
          - DuplInvNumber
          - InvoiceTotalNull
          - InvComplDateNull
          - InvDateLessComplDate
          - InvoiceNotAuto
          - ESignatureRequired
          - InvWoNotFound
          - InvWrongWoCurr
          - InvWoCurrNotFound
          - InvoicingDisabled
          - InvCreationUnexpectedRes
          - InvoiceInvalidLaborAmount
          - InvoiceInvalidMaterialAmount
          - InvDateOld
          - InvDateGreater
          - InvoiceMaterialDescriptionLengthOverflow
          - InvoiceTaxNotValidated
          - InvoiceMaterialPartNumberLengthOverflow
          - TaxValidationError
          - TaxExemptionError
          - InvalidInvoiceNumber
          - GetApprovalLevelsError
          - InvoiceAddUsersToMliLevelsError
          - InvoiceAddDeleteLocationsToMliLevelUserError
          - InvoiceUpdateMLiLevelError
          - InvoiceDeleteMliLevelError
          - InvoiceDeleteUsersFromMliLevelError
          - ApprovalLevelNameLengthOverflow
          - GstTaxError
          - Tax2Error
          - GetApprovalLevelsAndLocationsByUserError
          - GetAssignedUserShortInfoError
          - AssignAllLocationsToApprovalLevelAndUserError
          - GetLocationsForApprovalLevelAndAssignedUserError
          - GetLocationsBySubscriberError
          - AssignUserWithLocationsToApprovalLevelError
          - ReAssignUserWithLocationsToNewApprovalLevelError
          - ReAssignLocationsToApprovalLevelAndUserError
          - OutstandingBalance
          - InvoiceTaxDetailsEmpty
          - InvoiceTaxDetailsIncorrectSum
          - MultipleUsersForLocationIsNotAllowed
          - UserAssignedToOtherLevel
          - UserDoesNotExist
          - LaborLineItemRequired
          - MaterialLineItemRequired
          - InvoiceDoesntExist
          - InvoiceStarUnstarFailed
          - InvoiceBatchUpdateInvalidInvoiceStatusError
          - InvoiceBatchUpdateLimitExceededError
          - InvoiceNotAvailableForCurrentUser
          - InvoiceBatchUpdateInvalidRuleSetStructure
          - InvoiceBatchUpdateInvalidMliStructure
          - InvoiceBatchUpdateStatusError
          - InvoiceMaterialUnitTypeInvalid
          - ExistingBatchNumber
          - InvoiceResolutionTextRequired
          - GetInvoiceDefaultApprovalCodesError
          - InvoiceInvalidTravelAmount
          - InvoiceTravelDescriptionLengthOverflow
          - InvoiceTravelUnitTypeInvalid
          - TravelLineItemRequired
          - TravelDetailsDisabled
          - OnOffShoreDisabled
          - InvoiceInvalidLaborCount
          - InvoiceInvalidMaterialCount
          - InvoiceInvalidTravelCount
          - SubscriberNotRegisteredForTaxValidation
          - ManyDecimalsInAmountError
          - DecimalPartQstTaxError
          - LaborRatesDiscrepancy
          - PayInvoicesError
          - InvoiceNumberRequirementsError
          - InvoiceNumberIncorrect
          - InvoiceNumberRegExPatternError
          - GetInvoicesPendingApprovalByLocationError
          - ReAssignInvoicesToUsersFailed
          - ReAssignInvoicesUsersMatched
          - GetUsersForReassignInvoiceError
          - InvalidTimeRangeActivity
          - OutsourcedSourceInvoiceNotFound
          - OthersLineItemsDisabled
          - InvoiceInvalidOtherAmount
          - InvoiceInvalidOtherCount
          - InvoiceOtherDescriptionLengthOverflow
          - OtherLineItemRequired
          - OtherLineItemsNotNegativeValueRequired
         

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