ServiceChannel Invoices API

The Invoices API from ServiceChannel — 18 operation(s) for invoices.

Operations 18

GET /invoices/{subscriberId}/InvoiceRequirements Retrieve general invoice settings for a subscriber #
GET /invoices/{subscriberId}/OtherChargeOptions/{category} Retrieve invoice other descriptions for selected category and subscriber #
GET /invoices/{subscriberId}/InvoiceRejectionReasons Retrieve invoice rejection reasons for a subscriber #
PUT /invoices/{invoiceId}/reject Allows reject non-MLI(Multilevel Invoice Approval) invoice #
PUT /invoices/{invoiceId}/onhold Allows put invoice on hold for non-MLI(Multilevel Invoice Approval) invoice #
PUT /invoices/{invoiceId}/approve Allows approve non-MLI(Multilevel Invoice Approval) invoice #
GET /invoices/statistics Retrieve statistics of all invoices #
POST /invoices Add an invoice to a work order #
GET /invoices/{invoiceId} Get an invoice #
GET /invoices/{invoiceId}/discrepancy Get rates discrepancy #
GET /invoices/{invoiceId}/discrepancyExtended Get rates discrepancy #
POST /invoices/{invoiceId}/Payment Add a payment to an invoice #
POST /invoices/Payments Add payment records to invoices #
POST /invoices/Workorders/{trackingNumber}/Payment Add a payment record to an invoice by a tracking number #
POST /invoices/GetProjectsInvoicesIgnoreAccessRights Get Projects Invoices #
GET /invoices/ping/{serviceName} Checks state of a service for invoice. #
PATCH /invoices/{invoiceId}/GlCode Update GlCode #
GET /odata/invoices Retrieve Invoices #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

servicechannel-invoices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: bearer.v1
  title: Fixxbook.Bearer.Api.V1 AfterHours Invoices API
  isOdataApi: false
  relativePath: ''
  discoveryPath: docs/bearer.v1
  _isAuthorizedAccess: true
