TM Forum · Schema

ProductOrder

ProductOrder schema from TM Forum API

TelecommunicationsBSSOSSOpen APIsStandardsTM Forum

Properties

Name Type Description
agreement array A reference to an agreement defined in the context of the product order
billingAccount object
state object
requestedInitialState object
cancellationDate string Date when the order is cancelled. This is used when order is cancelled.
cancellationReason string Reason why the order is cancelled. This is used when order is cancelled.
category string Used to categorize the order from a business perspective that can be useful for the OM system (e.g. "enterprise", "residential", ...)
channel array
description string Description of the product order
expectedCompletionDate string Expected delivery date amended by the provider
externalId array
note array
notificationContact string Contact attached to the order to send back information regarding this order
orderTotalPrice array
payment array
orderRelationship array
priority string A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)
productOfferingQualification array
quote array
productOrderErrorMessage array
productOrderJeopardyAlert array
productOrderMilestone array
productOrderItem array
relatedParty array
requestedCompletionDate string Requested delivery date from the requestor perspective
requestedStartDate string Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date.
creationDate string Date and time when the ProductOrder was created
completionDate string Date when the ProductOrder was completed
View JSON Schema on GitHub

JSON Schema

tmf622-product-ordering-product-order-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/json-schema/tmf622-product-ordering-product-order-schema.json",
  "title": "ProductOrder",
  "description": "ProductOrder schema from TM Forum API",
  "allOf": [
    {
      "$ref": "#/components/schemas/Entity"
    },
    {
      "type": "object",
      "description": "A Product Order is a type of order which  can  be used to place an order between a customer and a service provider or between a service provider and a partner and vice versa,",
      "properties": {
        "agreement": {
          "type": "array",
          "description": "A reference to an agreement defined in the context of the product order",
          "items": {
            "$ref": "#/components/schemas/AgreementRef"
          }
        },
        "billingAccount": {
          "$ref": "#/components/schemas/BillingAccountRef"
        },
        "state": {
          "$ref": "#/components/schemas/ProductOrderStateType"
        },
        "requestedInitialState": {
          "$ref": "#/components/schemas/InitialProductOrderStateType",
          "default": "acknowledged"
        },
        "cancellationDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date when the order is cancelled. This is used when order is cancelled. "
        },
        "cancellationReason": {
          "type": "string",
          "description": "Reason why the order is cancelled. This is used when order is cancelled. "
        },
        "category": {
          "type": "string",
          "description": "Used to categorize the order from a business perspective that can be useful for the OM system (e.g. \"enterprise\", \"residential\", ...)"
        },
        "channel": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RelatedChannel"
          }
        },
        "description": {
          "type": "string",
          "description": "Description of the product order"
        },
        "expectedCompletionDate": {
          "type": "string",
          "format": "date-time",
          "description": "Expected delivery date amended by the provider"
        },
        "externalId": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ExternalIdentifier"
          }
        },
        "note": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Note"
          }
        },
        "notificationContact": {
          "type": "string",
          "description": "Contact attached to the order to send back information regarding this order"
        },
        "orderTotalPrice": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/OrderPrice"
          }
        },
        "payment": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/PaymentRef"
          }
        },
        "orderRelationship": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/OrderRelationship"
          }
        },
        "priority": {
          "type": "string",
          "description": "A way that can be used by consumers to prioritize orders in OM system (from 0 to 4 : 0 is the highest priority, and 4 the lowest)"
        },
        "productOfferingQualification": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProductOfferingQualificationRef"
          }
        },
        "quote": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/QuoteRef"
          }
        },
        "productOrderErrorMessage": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProductOrderErrorMessage"
          }
        },
        "productOrderJeopardyAlert": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProductOrderJeopardyAlert"
          }
        },
        "productOrderMilestone": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProductOrderMilestone"
          }
        },
        "productOrderItem": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProductOrderItem"
          },
          "minItems": 1
        },
        "relatedParty": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RelatedPartyRefOrPartyRoleRef"
          }
        },
        "requestedCompletionDate": {
          "type": "string",
          "format": "date-time",
          "description": "Requested delivery date from the requestor perspective"
        },
        "requestedStartDate": {
          "type": "string",
          "format": "date-time",
          "description": "Order fulfillment start date wished by the requestor. This is used when, for any reason, requestor cannot allow seller to begin to operationally begin the fulfillment before a date. "
        },
        "creationDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time when the ProductOrder was created"
        },
        "completionDate": {
          "type": "string",
          "format": "date-time",
          "description": "Date when the ProductOrder was completed"
        }
      }
    }
  ],
  "discriminator": {
    "propertyName": "@type",
    "mapping": {
      "ProductOrder": "#/components/schemas/ProductOrder"
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/tmf622-product-ordering-product-order"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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