MEF

MEF LSO Cantata Quote Management

Quote Management — 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. 6 path(s), 8 operation(s). Apache-2.0 licensed and openly downloadable from public GitHub.

OpenAPI Specification

mef-lso-cantata-quote-management-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Quote Management
  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:

    - Create Quote

    - Retrieve Quote List

    - Retrieve Quote by Quote Identifier

    - Cancel Quote by Quote Identifier

    - Decline Quote by Quote Identifier

    - Register for 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.
  version: 4.0.0
servers:
  - url: 'https://{serverBase}/mefApi/cantata/quoteManagement/v4/'
    variables:
      serverBase:
        description: The base of Seller's URL.
        default: mplify.net
tags:
  - name: quote
  - name: quote operations
  - name: events subscription
paths:
  /quote:
    get:
      tags:
        - quote
      summary: List or find Quote objects
      description: >-
        The Buyer requests a list of Quotes from the Seller based on a set of
        filter criteria (as described in MEF 80).  For each Quote returned, the
        Seller also provides a Quote Identifier that uniquely identifies this
        Quote within the Seller. The order of the elements returned to the Buyer
        is defined by the Seller (e.g. natural order) and does not change
        between the pages.
      operationId: listQuote
      parameters:
        - name: state
          in: query
          description: >-
            State of the Quote to be retrieved. See `MEFQuoteStateType`
            definition for details
          required: false
          schema:
            $ref: '#/components/schemas/MEFQuoteStateType'
        - name: quoteLevel
          in: query
          description: >-
            Level of the quote - could be budgetary,
            firmSubjectToFeasibilityCheck, firm
          required: false
          schema:
            $ref: '#/components/schemas/MEFSellerQuoteLevel'
        - name: externalId
          in: query
          description: >-
            ID given by the consumer and only understandable by him (to
            facilitate his searches afterward)
          required: false
          schema:
            type: string
        - name: projectId
          in: query
          description: >-
            An identifier that is used to group Quotes that represent a unit of
            functionality that is important to a Buyer. A Project can be used to
            relate multiple Quotes together
          required: false
          schema:
            type: string
        - name: quoteDate.gt
          in: query
          description: Date when the quote was created - greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: quoteDate.lt
          in: query
          description: Date when the quote was created - lower than
          required: false
          schema:
            type: string
            format: date-time
        - name: requestedQuoteCompletionDate.gt
          in: query
          description: Requested Quote Completion Date - greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: requestedQuoteCompletionDate.lt
          in: query
          description: Requested Quote Completion Date - lower than
          required: false
          schema:
            type: string
            format: date-time
        - name: expectedQuoteCompletionDate.gt
          in: query
          description: Expected Quote Completion Date - greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: expectedQuoteCompletionDate.lt
          in: query
          description: Expected Quote Completion Date - lower than
          required: false
          schema:
            type: string
            format: date-time
        - name: effectiveQuoteCompletionDate.gt
          in: query
          description: >-
            Date when the Quote State was set to one of the Completion States -
            greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: effectiveQuoteCompletionDate.lt
          in: query
          description: >-
            Date when the Quote State was set to one of the Completion States -
            lower than
          required: false
          schema:
            type: string
            format: date-time
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
        - name: offset
          in: query
          description:
            Requested index for start of resources to be provided in response
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: Requested number of resources to be provided in response
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)'
          headers:
            X-Pagination-Throttled:
              description: >
                Used to indicate that result page was throttled to maximum
                possible size  and there are additional results that can be
                fetched
              schema:
                type: boolean
            X-Total-Count:
              description: >
                The total number of matching records. E.g. if there are 50
                matching records in total, but the request has offset=10 and
                limit=10, then the X-Total-Count is 50.
              schema:
                type: integer
            X-Result-Count:
              description: The number of records included in the response
              schema:
                type: integer
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Quote_Find'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '422':
          description: Unprocessable entity due to business validation problems
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error422'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
        '501':
          description: >-
            Method not implemented. Used in case Seller is not supporting
            Notification mechanism
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
    post:
      tags:
        - quote
      summary: Send request to perform a quotation
      description: This operation creates a Quote entity.
      operationId: createQuote
      parameters:
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
      requestBody:
        description: The Quote to be created
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/Quote_Create'
        required: true
      responses:
        '201':
          description:
            'Created  (https://tools.ietf.org/html/rfc7231#section-6.3.2)'
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '422':
          description: >-
            Unprocessable entity due to the business validation problems in the
            Quote or one of the Quote items
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error422'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
  '/quote/{id}':
    get:
      tags:
        - quote
      summary: Retrieves a Quote by ID
      description: >-
        This operation retrieves a Quote entity. Attribute selection is enabled
        for all first level attributes.
      operationId: retrieveQuote
      parameters:
        - name: id
          in: path
          description: Identifier of the Quote
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)'
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Quote'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
  /cancelQuote:
    post:
      tags:
        - quote operations
      summary: Cancels a Quote
      description: This operation sends a cancellation request.
      operationId: cancelQuote
      parameters:
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
      requestBody:
        description: The details of the Quote Operation
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/QuoteOperationData'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteOperationData'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '422':
          description: >-
            Unprocessable entity due to the business validation problems in the
            Quote or one of the Quote items
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error422'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
  /declineQuote:
    post:
      tags:
        - quote operations
      summary: Declines a Quote
      description: This operation sends a decline request.
      operationId: declineQuote
      parameters:
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
      requestBody:
        description: The details of the Quote Operation
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/QuoteOperationData'
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/QuoteOperationData'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '422':
          description: >-
            Unprocessable entity due to the business validation problems in the
            Quote or one of the Quote items
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error422'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
  /hub:
    post:
      tags:
        - events subscription
      summary: Allows the Buyer to register to Quote state change notifications
      description: >-
        A request initiated by the Buyer to instruct the Seller to send
        notifications of Quote state changes in the event the Seller uses the
        Deferred Response pattern to respond to a Create Quote request.
      operationId: registerListener
      parameters:
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
      requestBody:
        description:
          Data containing the callback endpoint to deliver the information
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/EventSubscriptionInput'
        required: true
      responses:
        '201':
          description:
            'Subscribed  (https://tools.ietf.org/html/rfc7231#section-6.3.2)'
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '422':
          description: Unprocessable entity due to business validation problems
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error422'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
        '501':
          description: >-
            Method not implemented. Used in case Seller is not supporting
            Notification mechanism
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
  '/hub/{id}':
    get:
      tags:
        - events subscription
      summary: Retrieves a Hub by ID
      description: This operation retrieves a hub entity.
      operationId: retrieveHub
      parameters:
        - name: id
          in: path
          description: Identifier of the Hub
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when responding
            entity  represents more than one Seller.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '400':
          description: Bad Request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
        '501':
          description: >-
            Method not implemented. Used in case Seller is not supporting
            Notification mechanism
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
    delete:
      tags:
        - events subscription
      summary: Unregister a listener
      description: >-
        Resets the communication endpoint address the service instance must use
        to deliver information about its health state, execution state, failures
        and metrics.
      operationId: unregisterListener
      parameters:
        - name: id
          in: path
          description: The id of the EventSubscription
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the
            Buyer. MUST be specified in the request only 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 only when the responding
            entity represents more than one Seller.
          required: false
          schema:
            type: string
      responses:
        '204':
          description:
            'Deleted (https://tools.ietf.org/html/rfc7231#section-6.3.5)'
        '400':
          description: Bad request
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error400'
        '401':
          description: Unauthorized
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error401'
        '403':
          description: Forbidden
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error403'
        '404':
          description: Not Found
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error404'
        '422':
          description: Unprocessable entity due to business validation problems
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Error422'
        '500':
          description: Internal Server Error
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error500'
        '501':
          description: >-
            Method not implemented. Used in case Seller is not supporting
            Notification mechanism
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
components:
  schemas:
    ContactInformation:
      description: >-
        Contact data for a person or organization that is involved in the
        product offering qualification. In a given context it is always
        specified by the Seller (e.g. Seller Contact Information) or by the
        Buyer.
      type: object
      properties:
        number:
          description: Phone number
          type: string
        emailAddress:
          description: Email address
          type: string
        postalAddress:
          description: >-
            Identifies the postal address of the person or office to be
            contacted.
          $ref: '#/components/schemas/FieldedAddressRepresentation'
        organization:
          description: The organization or company that the contact belongs to
          type: string
        name:
          description: Name of the contact
          type: string
        numberExtension:
          description: Phone number extension
          type: string
      required:
        - emailAddress
        - name
        - number
    Duration:
      description: 'A Duration in a given unit of time e.g. 3 hours, or 5 days.'
      type: object
      properties:
        amount:
          description: 'Duration (number of seconds, minutes, hours, etc.)'
          type: integer
          minimum: 0
        units:
          description: Time unit enumerated
          $ref: '#/components/schemas/TimeUnit'
      required:
        - amount
        - units
    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.
      type: object
      properties:
        reason:
          description: >-
            Text that explains the reason for the error. This can be shown to a
            client user.
          type: string
          maxLength: 255
        message:
          description: >-
            Text that provides mode 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
          type: string
          format: uri
      required:
        - reason
    Error400:
      description:
        'Bad Request. (https://tools.ietf.org/html/rfc7231#section-6.5.1)'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          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
    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
      type: string
      enum:
        - missingQueryParameter
        - missingQueryValue
        - invalidQuery
        - invalidBody
    Error401:
      description:
        'Unauthorized.  (https://tools.ietf.org/html/rfc7235#section-3.1)'
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          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
    Error401Code:
      description: |-
        One of the following error codes:
        - missingCredentials: No credentials provided.
        - invalidCredentials: Provided credentials are invalid or expired
      type: string
      enum:
        - missingCredentials
        - invalidCredentials
    Error403:
      description: >-
        Forbidden. This code indicates that the server understood the request
        but refuses to authorize it.
        (https://tools.ietf.org/html/rfc7231#section-6.5.3)
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          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
    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
      type: string
      enum:
        - accessDenied
        - forbiddenRequester
        - tooManyUsers
    Error404:
      description: >-
        Resource for the requested path not found.
        (https://tools.ietf.org/html/rfc7231#section-6.5.4)
      allOf:
        - $ref: '#/components/schemas/Error'
        - type: object
          properties:
            code:
              description: >-
                The following error code:

          

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mef/refs/heads/main/openapi/mef-lso-cantata-quote-management-openapi.yml