Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Product Catalog Management Product Offering Price API
description: "Product Catalog API is one of Catalog Management API Family. Product Catalog API goal is to provide a catalog of products. \n### Operations\nProduct Catalog API performs the following operations on the resources :\n- Retrieve an entity or a collection of entities depending on filter criteria\n- Partial update of an entity (including updating rules)\n- Create an entity (including default values and creation rules)\n- Delete an entity\n- Manage notification of events"
version: 5.0.0
servers:
- url: https://serverRoot/productCatalogManagement/v5/
tags:
- name: productOfferingPrice
description: Operations for ProductOfferingPrice Resource
paths:
/productOfferingPrice:
get:
tags:
- productOfferingPrice
summary: TM Forum List or Find ProductOfferingPrice Objects
description: List or find ProductOfferingPrice objects
operationId: listProductOfferingPrice
parameters:
- $ref: '#/components/parameters/Fields'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/200ProductOfferingPriceArray'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
post:
tags:
- productOfferingPrice
summary: TM Forum Creates a ProductOfferingPrice
description: This operation creates a ProductOfferingPrice entity.
operationId: createProductOfferingPrice
parameters:
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/ProductOfferingPrice_FVO'
responses:
'201':
$ref: '#/components/responses/201ProductOfferingPrice'
'202':
description: Accepted
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
/productOfferingPrice/{id}:
get:
tags:
- productOfferingPrice
summary: TM Forum Retrieves a ProductOfferingPrice by ID
description: This operation retrieves a ProductOfferingPrice entity. Attribute selection enabled for all first level attributes.
operationId: retrieveProductOfferingPrice
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
responses:
'200':
$ref: '#/components/responses/200ProductOfferingPrice_Get'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
patch:
tags:
- productOfferingPrice
summary: TM Forum Updates Partially a ProductOfferingPrice
description: This operation updates partially a ProductOfferingPrice entity.
operationId: patchProductOfferingPrice
parameters:
- $ref: '#/components/parameters/Id'
- $ref: '#/components/parameters/Fields'
requestBody:
$ref: '#/components/requestBodies/ProductOfferingPrice_MVO'
responses:
'200':
$ref: '#/components/responses/200ProductOfferingPrice_Patch'
'202':
description: Accepted
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
delete:
tags:
- productOfferingPrice
summary: TM Forum Deletes a ProductOfferingPrice
description: This operation deletes a ProductOfferingPrice entity.
operationId: deleteProductOfferingPrice
parameters:
- $ref: '#/components/parameters/Id'
responses:
'202':
$ref: '#/components/responses/202'
'204':
$ref: '#/components/responses/204'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'405':
$ref: '#/components/responses/405'
'409':
$ref: '#/components/responses/409'
'500':
$ref: '#/components/responses/500'
'501':
$ref: '#/components/responses/501'
'503':
$ref: '#/components/responses/503'
components:
schemas:
CharacteristicValueSpecification_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: specification of a value (number or text or an object) that can be assigned to a Characteristic. This is an abstract base class, the actual value is in one of the strongly-typed subclasses
properties:
valueType:
type: string
description: A kind of value that the characteristic value can take on, such as numeric, text and so forth
isDefault:
type: boolean
description: If true, the Boolean Indicates if the value is the default value for a characteristic
unitOfMeasure:
type: string
description: A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.
validFor:
$ref: '#/components/schemas/TimePeriod'
valueFrom:
type: integer
description: The low range value that a characteristic can take on
valueTo:
type: integer
description: The upper range value that a characteristic can take on
rangeInterval:
type: string
description: An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are "open", "closed", "closedBottom" and "closedTop".
regex:
type: string
description: A regular expression constraint for given value
discriminator:
propertyName: '@type'
mapping:
CharacteristicValueSpecification: '#/components/schemas/CharacteristicValueSpecification_MVO'
StringCharacteristicValueSpecification: '#/components/schemas/StringCharacteristicValueSpecification_MVO'
StringArrayCharacteristicValueSpecification: '#/components/schemas/StringArrayCharacteristicValueSpecification_MVO'
ObjectCharacteristicValueSpecification: '#/components/schemas/ObjectCharacteristicValueSpecification_MVO'
ObjectArrayCharacteristicValueSpecification: '#/components/schemas/ObjectArrayCharacteristicValueSpecification_MVO'
NumberCharacteristicValueSpecification: '#/components/schemas/NumberCharacteristicValueSpecification_MVO'
NumberArrayCharacteristicValueSpecification: '#/components/schemas/NumberArrayCharacteristicValueSpecification_MVO'
MapCharacteristicValueSpecification: '#/components/schemas/MapCharacteristicValueSpecification_MVO'
MapArrayCharacteristicValueSpecification: '#/components/schemas/MapArrayCharacteristicValueSpecification_MVO'
IntegerCharacteristicValueSpecification: '#/components/schemas/IntegerCharacteristicValueSpecification_MVO'
IntegerArrayCharacteristicValueSpecification: '#/components/schemas/IntegerArrayCharacteristicValueSpecification_MVO'
PricingLogicAlgorithm_FVO:
allOf:
- $ref: '#/components/schemas/Entity_FVO'
- type: object
description: The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled bahavior in SID). Some of the parameters of the interface definiition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth)
properties:
description:
type: string
description: Description of the PricingLogicAlgorithm
name:
type: string
description: Name given to the PricingLogicAlgorithm
plaSpecId:
type: string
description: id of corresponding PricingLogicAlgorithm specification
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
PricingLogicAlgorithm: '#/components/schemas/PricingLogicAlgorithm_FVO'
TimePeriod:
type: object
description: A period of time, either as a deadline (endDateTime only) a startDateTime only, or both
properties:
startDateTime:
description: Start of the time period, using IETC-RFC-3339 format
type: string
format: date-time
example: '1985-04-12T23:20:50.52Z'
endDateTime:
description: End of the time period, using IETC-RFC-3339 format
type: string
format: date-time
example: '1985-04-12T23:20:50.52Z'
Entity:
type: object
description: Base entity schema for use in TMForum Open-APIs. Property.
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/Addressable'
ProductSpecificationRef_MVO:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: ProductSpecification reference. A product Specification represents entities that are orderable from the provider of the catalog.
properties:
version:
type: string
description: Version of the product specification
targetProductSchema:
$ref: '#/components/schemas/TargetProductSchema_MVO'
discriminator:
propertyName: '@type'
mapping:
ProductSpecificationRef: '#/components/schemas/ProductSpecificationRef_MVO'
Extensible:
type: object
description: Base Extensible schema for use in TMForum Open-APIs - When used for in a schema it means that the Entity described by the schema MUST be extended with the @type
properties:
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
description: A URI to a JSON-Schema file that defines additional attributes and relationships
required:
- '@type'
PolicyRef:
allOf:
- $ref: '#/components/schemas/EntityRef'
- type: object
description: Reference to managed Policy object
properties:
id:
type: string
description: unique identifier
href:
type: string
description: Hyperlink reference
version:
type: string
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
description: A URI to a JSON-Schema file that defines additional attributes and relationships
discriminator:
propertyName: '@type'
mapping:
PolicyRef: '#/components/schemas/PolicyRef'
PricingLogicAlgorithm_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- type: object
description: The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled bahavior in SID). Some of the parameters of the interface definiition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth)
properties:
description:
type: string
description: Description of the PricingLogicAlgorithm
name:
type: string
description: Name given to the PricingLogicAlgorithm
plaSpecId:
type: string
description: id of corresponding PricingLogicAlgorithm specification
validFor:
$ref: '#/components/schemas/TimePeriod'
discriminator:
propertyName: '@type'
mapping:
PricingLogicAlgorithm: '#/components/schemas/PricingLogicAlgorithm_MVO'
JsonPatch:
type: object
description: A JSONPatch document as defined by RFC 6902
required:
- op
- path
properties:
op:
type: string
description: The operation to be performed
enum:
- add
- remove
- replace
- move
- copy
- test
path:
type: string
description: A JSON-Pointer
value:
description: The value to be used within the operations.
from:
type: string
description: A string containing a JSON Pointer value.
ProductOfferingPrice_MVO:
allOf:
- $ref: '#/components/schemas/Entity_MVO'
- type: object
description: 'Is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price may be further revised through discounting (a Product Offering Price that reflects an alteration). The price, applied for a productOffering may also be influenced by the productOfferingTerm, the customer selected, eg: a productOffering can be offered with multiple terms, like commitment periods for the contract. The price may be influenced by this productOfferingTerm. A productOffering may be cheaper with a 24 month commitment than with a 12 month commitment.'
properties:
description:
type: string
description: Description of the productOfferingPrice
version:
type: string
description: ProductOfferingPrice version
validFor:
$ref: '#/components/schemas/TimePeriod'
unitOfMeasure:
$ref: '#/components/schemas/Quantity'
recurringChargePeriodType:
type: string
description: 'The period to repeat the application of the price
Could be month, week...'
recurringChargePeriodLength:
type: integer
description: 'the period of the recurring charge: 1, 2, ... .It sets to zero if it is not applicable'
isBundle:
type: boolean
description: A flag indicating if this ProductOfferingPrice is composite (bundle) or not
price:
$ref: '#/components/schemas/Money'
percentage:
type: number
format: float
description: Percentage to apply if this Product Offering Price is an Alteration (such as a Discount)
bundledPopRelationship:
type: array
items:
$ref: '#/components/schemas/BundledProductOfferingPriceRelationship_MVO'
description: this object represents a bundle relationship from a bundle product offering price (parent) to a simple product offering price (child). A simple product offering price may participate in more than one bundle relationship.
popRelationship:
type: array
items:
$ref: '#/components/schemas/ProductOfferingPriceRelationship_MVO'
description: Product Offering Prices related to this Product Offering Price, for example a price alteration such as allowance or discount
prodSpecCharValueUse:
type: array
items:
$ref: '#/components/schemas/ProductSpecificationCharacteristicValueUse_MVO'
description: A use of the ProductSpecificationCharacteristicValue by a ProductOfferingPrice to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering and ProcuctOfferingPrice level. The list of values in ProductSpecificationCharacteristicValueUse is a strict subset of the list of values as defined in the corresponding product specification characteristics.
productOfferingTerm:
type: array
items:
$ref: '#/components/schemas/ProductOfferingTerm_MVO'
description: A list of conditions under which a ProductOfferingPrice is made available to Customers. For instance, a Product Offering Price can be offered with multiple commitment periods.
place:
type: array
items:
$ref: '#/components/schemas/PlaceRef_MVO'
description: Place defines the places where the products are sold or delivered.
policy:
type: array
items:
$ref: '#/components/schemas/PolicyRef_MVO'
description: The Policy resource represents a policy/rule applied to ProductOfferingPrice.
pricingLogicAlgorithm:
type: array
items:
$ref: '#/components/schemas/PricingLogicAlgorithm_MVO'
description: The PricingLogicAlgorithm entity represents an instantiation of an interface specification to external rating function (without a modeled behavior in SID). Some of the parameters of the interface definition may be already set (such as price per unit) and some may be gathered during the rating process from the event (such as call duration) or from ProductCharacteristicValues (such as assigned bandwidth).
tax:
type: array
items:
$ref: '#/components/schemas/TaxItem_MVO'
description: An amount of money levied on the price of a Product by a legislative body.
name:
type: string
description: Name of the productOfferingPrice
priceType:
type: string
description: A category that describes the price, such as recurring, discount, allowance, penalty, and so forth.
lifecycleStatus:
type: string
description: the lifecycle status of this ProductOfferingPrice
externalIdentifier:
type: array
description: List of external identifieers for the offering price, e.g. identifier in source catalog
items:
$ref: '#/components/schemas/ExternalIdentifier_MVO'
discriminator:
propertyName: '@type'
mapping:
ProductOfferingPrice: '#/components/schemas/ProductOfferingPrice_MVO'
ProductOfferingTerm_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- type: object
description: A condition under which a ProductOffering is made available to Customers. For instance, a productOffering can be offered with multiple commitment periods.
properties:
description:
type: string
description: Description of the productOfferingTerm
duration:
$ref: '#/components/schemas/Duration'
name:
type: string
description: Name of the productOfferingTerm
validFor:
$ref: '#/components/schemas/TimePeriod'
required:
- name
discriminator:
propertyName: '@type'
mapping:
ProductOfferingTerm: '#/components/schemas/ProductOfferingTerm_FVO'
CharacteristicValueSpecification_FVO:
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- type: object
description: specification of a value (number or text or an object) that can be assigned to a Characteristic. This is an abstract base class, the actual value is in one of the strongly-typed subclasses
properties:
valueType:
type: string
description: A kind of value that the characteristic value can take on, such as numeric, text and so forth
isDefault:
type: boolean
description: If true, the Boolean Indicates if the value is the default value for a characteristic
unitOfMeasure:
type: string
description: A length, surface, volume, dry measure, liquid measure, money, weight, time, and the like. In general, a determinate quantity or magnitude of the kind designated, taken as a standard of comparison for others of the same kind, in assigning to them numerical values, as 1 foot, 1 yard, 1 mile, 1 square foot.
validFor:
$ref: '#/components/schemas/TimePeriod'
valueFrom:
type: integer
description: The low range value that a characteristic can take on
valueTo:
type: integer
description: The upper range value that a characteristic can take on
rangeInterval:
type: string
description: An indicator that specifies the inclusion or exclusion of the valueFrom and valueTo attributes. If applicable, possible values are "open", "closed", "closedBottom" and "closedTop".
regex:
type: string
description: A regular expression constraint for given value
discriminator:
propertyName: '@type'
mapping:
CharacteristicValueSpecification: '#/components/schemas/CharacteristicValueSpecification_FVO'
StringCharacteristicValueSpecification: '#/components/schemas/StringCharacteristicValueSpecification_FVO'
StringArrayCharacteristicValueSpecification: '#/components/schemas/StringArrayCharacteristicValueSpecification_FVO'
ObjectCharacteristicValueSpecification: '#/components/schemas/ObjectCharacteristicValueSpecification_FVO'
ObjectArrayCharacteristicValueSpecification: '#/components/schemas/ObjectArrayCharacteristicValueSpecification_FVO'
NumberCharacteristicValueSpecification: '#/components/schemas/NumberCharacteristicValueSpecification_FVO'
NumberArrayCharacteristicValueSpecification: '#/components/schemas/NumberArrayCharacteristicValueSpecification_FVO'
MapCharacteristicValueSpecification: '#/components/schemas/MapCharacteristicValueSpecification_FVO'
MapArrayCharacteristicValueSpecification: '#/components/schemas/MapArrayCharacteristicValueSpecification_FVO'
IntegerCharacteristicValueSpecification: '#/components/schemas/IntegerCharacteristicValueSpecification_FVO'
IntegerArrayCharacteristicValueSpecification: '#/components/schemas/IntegerArrayCharacteristicValueSpecification_FVO'
Error:
discriminator:
propertyName: '@type'
mapping:
Error: '#/components/schemas/Error'
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
required:
- code
- reason
properties:
code:
type: string
description: Application relevant detail, defined in the API or a common list.
reason:
type: string
description: Explanation of the reason for the error which can be shown to a client user.
message:
type: string
description: More details and corrective actions related to the error which can be shown to a client user.
status:
type: string
description: HTTP Error code extension
referenceError:
type: string
description: URI of documentation describing the error.
description: Used when an API throws an Error, typically with a HTTP error response-code (3xx, 4xx, 5xx)
ProductOfferingPriceRelationship_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
- type: object
description: Describes a non-composite relationship between product offering prices. For example one price might be an discount alteration for another price.
properties:
role:
type: string
description: The association role for the source product offering price
relationshipType:
type: string
description: type of the relationship, for example override, discount, etc.
version:
type: string
description: Version of the referred product offering price.
required:
- id
- relationshipType
discriminator:
propertyName: '@type'
mapping:
ProductOfferingPriceRelationship: '#/components/schemas/ProductOfferingPriceRelationship_FVO'
ExternalIdentifier_MVO:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: An identification of an entity that is owned by or originates in a software system different from the current system, for example a ProductOrder handed off from a commerce platform into an order handling system. The structure identifies the system itself, the nature of the entity within the system (e.g. class name) and the unique ID of the entity within the system. It is anticipated that multiple external IDs can be held for a single entity, e.g. if the entity passed through multiple systems on the way to the current system. In this case the consumer is expected to sequence the IDs in the array in reverse order of provenance, i.e. most recent system first in the list.
properties:
owner:
type: string
description: Name of the external system that owns the entity.
example: MagentoCommerce
externalIdentifierType:
type: string
description: Type of the identification, typically would be the type of the entity within the external system
example: ProductOrder
id:
type: string
description: identification of the entity within the external system.
discriminator:
propertyName: '@type'
mapping:
ExternalIdentifier: '#/components/schemas/ExternalIdentifier_MVO'
ProductSpecificationCharacteristicValueUse:
allOf:
- $ref: '#/components/schemas/Extensible'
- type: object
description: A use of the ProductSpecificationCharacteristicValue by a ProductOffering to which additional properties (attributes) apply or override the properties of similar properties contained in ProductSpecificationCharacteristicValue. It should be noted that characteristics which their value(s) addressed by this object must exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic in a Product specification can be modified at the ProductOffering level. For example, a characteristic 'Color' might have values White, Blue, Green, and Red. But, the list of values can be restricted to e.g. White and Blue in an associated product offering. It should be noted that the list of values in 'ProductSpecificationCharacteristicValueUse' is a strict subset of the list of values as defined in the corresponding product specification characteristics.
properties:
name:
type: string
description: Name of the associated productSpecificationCharacteristic
id:
type: string
description: Unique ID for the characteristic
description:
type: string
description: A narrative that explains in detail what the productSpecificationCharacteristic is
valueType:
type: string
description: A kind of value that the characteristic can take on, such as numeric, text and so forth
minCardinality:
type: integer
description: The minimum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where zero is the value for the minCardinality.
maxCardinality:
type: integer
description: The maximum number of instances a CharacteristicValue can take on. For example, zero to five phone numbers in a group calling plan, where five is the value for the maxCardinality.
validFor:
$ref: '#/components/schemas/TimePeriod'
productSpecCharacteristicValue:
type: array
items:
$ref: '#/components/schemas/CharacteristicValueSpecification'
description: A number or text that can be assigned to a ProductSpecificationCharacteristic.
productSpecification:
$ref: '#/components/schemas/ProductSpecificationRef'
discriminator:
propertyName: '@type'
mapping:
ProductSpecificationCharacteristicValueUse: '#/components/schemas/ProductSpecificationCharacteristicValueUse'
PlaceRef_MVO:
type: object
description: Place reference.
allOf:
- $ref: '#/components/schemas/Extensible'
- $ref: '#/components/schemas/EntityRef'
discriminator:
propertyName: '@type'
mapping:
PlaceRef: '#/components/schemas/PlaceRef_MVO'
Entity_FVO:
type: object
description: Base entity schema for use in TMForum Open-APIs. Property.
allOf:
- $ref: '#/components/schemas/Extensible_FVO'
- $ref: '#/components/schemas/Addressable_FVO'
Duration:
type: object
description: A time interval in a given unit of time
properties:
amount:
type: integer
description: Time interval (number of seconds, minutes, hours, etc.)
units:
type: string
description: Unit of time (seconds, minutes, hours, etc.)
PolicyRef_FVO:
allOf:
- $ref: '#/components/schemas/EntityRef_FVO'
- type: object
description: Reference to managed Policy object
properties:
id:
type: string
description: unique identifier
href:
type: string
description: Hyperlink reference
version:
type: string
'@type':
type: string
description: When sub-classing, this defines the sub-class Extensible name
'@baseType':
type: string
description: When sub-classing, this defines the super-class
'@schemaLocation':
type: string
description: A URI to a JSON-Schema file that defines additional attributes and relationships
required:
- id
discriminator:
propertyName: '@type'
mapping:
PolicyRef: '#/components/schemas/PolicyRef_FVO'
TaxItem:
allOf:
# --- truncated at 32 KB (102 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tm-forum/refs/heads/main/openapi/tm-forum-productofferingprice-api-openapi.yml