ServiceChannel Proposals API

The Proposals API from ServiceChannel — 35 operation(s) for proposals.

OpenAPI Specification

servicechannel-proposals-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: bearer.v1
  title: Fixxbook.Bearer.Api.V1 AfterHours Proposals API
  isOdataApi: false
  relativePath: ''
  discoveryPath: docs/bearer.v1
  _isAuthorizedAccess: true
host: sb2fixxbook.servicechannel.com:443
basePath: /api
schemes:
- https
security:
- oauth2: []
tags:
- name: Proposals
paths:
  /proposals/statistics:
    get:
      tags:
      - Proposals
      summary: Retrieve statistics on RFPs and proposals
      description: "Returns statistics on requests for proposals (RFPs) and proposals for the specified time period for the current provider:\r\n             • RFPs awaiting response\r\n             • Open proposals\r\n             • Approved proposals\r\n             • Proposals in the _On Hold_ and _Reviewed_ statuses\r\n             • Rejected proposals"
      operationId: GETv3_proposals_statistics?daysPeriod={daysPeriod}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: daysPeriod
        in: query
        description: Time period set as the number of days prior to the current date for which statistics on RFPs and proposals are returned. The default is 30.
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: Statistics on RFPs and proposals for the requested time period are returned in the response.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.ProposalStatisticsResponse'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            503 — Only for providers usage"
          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'
      deprecated: false
      x-access: Any
  /proposals/{proposalId}/recipients:
    get:
      tags:
      - Proposals
      summary: Retrieve users who can be added to the list of email recipients to notify of a proposal approval or rejection
      description: "Returns users who can be added to the list of email recipients to notify when the specified proposal is approved or rejected.\r\n            <br />***Note:*** This method is only available to subscriber users."
      operationId: GETv3_proposals_{proposalId}_recipients
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Users who can be added to the list of email recipients to notify when a proposal is approved or rejected are in the response.
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceChannel.Services.Messaging.Notes.EmailRecipientResponse'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            503 — Invalid proposal identifier\r\n            503 — Request is empty or null"
          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'
      deprecated: false
      x-access: Any
  /proposals/{proposalId}/validate:
    get:
      tags:
      - Proposals
      summary: Validate a proposal
      description: Checks if the specified proposal exists for the current user.
      operationId: GETv3_proposals_{proposalId}_validate
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to validate.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: The specified proposal exists for the current user.
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — Proposal 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'
      deprecated: false
      x-access: Any
  /proposals/{proposalId}/reject:
    put:
      tags:
      - Proposals
      summary: Reject a proposal
      description: "Updates the status of the specified proposal to *Rejected*.\r\n            <br />You can send a proposal rejection notification to a specific user or to all users from the **Proposals/Proposal Alerts** list.\r\n             • `ProviderEmail` and `UserEmail`. Use these parameters to send a proposal rejection notification to a specific user. If passed, any of these parameters prevails over `useProposalAlertEmails`. In case you pass a value to the `ProviderEmail` or `UserEmail` parameter in the request body and set `useProposalAlertEmails` to `true`, a notification is sent to the specified email address, while users from the **Proposals/Proposal Alerts** list are not notified.\r\n             • `useProposalAlertEmails`. Set this parameter to `true` to send proposal rejection notifications to all users listed in the **Proposals/Proposal Alerts** section of **Dispatch Preferences**.\r\n            <br />***Note:*** This method is only available to subscriber users.\r\n            <br />**Example Request**\r\n            \r\n                PUT /proposals/{proposalId}/reject\r\n                {\r\n                   \"Comments\": \"The project is canceled\",\r\n                   \"ProviderEmail\": \"\",\r\n                   \"UserEmail\": \"\",\r\n                   \"RejectReasonCodeId\": 7,\r\n                   \"ActionSource\": \"Standard\",\r\n                   \"ReasonString\": \"\",\r\n                   \"PinNote\": false,\r\n                }"
      operationId: PUTv3_proposals_{proposalId}_reject?useProposalAlertEmails={useProposalAlertEmails}
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to reject.
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The request to update the proposal status to *Rejected*.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.UpdateProposalStatusRequest'
      - name: useProposalAlertEmails
        in: query
        description: "Defines if a proposal rejection notification is sent to all users listed in the **Proposals/Proposal Alerts** section of **Dispatch Preferences**.\r\n            If the parameter value is `true`, users from the **Proposals/Proposal Alerts** list get a notification if the `ProviderEmail` and `UserEmail` parameters are not passed. If set to `false` or not passed, this parameter is ignored."
        required: false
        type: boolean
        default: false
      responses:
        '204':
          description: The proposal status is set to *Rejected*, users are notified based on the passed parameters, and the values of the specified parameters are updated.<br/>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            401 — Invalid subscriber id\r\n            502 — Proposal not found\r\n            503 — The proposal status is already Rejected\r\n            503 — The user is MLP user\r\n            503 — Request is empty or null"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals/ProposalsReject:
    put:
      tags:
      - Proposals
      summary: Reject proposals
      description: "Updates the status of the specified proposal to *Rejected*.\r\n            <br />***Note:*** This method is only available to subscriber users."
      operationId: PUTv3_proposals_ProposalsReject
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: data
        in: body
        required: true
        schema:
          type: array
          items:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.UpdateProposalsStatusRequest'
      responses:
        '204':
          description: The proposal status is set to *Rejected*, users are notified based on the passed parameters, and the values of the specified parameters are updated.<br/>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            100 — Proposal was already rejected\r\n            100 — User has no rights to perform this action\r\n            401 — Invalid subscriber id\r\n            502 — Wrong Proposal Id\r\n            502 — Proposal not found\r\n            502 — Cannot find proposal data\r\n            502 — Cannot find assigned Work Order\r\n            502 — Proposal not has WO\r\n            502 — Proposals are linked to a different Work Order\r\n            502 — You don't have permissions to process Proposal\r\n            502 — Proposal is not MLP and cannot be rejected by an MLP user\r\n            502 — Proposal is already rejected\r\n            502 — Couldn’t find Proposals to Reject\r\n            502 — Couldn't find the Provider for Proposal\r\n            502 — Escalation can't be performed as all upper levels are empty\r\n            502 — Rule set not found\r\n            503 — Wrong Work Order Id\r\n            503 — More information Required\r\n            503 — Proposal requires a Reason for Rejection\r\n            503 — The request contains proposals with the same Proposal ID\r\n            503 — Request is empty or null"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals/GetProposalsToReject:
    get:
      tags:
      - Proposals
      summary: Retrieve proposals that can be reject
      description: "Returns list of the proposals that can be reject.\r\n            <br />***Note:*** This method is only available to subscriber users."
      operationId: GETv3_proposals_GetProposalsToReject?trackingNumber={trackingNumber}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: trackingNumber
        in: query
        description: The unique numeric identifier of the WO.
        required: true
        type: integer
        format: int32
      responses:
        '200':
          description: Users that can be added to the list of email recipients to notify when a proposal is approved or rejected are in the response.
          schema:
            type: array
            items:
              $ref: '#/definitions/ServiceChannel.Services.Messaging.Notes.EmailRecipientResponse'
        '400':
          description: "The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.\r\n            <br/>Error codes:\r\n            502 — Proposals to Reject not found\r\n            502 — Cannot find proposal data\r\n            503 — Invalid WO identifier"
          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'
      deprecated: false
      x-access: Any
  /proposals/{proposalId}/onhold:
    put:
      tags:
      - Proposals
      summary: Put a proposal on hold
      description: "Updates the status of the specified proposal to *On Hold*.\r\n            <br />***Note:*** This method is only available to subscriber users.\r\n            <br />**Example Request**\r\n            \r\n                PUT /proposals/{proposalId}/onhold\r\n                {\r\n                   \"Comments\": \"The proposal needs further review\",\r\n                   \"ProviderEmail\": \"\",\r\n                   \"UserEmail\": \"\",\r\n                   \"RejectReasonCodeId\": 0,\r\n                   \"ActionSource\": \"Standard\",\r\n                   \"ReasonString\": \"\",\r\n                   \"PinNote\": false,\r\n                }"
      operationId: PUTv3_proposals_{proposalId}_onhold
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to put on hold.
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The request to update the proposal status to *On Hold*.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.UpdateProposalStatusRequest'
      responses:
        '204':
          description: The proposal status is set to *On Hold*, users are notified based on the passed parameters, and the values of the specified parameters are updated.<br/>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            401 — Invalid subscriber id\r\n            502 — Proposal not found\r\n            503 — The proposal status is already On Hold\r\n            503 — The user is MLP user\r\n            503 — Request is empty or null"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals/{proposalId}/approve:
    put:
      tags:
      - Proposals
      summary: Approve a proposal
      description: "Updates the status of the specified proposal to *Approved*.\r\n            <br />***Note:*** This method is only available to subscriber users.\r\n            <br />**Example Request**\r\n            \r\n                PUT /proposals/{proposalId}/approve\r\n                {\r\n                   \"Comments\": \"The project starts earlier than expected\",\r\n                   \"ProviderEmail\": \"\",\r\n                   \"UserEmail\": \"\",\r\n                   \"RejectReasonCodeId\": 0,\r\n                   \"ActionSource\": \"Standard\",\r\n                   \"ReasonString\": \"Best fit for the job and scope\",\r\n                   \"AttachmentstoWO\": true,\r\n                   \"PinNote\": false,\r\n                }"
      operationId: PUTv3_proposals_{proposalId}_approve
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to approve.
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The request to update the proposal status to *Approved*.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.UpdateProposalStatusRequest'
      responses:
        '204':
          description: The proposal status is set to *Approved*, users are notified based on the passed parameters, and the values of the specified parameters are updated.<br/>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            100 — Proposal amount exceeds user’s NTE limit\r\n            401 — Invalid subscriber id\r\n            502 — Proposal not found\r\n            503 — The proposal status is already Approved\r\n            503 — Cannot Approve Proposal that is not assigned to Work Order\r\n            503 — Cannot Approve Proposal. The Work Order this proposal is linked to has already been invoiced\r\n            503 — The user is MLP user\r\n            503 — Request is empty or null"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals/{proposalId}/open:
    put:
      tags:
      - Proposals
      summary: Open a proposal
      description: "Updates the status of the specified proposal to *Open*.\r\n            <br />***Note:*** This method is only available to subscriber users.\r\n            <br />**Example Request**\r\n            \r\n                PUT /proposals/{proposalId}/open\r\n                {\r\n                   \"Comments\": \"The project is resumed\",\r\n                   \"ProviderEmail\": \"\",\r\n                   \"UserEmail\": \"\",\r\n                   \"RejectReasonCodeId\": 0,\r\n                   \"ActionSource\": \"Standard\",\r\n                   \"ReasonString\": \"\",\r\n                   \"PinNote\": false,\r\n                }"
      operationId: PUTv3_proposals_{proposalId}_open
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to open.
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The request to update the proposal status to *Open*.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.UpdateProposalStatusRequest'
      responses:
        '204':
          description: The proposal status is set to *Open*, users are notified based on the passed parameters, and the values of the specified parameters are updated.<br/>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            401 — Invalid subscriber id\r\n            502 — Proposal not found\r\n            503 — The proposal status is already Open\r\n            503 — The user is MLP user\r\n            503 — Request is empty or null"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals/{proposalId}/assignWO:
    put:
      tags:
      - Proposals
      summary: Attach a work order to a proposal
      description: "Links the specified work order to the proposal. If the proposal already has a linked service request, the attached work order is updated. See [Link a WO to a Proposal](/guides/proposals/link-a-WO-to-a-proposal/) for more information.\r\n            <br />***Note:*** This method is only available to subscriber users."
      operationId: PUTv3_proposals_{proposalId}_assignWO?isFromProjectsModule={isFromProjectsModule}
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to attach the work order to.
        required: true
        type: integer
        format: int32
      - name: workorderId
        in: body
        description: The unique numeric identifier of the work order to link to the proposal.
        required: true
        schema:
          format: int32
          type: integer
      - name: isFromProjectsModule
        in: query
        description: Is request from projects module.
        required: false
        type: boolean
        default: false
      responses:
        '204':
          description: The specified work order is attached to the proposal, 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            401 — Invalid subscriber id\r\n            502 — Proposal not found\r\n            503 — Request is empty or null\r\n            503 — Proposal already approved\r\n            503 — Workorder doesn't match\r\n            503 — The user is MLP user\r\n            917 — Invalid WO Identifier"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals/{proposalId}/escalate:
    put:
      tags:
      - Proposals
      summary: Escalate a proposal
      description: "Escalates the specified proposal to another user in the subscriber’s multi-level proposal (MLP) approval hierarchy. The proposal can be approved, rejected, put on hold, or returned upon escalation. You can attach an existing work order or create a new one while submitting the request.\r\n            <br />***Note:*** This method is only available to subscribers with the MLP setting enabled.\r\n            <br />MLP users can [escalate a proposal](/guides/proposals/assign-or-escalate-a-proposal/#escalate-a-proposal-for-mlp-users) if the following conditions are met:\r\n             • The user's approval level corresponds to the proposal level.\r\n             • The Override option is enabled for the user in case their level is higher than the proposal level.\r\n            <br />**Example Request**\r\n            \r\n                PUT /proposals/{proposalId}/escalate\r\n                {\r\n                   \"Action\": \"Approve\",\r\n                   \"WoType\": 2,\r\n                   \"TrackingNumber\": 140324907,\r\n                   \"PoNumber\": \"\",\r\n                   \"ExistingPoNumber\": \"\",\r\n                   \"Category\": \"\",\r\n                   \"CategoryId\": ,\r\n                   \"ApprovalCode\": \"\",\r\n                   \"Priority\": \"\",\r\n                   \"Comment\": \"Escalating proposal to the General Manager\",\r\n                   \"RejectReasonCodeId\": 0,\r\n                   \"ReasonString\": \"\",\r\n                   \"EmailsToNotify\": \"john.smith@domain.com\",\r\n                   \"EmailMyself\": false,\r\n                   \"MyEmail\": \"\",\r\n                   \"ProposalId\": 10010836\r\n                }"
      operationId: PUTv3_proposals_{proposalId}_escalate
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to escalate.
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The request to escalate the proposal to another user in the MLP hierarchy.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.MlpWoRecommendationRequest'
      responses:
        '204':
          description: The specified proposal is escalated and updated with the passed parameters. 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            401 — Invalid subscriber id\r\n            502 — Proposal not found\r\n            503 — Request is empty or null\r\n            503 — The user is not MLP user\r\n            503 — Invalid WO Tracking Number\r\n            503 — Invalid WO Tracking Number in Proposal\r\n            503 — Invalid Wo Type\r\n            503 — There is no WO recommendation\r\n            503 — Action not found in rules\r\n            503 — User level less than Proposal level\r\n            503 — ForwardTo item is empty\r\n            503 — There is no the action in next rule\r\n            503 — Invalid Level\r\n            503 — Override flag is false\r\n            503 — EndStatus item is empty\r\n            503 — Invalid 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'
      deprecated: false
      x-access: Subscribers
  /proposals/{proposalId}/assignUser:
    put:
      tags:
      - Proposals
      summary: Assign a proposal to a user
      description: "Assigns the proposal to the specified user in the subscriber’s organization. If the proposal already has an assignee, the appointed user is updated.\r\n            <br />***Note:*** You cannot [assign a proposal](/guides/proposals/assign-or-escalate-a-proposal/#assign-a-proposal-to-a-user) in the *Approved* or *Rejected* status.\r\n            <br />**Example Request**\r\n            \r\n                PUT /proposals/{proposalId}/assignUser\r\n                {\r\n                   \"UserId\": 1417703,\r\n                   \"Comments\": \"Proposal reassigned at the request of the Store Manager\",\r\n                   \"UserEmail\": \"\",\r\n                   \"ReasonString\": \"\",\r\n                   \"Note\": \"\"\r\n                }"
      operationId: PUTv3_proposals_{proposalId}_assignUser
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalId
        in: path
        description: The unique numeric identifier of the proposal to assign to the specified user.
        required: true
        type: integer
        format: int32
      - name: request
        in: body
        description: The request to assign the proposal to the specified user.
        required: true
        schema:
          $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.AssignUserToProposalRequest'
      responses:
        '204':
          description: The proposal is assigned to the specified user, 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 — Proposal not found\r\n            503 — Request is empty or null\r\n            503 — Wrong User Id\r\n            503 — Selected proposal has been finalized\r\n            503 — Selected user has no required rights\r\n            503 — Selected user doesn't have Location or Trade access"
          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'
      deprecated: false
      x-access: Subscribers
  /proposals:
    get:
      tags:
      - Proposals
      summary: Retrieve proposals
      description: Returns proposals based on the specified input parameters for the current subscriber.
      operationId: GETv3_proposals?statuses={statuses}&assignedTo={assignedTo}&skip={skip}&top={top}
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: statuses
        in: query
        description: "Proposal statuses separated by commas. Valid values: *Open*, *On Hold*, *Approved*, *Rejected*, *Void*, *Reviewed*.\r\n            Proposals in all statuses are returned if the value is not passed."
        required: false
        type: string
      - name: assignedTo
        in: query
        description: The unique numeric identifier of the user who is assigned the proposals.
        required: false
        type: integer
        format: int32
      - name: skip
        in: query
        description: The number of entries to skip in the response (starting from the first one).
        required: false
        type: integer
        format: int32
      - name: top
        in: query
        description: The number of entries to return. The default value is 50.
        required: false
        type: integer
        format: int32
      responses:
        '200':
          description: The requested proposals are in the response.
          schema:
            $ref: '#/definitions/ServiceChannel.Services.Messaging.Proposals.ProposalStatisticsResponse'
        '400':
          description: The request is not accepted due to bad syntax, missing parameters, insufficient data, etc.
          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'
      deprecated: false
      x-access: Any
  /proposals/GetProposals:
    post:
      tags:
      - Proposals
      summary: Get Proposals
      operationId: POSTv3_proposals_GetProposals
      consumes:
      - application/json
      - text/json
      produces:
      - application/json
      - text/json
      parameters:
      - name: proposalModel
        in: body
        description: ''
        required: true
        schema:
          $ref: '#/

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