MEF

MEF LSO Cantata Quote Notification

Quote Notification — the OpenAPI definition published by Mplify (formerly MEF) in the MEF LSO Cantata SDK, Kylie release. LSO Cantata is the Interface Reference Point between a Customer (typically an enterprise) and a Service Provider, covering the business/product layer. 2 path(s), 2 operation(s). Apache-2.0 licensed and openly downloadable from public GitHub.

OpenAPI Specification

mef-lso-cantata-quote-notification-openapi.yml Raw ↑
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