MEF

MEF Cancel Product Order API

The cancelProductOrder API from MEF — 2 operation(s) for cancelproductorder.

Operations 3

GET /cancelProductOrder Lists or finds CancelProductOrder objects #
POST /cancelProductOrder Creates a CancelProductOrder #
GET /cancelProductOrder/{id} Retrieves a CancelProductOrder by ID #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mef-cancelproductorder-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mef-cancelproductorder-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mef Cancel Product Order API
  version: '1.0'
  description: 'Operations tagged cancelProductOrder across 2 of this provider''s published API definitions: mef-lso-cantata-product-order-management-openapi.yml, mef-lso-sonata-product-order-management-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{serverBase}/mefApi/cantata/productOrderingManagement/v6/
  variables:
    serverBase:
      description: The base of Seller's URL.
      default: mplify.net
- url: https://{serverBase}/mefApi/sonata/productOrderingManagement/v11/
  variables:
    serverBase:
      description: The base of Seller's URL.
      default: mplify.net
tags:
- name: cancelProductOrder
paths:
  /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'
    servers:
    - url: https://{serverBase}/mefApi/cantata/productOrderingManagement/v6/
      variables:
        serverBase:
          description: The base of Seller's URL.
          default: mplify.net
  /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'
    servers:
    - url: https://{serverBase}/mefApi/cantata/productOrderingManagement/v6/
      variables:
        serverBase:
          description: The base of Seller's URL.
          default: mplify.net
