MEF

MEF LSO Sonata Quote Notification

Quote Notification — the OpenAPI definition published by Mplify (formerly MEF) in the MEF LSO Sonata SDK, Kylie release. LSO Sonata is the Interface Reference Point between two Service Providers (Buyer and Seller), covering inter-provider business/product automation. 2 path(s), 2 operation(s). Apache-2.0 licensed and openly downloadable from public GitHub.

OpenAPI Specification

mef-lso-sonata-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: 10.0.0
servers:
  - url: 'https://{serverBase}/mefApi/sonata/quoteNotification/v10/'
    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