ServiceChannel WorkActivities API
The WorkActivities API from ServiceChannel — 5 operation(s) for workactivities.
The WorkActivities API from ServiceChannel — 5 operation(s) for workactivities.
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