components:
  schemas:
    CancelProductOrder:
      description: Request for cancellation an existing product order
      type: object
      properties:
        cancellationDeniedReason:
          description: If the Cancel Product Order request is denied by the Seller, the Seller provides a reason to the Buyer using this attribute.
          type: string
        cancellationReason:
          description: An optional attribute that allows the Buyer to provide additional detail to the Seller on their reason for cancelling the Product Order
          type: string
        cancellationReasonType:
          description: Identifies the type of reason, Technical or Commercial, for the Cancellation request
          $ref: '#/components/schemas/CancellationReasonType'
        charge:
          description: The Charge Identifier of any charges that are related to the Cancel Product Order.
          $ref: '#/components/schemas/MEFProductOrderChargeRef'
        href:
          description: 'Hyperlink to the cancellation request. Hyperlink MAY be used by the Seller in responses Hyperlink MUST be ignored by the Seller in case it is provided by the Buyer in a request

            '
          type: string
        id:
          description: Unique identifier for the Cancel Product Order that is generated by the Seller when the Cancel Product Order request `state` is set to `acknowledged`
          type: string
        productOrder:
          description: A reference to a Product Order that the Buyer wishes to cancel.
          $ref: '#/components/schemas/MEFProductOrderRef'
        relatedContactInformation:
          description: 'Contact information of an individual or organization playing a role for this Cancel Product Order.

            The rule for mapping a represented attribute value to a `role` is to use the _lowerCamelCase_ pattern e.g.

            - Cancel Product Order Contact: `role=cancelProductOrderContact`

            - Cancel Product Order Seller Contact: `role=cancelProductOrderSellerContact`'
          type: array
          items:
            $ref: '#/components/schemas/RelatedContactInformation'
        state:
          description: The states as defined by TMF622 and extended to meet Mplify requirements. These states are used to convey the Cancel Product Order status during the lifecycle of the Product Order.
          $ref: '#/components/schemas/MEFChargeableTaskStateType'
      required:
      - id
      - productOrder
      - relatedContactInformation
      - state
    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
    FieldedAddressRepresentation:
      description: A type of Address that has a discrete field and value for each type of boundary or identifier down to the lowest level of detail. For example "street number" is one field, "street name" is another field, etc.
      type: object
      properties:
        streetNr:
          description: Number identifying a specific property on a public street. It may be combined with streetNrLast for ranged addresses.
          type: string
        streetNrSuffix:
          description: The first street number suffix (in a street number range) or the suffix for the street number if there is no range
          type: string
        streetNrLast:
          description: Last number in a range of street numbers allocated to an Address
          type: string
        streetNrLastSuffix:
          description: Last street number suffix for a ranged Address
          type: string
        streetPreDirection:
          description: The direction of the street that appears before the Street Name
          type: string
        streetName:
          description: Name of the street or other street type
          type: string
        streetType:
          description: The type of street (e.g., alley, avenue, boulevard, brae, crescent, drive, highway, lane, terrace, parade, place, tarn, way, wharf)
          type: string
        streetPostDirection:
          description: A modifier denoting a relative direction that appears after the Street Name.
          type: string
        poBox:
          description: Number identifying a specific location in a post office.
          type: string
        locality:
          description: An area of defined or undefined boundaries within a local authority or other legislatively defined area.
          type: string
        city:
          description: City in which the Address is located.
          type: string
        postcode:
          description: A descriptor for a postal delivery area used to speed and simplify the delivery of mail (also known as zip code)
          type: string
        postcodeExtension:
          description: 'The extension used on a postal code. Note: there are different use codes for this attribute depending upon the country.'
          type: string
        stateOrProvince:
          description: The State or Province in which the Address is located.
          type: string
        countryCode:
          description: Country in which the Address is located, defined using two characters as defined in ISO 3166
          type: string
          minLength: 2
          maxLength: 2
        subUnit:
          description: The Sub Unit represented as a list. This is a list to allow complex sub-unit information such as SUITE 42 ROOM A
          type: array
          items:
            $ref: '#/components/schemas/SubUnit'
        buildingName:
          description: 'The well-known name of a building that is located at this Address (e.g., where there is one Address for a campus).

            '
          type: string
        privateStreetNumber:
          description: Street number on a private street within the Address.
          type: string
        privateStreetName:
          description: Private streets internal to a property (e.g., a university) may have internal names that are not recorded by the land title office.
          type: string
        language:
          description: The language in which the address is expressed. It MUST use the ISO 639:2023 two letter code 639:2023
          type: string
          minLength: 2
          maxLength: 2
    CancelProductOrder_Create:
      description: 'Request for cancellation an existing product order

        Skipped properties: id,href,state,effectiveCancellationDate'
      type: object
      properties:
        cancellationReason:
          description: An optional attribute that allows the Buyer to provide additional detail to the Seller on their reason for cancelling the Product Order
          type: string
        cancellationReasonType:
          description: Identifies the type of reason, Technical or Commercial, for the Cancellation request
          $ref: '#/components/schemas/CancellationReasonType'
        productOrder:
          description: A reference to a Product Order that the buyer wishes to cancel.
          $ref: '#/components/schemas/MEFProductOrderRef'
        relatedContactInformation:
          description: 'Contact information of an individual or organization playing a role for this Cancel Product Order. The rule for mapping a represented attribute value to a `role` is to use the _lowerCamelCase_ pattern e.g.

            - Cancel Product Order Contact: `role=cancelProductOrderContact`'
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/RelatedContactInformation'
      required:
      - productOrder
      - relatedContactInformation
    Error401Code:
      description: 'One of the following error codes:

        - missingCredentials: No credentials provided.

        - invalidCredentials: Provided credentials are invalid or expired'
      type: string
      enum:
      - missingCredentials
      - invalidCredentials
    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
    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
    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
    MEFProductOrderChargeRef:
      description: A reference to a Charge instance
      type: object
      properties:
        href:
          description: Hyperlink to access the Charge
          type: string
        id:
          description: A unique identifier of the Charge
          type: string
      required:
      - id
    MEFProductOrderRef:
      description: Holds the MEF Product Order reference
      type: object
      properties:
        productOrderHref:
          description: Hyperlink to access the order
          type: string
        productOrderId:
          description: Unique (within the ordering domain) identifier for the order that is generated by the seller when the order is initially accepted.
          type: string
      required:
      - productOrderId
    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
    SubUnit:
      description: Allows for sub unit identification
      type: object
      properties:
        subUnitNumber:
          description: The discriminator used for the subunit, often just a simple number but may also be a range.
          type: string
        subUnitType:
          description: The type of subunit e.g. BERTH, FLAT, PIER, SUITE, SHOP, TOWER, UNIT, WHARF.
          type: string
      required:
      - subUnitNumber
      - subUnitType
    Error501:
      description: Not Implemented. Used in case Seller is not supporting an optional operation (https://tools.ietf.org/html/rfc7231#section-6.6.2)
      allOf:
      - $ref: '#/components/schemas/Error'
      - type: object
        properties:
          code:
            description: 'The following error code:

              - notImplemented: Method not supported by the server'
            type: string
            enum:
            - notImplemented
        required:
        - code
    RelatedContactInformation:
      description: 'Contact data for a person or organization that is involved in a given

        context. It is specified by the Seller (e.g. Seller Contact Information)

        or by the Buyer.

        '
      type: object
      properties:
        emailAddress:
          description: Email address
          type: string
        name:
          description: Name of the contact
          type: string
        number:
          description: Phone number
          type: string
        numberExtension:
          description: Phone number extension
          type: string
        organization:
          description: The organization or company that the contact belongs to
          type: string
        postalAddress:
          description: Identifies the postal address of the person or office to be contacted.
          $ref: '#/components/schemas/FieldedAddressRepresentation'
        role:
          description: A role the party plays in a given context.
          type: string
      required:
      - emailAddress
      - name
      - number
      - role
    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:
        message:
          description: Text that provides mode details and corrective actions related to the error. This can be shown to a client user.
          type: string
        reason:
          description: Text that explains the reason for the error. This can be shown to a client user.
          type: string
          maxLength: 255
        referenceError:
          description: URL pointing to documentation describing the error
          type: string
          format: uri
      required:
      - reason
    Error422:
      description: Unprocessable entity due to a business validation problem. (https://tools.ietf.org/html/rfc4918#section-11.2)
      allOf:
      - $ref: '#/components/schemas/Error'
      - type: object
        properties:
          code:
            description: "One of the following error codes:\n  - missingProperty: The property the Seller has expected is not present in the payload\n  - invalidValue: The property has an incorrect value\n  - invalidFormat: The property value does not comply with the expected value format\n  - referenceNotFound: The object referenced by the property cannot be identified in the Seller system\n  - unexpectedProperty: Additional property, not expected by the Seller has been provided\n  - tooManyRecords: the number of records to be provided in the response exceeds the Seller's threshold.\n  - otherIssue: Other problem was identified (detailed information provided in a reason)\n"
            $ref: '#/components/schemas/Error422Code'
          propertyPath:
            description: 'A pointer to a particular property of the payload that caused the validation issue. It is highly recommended that this property should be used.

              Defined using JavaScript Object Notation (JSON) Pointer (https://tools.ietf.org/html/rfc6901).

              '
            type: string
        required:
        - code
    Error422Code:
      description: "One of the following error codes:\n  - missingProperty: The property the Seller has expected is not present in the payload\n  - invalidValue: The property has an incorrect value\n  - invalidFormat: The property value does not comply with the expected value format\n  - referenceNotFound: The object referenced by the property cannot be identified in the Seller system\n  - unexpectedProperty: Additional property, not expected by the Seller has been provided\n  - tooManyRecords: the number of records to be provided in the response exceeds the Seller's threshold.\n  - otherIssue: Other problem was identified (detailed information provided in a reason)\n"
      type: string
      enum:
      - missingProperty
      - invalidValue
      - invalidFormat
      - referenceNotFound
      - unexpectedProperty
      - tooManyRecords
      - otherIssue
    CancellationReasonType:
      description: Identifies the type of reason, Technical or Commercial, for the Cancellation request
      type: string
      enum:
      - technical
      - commercial
    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:

              - notFound: A current representation for the target resource not found'
            type: string
            enum:
            - notFound
        required:
        - code
    CancelProductOrder_Find:
      description: A response to a Buyer's get List of Cancel Product Orders
      type: object
      properties:
        cancellationReasonType:
          description: Identifies the type of reason, Technical or Commercial, for the Cancellation request
          $ref: '#/components/schemas/CancellationReasonType'
        id:
          description: Unique identifier for the Cancel Product Order that is generated by the Seller when the Cancel Product Order request `state` is set to `acknowledged`
          type: string
        productOrder:
          description: A reference to a Product Order that the Buyer wishes to cancel.
          $ref: '#/components/schemas/MEFProductOrderRef'
        state:
          description: The states as defined by TMF622 and extended to meet Mplify requirements. These states are used to convey the Cancel Product Order status during the lifecycle of the Product Order.
          $ref: '#/components/schemas/MEFChargeableTaskStateType'
      required:
      - cancellationReasonType
      - id
      - productOrder
      - state
    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
    MEFChargeableTaskStateType:
      description: 'The states as defined by TMF622 and extended to meet MEF requirements.


        | Name                       | MEF 57.2 Name    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

        | -------------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

        | inProgress.assessingCharge | ACCESSING_CHARGE | The Modify Product Order Item Requested Delivery Date request results in a Charge being initiated by the Seller. The Modify Product Order Item Requested Delivery Date remains in this state until the Charge is completed or withdrawn by the Seller. All charges within a Charge that was initiated due to a Modify Product Order Item Requested Delivery Date are considered Blocking charges. If any charge is not accepted by the Buyer, the Modify Product Order Item Requested Delivery Date moves from the `inProgress.assessingCharge` state to the `done.declined` state. |

        | acknowledged               | ACKNOWLEDGED     | A Modify Product Order Item Requested Delivery Date request has been received and has passed basic validation. The Modify Product Order Item Requested Delivery Date Identifier is assigned in the `acknowledged` state. Validation of Modify Product Order Item Requested Delivery Date attributes as applicable is completed in the `acknowledged` state.                                                                                                                                                                                                                         |

        | done                       | ACCEPTED         | A Modify Product Order Item Requested Delivery Date request has been received, passed all validations, if a Charge is associated all Charge Items have been accepted by the Buyer, and the Product Order Item Completion Date has been updated as requested.                                                                                                                                                                                                                                                                                                                        |

        | done.declined              | DECLINED         | Blocking charges associated with a Modify Product Order Item Requested Delivery Date have been declined by the Buyer. No updates are made to the Product Order Item.                                                                                                                                                                                                                                                                                     

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