MEF Quote Management (Mef Lso Sonata Quote Management)
MEF Quote Management from MEF — 6 path(s) described in OpenAPI.
MEF Quote Management from MEF — 6 path(s) described in OpenAPI.
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: 10.0.0
servers:
- url: 'https://{serverBase}/mefApi/sonata/quoteManagement/v10/'
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-sonata-quote-management-openapi.yml