MEF

MEF LSO Sonata Product Ordering Management

Product Ordering Management — 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. 10 path(s), 16 operation(s). Apache-2.0 licensed and openly downloadable from public GitHub.

OpenAPI Specification

mef-lso-sonata-product-order-management-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Product Ordering Management
  description: >
    **This file forms part of Mplify 123.1** 

    This API implements Business Requirements described in MEF 57.2 and Mplify
    57.2.1


    Product Order Management allows the Buyer to request the Seller to initiate
    and complete the

    fulfillment process of an installation of a Product Offering, an update to

    an existing Product, or a disconnect of an existing Product at the address

    defined by the Buyer.


    List of supported Use Cases:

    - Create Product Order

    - Update Product Order by Product Order Identifier

    - Retrieve List of Product Orders

    - Retrieve Product Order by Product Order Identifier

    - Modify Product Order Item Requested Delivery Date

    - Retrieve Modify Product Order Item Requested Delivery Date List

    - Retrieve Modify Product Order Item Requested Delivery Date by Identifier

    - Cancel Product Order

    - Retrieve List of Cancel Product Orders

    - Retrieve Cancel Product Order Request by Cancel Product Order Identifier

    - Respond to Charge

    - Retrieve List of Charges

    - Retrieve Charge by Charge Identifier

    - Register for Notifications


    Copyright 2025 Mplify Alliance and its contributors


    This file includes content based on the TM Forum Product Order API (TMF622

    v4.0.0) available at https://github.com/tmforum-apis/TMF622_ProductOrder,

    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: 11.0.1
servers:
  - url: 'https://{serverBase}/mefApi/sonata/productOrderingManagement/v11/'
    variables:
      serverBase:
        description: The base of Seller's URL.
        default: mplify.net
tags:
  - name: productOrder
  - name: cancelProductOrder
  - name: charge
  - name: modifyProductOrderItemRequestedDeliveryDate
  - name: events subscription