servers:
- url: https://sb2fixxbook.servicechannel.com:443/api
security:
- oauth2: []
tags:
- name: Invoices
paths:
  /invoices/{subscriberId}/InvoiceRequirements:
    get:
      tags:
      - Invoices
      summary: Retrieve general invoice settings for a subscriber
      description: "Returns general invoice settings for the specified subscriber.\n            <br />Both subscribers and providers can use this method.\n             • **Subscribers** should enter their subscriber ID.\n             • **Providers** need to pass the ID of the subscriber they have a contract with.\n            <br />Subscriber users with the *Super Admin* secondary role set up general invoice parameters in **Admin** &gt; **Invoices** &gt; **General**, where they configure when invoices can be created, if providers should enter a resolution before submitting invoices, and whether any restrictions should apply to invoice numbers. Other parameters may be available if the corresponding features are turned on for the subscriber. Learn more about [configuring general invoice settings](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/557220138/General+Invoice+Configuration) in ServiceChannel University."
      operationId: GETv3_invoices_{subscriberId}_InvoiceRequirements
      parameters:
      - name: subscriberId
        in: path
        description: Unique numeric identifier of the subscriber to return general invoice settings for.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: General invoice settings for the specified subscriber are in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceSettingsGeneral'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceSettingsGeneral'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n            <br/>Error codes:\n            503 - The provider has no contract with the requested subscriber\n            503 - No access. Please check if the SubscriberId is valid"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\n            <br/>Error codes:\n            504 - API call rejected by security permissions"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /invoices/{subscriberId}/OtherChargeOptions/{category}:
    get:
      tags:
      - Invoices
      summary: Retrieve invoice other descriptions for selected category and subscriber
      description: "Returns invoice other descriptions for the specified subscriber and category.\n            <br />Both subscribers and providers can use this method.\n             • **Subscribers** should enter their subscriber ID.\n             • **Providers** need to pass the ID of the subscriber they have a contract with."
      operationId: GETv3_invoices_{subscriberId}_OtherChargeOptions_{category}
      parameters:
      - name: subscriberId
        in: path
        description: Unique numeric identifier of the subscriber
        required: true
        schema:
          type: integer
          format: int32
      - name: category
        in: path
        description: Category name
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Invoice other descriptions for the specified subscriber and the category are in the response.
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n            <br/>Error codes:\n            503 - The provider has no contract with the requested subscriber\n            503 - Invalid category name\n            503 - No access. Please check if the SubscriberId is valid"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\n            <br/>Error codes:\n            504 - API call rejected by security permissions"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /invoices/{subscriberId}/InvoiceRejectionReasons:
    get:
      tags:
      - Invoices
      summary: Retrieve invoice rejection reasons for a subscriber
      description: "Returns invoice rejection reasons for a subscriber\n            <br />Both subscribers and providers can use this method.\n             • **Subscribers** should enter their subscriber ID.\n             • **Providers** need to pass the ID of the subscriber they have a contract with."
      operationId: GETv3_invoices_{subscriberId}_InvoiceRejectionReasons
      parameters:
      - name: subscriberId
        in: path
        description: Unique numeric identifier of the subscriber to return invoice rejection reasons for.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Invoice rejection reasons for the specified subscriber are in the response.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceRejectionReasonResponse'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceRejectionReasonResponse'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n            <br/>Error codes:\n            503 - The provider has no contract with the requested subscriber\n            503 - No access. Please check if the SubscriberId is valid"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\n            <br/>Error codes:\n            504 - API call rejected by security permissions"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /invoices/{invoiceId}/reject:
    put:
      tags:
      - Invoices
      summary: Allows reject non-MLI(Multilevel Invoice Approval) invoice
      description: <para>Allows reject non-MLI(Multilevel Invoice Approval) invoice</para>
      operationId: PUTv3_invoices_{invoiceId}_reject?comments={comments}&isNotifyProvider={isNotifyProvider}&additionalEmails={additionalEmails}
      parameters:
      - name: invoiceId
        in: path
        description: Invoice Identifier
        required: true
        schema:
          type: integer
          format: int32
      - name: comments
        in: query
        description: Comments
        required: true
        schema:
          type: string
      - name: isNotifyProvider
        in: query
        description: Request to notify provider
        required: false
        schema:
          type: boolean
          default: false
      - name: additionalEmails
        in: query
        description: Additional Emails
        required: false
        schema:
          type: string
      responses:
        '204':
          description: Indicates that the request succeeded
        '400':
          description: "Bad Request - the request could not be understood or was missing required parameters.\n            <br/>Error codes:\n            <br/> 502 - Wrong Invoice Id \n            <br/> 503 - MLI(Multilevel Invoice Approval) enabled"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '409':
          description: "Indicates that the request could not carry out notification due to internal error or invalid argument.\n            <br/>Error codes:\n            <br/> 6018 - Email was not sent"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Subscribers
  /invoices/{invoiceId}/onhold:
    put:
      tags:
      - Invoices
      summary: Allows put invoice on hold for non-MLI(Multilevel Invoice Approval) invoice
      description: <para>Allows put invoice on hold for non-MLI(Multilevel Invoice Approval) invoice</para>
      operationId: PUTv3_invoices_{invoiceId}_onhold?comments={comments}
      parameters:
      - name: invoiceId
        in: path
        description: Invoice Identifier
        required: true
        schema:
          type: integer
          format: int32
      - name: comments
        in: query
        description: Comments
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Indicates that the request succeeded
        '400':
          description: "Bad Request - the request could not be understood or was missing required parameters.\n            <br/>Error codes:\n            <br/> 502 - Wrong Invoice Id \n            <br/> 503 - MLI(Multilevel Invoice Approval) enabled"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Subscribers
  /invoices/{invoiceId}/approve:
    put:
      tags:
      - Invoices
      summary: Allows approve non-MLI(Multilevel Invoice Approval) invoice
      description: <para>Allows approve non-MLI(Multilevel Invoice Approval) invoice</para>
      operationId: PUTv3_invoices_{invoiceId}_approve?approvalCode={approvalCode}&comments={comments}&category={category}
      parameters:
      - name: invoiceId
        in: path
        description: Invoice Identifier
        required: true
        schema:
          type: integer
          format: int32
      - name: approvalCode
        in: query
        description: Approval Code
        required: true
        schema:
          type: string
      - name: comments
        in: query
        description: Comments
        required: true
        schema:
          type: string
      - name: category
        in: query
        description: Category
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Indicates that the request succeeded
        '400':
          description: "Bad Request - the request could not be understood or was missing required parameters.\n            <br/>Error codes:\n            <br/> 502 - Wrong Invoice Id\n            <br/> 503 - MLI(Multilevel Invoice Approval) enabled"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: Indicates that the requested resource requires authentication.<br>Error codes:<br> 504 - API call rejected by security permissions;
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Subscribers
  /invoices/statistics:
    get:
      tags:
      - Invoices
      summary: Retrieve statistics of all invoices
      description: "Retrieves statistics of all invoices. Returns the statistics of all invoices for successful request.\n            <br /><br />Only for providers usage."
      operationId: GETv3_invoices_statistics?daysPeriod={daysPeriod}&approvedInThePastDaysPeriod={approvedInThePastDaysPeriod}
      parameters:
      - name: daysPeriod
        in: query
        description: Period in days, last X days for which Invoices statistics was collected (30 by Default).
        required: false
        schema:
          type: integer
          format: int32
      - name: approvedInThePastDaysPeriod
        in: query
        description: Period in days, last X days during which Invoices are approved (3 by Default).
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceStatisticsResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceStatisticsResponse'
        '400':
          description: "Bad Request - the request could not be understood or was missing required parameters.\n            <br/>Error codes:\n            <br/> 503 - Only for providers usage;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
  /invoices:
    post:
      tags:
      - Invoices
      summary: Add an invoice to a work order
      description: "Creates an invoice in the *Open* status for the specified work order.\n            <br />Find out more about [creating an invoice](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/2205811424/Creating+an+Invoice) in ServiceChannel University."
      operationId: POSTv3_invoices
      responses:
        '201':
          description: The ID of the created invoice is in the response.
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n            <br/>Error codes:\n            503 - Request should not be null\n            601 - Location not found\n            607 - Empty Location State\n            904 - Invalid WO Status. WO must be in 'COMPLETED' status with empty extended status or 'COMPLETED' status with 'CONFIRMED' extended status\n            914 - Invalid 'Currency' value\n            917 - Invalid Tracking Number\n            1100 - Invalid Other Amount Description\n            1101 - Invalid Tax2 name\n            1103 - Invalid Total\n            1104 - Invoice Total > NTE\n            1105 - Invoice exists\n            1106 - Invoice Creation Error\n            1107 - Duplicate Invoice number\n            1108 - Total is null\n            1109 - Completed Date is null\n            1110 - Invoice Date < Completed Date\n            1111 - This invoice is set to auto-invoice\n            1112 - Electronic Signature Agreement Required\n            1113 - Work order not found\n            1114 - Wrong Work Order currency\n            1115 - Work order currency not found\n            1116 - Invoicing is disabled. Invoicing might be disabled if your company account is currently in an inactive state in Fixxbook\n            1117 - Invoice creation Unexpected Result\n            1119 - Invoice labor amount is not equals summary labor items \n            1120 - Invoice material amount is not equals summary material items amounts\n            1121 - Invoice Date is older than X day(s) from today\n            1122 - Invoice Date is greater than X day(s) from today\n            1123 - Invoice material description length overflow\n            1124 - Invoice material part number length overflow\n            1125 - Tax validation error: X\n            1126 - Sales Tax should be 0 - X location\n            1127 - Invalid Invoice Number\n            1135 - Locations can't have GST tax\n            1136 - Locations can't have tax2. Only invoices for Canadian Locations can have the Tax2Details array. Tax2Details is only applicable for invoices of locations in countries that have some form of a value-added tax\n            1145 - You have an outstanding balance with ServiceChannel. In order to invoice, please login to Fixxbook.com and update your Payment Method. Once your payment Method is updated you will be able to invoice\n            1146 - Invoice doesn't have Taxes Breakdown\n            1147 - Invoice Taxes Breakdown has incorrect sum\n            1151 - Labor Line Items Required\n            1152 - Material Line Items Required\n            1159 - Invoice material unit type is invalid (should be from 1 to 7)\n            1163 - Resolution text required in Invoice Text field\n            1180 - Invoice Number is not correct\n            1193 - Negative amounts in Other Line Items not allowed\n            1194 - Invoice labor skill level is invalid (should be from 1 to 3)\n            1195 - Invoice labor type is invalid (should be from 1 to 3)\n            1196 - Invoice technician quantity is invalid (should be > 0)\n            1198 - The explanation of Dispute status is empty\n            11260 - Tax not supported for this client. For exceptions use ServiceChannel website\n            11931 - Negative amounts in Travel Line Items not allowed\n            11932 - Negative amounts in Material Line Items not allowed\n            11933 - Negative amounts in Labor Line Items not allowed\n            11992 - Vendor Id is not valid"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Any
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.WebApi.Models.Request.Invoices.CreateInvoiceRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.WebApi.Models.Request.Invoices.CreateInvoiceRequest'
        description: "Request model to create an invoice for the specified work order.\n            <br />**Required parameters**:\n             • **InvoiceNumber**. Invoice number created by a user.\n             • **WoIdentifier**. Unique work order identifier (can be *TrackingNumber* or *WorkOrderNumber* for Contractor and *TrackingNumber* or *PurchaseNumber* for Client).\n            <br />If there is no need to specify any details in *Labors*, *Materials*, *Travels*, and *Others* objects, you can send the request without them. \n            <br />**Note**: Work Order should be in the *Completed* status to successfully create an invoice."
        required: true
  /invoices/{invoiceId}:
    get:
      tags:
      - Invoices
      summary: Get an invoice
      description: Returns the details of the specified invoice.
      operationId: GETv3_invoices_{invoiceId}
      parameters:
      - name: invoiceId
        in: path
        description: Numeric identifier of the invoice to get the details for.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: The specified invoice is in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.ApiGetInvoiceResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.ApiGetInvoiceResponse'
        '400':
          description: The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '404':
          description: The requested resource does not exist on the server.
      deprecated: false
      x-access: Any
  /invoices/{invoiceId}/discrepancy:
    get:
      tags:
      - Invoices
      summary: Get rates discrepancy
      description: Retrieves Invoice rates discrepancy information. Returns the labor list with rates discrepancy for the specified invoice.
      operationId: GETv3_invoices_{invoiceId}_discrepancy
      parameters:
      - name: invoiceId
        in: path
        description: Invoice identifier.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.RateDiscrepancy'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.RateDiscrepancy'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.RateDiscrepancy'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.RateDiscrepancy'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '404':
          description: Indicates that the requested resource does not exist on the server.
      deprecated: false
      x-access: Any
  /invoices/{invoiceId}/discrepancyExtended:
    get:
      tags:
      - Invoices
      summary: Get rates discrepancy
      description: Retrieves Invoice rates discrepancy information. Returns the labor list with rates discrepancy for the specified invoice.
      operationId: GETv3_invoices_{invoiceId}_discrepancyExtended
      parameters:
      - name: invoiceId
        in: path
        description: Invoice identifier.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Indicates that the request succeeded and that the requested information is in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceDiscrepancy'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceDiscrepancy'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceDiscrepancy'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoiceDiscrepancy'
        '401':
          description: "Indicates that the requested resource requires authentication.\n            <br/>Error codes:\n            <br/> 504 - API call rejected by security permissions;"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '404':
          description: Indicates that the requested resource does not exist on the server.
      deprecated: false
      x-access: Any
  /invoices/{invoiceId}/Payment:
    post:
      tags:
      - Invoices
      summary: Add a payment to an invoice
      description: "Creates a payment record for the specified invoice in the *Approved* status.\n            <br />Send this request [GET/odata/invoices](/swagger/ui/index?version=3#/Invoices/Invoices_GetInvoices) to get the invoice ID.\n            <br />Learn [how subscribers can mark invoices as paid](https://servicechannel.atlassian.net/wiki/spaces/SCU/pages/621936646/Marking+Invoices+as+Paid) in ServiceChannel University.\n            <br />**Example Request**\n            \n                POST /invoices/{invoiceId}/Payment\n                {\n                 \"PaymentDate\": \"2021-06-10T07:40:47.881Z\",\n                 \"PaymentNumber\": \"25469833\",\n                 \"PaymentAmount\": 850\n                }"
      operationId: POSTv3_invoices_{invoiceId}_Payment
      parameters:
      - name: invoiceId
        in: path
        description: Unique numeric identifier of the invoice to add a payment to.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: 'A payment record is added to the specified invoice. '
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\n            <br/> Error codes:\n            503 - Request is invalid\n            1178 - Invoice cannot be paid before invoice dates\n            1178 - Invoice has already  paid\n            1178 - Only approved invoices may pay\n            1178 - Payment amount exceeds the actual amount\n            1178 - Payment amount should be more than zero\n            1178 - Pay not allowed for this subscriber"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '401':
          description: "The request is not authorized.\n            <br/> Error codes:\n            504 - API call rejected by security permissions"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
        '403':
          description: "You are not authorized to request this resource, or the resource is unavailable for some reason.\n            <br/> Error codes:\n            100 - User has no rights to perform this action"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceChannel.Services.Messaging.ErrorResponse'
      deprecated: false
      x-access: Subscribers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoicePaymentRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/ServiceChannel.Services.Messaging.Invoices.InvoicePaymentRequest'
        description: Request to add a payment to the specified invoice.
        required: true
  /invoices/P

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