ServiceChannel WorkActivities API

The WorkActivities API from ServiceChannel — 5 operation(s) for workactivities.

OpenAPI Specification

servicechannel-workactivities-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: bearer.v1
  title: Fixxbook.Bearer.Api.V1 AfterHours WorkActivities API
  isOdataApi: false
  relativePath: ''
  discoveryPath: docs/bearer.v1
  _isAuthorizedAccess: true
host: sb2fixxbook.servicechannel.com:443
basePath: /api
schemes:
- https
security:
- oauth2: []
tags:
- name: WorkActivities
paths:
  /workorders/{workorderId}/workactivities/{workactivityId}:
    put:
      tags:
      - WorkActivities
      summary: Update the specified work activity of a work order
      description: "Updates the specified work activity of a work order by setting the check-in and check-out date and time values passed in the request.\r\n            <br />Before updating a work activity, please consider the following:\r\n             • You can update work activities only for work orders in the *In Progress* primary status.\r\n             • The check-in date and time cannot be greater than the check-out date and time.\r\n             • The check-in date and time cannot be earlier than the scheduled date and time of the work order.\r\n             • The time range of the work activity you are updating cannot overlap the time ranges of existing work activities of the work order.\r\n             • The name will be set to the API caller name if the `name` value is not provided.\r\n            <br />***Note:*** Both subscribers and providers can use this method.\r\n            <br />***Note:*** Only users with extended permissions can update the work activities created by other users along with updating the `name` parameter. The users with certain permissions are:\r\n             • Subscribers that have the *Admin* role. These users can update the work activities created both by subscribers and by providers.\r\n             • Providers that have the *Admin* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on). These users can update the work activities created by providers only.\r\n             • Providers that have the *Business Owner / Management* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on). These users can update the work activities created by providers only.\r\n            <br />Learn more about [updating a work activity](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/576258285/Updating+Service+Provider+Check-In+Out+Information) in ServiceChannel University.\r\n            <br />**Example Request**\r\n            \r\n                PUT /workorders/{workorderId}/workactivities/{workactivityId}\r\n                {\r\n                   \"CheckInDate\": \"2020-11-19T11:10:36.868Z\",\r\n                   \"CheckOutDate\": \"2020-11-19T12:30:36.868Z\",\r\n                   \"Name\": \"John Doe\"\r\n                }"
      operationId: PUTv3_workorders_{workorderId}_workactivities_{workactivityId}
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The unique numeric identifier of the work order for which you want to update a work activity.
        required: true
        type: integer
        format: int32
      - name: workactivityId
        in: path
        description: The unique numeric identifier of the work activity to update.
        required: true
        type: integer
        format: int32
      - name: activityRequest
        in: body
        description: Request to update a work activity.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkActivityRequest'
      responses:
        '200':
          description: The work activity is updated, and its ID is returned in the response.
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — WorkOrder not found\r\n            503 — Work activity is not found\r\n            503 — Date range is incorrect\r\n            503 — Check In/Out is premature\r\n            904 — Invalid work order status\r\n            1186 — Time range is overlapped"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\r\n            <br/>Error codes:\r\n            504 — API call rejected by security permissions"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '403':
          description: "You are not authorized to request this resource, or the resource is unavailable for some reason.\r\n            <br/>Error codes:\r\n            804 — User has no permissions to perform this action"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: The server was unable to complete the request due to an internal error.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /workorders/{workorderId}/workactivities:
    post:
      tags:
      - WorkActivities
      summary: Create a work activity for the specified work order
      description: "Creates a new work activity for the specified work order. The work activity type can be either *Travel* or *Repair*. Note that custom types may be configured for a subscriber.\r\n            <br />Before creating a work activity, please consider the following:\r\n             • You can create work activities only for work orders in the *In Progress* primary status.\r\n             • The check-in date and time cannot be greater than the check-out date and time.\r\n             • The check-in date and time cannot be earlier than the scheduled date and time of the work order.\r\n             • The time range of the work activity you are creating cannot overlap the time ranges of existing work activities of the work order.\r\n             • The name will be set to the API caller name if the `name` value is not provided.\r\n            <br />***Note:*** Both subscribers and providers can use this method.\r\n            <br />***Note:*** Only users with extended permissions can specify the technician's name while creating a work activity. The users with extended permissions are:\r\n             • Subscribers that have the *Admin* role.\r\n             • Providers that have the *Admin* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on).\r\n             • Providers that have the *Business Owner / Management* role (with the *EditLaborItemsOnWoDetailsProvider* feature flag turned on).\r\n            <br />Learn more about [creating a work activity](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/576258285/Updating+Service+Provider+Check-In+Out+Information) in ServiceChannel University.\r\n            <br />**Example Request**\r\n            \r\n                POST /workorders/{workorderId}/workactivities\r\n                {\r\n                   \"WorkTypeId\": \"1\",       \r\n                   \"CheckInDate\": \"2020-11-19T11:10:36.868Z\",\r\n                   \"CheckOutDate\": \"2020-11-19T12:15:36.868Z\",\r\n                   \"Name\": \"John Doe\"\r\n                }"
      operationId: POSTv3_workorders_{workorderId}_workactivities
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The unique numeric identifier of the work order for which you want to create a work activity.
        required: true
        type: integer
        format: int32
      - name: activityRequest
        in: body
        description: Request to create a work activity.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkActivityPostRequest'
      responses:
        '201':
          description: A work activity is created for the specified work order, and a unique work activity ID is returned in the response.
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — WorkOrder not found\r\n            503 — Work Type Not Found\r\n            503 — Date range is incorrect\r\n            503 — Check In/Out is premature\r\n            904 — Invalid work order status\r\n            1186 — Time range is overlapped"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\r\n            <br/>Error codes:\r\n            504 — API call rejected by security permissions"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '403':
          description: "You are not authorized to request this resource, or the resource is unavailable for some reason.\r\n            <br/>Error codes:\r\n            804 — User has no permissions to perform this action"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '406':
          description: The request is already processed.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: The server was unable to complete the request due to an internal error.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
    delete:
      tags:
      - WorkActivities
      summary: Delete the specified work activities of a work order
      description: "Delete one or more work activities of the specified work order. When you pass multiple work activity IDs, the request will succeed if at least one ID is valid.\r\n            <br />***Note:*** Both subscribers and providers can use this method."
      operationId: DELETEv3_workorders_{workorderId}_workactivities?workactivityIds[0]={workactivityIds[0]}&workactivityIds[1]={workactivityIds[1]}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: workorderId
        in: path
        description: The unique numeric identifier of the work order for which you want to delete work activities.
        required: true
        type: integer
        format: int32
      - name: workactivityIds
        in: query
        description: The unique numeric identifiers of the work activities to delete.
        required: true
        type: array
        items:
          type: integer
          format: int32
        collectionFormat: multi
      responses:
        '204':
          description: The specified work activities are deleted, and the response is intentionally blank.
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — WorkOrder not found\r\n            502 — Work activities are not found\r\n            804 — User has no permissions to perform this action"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\r\n            <br/>Error codes:\r\n            504 — API call rejected by security permissions"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: The server was unable to complete the request due to an internal error.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /odata/workorders({workorderId})/workactivities:
    get:
      tags:
      - WorkActivities
      summary: List work activities of the specified work order
      description: "Returns work activities of the specified work order.\r\n            <br />A work activity details information about the technician's work on a service request: the time when the technician started and finished their work, the type of activity they carried out, the number of technicians who rendered the service, and other details related to the labor performed.\r\n            <br />***Note:*** Both subscribers and providers can use this method."
      operationId: WorkActivities_GetWorkActivities
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: workorderId
        in: path
        description: The unique numeric identifier of the work order for which you want to retrieve work activities.
        required: true
        type: integer
        format: int32
      - name: $expand
        in: query
        description: Expand a navigation property.
        required: false
        type: string
      - name: $select
        in: query
        description: Select a set of properties to return.
        required: false
        type: string
      - name: $filter
        in: query
        description: Filter a collection of resources addressed by a request URL.
        required: false
        type: string
      - name: $orderby
        in: query
        description: Order resources by the specified property in the response.
        required: false
        type: string
      - name: $top
        in: query
        description: Return the specified number of items in the response.
        required: false
        type: integer
      - name: $skip
        in: query
        description: Skip the specified number of items in the response.
        required: false
        type: integer
      - name: $count
        in: query
        description: Include the count of the matching resources in the response.
        required: false
        type: boolean
      responses:
        '200':
          description: The work activities of the specified work order are in the response.
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkActivity'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — WorkOrder not found"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\r\n            <br/>Error codes:\r\n            504 — API call rejected by security permissions"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: The server was unable to complete the request due to an internal error.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /odata/workactivities/Service.ForTimeInterval(dtMin={dtMin}, dtMax={dtMax}, userId={userId}):
    get:
      tags:
      - WorkActivities
      summary: List work activities created by a provider user within the specified time period
      description: "Returns work activities created by the specified provider user within the set time period.\r\n            <br />A work activity details information about the technician’s work on a service request: the time when the technician started and finished their work, the type of activity they carried out, the number of technicians who rendered the service, and other details related to the labor performed.\r\n            <br />***Note:*** This method is only available to provider users."
      operationId: WorkActivities_ForTimeInterval
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: userId
        in: path
        description: PIN of the provider user who created work activities.
        required: true
        type: integer
        format: int32
      - name: dtMax
        in: path
        description: The end date of the time period for which you want to retrieve work activities. The format is `YYYY-MM-DD`.
        required: true
        type: string
        format: date-time
      - name: dtMin
        in: path
        description: The start date of the time period for which you want to retrieve work activities. The format is `YYYY-MM-DD`.
        required: true
        type: string
        format: date-time
      - name: $expand
        in: query
        description: Expand a navigation property.
        required: false
        type: string
      - name: $select
        in: query
        description: Select a set of properties to return.
        required: false
        type: string
      - name: $filter
        in: query
        description: Filter a collection of resources addressed by a request URL.
        required: false
        type: string
      - name: $orderby
        in: query
        description: Order resources by the specified property in the response.
        required: false
        type: string
      - name: $top
        in: query
        description: Return the specified number of items in the response.
        required: false
        type: integer
      - name: $skip
        in: query
        description: Skip the specified number of items in the response.
        required: false
        type: integer
      - name: $count
        in: query
        description: Include the count of the matching resources in the response.
        required: false
        type: boolean
      responses:
        '200':
          description: Work activities created by the specified provider user within the set time period are in the response.
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkActivity'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            504 — User not found"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\r\n            <br/>Error codes:\r\n            504 — API call rejected by security permissions"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: The server was unable to complete the request due to an internal error.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Providers
  /odata/workorders({workorderId})/workactivities({workactivityId}):
    get:
      tags:
      - WorkActivities
      summary: Retrieve the specified work activity of a work order
      description: "Returns the specified work activity of a work order.\r\n            <br />A work activity details information about the technician's work on a service request: the time when the technician started and finished their work, the type of activity they carried out, the number of technicians who rendered the service, and other details related to the labor performed.\r\n            <br />***Note:*** Both subscribers and providers can use this method."
      operationId: WorkActivities_GetWorkActivity
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: workactivityId
        in: path
        description: The unique numeric identifier of the work activity to return.
        required: true
        type: integer
        format: int32
      - name: workorderId
        in: path
        description: The unique numeric identifier of the work order for which you want to retrieve a work activity.
        required: true
        type: integer
        format: int32
      - name: $expand
        in: query
        description: Expand a navigation property.
        required: false
        type: string
      - name: $select
        in: query
        description: Select a set of properties to return.
        required: false
        type: string
      - name: $filter
        in: query
        description: Filter a collection of resources addressed by a request URL.
        required: false
        type: string
      - name: $orderby
        in: query
        description: Order resources by the specified property in the response.
        required: false
        type: string
      - name: $top
        in: query
        description: Return the specified number of items in the response.
        required: false
        type: integer
      - name: $skip
        in: query
        description: Skip the specified number of items in the response.
        required: false
        type: integer
      - name: $count
        in: query
        description: Include the count of the matching resources in the response.
        required: false
        type: boolean
      responses:
        '200':
          description: The requested work activity of the specified work order is in the response.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.WorkActivity'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — WorkOrder not found\r\n            502 — Work activity is not found"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\r\n            <br/>Error codes:\r\n            504 — API call rejected by security permissions"
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
        '500':
          description: The server was unable to complete the request due to an internal error.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
definitions:
  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
         

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