paths:
  /productOrder:
    get:
      tags:
        - productOrder
      summary: Lists or finds ProductOrder objects
      description: This operation lists or finds ProductOrder entities
      operationId: listProductOrder
      parameters:
        - name: state
          in: query
          description: State of the Product Order
          required: false
          schema:
            type: string
            enum:
              - acknowledged
              - assessingCancellation
              - cancelled
              - completed
              - failed
              - held.assessingCharge
              - inProgress
              - partial
              - pending.assessingModification
              - pendingCancellation
              - rejected
        - name: externalId
          in: query
          description: >-
            A number that uniquely identifies an order within the Buyer's
            enterprise.
          required: false
          schema:
            type: string
        - name: projectId
          in: query
          description: >-
            An identifier that is used to group Product Orders that represent a
            unit of functionality that is important to a Buyer.
          required: false
          schema:
            type: string
        - name: orderDate.gt
          in: query
          description: Date when the order was created greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: orderDate.lt
          in: query
          description: Date when the order was created lesser than
          required: false
          schema:
            type: string
            format: date-time
        - name: completionDate.gt
          in: query
          description: Effective completion date greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: completionDate.lt
          in: query
          description: Effective completion date lesser than
          required: false
          schema:
            type: string
            format: date-time
        - name: itemRequestedCompletionDate.gt
          in: query
          description: >-
            This is requested date to get this Product Order Item completed
            greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: itemRequestedCompletionDate.lt
          in: query
          description: >-
            This is requested date to get this Product Order Item completed
            lesser than
          required: false
          schema:
            type: string
            format: date-time
        - name: itemExpectedCompletionDate.gt
          in: query
          description: >-
            Seller planned completion date of the Product Order Item, greater
            than
          required: false
          schema:
            type: string
            format: date-time
        - name: itemExpectedCompletionDate.lt
          in: query
          description: >-
            Seller planned completion date of the Product Order Item, lesser
            than
          required: false
          schema:
            type: string
            format: date-time
        - name: cancellationDate.gt
          in: query
          description: order cancellation date greater than
          required: false
          schema:
            type: string
            format: date-time
        - name: cancellationDate.lt
          in: query
          description: order cancellation date lesser 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 a
            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 item to be provided in response
            requested by the client. Note that the index starts with "0".
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          description: >-
            Requested number of items to be provided in response requested by
            client
          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 items. E.g. if there are 50
                matching items 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 items included in the response
              schema:
                type: integer
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductOrder_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 the 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'
    post:
      tags:
        - productOrder
      summary: Creates a ProductOrder
      description: This operation creates a ProductOrder entity.
      operationId: createProductOrder
      parameters:
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            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 ProductOrder to be created
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/ProductOrder_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/ProductOrder'
        '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
          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'
  '/productOrder/{id}':
    get:
      tags:
        - productOrder
      summary: Retrieves a ProductOrder by ID
      description: This operation retrieves a ProductOrder entity.
      operationId: retrieveProductOrder
      parameters:
        - name: id
          in: path
          description: Identifier of the ProductOrder
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            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: 'OK. (https://tools.ietf.org/html/rfc7231#section-6.3.1)'
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ProductOrder'
        '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'
    patch:
      tags:
        - productOrder
      summary: Updates partially a ProductOrder
      description: This operation updates partially a ProductOrder entity.
      operationId: patchProductOrder
      parameters:
        - name: id
          in: path
          description: Identifier of the ProductOrder
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            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
      requestBody:
        description: The ProductOrder to be updated
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/ProductOrder_Update'
        required: true
      responses:
        '200':
          description:
            'Updated (https://tools.ietf.org/html/rfc7231#section-6.3.1)'
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/ProductOrder'
        '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'
        '409':
          description: Conflict
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error409'
        '422':
          description:
            Unprocessable entity due to the 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.
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
  /cancelProductOrder:
    get:
      tags:
        - cancelProductOrder
      summary: Lists or finds CancelProductOrder objects
      description: This operation lists or finds CancelProductOrder entities
      operationId: listCancelProductOrder
      parameters:
        - name: productOrderId
          in: query
          required: false
          schema:
            type: string
        - name: state
          in: query
          required: false
          schema:
            type: string
            enum:
              - acknowledged
              - done
              - done.declined
              - inProgress.assessingCharge
              - rejected
        - name: cancellationReasonType
          in: query
          description: >-
            Identifies the type of reason, Technical or Commercial, for the
            Cancellation request
          required: false
          schema:
            type: string
            enum:
              - technical
              - commercial
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            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
        - name: offset
          in: query
          description: >-
            Requested index for start of item to be provided in response
            requested by client. Note that the index starts with "0".
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          description: >-
            Requested number of items to be provided in response requested by
            client
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Success
          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 items. E.g. if there are 50
                matching items 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 items included in the response
              schema:
                type: integer
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CancelProductOrder_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 the 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.
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
    post:
      tags:
        - cancelProductOrder
      summary: Creates a CancelProductOrder
      description: This operation creates a CancelProductOrder entity.
      operationId: createCancelProductOrder
      parameters:
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            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
      requestBody:
        description: The CancelProductOrder to be created
        content:
          application/json;charset=utf-8:
            schema:
              $ref: '#/components/schemas/CancelProductOrder_Create'
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/CancelProductOrder'
        '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
          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.
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
  '/cancelProductOrder/{id}':
    get:
      tags:
        - cancelProductOrder
      summary: Retrieves a CancelProductOrder by ID
      description: This operation retrieves a CancelProductOrder entity.
      operationId: retrieveCancelProductOrder
      parameters:
        - name: id
          in: path
          description: Identifier of the CancelProductOrder
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            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/CancelProductOrder'
        '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.
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
  /charge:
    get:
      tags:
        - charge
      summary: Lists or finds Charge objects
      description: This operation lists or finds Charge entities
      operationId: listCharge
      parameters:
        - name: productOrderId
          in: query
          description: id of the Product Order this Charge relates to.
          required: false
          schema:
            type: string
        - name: productOrderItemId
          in: query
          description: id of the Product Order Item this Charge relates to.
          required: false
          schema:
            type: string
        - name: creationDate.gt
          in: query
          description:
            Date that the Charge was created by the Seller (greater than)
          required: false
          schema:
            type: string
            format: date-time
        - name: creationDate.lt
          in: query
          description:
            Date that the Charge was created by the Seller. (greater than)
          required: false
          schema:
            type: string
            format: date-time
        - name: responseDueDate.gt
          in: query
          description: >-
            The date that the Buyer must respond to the Seller's Charge. If
            there is no response received by the Due Date the Seller will treat
            all charges as declined (greater than)
          required: false
          schema:
            type: string
            format: date-time
        - name: responseDueDate.lt
          in: query
          description: >-
            The date that the Buyer must respond to the Seller's Charge. If
            there is no response received by the Due Date the Seller will treat
            all charges as declined (greater 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 a
            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
        - name: offset
          in: query
          description: >-
            Requested index for start of item to be provided in response
            requested by client. Note that the index starts with "0".
          required: false
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          description: >-
            Requested number of items to be provided in response requested by
            client
          required: false
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: Success
          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 items. E.g. if there are 50
                matching items 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 items included in the response
              schema:
                type: integer
          content:
            application/json;charset=utf-8:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MEFProductOrderCharge_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 the 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.
          content:
            application/json;charset=utf-8:
              schema:
                $ref: '#/components/schemas/Error501'
  '/charge/{id}':
    get:
      tags:
        - charge
      summary: Retrieves a Charge by ID
      description: This operation retrieves a Charge entity.
      operationId: retrieveCharge
      parameters:
        - name: id
          in: path
          description: Identifier of the Charge
          required: true
          schema:
            type: string
        - name: buyerId
          in: query
          description: >-
            The unique identifier of the organization that is acting as the a
            Buyer. MUST be specified in the request only when the requester

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