openapi: 3.0.1 info: description: | **This file forms part of Mplify 115.1** This API implements Business Requirements described in MEF 80 and Mplify 80.0.1 Quote API allows the Buyer to submit a request to find out how much the installation of an instance of a Product Offering, an update to an existing Product, or a disconnect of an existing Product will cost. List of supported Use Cases: - Send Quote Notification Copyright 2025 Mplify Alliance and its contributors This file includes content based on the TM Forum Quote Management API (TMF648 v4.0.0) available at https://github.com/tmforum-apis/TMF648_QuoteManagement, which is licensed by the TM Forum under the Apache License version 2.0. Such content has been modified by the Mplify Alliance and its contributors. title: Quote Notification version: 4.0.0 servers: - url: 'https://{serverBase}/mefApi/cantata/quoteNotification/v4/' variables: serverBase: default: mplify.net description: The base of Buyer's URL. tags: - description: | The Buyer's endpoint to send particular event types notifications to. name: Notification listeners paths: /listener/quoteStateChangeEvent: post: deprecated: false description: | This endpoint is used to receive notifications on Quote state change operationId: listenToQuoteStateChangeEvent parameters: - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the Buyer. MUST be specified in the request when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request when the responding entity represents more than one Seller. required: false schema: type: string requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/QuoteStateChangeEvent' required: true responses: '204': description: 'No Content (https://tools.ietf.org/html/rfc7231#section-6.3.5)' '400': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' description: Bad Request '401': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' description: Unauthorized '403': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' description: Forbidden '500': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' description: Internal Server Error summary: Quote State Change Notification endpoint tags: - Notification listeners /listener/quoteItemStateChangeEvent: post: deprecated: false description: > This endpoint is used to receive notifications on Quote Item state change operationId: listenToQuoteItemStateChangeEvent parameters: - name: buyerId in: query description: >- The unique identifier of the organization that is acting as the Buyer. MUST be specified in the request when the requester represents more than one Buyer. required: false schema: type: string - name: sellerId in: query description: >- The unique identifier of the organization that is acting as the Seller. MUST be specified in the request when the responding entity represents more than one Seller. required: false schema: type: string requestBody: content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/QuoteItemStateChangeEvent' required: true responses: '204': description: 'No Content (https://tools.ietf.org/html/rfc7231#section-6.3.5)' '400': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error400' description: Bad Request '401': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error401' description: Unauthorized '403': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error403' description: Forbidden '500': content: application/json;charset=utf-8: schema: $ref: '#/components/schemas/Error500' description: Internal Server Error summary: Quote Item State Change Notification endpoint tags: - Notification listeners components: schemas: Error400Code: description: >- One of the following error codes: - missingQueryParameter: The URI is missing a required query-string parameter - missingQueryValue: The URI is missing a required query-string parameter value - invalidQuery: The query section of the URI is invalid. - invalidBody: The request has an invalid body enum: - missingQueryParameter - missingQueryValue - invalidQuery - invalidBody type: string Error: description: > Standard Class used to describe API response error Not intended to be used directly. The `code` in the HTTP header is used as a discriminator for the type of error returned in runtime. properties: reason: description: >- Text that explains the reason for the error. This can be shown to a client user. maxLength: 255 type: string message: description: >- Text that provides more details and corrective actions related to the error. This can be shown to a client user. type: string referenceError: description: URL pointing to documentation describing the error format: uri type: string required: - reason type: object Error400: allOf: - $ref: '#/components/schemas/Error' - properties: code: description: >- One of the following error codes: - missingQueryParameter: The URI is missing a required query-string parameter - missingQueryValue: The URI is missing a required query-string parameter value - invalidQuery: The query section of the URI is invalid. - invalidBody: The request has an invalid body $ref: '#/components/schemas/Error400Code' required: - code type: object description: 'Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)' Error401: allOf: - $ref: '#/components/schemas/Error' - properties: code: description: >- One of the following error codes: - missingCredentials: No credentials provided. - invalidCredentials: Provided credentials are invalid or expired $ref: '#/components/schemas/Error401Code' required: - code type: object description: 'Unauthorized. (https://tools.ietf.org/html/rfc7235#section-3.1)' Error401Code: description: |- One of the following error codes: - missingCredentials: No credentials provided. - invalidCredentials: Provided credentials are invalid or expired enum: - missingCredentials - invalidCredentials type: string Error403: allOf: - $ref: '#/components/schemas/Error' - properties: code: description: |- This code indicates that the server understood the request but refuses to authorize it because of one of the following error codes: - accessDenied: Access denied - forbiddenRequester: Forbidden requester - tooManyUsers: Too many users $ref: '#/components/schemas/Error403Code' required: - code type: object description: 'Forbidden. (https://tools.ietf.org/html/rfc7231#section-6.5.3)' Error403Code: description: |- This code indicates that the server understood the request but refuses to authorize it because of one of the following error codes: - accessDenied: Access denied - forbiddenRequester: Forbidden requester - tooManyUsers: Too many users enum: - accessDenied - forbiddenRequester - tooManyUsers type: string Error500: description: >- Internal Server Error. (https://tools.ietf.org/html/rfc7231#section-6.6.1) allOf: - $ref: '#/components/schemas/Error' - type: object properties: code: description: >- The following error code: - internalError: Internal server error - the server encountered an unexpected condition that prevented it from fulfilling the request. type: string enum: - internalError required: - code Event: description: >- Event class is used to describe information structure used for notification. type: object properties: eventId: description: Id of the event type: string eventTime: description: Date-time when the event occurred type: string format: date-time eventType: description: The type of the notification. type: string event: description: The event linked to the involved resource object type: object required: - event - eventId - eventTime - eventType MEFQuoteItemStateType: description: | Possible values for the status of a QuoteItem. Following mapping has been used between `MEFQuoteItemStateType` and MEF 80: | MEFQuoteItemStateType | MEF 80 | | ----------------------------| --------------------------------- | | answered | ANSWERED | | acknowledged | ACKNOWLEDGED | | approved.orderable | ORDERABLE | | approved.orderableAlternate | ORDERABLE_ALTERNATE | | inProgress | IN_PROGRESS | | inProgress.draft | IN_PROGRESS_DRAFT | | abandoned | ABANDONED | | rejected | REJECTED | | unableToProvide | UNABLE_TO_PROVIDE | enum: - answered - acknowledged - approved.orderable - approved.orderableAlternate - inProgress - inProgress.draft - rejected - abandoned - unableToProvide type: string MEFQuoteStateType: description: | Possible values for the status of a Quote. Following mapping has been used between `MEFQuoteStateType` and MEF 80: | QuoteStateType | MEF 80 | | ----------------------------------------- | --------------------------------- | | accepted | ACCEPTED | | acknowledged | ACKNOWLEDGED | | answered | ANSWERED | | approved.orderable | ORDERABLE | | approved.orderableAlternate | ORDERABLE_ALTERNATE | | declined | DECLINED | | expired | EXPIRED | | cancelled | CANCELLED | | unableToProvide | UNABLE_TO_PROVIDE | | inProgress | IN_PROGRESS | | inProgress.draft | IN_PROGRESS_DRAFT | | rejected | REJECTED | enum: - accepted - acknowledged - answered - approved.orderable - approved.orderableAlternate - cancelled - unableToProvide - declined - expired - inProgress - inProgress.draft - rejected type: string QuoteItemStateChangeEvent: allOf: - $ref: '#/components/schemas/Event' - description: QuoteItemStateChangeEvent structure type: object properties: eventType: description: Indicates the type of product offering qualification event. type: string enum: - quoteItemStateChangeEvent event: description: | A reference to the Quote that is source of the notification. $ref: '#/components/schemas/QuoteItemStateChangeEventPayload' required: - event - eventType QuoteItemStateChangeEventPayload: description: A reference to the Quote that is the source of the notification. type: object properties: id: description: The Quote unique identifier. type: string href: description: Link to the Quote type: string quoteItemId: description: >- ID of the Quote Item (within the Quote) which state change triggered the event type: string state: description: The state reached at change date $ref: '#/components/schemas/MEFQuoteItemStateType' required: - id - quoteItemId - state QuoteStateChangeEvent: allOf: - $ref: '#/components/schemas/Event' - description: QuoteStateChangeEvent structure type: object properties: eventType: description: Indicates the type of product offering qualification event. type: string enum: - quoteStateChangeEvent event: description: | A reference to the Quote that is source of the notification. $ref: '#/components/schemas/QuoteStateChangeEventPayload' required: - event - eventType QuoteStateChangeEventPayload: description: A reference to the Quote that is the source of the notification. type: object properties: id: description: The Quote unique identifier. type: string href: description: Link to the Quote type: string state: description: The state reached at change date $ref: '#/components/schemas/MEFQuoteStateType' required: - id - state