ServiceChannel Notes API
The Notes API from ServiceChannel — 6 operation(s) for notes.
The Notes API from ServiceChannel — 6 operation(s) for notes.
swagger: '2.0'
info:
version: bearer.v1
title: Fixxbook.Bearer.Api.V1 AfterHours Notes API
isOdataApi: false
relativePath: ''
discoveryPath: docs/bearer.v1
_isAuthorizedAccess: true
host: sb2fixxbook.servicechannel.com:443
basePath: /api
schemes:
- https
security:
- oauth2: []
tags:
- name: Notes
paths:
/workorders/{workorderId}/notes:
get:
tags:
- Notes
summary: Get work order notes
description: "Returns notes and attachments associated with the specified work order. Notes are sorted in descending order by creation date.\r\n <br />Learn more about work order notes in [SCU](https://servicechannel.atlassian.net/wiki/x/4oPNKQ)."
operationId: GETv3_workorders_{workorderId}_notes?paging={paging}
consumes: []
produces:
- application/json
- text/json
parameters:
- name: workorderId
in: path
description: "Unique numeric identifier of the work order.\r\n <br />***Note:*** You need to have access to the WO location per your user settings."
required: true
type: integer
format: int32
- name: paging
in: query
description: "Page numbering to display work order notes.\r\n • The format is **Page number:Page size**, for example, **1:10**, meaning the 1st page with 10 notes displayed. To view the second page, change the entry to **2:10**.\r\n • When the field is left empty, you get 10 notes per page with the latest note at the top.\r\n • To get all WO notes, ensure you specify a large number as the **Page size** that will cover all the notes, for example, **1:9999**."
required: false
type: string
responses:
'200':
description: Notes associated with the work order are in the response.
schema:
$ref: '#/definitions/ServiceChannel.Services.WebApi.Models.Response.Notes.GetNotesResponse'
'400':
description: "The request was not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n <br/>Error codes:\r\n 917 — Invalid work order identifier. Returned if workorderId is <= 0\r\n 922 — Invalid paging parameter. Returned if paging parameter doesn't correspond to valid format\r\n 922 — Invalid page number\r\n 922 — Invalid page size\r\n 502 — Work order is not found"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The requested resource requires authentication.\r\n <br/>Error codes:\r\n 504 — API call rejected by security permissions"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
'500':
description: "Something went wrong, and the server was unable to complete your request.\r\n <br/>Error codes:\r\n 501 — Internal server error"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Any
post:
tags:
- Notes
summary: Create a work order note
description: "Adds a new note to the specified work order. Returns the note ID for a successful request.\r\n <br />Learn more about work order notes in [SCU](https://servicechannel.atlassian.net/wiki/x/4oPNKQ)."
operationId: POSTv3_workorders_{workorderId}_notes
consumes:
- application/json
- text/json
produces:
- application/json
- text/json
parameters:
- name: workorderId
in: path
description: "Unique numeric identifier of the work order where a note should be created.\r\n _**Note:**_ You need to have access to the WO location per your user settings."
required: true
type: integer
format: int32
- name: noteRequest
in: body
description: Request model for adding a note. Only the `Note` parameter is required.
required: true
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.CreateWoNoteRequest'
responses:
'201':
description: The note has been created and added to the specified work order.
'400':
description: "The request was not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n <br/>Error codes:\r\n 100 — You don't have location access to perform this operation\r\n 503 — Validation fails. Invalid `WorkOrder Id` or `Note` value\r\n 503 — Request is empty or null"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The requested resource requires authentication.\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 100 — User is a provider or does not have the *PinnedNotes* FF enabled and is trying to add a pinned note\r\n 100 — User has no rights to perform this action"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'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}/notes/recipients:
get:
tags:
- Notes
summary: Note email recipients
description: <para>List of email recipients, who can be added to the list of note followers</para>
operationId: GETv3_workorders_{workorderId}_notes_recipients?showExcluded={showExcluded}¬eVisibility={noteVisibility}
consumes: []
produces:
- application/json
- text/json
parameters:
- name: workorderId
in: path
description: Numeric Id of the Work order to perform action with.
required: true
type: integer
format: int32
- name: showExcluded
in: query
description: If set to true, returns all recipients even those that have 'exclude from note recipient' flag in their setup. False by Default.
required: false
type: boolean
default: false
- name: noteVisibility
in: query
description: NoteVisibility.Public is used by default
required: false
type: string
enum:
- VisibleToEveryone
- VisibleToProvider
- VisibleToClient
- NotVisible
responses:
'200':
description: Request succeeded and the requested information is in the response.
schema:
type: array
items:
$ref: '#/definitions/ServiceChannel.Services.Messaging.Notes.EmailRecipientResponse'
'400':
description: "Bad Request - the request could not be understood or was missing required parameters.\r\n <br/>Error codes:\r\n <br/> 917 - Invalid work order identifier. Returned if workorderId is <= 0;"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "Unauthorized 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'
'404':
description: The requested resource does not exist on the server.
deprecated: false
x-access: Any
/workorders/{workorderId}/notes/followers:
post:
tags:
- Notes
summary: Add Followers to Work order notes
description: <para>Add Followers to Work order.</para>
operationId: POSTv3_workorders_{workorderId}_notes_followers
consumes:
- application/json
- text/json
produces:
- application/json
- text/json
parameters:
- name: workorderId
in: path
description: Numeric Id of the Work order to perform action with.
required: true
type: integer
format: int32
- name: request
in: body
description: The request model to perform action with.
required: true
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.Workorders.AddFollowersRequest'
responses:
'201':
description: Created indicates that the request resulted in a new resource created before the response was sent.
'400':
description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>503 - Request data is empty;<br>There is no followers in request;<br>Empty tracking number (workorder Id);
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: Indicates that the requested resource does not exist on the server.
deprecated: false
x-access: Any
delete:
tags:
- Notes
summary: Remove Follower from Work order notes
description: <para>Remove Follower from Work order.</para>
operationId: DELETEv3_workorders_{workorderId}_notes_followers?email={email}
consumes: []
produces:
- application/json
- text/json
parameters:
- name: workorderId
in: path
description: Numeric Id of the Work order to perform action with.
required: true
type: integer
format: int32
- name: email
in: query
description: The follower email address.
required: true
type: string
responses:
'200':
description: Indicates that the request succeeded and that the requested information is in the response.
'400':
description: Bad Request - the request could not be understood or was missing required parameters.<br>Error codes:<br>503 - Request data is empty;<br>There is no followers in request;<br>Empty tracking number (workorder Id);
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: Indicates that the requested resource does not exist on the server.
deprecated: false
x-access: Any
/workorders/{workorderId}/notes/{noteId}:
patch:
tags:
- Notes
summary: Partially update a work order note
description: "Updates a work order note partially. For example, pins or unpins the work order note. For a successful request, returns the note ID in the response.\r\n <br />Available behind the *PinnedNotes* feature flag."
operationId: PATCHv3_workorders_{workorderId}_notes_{noteId}
consumes:
- application/json
- text/json
produces:
- application/json
- text/json
parameters:
- name: workorderId
in: path
description: Unique numeric identifier of the work order.
required: true
type: integer
format: int32
- name: noteId
in: path
description: 'Unique numeric identifier of the note. To get the `noteId`, run the following method: [GET/workorders/{workorderId}/notes](https://developer.servicechannel.com/swagger/index.html#/Notes/GETv3_workorders_%7BworkorderId%7D_notes%3Fpaging%3D%7Bpaging%7D). One note can be pinned to a single WO at a time.'
required: true
type: integer
format: int64
- name: request
in: body
description: Request model for pinning/unpinning the work order note.
required: true
schema:
$ref: '#/definitions/ServiceChannel.Services.WebApi.Models.Request.Notes.PartialUpdateWorkOrderNoteRequest'
responses:
'200':
description: The work order note was successfully patched.
'400':
description: "The request was not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n <br/>Error codes:\r\n 503 — Request data is empty\r\n 503 — Empty tracking number (workorder Id)\r\n 1301 — Request is empty or null"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'401':
description: "The requested resource requires authentication.\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 100 — User has no rights to perform this action"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: The requested resource does not exist on the server.
schema:
default: false
type: boolean
'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: Subscribers
/odata/workorders({workorderId})/notes:
get:
tags:
- Notes
summary: Retrieve work order notes
description: "Returns work order notes and attachments for the specified WO ID.\r\n <br />Supports filtering and sorting within the response.\r\n • **$expand:** Expand a navigation property. For example, enter **`attachments`**. To include specific fields for the expanded property, combine with the **`$select`** query option, for example, **`attachments($select=Id,Name)`**.\r\n • **$select:** Select a set of properties to return. For example, **`Id,NoteData,CompanyName,CreatedBy`**.\r\n • **$filter:** Filter notes by the specified property in the response. For example, **`NoteType eq 'UsersNote'`**.\r\n • **$orderby:** Order notes by the specified property in the response — in ascending **`asc`** or descending **`desc`** order. For example, **`DateCreated asc`** or **`DateCreated desc`**. \r\n • **$top:** Return the specified number of notes in the response.\r\n • **$skip:** Skip the specified number of notes in the response.\r\n • **$count:** Include the count of the matching notes in the response."
operationId: Notes_GetWorkOrderNotes
consumes:
- application/json
produces:
- application/json
parameters:
- name: workorderId
in: path
description: Tracking number of the work order.
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: Notes associated with the work order are in the response.
schema:
type: array
items:
$ref: '#/definitions/ServiceChannel.Services.Messaging.Notes.Note'
'400':
description: The request was not accepted due to bad syntax, missing parameters, insufficient data, etc.
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: "The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.\r\n <br/>Error codes:\r\n 502 — Work order is not found"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Any
/odata/workorders({workorderId})/notes({noteId}):
get:
tags:
- Notes
summary: Get a work order note by note ID
description: "Returns a specific note that matches the entered work order ID and note ID.\r\n <br />Supports filtering and sorting within the response.\r\n • **$expand:** Expand a navigation property. For example, `attachments`. To include specific fields for the expanded property, combine with the `$select` query option, for example, `attachments($select=Id,Name)`. \r\n • **$select:** Select a set of properties to return. For example, `Id,NoteData,CompanyName,CreatedBy`. \r\n • **$filter:** Not applicable for this method.\r\n • **$orderby:** Not applicable for this method.\r\n • **$top:** Not applicable for this method.\r\n • **$skip:** Not applicable for this method.\r\n • **$count:** Include the count of the matching resources in the response."
operationId: Notes_GetWorkOrderNote
consumes:
- application/json
produces:
- application/json
parameters:
- name: noteId
in: path
description: Unique numeric identifier of the work order note. To get a note ID, run the [GET/workorders/{workorderId}/notes](https://developer.servicechannel.com/swagger/index.html#/Notes/GETv3_workorders_%7BworkorderId%7D_notes%3Fpaging%3D%7Bpaging%7D) method.
required: true
type: integer
format: int64
- name: workorderId
in: path
description: Unique numeric identifier of the work order.
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 order note is in the response.
schema:
type: array
items:
$ref: '#/definitions/ServiceChannel.Services.Messaging.Notes.Note'
'400':
description: The request was not accepted due to bad syntax, missing parameters, insufficient data, etc.
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
'404':
description: "The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.\r\n <br/>Error codes:\r\n 502 — Work order is not found"
schema:
$ref: '#/definitions/ServiceChannel.Services.Messaging.ErrorResponse'
deprecated: false
x-access: Any
definitions:
ServiceChannel.Services.WebApi.Models.Request.Notes.PartialUpdateWorkOrderNoteRequest:
description: Object for pinning/unpinning the work order note.
type: object
properties:
IsPinned:
description: "Indicates whether the note should be pinned to the top of the notes list. Possible input values:\r\n • `true`: The note is pinned.\r\n • `false`: The note isn’t pinned."
default: false
type: boolean
ServiceChannel.Services.WebApi.Models.Response.Notes.GetNotesResponse:
description: Object containing a collection of notes and their counts.
type: object
properties:
Notes:
description: Notes associated with the specified work order.
type: array
items:
$ref: '#/definitions/ServiceChannel.Services.WebApi.Models.Response.Notes.NoteResponse'
AllNotesCount:
format: int32
description: Total count of all notes.
type: integer
UserNotesCount:
format: int32
description: Count of notes created by users.
type: integer
SystemNotesCount:
format: int32
description: Count of system-generated notes.
type: integer
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 (103 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/servicechannel/refs/heads/main/openapi/servicechannel-notes-api-openapi.yml