---
schema_version: "1"
id: 42b8f2c8dabd537a51e30a2c588acbaa450b9e1fa95fc9337d8c54910bec673f
title: TMF620 v4 Product Catalog Management
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries-integrations/comms/references/generated-api-specs/tmf620.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/references/tmf620
source_site: developer.salesforce.com
content_type: documentation
content_hash: a60288d83d633649fbc7766d028bbc5e8cb9ec0a61f5e7191480922272a7dc4c
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
TMF620 v4 Product Catalog Management

# TMF620 v4 Product Catalog Management

Use the Product Catalog Management API to provide and manage a catalog of products. You can create a product catalog, add product offerings and specifications, and quote a price for each product offering. The data exchange is compliant with the TM Forum's Open API specification.

**Version:** v1

Protocols: https.

## Operations

### POST Create a product catalog

`POST /catalog`

Creates a Catalog entity.

#### Parameters

*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `Catalog_Create`.

Specifies the Catalog to be created.

_Example_

```
{
  "name": "Catalog Wholesale Business",
  "description": "Describes product offerings and technical specifications intended to address the wholesale business segment.",
  "catalogType": "ProductCatalog",
  "version": "1.0",
  "validFor": {
    "startDateTime": "2020-08-29T00:00:00Z",
    "endDateTime": "2024-03-25T00:00:00Z"
  },
  "lifecycleStatus": "Active",
  "relatedParty": [
    {
      "href": "https://mycsp.com:8080/tmf-api/partyManagement/v4/organization/3426",
      "id": "3426",
      "name": "Broadly Broad Ltd",
      "role": "vendor",
      "@referredType": "Organization",
      "@type": "RelatedParty",
      "@schemaLocation": "https://mycsp.com:8080/tmf-api/schemas/EngagedParty/RelatedParty.schema.json"
    }
  ],
  "@type": "Catalog",
  "@schemaLocation": "https://mycsp.com:8080/tmf-api/schemas/Product/Catalog.schema.json"
}
```

#### Responses

*   **201** Created the resource.
    
    Media type: `application/json`. Schema: `Catalog_Create (extended)`.
    
    Includes all fields of `Catalog_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the Catalog.
    *   `id` (_string_, required) Specifies the unique identifier of the Catalog.
    
    _Example_
    
    ```
    {
      "id": "3830",
      "href": "https://mycsp.com:8080/tmf-api/productCatalogManagement/v4/Catalog/3830",
      "name": "Catalog Wholesale Business",
      "description": "Describes product offerings and technical specifications intended to address the wholesale business segment.",
      "catalogType": "ProductCatalog",
      "version": "1.0",
      "validFor": {
        "startDateTime": "2020-08-29T00:00:00Z",
        "endDateTime": "2024-03-25T00:00:00Z"
      },
      "lastUpdate": "2020-08-27T00:00:00Z",
      "lifecycleStatus": "Active",
      "relatedParty": [
        {
          "href": "https://mycsp.com:8080/tmf-api/partyManagement/v4/organization/3426",
          "id": "3426",
          "name": "Broadly Broad Ltd",
          "role": "vendor",
          "@referredType": "Organization",
          "@type": "RelatedParty",
          "@schemaLocation": "https://mycsp.com:8080/tmf-api/schemas/EngagedParty/RelatedParty.schema.json"
        }
      ],
      "@type": "Catalog",
      "@baseType": "",
      "@schemaLocation": "https://mycsp.com:8080/tmf-api/schemas/Product/Catalog.schema.json"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve product catalogs

`GET /catalog`

Retrieves the Catalog entities.

#### Parameters

*   `offset` (query, integer) Specifies the requested index for the start of the resources to be included in the response.
*   `limit` (query, integer) Specifies the requested number of the resources to be included in the response.
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `id` (query, string) Identifier of the Catalog.
*   `name` (query, string) Specifies the unique name of the Catalog.
*   `lifecycleStatus` (query, string) Indicates the current lifecycle status derived for the Catalog resource.
*   `find` (query, string) Finds any search string in the product.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Headers:
    
    *   `X-Result-Count` (integer, required) Specifies the actual number of items returned in the response body.
    *   `X-Total-Count` (integer, required) Specifies the count of items that match the criteria.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    Each item: Specifies a collection of product offerings intended for a specific distribution channel, enhanced with additional information, such as SLA parameters, invoicing, and shipping details.
    
    Specifies a collection of product offerings intended for a specific distribution channel, enhanced with additional information, such as SLA parameters, invoicing, and shipping details.
    
    *   `href` (_string_, required) Specifies the unique reference of the Catalog.
    *   `name` (_string_, required) Specifies the name of the catalog.
    *   `id` (_string_, required) Specifies the unique identifier of the Catalog.
    *   `relatedParty` (_array of object_) Specifies the list of parties related to the catalog.
        
        Each item: Defines a party or party role that's linked to a specific entity.
        
        *   `id` (_string_, required) Specifies a unique identifier of the related party.
        *   `href` (_string_) Specifies the hyperlink reference of the related party.
        *   `name` (_string_) Specifies the name of the related entity.
        *   `role` (_string_, required) Specifies the role played by the related party.
        *   `@referredType` (_string_) Specifies the actual type of the target instance when needed for disambiguation.
        *   `@type` (_string_, required) Defines the subclass extensible name when subclassing.
    *   `validFor` (_object_) Specifies the period for which the catalog is valid.
        *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
        *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
    *   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
    *   `@type` (_string_, required) Defines the subclass extensible name when subclassing.
    *   `category` (_array of object_) Specifies the list of root categories that the catalog contains.
        
        Each item: Specifies the category for grouping recommendations.
        
        *   `id` (_string_, required) Specifies a unique identifier for the category reference.
        *   `href` (_string_) Specifies the hyperlink reference of the category reference.
        *   `name` (_string_) Specifies the name of the related entity.
        *   `@type` (_string_, required) Defines the subclass extensible name when subclassing.
        *   `@referredType` (_string_) Specifies the actual type of the target instance when needed for disambiguation.
    *   `description` (_string_) Provides a description of the catalog.
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve a product catalog

`GET /catalog/{id}`

Retrieves a Catalog entity. Attribute selection is enabled for first-level attributes.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `Catalog_Create (extended)`.
    
    Includes all fields of `Catalog_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the Catalog.
    *   `id` (_string_, required) Specifies the unique identifier of the Catalog.
    
    _Example_
    
    ```
    {
        "@referredType": "vlocity_cmt__Catalog__c",
        "description": "A category to hold all available cloud service offers",
        "id": "7cc8a363-51ab-2413-7214-6bf24f90e856",
        "isRoot": false,
        "name": "Cloud Services T",
        "lifecycleStatus": "Active",
        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003biUxAAI",
        "relatedParty": [
          {
            "href": "/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA",
            "@referredType": "RecordType",
            "role": "Consumer",
            "name": "demo user15",
            "id": "123",
            "@type": "RelatedParty"
          }
        ],
        "category": [
          {
            "href": "/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000000JxXqEAK",
            "@referredType": "vlocity_cmt__Catalog__c",
            "id": "03ed94db-2d33-af8e-f785-deddd0d6657d",
            "name": "Cloud Storage",
            "@type": "CategoryRef"
          }
        ],
        "validFor": {
          "startDateTime": "2020-08-24T00:00:00Z",
          "endDateTime": "2024-03-25T00:00:00Z"
        },
        "@type": "Catalog"
      }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### PATCH Update Catalog

`PATCH /catalog/{id}`

This operation allows partial updates of a Catalog entity.

#### Parameters

*   `id` (path, string, required)
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `Catalog_Update`.

Specifies the Catalog to be updated.

_Example_

```
{
    "name": "Postpaid Addon from workbench 1",
    "description": "Postpaid Add On from workbench 1",
    "validFor": {
        "startDateTime": "2021-08-24T00:00:00Z",
        "endDateTime": "2024-04-25T00:00:00Z"
    }
}
```

#### Responses

*   **200** Updated the Catalog.
    
    Media type: `application/json`. Schema: `Catalog_Create (extended)`.
    
    Includes all fields of `Catalog_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the Catalog.
    *   `id` (_string_, required) Specifies the unique identifier of the Catalog.
    
    _Example_
    
    ```
    {
        "@type":"Catalog",
        "validFor":{
            "endDateTime":"2024-04-25T00:00:00Z",
            "startDateTime":"2021-08-24T00:00:00Z"
        },
        "category":
        [
            {
                "@type":"CategoryRef",
                "name":"CloudStorage updated 1",
                "id":"03ed94db-2d33-af8e-f785-deddd0d6657d",
                "@referredType":"vlocity_cmt__Catalog__c",
                "href":"/services/data/v48.0/sobjects/vlocity_cmt__CatalogRelationship__c/a2R5e000001M2WbEAK"
            }
        ],
        "relatedParty":
        [
            {
                "@type":"RelatedParty",
                "id":"123",
                "name":"demo user15",
                "role":"Consumer",
                "@referredType":"RecordType",
                "href":"/services/data/v48.0/sobjects/Account/0015e00000qxgtpAAA"
            }
        ],
        "href":"/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/catalog/a0e5e000003boMAAAY",
        "lifecycleStatus":"false",
        "name":"Update from workbeanch 1",
        "isRoot":false,
        "id":"f24eb59b-a466-af2a-4db3-67c87430e8a6",
        "description":"Update On from workbeanch 1",
        "@referredType":"vlocity_cmt__Catalog__c"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: Catalog already exists
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: PriceList is needed for creation of ProductOffer.
    ```
    
*   **422** Non Patchable attribute present.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "422"
    reason: Non Patchable attribute present
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### DELETE Delete a product catalog by Id

`DELETE /catalog/{id}`

This operation allows deletion of a Catalog id.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **204**
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    {
      "code": "ERR400",
      "reason": "Catalog has one or more relations, please delete relationships and try again",
      "message": "failure"
    }
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: We couldn't find the Catalog in your salesforce org.
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### POST Create a product category

`POST /category`

Creates a Category entity.

#### Parameters

*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `Category_Create`.

Specifies the Category to be created.

_Example_

```
{
    "name": "GS0 Category996",
    "description": "A category to hold all available cloud service offers",
    "validFor": {
        "startDateTime": "2020-08-24T00:00:00Z",
        "endDateTime": "2024-03-25T00:00:00Z"
    },
    "lifecycleStatus": "Active",
    "isRoot": true,
    "subCategory": [
        {
            "id": "ece3c230-5e0b-da31-0b32-6010c590c49e",
            "name": "Cloud Services retest4",
            "@referredType": "Category",
            "@type": "Catalog"
        },
        {
            "id": "9c0f4ca2-cafd-8a8a-7afb-2f96bc9ad90e",
            "name": "Cloud Storage by sf",
            "@referredType": "Category",
            "@type": "Catalog"
        }
    ],
    "@type": "Category"
}
```

#### Responses

*   **201** Created the resource.
    
    Media type: `application/json`. Schema: `Category_Create (extended)`.
    
    Includes all fields of `Category_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the Category.
    *   `id` (_string_, required) Specifies the unique identifier of the Category.
    
    _Example_
    
    ```
    {
      "id": "432b3763-2233-65cd-8ba3-a67a035aab74",
      "description": "A category to hold all available cloud service offers",
      "name": "GS0 Category996",
      "isRoot": true,
      "lastUpdate": "2022-07-28T10:42:56Z",
      "lifecycleStatus": "Active",
      "validFor": {
        "endDateTime": "2024-03-25T00:00:00Z",
        "startDateTime": "2020-08-24T00:00:00Z"
      },
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/category/a0e5e000003boMeAAI",
      "@type": "Category",
      "subCategory": [
        {
          "id": "dba5604b-115b-ff1c-cb98-135b3073f037",
          "name": "GS0 Category008",
          "href": "/services/data/v56.0/sobjects/vlocity_cmt__Catalog__c/a0e5e000003boMfAAI",
          "@type": "Catalog"
        },
        {
          "id": "0494e298-7457-3446-4f68-fce852be06a0",
          "name": "GS0 Category009",
          "href": "/services/data/v56.0/sobjects/vlocity_cmt__Catalog__c/a0e5e000003boMjAAI",
          "@type": "Catalog"
        }
      ]
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve product categories

`GET /category`

Retrieves the Category entities.

#### Parameters

*   `offset` (query, integer) Specifies the requested index for the start of the resources to be included in the response.
*   `limit` (query, integer) Specifies the requested number of the resources to be included in the response.
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `id` (query, string) Identifier of the Category.
*   `name` (query, string) Specifies the unique name of the Category.
*   `lifecycleStatus` (query, string) Indicates the current lifecycle status derived for the Category resource.
*   `find` (query, string) Finds any search string in the product.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Headers:
    
    *   `X-Result-Count` (integer, required) Specifies the actual number of items returned in the response body.
    *   `X-Total-Count` (integer, required) Specifies the count of items that match the criteria.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    Each item: Groups product offerings, services, and resource candidates in logical containers. Categories can contain other categories or product offerings, resources, or service candidates.
    
    Groups product offerings, services, and resource candidates in logical containers. Categories can contain other categories or product offerings, resources, or service candidates.
    
    *   `isRoot` (_boolean_) Indicates whether the category is a root of categories (true) or not (false).
    *   `href` (_string_, required) Specifies the unique reference of the Category.
    *   `version` (_string_) Specifies the category version.
    *   `name` (_string_, required) Specifies the unique name of the category.
    *   `id` (_string_, required) Specifies the unique identifier of the Category.
    *   `validFor` (_object_) Specifies the period for which the category is valid.
        *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
        *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
    *   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
    *   `lastUpdate` (_datetime_) Specifies the date and time of the last update.
    *   `@type` (_string_, required) Defines the subclass extensible name when subclassing.
    *   `subCategory` (_array of object_, required) The category resource is used to group product offerings, services, and resource candidates in logical containers. Categories can contain other categories (subcategory) or product offerings.
        
        Each item: Specifies the category for grouping recommendations.
        
        *   `id` (_string_, required) Specifies a unique identifier for the category reference.
        *   `href` (_string_) Specifies the hyperlink reference of the category reference.
        *   `name` (_string_, required) Specifies the name of the related entity.
        *   `@type` (_string_) Defines the subclass extensible name when subclassing.
    *   `productOffering` (_array of object_) Represents entities that can be ordered from the provider of the catalog and includes pricing information.
        
        Each item: Represents entities that can be ordered from the provider of the catalog and includes the pricing information.
        
        *   `id` (_string_) Specifies a unique identifier of the product offering reference.
        *   `href` (_string_) Specifies the hyperlink reference of the product offering reference.
        *   `name` (_string_) Specifies the name of the related entity.
        *   `@type` (_string_) Defines the subclass extensible name when subclassing.
    *   `description` (_string_) Provides a description for the category.
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve a product category

`GET /category/{id}`

Retrieves a Category entity. Attribute selection is enabled for first-level attributes.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `Category_Create (extended)`.
    
    Includes all fields of `Category_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the Category.
    *   `id` (_string_, required) Specifies the unique identifier of the Category.
    
    _Example: same as POST /category 201 response._
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### PATCH Update Category

`PATCH /category/{id}`

This operation allows partial updates of a Category entity.

#### Parameters

*   `id` (path, string, required)
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `Category_Update`.

Specifies the Category to be updated.

_Example_

```
{
  "name": "Postpaid Addon from workbeanch 1",
  "description": "Postpaid Add On from workbeanch 1",
  "validFor": {
      "startDateTime": "2021-08-24T00:00:00Z",
      "endDateTime": "2024-04-25T00:00:00Z"
  }
}
```

#### Responses

*   **200** Updated the Category.
    
    Media type: `application/json`. Schema: `Category_Create (extended)`.
    
    Includes all fields of `Category_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the Category.
    *   `id` (_string_, required) Specifies the unique identifier of the Category.
    
    _Example_
    
    ```
    {
        "productOffering": [
            {
                "@type": "ProductOffering",
                "name": "5GB, 500 Minutes & 500 Texts Postpaid Addon",
                "id": "cdced4ad-719e-6670-be85-8d55bf855f11",
                "href": "/services/data/v56.0/sobjects/Product2/01t5e000003gG0bAAE"
            }
        ],
        "subCategory": [
            {
              "id": "03ed94db-2d33-af8e-f785-deddd0d6657d",
              "name": "Cloud Storage",
              "href": "/services/data/v56.0/sobjects/vlocity_cmt__Catalog__c/a0e5e000003bfqlAAA",
              "@type": "Catalog"
            }
          ],
        "@type": "Category",
        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/category/a0e5e000003bKFeAAM",
        "validFor": {
            "startDateTime": "2021-08-24T00:00:00Z",
            "endDateTime": "2024-04-25T00:00:00Z"
        },
        "lifecycleStatus": "Inactive",
        "lastUpdate": "2023-01-10T14:24:00Z",
        "isRoot": false,
        "name": "Postpaid Addon from workbeanch 1",
        "description": "Postpaid Add On from workbeanch 1",
        "id": "ad2afce3-2690-10f8-f765-16e0a0bb9bbd"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: Catalog already exists
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: PriceList is needed for creation of ProductOffer.
    ```
    
*   **422** Non Patchable attribute present.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "422"
    reason: Non Patchable attribute present
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### DELETE Delete a product category by Id

`DELETE /category/{id}`

This operation allows deletion of a Category id.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **204**
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: ""
    reason: ""
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: We couldn't find the Catalog in your salesforce org.
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### POST Create a product offering

`POST /productOffering`

Creates a ProductOffering entity.

#### Parameters

*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `ProductOffering_Create`.

Specifies the ProductOffering to be created.

_Example_

```
{
  "productOfferingPrice": 
  [
    {
    "price": {
      "amount": "0"
    },
    "name": "a3GDo00000090sT",
    "isBundle": false,
    "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo00000090sTMAQ",
    "priceType": "One-time",
    "version": "1.0"
    }
  ],
  "version": "1.0 ",
  "lifecycleStatus": "Active",
  "validFor": {
    "endDateTime": "2022-08-25T00:00:00Z",
    "startDateTime": "2022-05-23T00:00:00Z"
  },
  "isSellable": true,
  "isBundle": false,
  "productNumber": "Airtel_Wifi_Router",
  "name": "Airtel Wifi Router",
  "description": "Airtel Wifi Router with 1000Mbps Bandwidth"
}
```

#### Responses

*   **201** Created the resource.
    
    Media type: `application/json`. Schema: `ProductOffering_Create (extended)`.
    
    Includes all fields of `ProductOffering_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductOffering.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductOffering.
    
    _Example_
    
    ```
    {
      "productOfferingPrice": 
      [
        {
          "price": {
            "amount": "0"
          },
          "name": "a3GDo00000090sT",
          "isBundle": false,
          "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo00000090sYMAQ",
          "priceType": "One-time",
          "version": "1.0"
        }
      ],
      "validFor": {
        "startDateTime": "2022-05-23T00:00:00Z",
        "endDateTime": "2022-08-25T00:00:00Z"
      },
      "version": "1.0",
      "productNumber": "Airtel_Wifi_Router",
      "name": "Airtel Wifi Router",
      "lifecycleStatus": "Active",
      "lastUpdate": "2023-09-27T09:42:58Z",
      "isSellable": true,
      "isBundle": false,
      "id": "1f00a691-650f-ce61-d3f3-53b6f988cb9c",
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iQGbIAM",
      "description": "Airtel Wifi Router with 1000Mbps Bandwidth"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve product offerings

`GET /productOffering`

Retrieves the ProductOffering entities.

#### Parameters

*   `offset` (query, integer) Specifies the requested index for the start of the resources to be included in the response.
*   `limit` (query, integer) Specifies the requested number of the resources to be included in the response.
*   `isSellable` (query, boolean) Indicates whether the ProductOffering can be sold standalone (true) or within a bundle only (false).
*   `isBundle` (query, boolean) Determines whether a ProductOffering represents a bundle of ProductOfferings (true) or a single ProductOffering (false).
*   `version` (query, string) Specifies the version of the ProductOffering.
*   `handleOverriddenAttributes` (query, boolean) Returns only non-overridden base product attributes when set to true, reducing payload size and optimizing baseline queries.
*   `handleOverrides` (query, boolean) Controls whether the API fetches standard price list entries or bundle-specific overridden prices.
*   `parentContext` (query, string) The unique ID of the root or bundle product providing the context.
*   `hierarchy` (query, string) The specific path from the root product to the current product position.
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `id` (query, string) Identifier of the ProductOffering.
*   `name` (query, string) Specifies the unique name of the ProductOffering.
*   `lifecycleStatus` (query, string) Indicates the current lifecycle status derived for the ProductOffering resource.
*   `find` (query, string) Finds any search string in the product.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Headers:
    
    *   `X-Result-Count` (integer, required) Specifies the actual number of items returned in the response body.
    *   `X-Total-Count` (integer, required) Specifies the count of items that match the criteria.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    Each item: Represents entities that can be ordered from the provider of the catalog and includes pricing information.
    
    Represents entities that can be ordered from the provider of the catalog and includes pricing information.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductOffering.
    *   `productSpecification` (_object_) Detailed description of a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.
        *   `name` (_string_, required) Specifies the name of the related entity.
        *   `id` (_string_, required) Specifies a unique identifier of the product specification.
    *   `name` (_string_, required) Specifies the name of the product offering.
    *   `version` (_string_) Specifies the product offering version.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductOffering.
    *   `productOfferingTerm` (_array of object_) Specifies a condition with which a product offering is made available to customers. For instance, a product offering can be offered with multiple commitment periods.
        *   `description` (_string_) Provides a description of the product offering term.
        *   `name` (_string_) Specifies the name of the product offering term.
        *   `duration` (_object_) Specifies the duration of the product offering term.
            *   `units` (_string_) Specifies the unit of time, such as seconds, minutes, or hours.
            *   `amount` (_integer_) Specifies the period in seconds, minutes, or hours.
        *   `validFor` (_object_) Specifies the period for which the product offering term is valid.
            *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
            *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
    *   `lifecycleStatus` (_string_) Indicate the current lifecycle status.
    *   `validFor` (_object_) Specifies the period for which the product offering is valid.
        *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
        *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
    *   `productOfferingPrice` (_array of object_) Specifies an amount, usually of money that is asked for or allowed when a product offering is bought, rented, or leased. The price is valid for a defined period and doesn’t necessarily represent the actual price paid by a customer.
        
        Each item: Specifies a new product offering price being created by a value or reference to an existing product offering price. The polymorphic attributes @type, @schemaLocation, and @referredType are related to the product offering price and not to the ReforValue structure.
        
        *   `description` (_string_) Provides the description of the product offering price.
        *   `lifecycleStatus` (_string_) Specifies the lifecycle status of the product offering price.
        *   `name` (_string_, required) Specifies the name of the product offering price.
        *   `isBundle` (_boolean_) Indicates whether a productOfferingPrice represents a productOfferingPrice (false) or a bundle of productOfferingPrices (true).
        *   `priceType` (_string_) Specifies a category that describes the price charge, such as recurring, penalty, and one-time fee.
        *   `recurringChargePeriod` (_string_) Specifies the charge period to apply the price again, which can be a month, week, and so on.
        *   `price` (_object_) Provides tax included amount money type.
            *   `taxIncludedAmount` (_object_) Specifies the tax amount included, in the given currency.
                *   `value` (_number (float)_) Specifies a positive floating point number.
                *   `unit` (_string_) Specifies the currency. The ISO4217 norm uses 3 letters to define the currency.
        *   `validFor` (_object_) Specifies the period for which the product offering price is valid.
            *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
            *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
    *   `attachment` (_array of object_) Provides additional description of an element, such as a product, through videos or pictures.
        
        Each item: Specifies an attachment by a value or by a reference. The attachment provides additional description of an element, such as a document, a video, or a picture.
        
        *   `id` (_string_) Specifies a unique identifier of the attachment.  
            Example: `4aafacbd-11ff-4dc8-b445-305f2215715f`.
        *   `href` (_string_) Specifies the URI of the attachment.  
            Example: `http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f`.
        *   `attachmentType` (_string_) Specifies the attachment type, such as a video or a picture.  
            Example: `video`.
        *   `description` (_string_) Describes the content of the attachment.  
            Example: `Photograph of the Product`.
        *   `name` (_string_, required) Specifies the name of the attachment.
        *   `url` (_string_) An uri (Uri). Uniform Resource Locator, is a web page address (a subset of URI).  
            Example: `https://mycsp.com:8090/docloader?docnum=123212`.
    *   `bundledProductOffering` (_array of object_) Specifies a type of product offering that belongs to a grouping of product offerings made available to the market. A bundled product offering inherits all the attributes of a product offering.
        
        Each item: Specifies a type of product offering that belongs to a grouping of product offerings made available to the market. A bundled product offering inherits all attributes of a product offering.
        
        *   `id` (_string_) Specifies a unique identifier of the bundled product offering.
        *   `name` (_string_) Specifies the name of the bundled product offering.
        *   `bundledProductOfferingOption` (_object_) Specifies the lower and upper limits for a product offering that can be procured as part of the related bundled product offering. Values can range from 0 to unbounded.
            *   `numberRelOfferDefault` (_integer_) Specifies the default number of product offerings that should be procured as part of the related bundled product offering.
            *   `numberRelOfferLowerLimit` (_integer_) Specifies the lower limit for a product offering that can be procured as part of the related bundled product offering.
            *   `numberRelOfferUpperLimit` (_integer_) Specifies the upper limit for a product offering that can be procured as part of the related bundled product offering.
    *   `prodSpecCharValueUse` (_array of object_) A use of the ProductSpecificationCharacteristicValue object by a ProductOffering object to which additional properties (attributes) apply or override the properties of similar properties contained in the ProductSpecificationCharacteristicValue object. The values of characteristics exist in the corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic object in a product specification can be modified at the ProductOffering object level. For example, the Color characteristic can have White, Blue, Green, and Red as value. But, the list of values can be restricted to for example, White and Blue in an associated product offering. The list of values in a ProductSpecificationCharacteristicValueUse object is a strict subset of the list of values as defined in the corresponding product specification characteristics.
        
        Each item: A use of the ProductSpecificationCharacteristicValue object by a ProductOffering object to which additional properties (attributes) apply or override the properties of similar properties contained in the ProductSpecificationCharacteristicValue object. The values of the characteristics addressed by this object exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic object in a product specification can be modified at the ProductOffering object level. For example, the Color characteristic can have White, Blue, Green, and Red as value. But, the list of values can be restricted to White and Blue in an associated product offering. The list of values in a ProductSpecificationCharacteristicValueUse object is a strict subset of the list of values as defined in the corresponding product specification characteristics.
        
        *   `isDefault` (_boolean_) Indicates if the value is the default value for a characteristic.
        *   `validFor` (_object_) Specifies the period for which the characteristic is valid.
            *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
            *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
        *   `value` (_any_) An any (Any). A discrete value that the characteristic can take on, or the actual value of the characteristic.
        *   `valueType` (_string_) Specifies the type of value that the characteristic value can accept, such as numeric and text.
    *   `category` (_array of object_) Groups product offerings, services, and resource candidates in logical containers. Categories can contain other categories or product offerings, resources, or service candidates.
        
        Each item: Specifies the category for grouping recommendations.
        
        *   `id` (_string_, required) Specifies a unique identifier for the category reference.
        *   `href` (_string_) Specifies the hyperlink reference of the category reference.
        *   `name` (_string_) Specifies the name of the related entity.
        *   `@type` (_string_, required) Defines the subclass extensible name when subclassing.
        *   `@referredType` (_string_) Specifies the actual type of the target instance when needed for disambiguation.
    *   `productOfferingRelationship` (_object_) Specifies a relationship between the product offering and other product offerings.
        *   `relationshipType` (_string_) Type of relationship such as migration, substitution, dependency, exclusivity.
        *   `href` (_string_) Specifies the hyperlink reference of the product offering relationship.
        *   `name` (_string_, required) Specifies the name of the related entity.
        *   `id` (_string_, required) Specifies a unique identifier for the product offering relationship.
    *   `isSellable` (_boolean_) Indicates whether the product offer can be sold standalone (true) or only within a bundle (false).
    *   `description` (_string_) Provides a description of the product offering.
    *   `isBundle` (_boolean_) Indicates whether a product offering represents a single product offering (false) or a bundle of product offerings (true).
    
    _Example_
    
    ```
    [
        {
          "description": "Airtel Wifi Router with 1000Mbps Bandwidth",
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfhIAE",
          "id": "0b1a75ff-f9ee-2547-2c57-e2f27b860356",
          "isBundle": false,
          "isSellable": true,
          "lastUpdate": "2023-08-24T06:49:33Z",
          "lifecycleStatus": "Active",
          "name": "Airtel Wifi Router",
          "productNumber": "Airtel_Wifi_Router",
          "version": "1.0",
          "validFor": {
            "endDateTime": "2022-08-25T00:00:00Z",
            "startDateTime": "2022-05-23T00:00:00Z"
          },
          "productOfferingPrice": 
          [
            {
              "version": "1.0",
              "priceType": "One-time",
              "name": "a3GDo0000008rT3",
              "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT3MAI",
              "isBundle": false,
              "price": {
                "amount": "0"
              }
            }
          ]
        },
        {
          "description": "Airtel Wifi Router with 1000Mbps Bandwidth",
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfmIAE",
          "id": "829c48a3-6b85-5d49-1f1f-9589b7d42816",
          "isBundle": false,
          "isSellable": true,
          "lastUpdate": "2023-08-24T06:49:46Z",
          "lifecycleStatus": "Active",
          "name": "Airtel Wifi Router",
          "productNumber": "Airtel_Wifi_Router",
          "version": "1.0",
          "validFor": {
            "endDateTime": "2022-08-25T00:00:00Z",
            "startDateTime": "2022-05-23T00:00:00Z"
          },
          "productOfferingPrice": 
          [
            {
              "version": "1.0",
              "priceType": "One-time",
              "name": "a3GDo0000008rT8",
              "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT8MAI",
              "isBundle": false,
              "price": {
                "amount": "0"
              }
            }
          ]
        }
    ]
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve a product offering

`GET /productOffering/{id}`

Retrieves a ProductOffering entity. Attribute selection is enabled for first-level attributes.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `ProductOffering_Create (extended)`.
    
    Includes all fields of `ProductOffering_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductOffering.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductOffering.
    
    _Example_
    
    ```
    {
        "description": "Airtel Wifi Router with 1000Mbps Bandwidth",
        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iAfhIAE",
        "id": "0b1a75ff-f9ee-2547-2c57-e2f27b860356",
        "isBundle": false,
        "isSellable": true,
        "lastUpdate": "2023-08-24T06:49:33Z",
        "lifecycleStatus": "Active",
        "name": "Airtel Wifi Router",
        "productNumber": "Airtel_Wifi_Router",
        "version": "1.0",
        "validFor": {
          "endDateTime": "2022-08-25T00:00:00Z",
          "startDateTime": "2022-05-23T00:00:00Z"
        },
        "productOfferingPrice": 
        [
          {
            "version": "1.0",
            "priceType": "One-time",
            "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo0000008rT3MAI",
            "isBundle": false,
            "name": "a3GDo0000008rT3",
            "price": {
              "amount": "0"
            }
          }
        ]
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### PATCH Update ProductOffering

`PATCH /productOffering/{id}`

This operation allows partial updates of a ProductOffering entity.

#### Parameters

*   `id` (path, string, required)
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `ProductOffering_Update`.

Specifies the ProductOffering to be updated.

_Example_

```
{
    "version": "2.0 ",
    "lifecycleStatus": "Active",
    "validFor": {
        "endDateTime": "2022-08-31T00:00:00Z",
        "startDateTime": "2022-05-23T00:00:00Z"
    },
    "productNumber": "Airtel_Wifi_Router",
    "name": "updated - Airtel Wifi Router",
    "description": "updated - Airtel Wifi Router with 1000Mbps Bandwidth"
}
```

#### Responses

*   **200** Updated the ProductOffering.
    
    Media type: `application/json`. Schema: `ProductOffering_Create (extended)`.
    
    Includes all fields of `ProductOffering_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductOffering.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductOffering.
    
    _Example_
    
    ```
    {
      "productOfferingPrice": 
      [
        {
          "price": {
            "amount": "0"
          },
          "name": "a3GDo00000090sd",
          "isBundle": false,
          "href": "/services/data/v57.0/sobjects/vlocity_cmt__PriceListEntry__c/a3GDo00000090sdMAA",
          "priceType": "One-time",
          "version": "2.0"
        }
      ],
      "validFor": {
        "startDateTime": "2022-05-23T00:00:00Z",
        "endDateTime": "2022-08-31T00:00:00Z"
      },
      "version": "2.0",
      "productNumber": "Airtel_Wifi_Router",
      "name": "updated - Airtel Wifi Router",
      "lifecycleStatus": "Active",
      "lastUpdate": "2023-09-27T09:45:44Z",
      "isSellable": true,
      "isBundle": false,
      "id": "1f00a691-650f-ce61-d3f3-53b6f988cb9c",
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01tDo000000iQGbIAM",
      "description": "updated - Airtel Wifi Router with 1000Mbps Bandwidth"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: Catalog already exists
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: PriceList is needed for creation of ProductOffer.
    ```
    
*   **422** Non Patchable attribute present.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "422"
    reason: Non Patchable attribute present
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### DELETE Delete a Product Offering by Id

`DELETE /productOffering/{id}`

This operation allows deletion of a ProductOffering id.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **204**
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: ""
    reason: ""
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: We couldn't find the Catalog in your salesforce org.
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### POST Create a product offering price

`POST /productOfferingPrice`

Creates a ProductOfferingPrice entity.

#### Parameters

*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `ProductOfferingPrice_Create`.

Specifies the ProductOfferingPrice to be created.

_Example_

```
{
  "name" : "demo pricing",
  "description": "This pricing describes the recurring charge for a firewall service that can be deployed in business customer premise.",
  "validFor": {
      "startDateTime": "2020-09-22T00:00:00Z",
      "endDateTime": "2023-09-22T00:00:00Z"
  },
  "lifecycleStatus": "Active",
  "priceType": "Recurring",
  "recurringChargePeriodType": "Monthly",
  "price": {
      "unit": "USD",
      "value": 50
  },
  "productOfferingTerm": [
    {
      "name": "12 Month",
      "description": "12 month contract",
      "duration": {
        "amount": 12,
        "units": "Month"
      },
      "validFor": {
        "startDateTime": "2020-09-22T16:42:23.0Z",
        "endDateTime": "2023-09-22T00:00:00.0Z"
      }
    }
  ]
}
```

#### Responses

*   **201** Created the resource.
    
    Media type: `application/json`. Schema: `ProductOfferingPrice_Create (extended)`.
    
    Includes all fields of `ProductOfferingPrice_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductOfferingPrice.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductOfferingPrice.
    
    _Example_
    
    ```
    {  
      "productOfferingTerm": [
        {
          "href": "/services/data/v58.0/sobjects/vlocity_cmt__Promotion__c/a3T5e000000tvEVEAY",
          "@type": "ProductOfferingTerm",
          "validFor": {
            "startDateTime": "2020-09-22T16:42:23Z",
            "endDateTime": "2023-09-22T00:00:00Z"
          },
          "duration": {
            "units": "Month",
            "amount": 12
          },
          "description": "12 month contract",
          "name": "12 Month"
        }
      ],
      "lifecycleStatus": "true",
      "validFor": {
        "endDateTime": "2023-09-22T00:00:00Z",
        "startDateTime": "2020-09-22T00:00:00Z"
      },
      "lastUpdate": "2023-09-27T08:02:09Z",
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/priceListEntry/a3C5e000000jCZSEA2",
      "name": "demo pricing",
      "description": "This pricing describes the recurring charge for a firewall service that can be deployed in business customer premise.",
      "id": "4a5dbea2-6c43-4a63-8b8a-cde4b5085c57",
      "price": {
        "unit": "USD",
        "value": 50
      },
      "priceType": "Recurring",
      "recurringChargePeriodType": "Monthly"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve product offering prices

`GET /productOfferingPrice`

Retrieves the ProductOfferingPrice entities.

#### Parameters

*   `offset` (query, integer) Specifies the requested index for the start of the resources to be included in the response.
*   `limit` (query, integer) Specifies the requested number of the resources to be included in the response.
*   `handleOverriddenAttributes` (query, boolean) Returns only non-overridden base product attributes when set to true, reducing payload size and optimizing baseline queries.
*   `handleOverrides` (query, boolean) Controls whether the API fetches standard price list entries or bundle-specific overridden prices.
*   `parentContext` (query, string) The unique ID of the root or bundle product providing the context.
*   `hierarchy` (query, string) The specific path from the root product to the current product position.
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `id` (query, string) Identifier of the ProductOfferingPrice.
*   `name` (query, string) Specifies the unique name of the ProductOfferingPrice.
*   `lifecycleStatus` (query, string) Indicates the current lifecycle status derived for the ProductOfferingPrice resource.
*   `find` (query, string) Finds any search string in the product.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Headers:
    
    *   `X-Result-Count` (integer, required) Specifies the actual number of items returned in the response body.
    *   `X-Total-Count` (integer, required) Specifies the count of items that match the criteria.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    Each item: Product offering price is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price can be further revised through discounting a product offering price that reflects an alteration. The price applied for a product offering can also be influenced by the product offering term or the selected customer. For example, a product offering can be offered with multiple terms, such as commitment periods for the contract. The price can be influenced by this product offering term. A product offering can sometimes be cheaper with a 24-month commitment than with a 12-month commitment.
    
    Product offering price is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price can be further revised through discounting a product offering price that reflects an alteration. The price applied for a product offering can also be influenced by the product offering term or the selected customer. For example, a product offering can be offered with multiple terms, such as commitment periods for the contract. The price can be influenced by this product offering term. A product offering can sometimes be cheaper with a 24-month commitment than with a 12-month commitment.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductOfferingPrice.
    *   `priceType` (_string_, required) Describes the price, such as recurring, discount, allowance, penalty, and so on.
    *   `name` (_string_, required) Specifies the name of the product offering price.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductOfferingPrice.
    *   `productOfferingTerm` (_array of object_) Specifies a list of conditions with which a product offering price is made available to customers. For instance, a product offering price can be offered with multiple commitment periods.
        
        Each item: Specifies a condition with which a product offering is made available to customers. For instance, a product offering can be offered with multiple commitment periods.
        
        *   `description` (_string_) Provides a description of the product offering term.
        *   `name` (_string_) Specifies the name of the product offering term.
        *   `duration` (_object_) Specifies the duration of the product offering term.
            *   `units` (_string_) Specifies the unit of time, such as seconds, minutes, or hours.
            *   `amount` (_integer_) Specifies the period in seconds, minutes, or hours.
        *   `validFor` (_object_) Specifies the period for which the product offering term is valid.
            *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
            *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
                Example: `1985-04-12T23:20:50Z`.
    *   `validFor` (_object_) Specifies the period for which the product offering price is valid.
        *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
        *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
    *   `lifecycleStatus` (_string_) Specifies the lifecycle status of the product offering price.
    *   `recurringChargePeriodType` (_string_, required) Specifies the period to apply the price again, which can be months, weeks, and so on.
    *   `lastUpdate` (_datetime_) Specifies the last update time of the product offering price.
    *   `price` (_object_, required) Specifies the amount of money that characterizes the price.
        *   `value` (_number (float)_) Specifies a positive floating point number.
        *   `unit` (_string_) Specifies the currency. The ISO4217 norm uses 3 letters to define the currency.
    *   `description` (_string_) Specifies the description of the product offering price.
    
    _Example_
    
    ```
    [
        {
          "priceType": "One-time",
          "price": {
            "value": 10.00000,
            "unit": "USD"
          },
          "id": "ab5f8d7a-b852-cce1-fe27-9b2ea7742f6c",
          "description": "sample description",
          "name": "sample name",
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/priceListEntry/a3C5e000000jCB6EAM",
          "lastUpdate": "2023-08-31T19:17:36Z",
          "validFor": {
            "startDateTime": "2023-07-31T18:30:00Z"
          },
          "lifecycleStatus": "true",
          "recurringChargePeriodType": "Monthly"
        },
        {
          "priceType": "One-time",
          "price": {
            "value": 100.00000,
            "unit": "EUR"
          },
          "id": "680c0059-8a2b-77a2-b96e-afb57b5951bf",
          "description": "sample description",
          "name": "sample name",
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/priceListEntry/a3C5e000000jCBBEA2",
          "lastUpdate": "2023-08-31T19:21:34Z",
          "validFor": {
            "startDateTime": "2022-08-31T18:30:00Z"
          },
          "lifecycleStatus": "true",
          "recurringChargePeriodType": "Monthly"
        },
        {
          "priceType": "One-time",
          "price": {
            "value": 1.00000,
            "unit": "EUR"
          },
          "id": "72027007-33af-4272-342e-453de754bb6e",
          "description": "sample description",
          "name": "sample name",
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/priceListEntry/a3C5e000000jCBGEA2",
          "lastUpdate": "2023-08-31T19:23:33Z",
          "validFor": {
            "startDateTime": "2019-09-03T18:30:00Z"
          },
          "lifecycleStatus": "true",
          "recurringChargePeriodType": "Monthly"
        }
      ]
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve a product offering price

`GET /productOfferingPrice/{id}`

Retrieves a productOfferingPrice entity. Attribute selection is enabled for first-level attributes.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `ProductOfferingPrice_Create (extended)`.
    
    Includes all fields of `ProductOfferingPrice_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the productOfferingPrice.
    *   `id` (_string_, required) Specifies the unique identifier of the productOfferingPrice.
    
    _Example_
    
    ```
    {
        "priceType": "One-time",
        "price": {
          "value": 10,
          "unit": "USD"
        },
        "id": "ab5f8d7a-b852-cce1-fe27-9b2ea7742f6c",
        "description": "Sample description",
        "name": "sample name",
        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/priceListEntry/a3C5e000000jCB6EAM",
        "lastUpdate": "2023-08-31T19:17:36Z",
        "validFor": {
          "startDateTime": "2023-07-31T18:30:00Z"
        },
        "lifecycleStatus": "true",
        "recurringChargePeriodType": "Monthly"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### PATCH Update ProductOfferingPrice

`PATCH /productOfferingPrice/{id}`

This operation allows partial updates of a productOfferingPrice entity.

#### Parameters

*   `id` (path, string, required)
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `ProductOfferingPrice_Update`.

Specifies the productOfferingPrice to be updated.

_Example_

```
{
  "description": "UPDATED - This pricing describes the recurring charge for a firewall service that can be deployed in business customer premise.",
  "name": "demo pricing",
  "validFor": {
    "startDateTime": "2020-09-22T00:00:00Z",
    "endDateTime": "2023-09-22T00:00:00Z"
  }, 
  "priceType": "recurring",
  "lifecycleStatus":"false",
  "recurringChargePeriodType": "monthly",
  "price": {
    "unit": "USD",
    "value": 50
  }
}
```

#### Responses

*   **200** Updated the productOfferingPrice.
    
    Media type: `application/json`. Schema: `ProductOfferingPrice_Create (extended)`.
    
    Includes all fields of `ProductOfferingPrice_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the productOfferingPrice.
    *   `id` (_string_, required) Specifies the unique identifier of the productOfferingPrice.
    
    _Example_
    
    ```
    {  
      "productOfferingTerm": [
        {
          "href": "/services/data/v58.0/sobjects/vlocity_cmt__Promotion__c/a3T5e000000tvEVEAY",
          "@type": "ProductOfferingTerm",
          "validFor": {
            "startDateTime": "2020-09-22T16:42:23Z",
            "endDateTime": "2023-09-22T00:00:00Z"
          },
          "duration": {
            "units": "Month",
            "amount": 12
          },
          "description": "12 month contract",
          "name": "12 Month"
        }
      ],
      "lifecycleStatus": "true",
      "validFor": {
        "endDateTime": "2023-09-22T00:00:00Z",
        "startDateTime": "2020-09-22T00:00:00Z"
      },
      "lastUpdate": "2023-09-27T08:02:09Z",
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/priceListEntry/a3C5e000000jCZSEA2",
      "name": "demo pricing",
      "description": "UPDATED - This pricing describes the recurring charge for a firewall service that can be deployed in business customer premise.",
      "id": "4a5dbea2-6c43-4a63-8b8a-cde4b5085c57",
      "price": {
        "unit": "USD",
        "value": 50
      },
      "priceType": "Recurring",
      "recurringChargePeriodType": "Monthly"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: Catalog already exists
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: PriceList is needed for creation of ProductOffer.
    ```
    
*   **422** Non Patchable attribute present.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "422"
    reason: Non Patchable attribute present
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### DELETE Delete a productOffering Price by Id

`DELETE /productOfferingPrice/{id}`

This operation allows deletion of a productOfferingPrice id.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **204**
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: ""
    reason: ""
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: We couldn't find the Catalog in your salesforce org.
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### POST Create a product specification

`POST /productSpecification`

Creates a ProductSpecification entity.

#### Parameters

*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `ProductSpecification_Create`.

Specifies the ProductSpecification to be created.

_Example_

```
{
  "name" : "sample name",
  "description" : "description text",
  "validFor": {
    "startDateTime": "2020-11-24T00:00:00Z",
    "endDateTime": "2022-11-24T00:00:00Z"
  },
  "bundledProductSpecification": 
  [
    {
      "id": "0d321a21-c07f-4067-7bed-edd8156bb05d",
      "name": "Root Offer"
    }
  ],
  "productSpecificationRelationship": 
  [
    {
      "id": "e9b4e4b2-ea11-edfc-81c4-e2fc245410b1",
      "relationshipType": "OptionalFor",
      "name": "demo pricing"
    }
  ],
  "productSpecCharacteristic": 
  [
    {
      "productSpecCharacteristicValue": [
        {
            "valueType": "Text"
        }
      ],
      "valueType": "Text",
      "name": "Attribute Text",
      "displayName": "Attribute Text",
      "description": "Attribute desc",
      "configurable": false
    }
  ],
  "attachment": 
  [
    {
        "url": "/servlet/servlet.FileDownload?file=0154x000000qUGEAA2",
        "name": "image 511",
        "description": "desc 4"
    }
  ]
}
```

#### Responses

*   **201** Created the resource.
    
    Media type: `application/json`. Schema: `ProductSpecification_Create (extended)`.
    
    Includes all fields of `ProductSpecification_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductSpecification.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductSpecification.
    
    _Example_
    
    ```
    {
      "productNumber": "19Aug-ParentProduct-01 updated",
      "name": "sample name",
      "lifecycleStatus": "Active",
      "lastUpdate": "2023-01-10T14:03:27Z",
      "isSellable": true,
      "isBundle": false,
      "id": "1be8a7d6-287e-b8ea-a6f3-e05b909d4357",
      "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01t4x000004EpeQAAS",
      "description": "description updated 123",
      "validFor": {
        "startDateTime": "2020-08-24T00:00:00Z",
        "endDateTime": "2024-03-25T00:00:00Z"
      },
      "productSpecificationRelationship": [
        {
          "id": "e9b4e4b2-ea11-edfc-81c4-e2fc245410b1",
          "relationshipType": "OptionalFor",
          "name": "demo pricing"
        }
      ],
      "bundledProductSpecification": [
        {
          "id": "0d321a21-c07f-4067-7bed-edd8156bb05d",
          "name": "Root Offer"
        }
      ],
      "productSpecCharacteristic": [
        {
          "productSpecCharacteristicValue": [
              {
                  "valueType": "Text"
              }
          ],
          "valueType": "Text",
          "name": "Attribute Text",
          "displayName": "Attribute Text",
          "description": "Attribute desc",
          "configurable": false
        }
      ],
      "attachment": [
        {
          "url": "/servlet/servlet.FileDownload?file=0154x000000qUGEAA2",
          "name": "image 511",
          "id": "a1gRO0000000MqjYAE",
          "href": "/services/data/v48.0/sobjects/vlocity_cmt__VlocityAttachment__c/a1gRO0000000MqjYAE",
          "description": "desc 4"
        }
      ]
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve product specifications

`GET /productSpecification`

Retrieves the ProductSpecification entities.

#### Parameters

*   `offset` (query, integer) Specifies the requested index for the start of the resources to be included in the response.
*   `limit` (query, integer) Specifies the requested number of the resources to be included in the response.
*   `version` (query, string) Specifies the version of the ProductSpecification.
*   `handleOverriddenAttributes` (query, boolean) Returns only non-overridden base product attributes when set to true, reducing payload size and optimizing baseline queries.
*   `handleOverrides` (query, boolean) Controls whether the API fetches standard price list entries or bundle-specific overridden prices.
*   `parentContext` (query, string) The unique ID of the root or bundle product providing the context.
*   `hierarchy` (query, string) The specific path from the root product to the current product position.
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `id` (query, string) Identifier of the ProductSpecification.
*   `name` (query, string) Specifies the unique name of the ProductSpecification.
*   `lifecycleStatus` (query, string) Indicates the current lifecycle status derived for the ProductSpecification resource.
*   `find` (query, string) Finds any search string in the product.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Headers:
    
    *   `X-Result-Count` (integer, required) Specifies the actual number of items returned in the response body.
    *   `X-Total-Count` (integer, required) Specifies the count of items that match the criteria.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    Each item: Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.
    
    Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductSpecification.
    *   `name` (_string_, required) Specifies the name of the product specification.
    *   `version` (_string_) Specifies the product specification version.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductSpecification.
    *   `productNumber` (_string_) Specifies an identification number assigned to uniquely identify the specification.
    *   `relatedParty` (_array of object_) Defines a party or party role that's linked to a specific entity.
        *   `id` (_string_, required) Specifies a unique identifier of the related party.
        *   `href` (_string_) Specifies the hyperlink reference of the related party.
        *   `name` (_string_, required) Specifies the name of the related entity.
        *   `role` (_string_) Specifies the role played by the related party.
    *   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
    *   `validFor` (_object_) Specifies the period for which the product specification is valid.
        *   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
        *   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
            Example: `1985-04-12T23:20:50Z`.
    *   `productSpecificationRelationship` (_array of object_) Specifies migration, substitution, dependency, or exclusivity relationship between product specifications.
        
        Each item: Specifies a migration, substitution, dependency, or exclusivity relationship between product specifications.
        
        *   `id` (_string_, required) Specifies a unique identifier of the product specification relationship.
        *   `href` (_string_) Specifies the hyperlink reference of the product specification relationship.
        *   `name` (_string_, required) Specifies the name of the related entity.
        *   `relationshipType` (_string_) Specifies the type of relationship, such as migration, substitution, dependency, or exclusivity.
    *   `attachment` (_array of object_) Supplements the description of an element, such as a product, through videos or pictures.
        
        Each item: Specifies an attachment by a value or by a reference. The attachment provides additional description of an element, such as a document, a video, or a picture.
        
        *   `id` (_string_) Specifies a unique identifier of the attachment.  
            Example: `4aafacbd-11ff-4dc8-b445-305f2215715f`.
        *   `href` (_string_) Specifies the URI of the attachment.  
            Example: `http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f`.
        *   `attachmentType` (_string_) Specifies the attachment type, such as a video or a picture.  
            Example: `video`.
        *   `description` (_string_) Describes the content of the attachment.  
            Example: `Photograph of the Product`.
        *   `name` (_string_, required) Specifies the name of the attachment.
        *   `url` (_string_) An uri (Uri). Uniform Resource Locator, is a web page address (a subset of URI).  
            Example: `https://mycsp.com:8090/docloader?docnum=123212`.
    *   `bundledProductSpecification` (_array of object_) Specifies a type of product specification that belongs to a grouping of product specifications made available to the market. A bundled product specification inherits all attributes of a product specification.
        *   `id` (_string_, required) Specifies a unique identifier for the product specification.
        *   `href` (_string_) Specifies the hyperlink reference of the product specification.
        *   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
        *   `name` (_string_, required) Specifies the name of the product specification.
    *   `isSellable` (_boolean_) Indicates whether the product offer can be sold standalone (true) or within a bundle only (false).
    *   `targetProductSchema` (_object_) Specifies the reference object to the schema and type of a target product, which is described by the product specification.
        *   `@type` (_string_, required) Specifies the class type of the target product.
    *   `description` (_string_) Explains the product specification in detail.
    
    _Example_
    
    ```
    [
        {
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productSpecification/01tDo000001JuKUIA0",
          "id": "be5a0569-e230-157b-22ce-ba1c68e6c4a2",
          "isBundle": false,
          "lastUpdate": "2023-07-26T13:20:13Z",
          "lifecycleStatus": "Active",
          "name": "Cisco Firepower NGFW",
          "productNumber": "Cisco Firepower NGFW"
        },
        {
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productSpecification/01tDo000001JuLDIA0",
          "id": "11d0363e-3424-ad57-24b6-250903d72fb8",
          "isBundle": false,
          "lastUpdate": "2023-07-26T13:32:18Z",
          "lifecycleStatus": "Inactive",
          "name": "Cisco Firepower NGFW"
        },
        {
          "description": "Powerful product that integrates with a firewall",
          "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productSpecification/01tDo000000iAgBIAU",
          "id": "8a8befe1-e6d5-fafc-c909-ae32eda09d53",
          "isBundle": true,
          "lastUpdate": "2023-08-24T06:53:57Z",
          "lifecycleStatus": "Active",
          "name": "PostManTestProductSpecifcation- 462757",
          "productNumber": "CSC-340-NGFW",
          "version": "2.0",
          "validFor": {
            "endDateTime": "2022-11-24T16:42:23Z",
            "startDateTime": "2020-09-23T00:00:00Z"
          }
        }
    ]
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### GET Retrieve a product specification

`GET /productSpecification/{id}`

Retrieves a ProductSpecification entity. Attribute selection is enabled for first-level attributes.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **200** Success
    
    Media type: `application/json`. Schema: `ProductSpecification_Create (extended)`.
    
    Includes all fields of `ProductSpecification_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductSpecification.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductSpecification.
    
    _Example: same as POST /productSpecification 201 response._
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: "name is mandatory to create Price list entry "
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: There are no matching resource
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### PATCH Update ProductSpecification

`PATCH /productSpecification/{id}`

This operation allows partial updates of a ProductSpecification entity.

#### Parameters

*   `id` (path, string, required)
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Request body

Media type: `application/json`. Schema: `ProductSpecification_Update`.

Specifies the ProductSpecification to be updated.

_Example_

```
{
    "name": "Updated - Name",
    "description" : "updated description"
}
```

#### Responses

*   **200** Updated the ProductSpecification.
    
    Media type: `application/json`. Schema: `ProductSpecification_Create (extended)`.
    
    Includes all fields of `ProductSpecification_Create`.
    
    *   `href` (_string_, required) Specifies the unique reference of the ProductSpecification.
    *   `id` (_string_, required) Specifies the unique identifier of the ProductSpecification.
    
    _Example_
    
    ```
    {
        "productNumber": "test number",
        "name": "Updated - Name",
        "lifecycleStatus": "Inactive",
        "lastUpdate": "2023-09-27T10:07:16Z",
        "isBundle": false,
        "id": "f58d3bce-e229-74c5-6a4c-40aa68714c53",
        "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productSpecification/01tDo000000i4CaIAI",
        "description": "updated description"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "400"
    reason: Catalog already exists
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: PriceList is needed for creation of ProductOffer.
    ```
    
*   **422** Non Patchable attribute present.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "422"
    reason: Non Patchable attribute present
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### DELETE Delete a ProductSpecification by Id

`DELETE /productSpecification/{id}`

This operation allows deletion of a ProductSpecification id.

#### Parameters

*   `id` (path, string, required)
*   `fields` (query, string) Specifies the comma-separated properties to be included in the response.
*   `Authorization` (header, string, required) Specifies the bearer token to use for the authentication of request.
*   `Namespace` (header, string) Specifies the namespace to use with the URL path.
*   `Domain-Name` (header, string, required) Specifies the domain name to use with the URL path received from the userinfo API.

#### Responses

*   **204**
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: ""
    reason: ""
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "404"
    reason: We couldn't find the Catalog in your salesforce org.
    ```
    
*   **500** Internal Server Error
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

## Schemas

### Catalog\_Create

Specifies a collection of product offerings intended for a specific distribution channel, enhanced with additional information, such as SLA parameters, invoicing, and shipping details.

*   `href` (_string_) Specifies a unique reference of the catalog.
*   `id` (_string_) Specifies a unique identifier of the catalog.
*   `name` (_string_, required) Specifies the name of the catalog.
*   `description` (_string_) Provides a description of the catalog.
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `category` (_array of object_) Specifies the list of root categories that the catalog contains.
    
    Includes all fields of `Catalog_CategoryRef`.
    
*   `relatedParty` (_array of object_) Specifies the list of parties related to the catalog.
    
    Includes all fields of `Catalog_RelatedParty`.
    
*   `validFor` (_object_) Specifies the period for which the catalog is valid.
    
    Includes all fields of `TimePeriod`.
    
*   `@type` (_string_, required) Defines the subclass extensible name when subclassing.

### Error

Shown when an API throws an error, typically with an HTTP error response code (3xx, 4xx, or 5xx).

*   `code` (_string_, required) Specifies the application-relevant detail defined in the API or a common list.
*   `reason` (_string_, required) Describes the reason for the error, which can be shown to a client user.

### Catalog\_Update

This operation allows partial updates of a catalog entity

*   `name` (_string_) Specifies the name of the catalog.
*   `description` (_string_) Provides a description of the catalog.
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `category` (_array of object_) Specifies the list of root categories that the catalog contains.
    
    Includes all fields of `Catalog_CategoryRef`.
    
*   `validFor` (_object_) Specifies the period for which the catalog is valid.
    
    Includes all fields of `TimePeriod`.
    
*   `isRoot` (_boolean_) Indicates whether the category is a root of categories (true) or not (false).

### Category\_Create

Groups product offerings, services, and resource candidates in logical containers. Categories can contain other categories or product offerings, resources, or service candidates.

*   `name` (_string_, required) Specifies the unique name of the category.
*   `id` (_string_) Specifies the catalog ID.
*   `href` (_string_) Specifies the hyperlink reference of the category.
*   `description` (_string_) Provides a description for the category.
*   `isRoot` (_boolean_) Indicates whether the category is a root of categories (true) or not (false).
*   `lastUpdate` (_datetime_) Specifies the date and time of the last update.
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `version` (_string_) Specifies the category version.
*   `productOffering` (_array of object_) Represents entities that can be ordered from the provider of the catalog and includes pricing information.
    
    Includes all fields of `ProductOfferingRef`.
    
*   `subCategory` (_array of object_, required) The category resource is used to group product offerings, services, and resource candidates in logical containers. Categories can contain other categories (subcategory) or product offerings.
    
    Includes all fields of `Category_Ref`.
    
*   `validFor` (_object_) Specifies the period for which the category is valid.
    
    Includes all fields of `TimePeriod`.
    
*   `@type` (_string_, required) Defines the subclass extensible name when subclassing.

### Category\_Update

This operation allows partial updates of a category entity

*   `description` (_string_) Provides a description for the category.
*   `isRoot` (_string_) Indicates whether the category is a root of categories (true) or not (false).
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `name` (_string_) Specifies the name of the product specification.
*   `productOffering` (_array of object_) Represents entities that can be ordered from the provider of the catalog and includes pricing information.
    
    Includes all fields of `ProductOfferingRef`.
    
*   `subCategory` (_array of object_) The category resource is used to group product offerings, services, and resource candidates in logical containers. Categories can contain other categories (subcategory) or product offerings.
    
    Includes all fields of `Category_Ref`.
    
*   `validFor` (_object_) Specifies the period for which the category is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductOffering\_Create

Represents entities that can be ordered from the provider of the catalog and includes pricing information.

*   `name` (_string_, required) Specifies the name of the product offering.
*   `description` (_string_) Provides a description of the product offering.
*   `isBundle` (_boolean_) Indicates whether a product offering represents a single product offering (false) or a bundle of product offerings (true).
*   `isSellable` (_boolean_) Indicates whether the product offer can be sold standalone (true) or only within a bundle (false).
*   `lifecycleStatus` (_string_) Indicate the current lifecycle status.
*   `version` (_string_) Specifies the product offering version.
*   `attachment` (_array of object_) Provides additional description of an element, such as a product, through videos or pictures.
    
    Includes all fields of `AttachmentRefOrValue`.
    
*   `bundledProductOffering` (_array of object_) Specifies a type of product offering that belongs to a grouping of product offerings made available to the market. A bundled product offering inherits all the attributes of a product offering.
    
    Includes all fields of `BundledProductOffering`.
    
*   `category` (_array of object_) Groups product offerings, services, and resource candidates in logical containers. Categories can contain other categories or product offerings, resources, or service candidates.
    
    Includes all fields of `Catalog_CategoryRef`.
    
*   `prodSpecCharValueUse` (_array of object_) A use of the ProductSpecificationCharacteristicValue object by a ProductOffering object to which additional properties (attributes) apply or override the properties of similar properties contained in the ProductSpecificationCharacteristicValue object. The values of characteristics exist in the corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic object in a product specification can be modified at the ProductOffering object level. For example, the Color characteristic can have White, Blue, Green, and Red as value. But, the list of values can be restricted to for example, White and Blue in an associated product offering. The list of values in a ProductSpecificationCharacteristicValueUse object is a strict subset of the list of values as defined in the corresponding product specification characteristics.
    
    Includes all fields of `ProdOffering-ProductSpecificationCharacteristicValueUse`.
    
*   `productOfferingPrice` (_array of object_) Specifies an amount, usually of money that is asked for or allowed when a product offering is bought, rented, or leased. The price is valid for a defined period and doesn’t necessarily represent the actual price paid by a customer.
    
    Includes all fields of `ProductOfferingPrice`.
    
*   `productOfferingRelationship` (_object_) Specifies a relationship between the product offering and other product offerings.
    
    Includes all fields of `ProductOfferingRelationship`.
    
*   `productOfferingTerm` (_array of object_) Specifies a condition with which a product offering is made available to customers. For instance, a product offering can be offered with multiple commitment periods.
    
    Includes all fields of `ProductOfferingTerm`.
    
*   `productSpecification` (_object_) Detailed description of a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.
    
    Includes all fields of `ProductSpecificationRef`.
    
*   `validFor` (_object_) Specifies the period for which the product offering is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductOffering\_Update

Represents entities that can be ordered from the provider of the catalog and includes pricing information.

*   `name` (_string_) Specifies the name of the product offering.
*   `description` (_string_) Provides a description of the product offering.
*   `isBundle` (_boolean_) Indicates whether a product offering represents a single product offering (false) or a bundle of product offerings (true).
*   `isSellable` (_boolean_) Indicates whether the product offer can be sold standalone (true) or only within a bundle (false).
*   `lifecycleStatus` (_string_) Indicate the current lifecycle status.
*   `version` (_string_) Specifies the product offering version.
*   `attachment` (_array of object_) Provides additional description of an element, such as a product, through videos or pictures.
    
    Includes all fields of `AttachmentRefOrValue`.
    
*   `bundledProductOffering` (_array of object_) Specifies a type of product offering that belongs to a grouping of product offerings made available to the market. A bundled product offering inherits all the attributes of a product offering.
    
    Includes all fields of `BundledProductOffering`.
    
*   `category` (_array of object_) Groups product offerings, services, and resource candidates in logical containers. Categories can contain other categories or product offerings, resources, or service candidates.
    
    Includes all fields of `Catalog_CategoryRef`.
    
*   `prodSpecCharValueUse` (_array of object_) A use of the ProductSpecificationCharacteristicValue object by a ProductOffering object to which additional properties (attributes) apply or override the properties of similar properties contained in the ProductSpecificationCharacteristicValue object. The values of characteristics exist in the corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic object in a product specification can be modified at the ProductOffering object level. For example, the Color characteristic can have White, Blue, Green, and Red as value. But, the list of values can be restricted to for example, White and Blue in an associated product offering. The list of values in a ProductSpecificationCharacteristicValueUse object is a strict subset of the list of values as defined in the corresponding product specification characteristics.
    
    Includes all fields of `ProdOffering-ProductSpecificationCharacteristicValueUse`.
    
*   `productOfferingPrice` (_array of object_) Specifies an amount, usually of money that is asked for or allowed when a product offering is bought, rented, or leased. The price is valid for a defined period and doesn’t necessarily represent the actual price paid by a customer.
    
    Includes all fields of `ProductOfferingPrice`.
    
*   `productOfferingRelationship` (_object_) Specifies a relationship between the product offering and other product offerings.
    
    Includes all fields of `ProductOfferingRelationship`.
    
*   `productOfferingTerm` (_array of object_) Specifies a condition with which a product offering is made available to customers. For instance, a product offering can be offered with multiple commitment periods.
    
    Includes all fields of `ProductOfferingTerm`.
    
*   `productSpecification` (_object_) Detailed description of a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.
    
    Includes all fields of `ProductSpecificationRef`.
    
*   `validFor` (_object_) Specifies the period for which the product offering is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductOfferingPrice\_Create

Product offering price is based on both the basic cost to develop and produce products and the enterprises policy on revenue targets. This price can be further revised through discounting a product offering price that reflects an alteration. The price applied for a product offering can also be influenced by the product offering term or the selected customer. For example, a product offering can be offered with multiple terms, such as commitment periods for the contract. The price can be influenced by this product offering term. A product offering can sometimes be cheaper with a 24-month commitment than with a 12-month commitment.

*   `name` (_string_, required) Specifies the name of the product offering price.
*   `description` (_string_) Specifies the description of the product offering price.
*   `lastUpdate` (_datetime_) Specifies the last update time of the product offering price.
*   `lifecycleStatus` (_string_) Specifies the lifecycle status of the product offering price.
*   `priceType` (_string_, required) Describes the price, such as recurring, discount, allowance, penalty, and so on.
*   `recurringChargePeriodType` (_string_, required) Specifies the period to apply the price again, which can be months, weeks, and so on.
*   `price` (_object_, required) Specifies the amount of money that characterizes the price.
    
    Includes all fields of `Money`.
    
*   `productOfferingTerm` (_array of object_) Specifies a list of conditions with which a product offering price is made available to customers. For instance, a product offering price can be offered with multiple commitment periods.
    
    Includes all fields of `ProductOfferingTerm`.
    
*   `validFor` (_object_) Specifies the period for which the product offering price is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductOfferingPrice\_Update

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.

*   `name` (_string_) Specifies the name of the product offering price.
*   `description` (_string_) Specifies the description of the product offering price.
*   `lastUpdate` (_datetime_) Specifies the description of the product offering price.  
    Example: `2020-09-23T00:00:00Z`.
*   `lifecycleStatus` (_string_) Specifies the lifecycle status of the product offering price.
*   `priceType` (_string_) Describes the price, such as recurring, discount, allowance, penalty, and so on.
*   `recurringChargePeriodType` (_string_) Specifies the period to apply the price again, which can be months, weeks, and so on.
*   `price` (_object_) Specifies the amount of money that characterizes the price.
    
    Includes all fields of `Money`.
    
*   `productOfferingTerm` (_array of object_) Specifies a list of conditions with which a product offering price is made available to customers. For instance, a product offering price can be offered with multiple commitment periods.
    
    Includes all fields of `ProductOfferingTerm`.
    
*   `validFor` (_object_) Specifies the period for which the product offering price is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductSpecification\_Create

Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.

*   `href` (_string_) Specifies a unique reference of the catalog.
*   `name` (_string_, required) Specifies the name of the product specification.
*   `description` (_string_) Explains the product specification in detail.
*   `isSellable` (_boolean_) Indicates whether the product offer can be sold standalone (true) or within a bundle only (false).
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `productNumber` (_string_) Specifies an identification number assigned to uniquely identify the specification.
*   `version` (_string_) Specifies the product specification version.
*   `attachment` (_array of object_) Supplements the description of an element, such as a product, through videos or pictures.
    
    Includes all fields of `AttachmentRefOrValue`.
    
*   `bundledProductSpecification` (_array of object_) Specifies a type of product specification that belongs to a grouping of product specifications made available to the market. A bundled product specification inherits all attributes of a product specification.
    
    Includes all fields of `BundledProductSpecification`.
    
*   `productSpecificationRelationship` (_array of object_) Specifies migration, substitution, dependency, or exclusivity relationship between product specifications.
    
    Includes all fields of `ProductSpecificationRelationship`.
    
*   `relatedParty` (_array of object_) Defines a party or party role that's linked to a specific entity.
    
    Includes all fields of `ProductSpecification_relatedParty`.
    
*   `targetProductSchema` (_object_) Specifies the reference object to the schema and type of a target product, which is described by the product specification.
    
    Includes all fields of `TargetProductSchema`.
    
*   `validFor` (_object_) Specifies the period for which the product specification is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductSpecification\_Update

Describes a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.

*   `name` (_string_) Specifies the name of the product specification.
*   `description` (_string_) Explains the product specification in detail.
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `productNumber` (_string_) Specifies an identification number assigned to uniquely identify the specification.
*   `version` (_string_) Specifies the product specification version.
*   `attachment` (_array of object_) Supplements the description of an element, such as a product, through videos or pictures.
    
    Includes all fields of `AttachmentRefOrValue`.
    
*   `bundledProductSpecification` (_array of object_) Specifies a type of product specification that belongs to a grouping of product specifications made available to the market. A bundled product specification inherits all attributes of a product specification.
    
    Includes all fields of `BundledProductSpecification`.
    
*   `productSpecCharacteristic` (_array of object_) Specifies a characteristic quality or distinctive feature of a product specification. The characteristic can take a discrete value, such as color, a range of values, or can be derived from a formula. For example, sensitivity of 100-240 mV or usage time (hrs) (30 - talk time \*3). Certain characteristics, such as color, can be configured during processes, such as ordering.
    
    Includes all fields of `ProductSpecificationCharacteristic`.
    
*   `productSpecificationRelationship` (_array of object_) Specifies migration, substitution, dependency, or exclusivity relationship between product specifications.
    
    Includes all fields of `ProductSpecificationRelationship`.
    
*   `relatedParty` (_array of object_) Defines a party or party role that's linked to a specific entity.
    
    Includes all fields of `ProductSpecification_relatedParty`.
    
*   `targetProductSchema` (_object_) Specifies the reference object to the schema and type of a target product, which is described by the product specification.
    
    Includes all fields of `TargetProductSchema`.
    
*   `validFor` (_object_) Specifies the period for which the product specification is valid.
    
    Includes all fields of `TimePeriod`.
    

### Catalog\_CategoryRef

Specifies the category for grouping recommendations.

*   `id` (_string_, required) Specifies a unique identifier for the category reference.
*   `href` (_string_) Specifies the hyperlink reference of the category reference.
*   `name` (_string_) Specifies the name of the related entity.
*   `@type` (_string_, required) Defines the subclass extensible name when subclassing.
*   `@referredType` (_string_) Specifies the actual type of the target instance when needed for disambiguation.

### Catalog\_RelatedParty

Defines a party or party role that's linked to a specific entity.

*   `id` (_string_, required) Specifies a unique identifier of the related party.
*   `href` (_string_) Specifies the hyperlink reference of the related party.
*   `name` (_string_) Specifies the name of the related entity.
*   `role` (_string_, required) Specifies the role played by the related party.
*   `@referredType` (_string_) Specifies the actual type of the target instance when needed for disambiguation.
*   `@type` (_string_, required) Defines the subclass extensible name when subclassing.

### TimePeriod

Specifies a period, as a deadline - endDateTime only, startDateTime only, or both.

*   `endDateTime` (_datetime_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
    Example: `1985-04-12T23:20:50Z`.
*   `startDateTime` (_datetime_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
    Example: `1985-04-12T23:20:50Z`.

### ProductOfferingRef

Represents entities that can be ordered from the provider of the catalog and includes the pricing information.

*   `id` (_string_) Specifies a unique identifier of the product offering reference.
*   `href` (_string_) Specifies the hyperlink reference of the product offering reference.
*   `name` (_string_) Specifies the name of the related entity.
*   `@type` (_string_) Defines the subclass extensible name when subclassing.

### Category\_Ref

Specifies the category for grouping recommendations.

*   `id` (_string_, required) Specifies a unique identifier for the category reference.
*   `href` (_string_) Specifies the hyperlink reference of the category reference.
*   `name` (_string_, required) Specifies the name of the related entity.
*   `@type` (_string_) Defines the subclass extensible name when subclassing.

### AttachmentRefOrValue

Specifies an attachment by a value or by a reference. The attachment provides additional description of an element, such as a document, a video, or a picture.

*   `id` (_string_) Specifies a unique identifier of the attachment.  
    Example: `4aafacbd-11ff-4dc8-b445-305f2215715f`.
*   `href` (_string_) Specifies the URI of the attachment.  
    Example: `http://host/Attachment/4aafacbd-11ff-4dc8-b445-305f2215715f`.
*   `attachmentType` (_string_) Specifies the attachment type, such as a video or a picture.  
    Example: `video`.
*   `description` (_string_) Describes the content of the attachment.  
    Example: `Photograph of the Product`.
*   `name` (_string_, required) Specifies the name of the attachment.
*   `url` (_string_) An uri (Uri). Uniform Resource Locator, is a web page address (a subset of URI).  
    Example: `https://mycsp.com:8090/docloader?docnum=123212`.

### BundledProductOffering

Specifies a type of product offering that belongs to a grouping of product offerings made available to the market. A bundled product offering inherits all attributes of a product offering.

*   `id` (_string_) Specifies a unique identifier of the bundled product offering.
*   `name` (_string_) Specifies the name of the bundled product offering.
*   `bundledProductOfferingOption` (_object_) Specifies the lower and upper limits for a product offering that can be procured as part of the related bundled product offering. Values can range from 0 to unbounded.
    
    Includes all fields of `BundledProductOfferingOption`.
    

### ProdOffering-ProductSpecificationCharacteristicValueUse

A use of the ProductSpecificationCharacteristicValue object by a ProductOffering object to which additional properties (attributes) apply or override the properties of similar properties contained in the ProductSpecificationCharacteristicValue object. The values of the characteristics addressed by this object exist in corresponding product specification. The available characteristic values for a ProductSpecificationCharacteristic object in a product specification can be modified at the ProductOffering object level. For example, the Color characteristic can have White, Blue, Green, and Red as value. But, the list of values can be restricted to White and Blue in an associated product offering. The list of values in a ProductSpecificationCharacteristicValueUse object is a strict subset of the list of values as defined in the corresponding product specification characteristics.

*   `isDefault` (_boolean_) Indicates if the value is the default value for a characteristic.
*   `validFor` (_object_) Specifies the period for which the characteristic is valid.
    
    Includes all fields of `TimePeriod`.
    
*   `value` (_any_) An any (Any). A discrete value that the characteristic can take on, or the actual value of the characteristic.
*   `valueType` (_string_) Specifies the type of value that the characteristic value can accept, such as numeric and text.

### ProductOfferingPrice

Specifies a new product offering price being created by a value or reference to an existing product offering price. The polymorphic attributes @type, @schemaLocation, and @referredType are related to the product offering price and not to the ReforValue structure.

*   `description` (_string_) Provides the description of the product offering price.
*   `lifecycleStatus` (_string_) Specifies the lifecycle status of the product offering price.
*   `name` (_string_, required) Specifies the name of the product offering price.
*   `isBundle` (_boolean_) Indicates whether a productOfferingPrice represents a productOfferingPrice (false) or a bundle of productOfferingPrices (true).
*   `priceType` (_string_) Specifies a category that describes the price charge, such as recurring, penalty, and one-time fee.
*   `recurringChargePeriod` (_string_) Specifies the charge period to apply the price again, which can be a month, week, and so on.
*   `price` (_object_)
    
    Includes all fields of `ProdOffering-ProductPriceValue`.
    
*   `validFor` (_object_) Specifies the period for which the product offering price is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductOfferingRelationship

Specifies a relationship between two product Offerings.

*   `id` (_string_, required) Specifies a unique identifier for the product offering relationship.
*   `href` (_string_) Specifies the hyperlink reference of the product offering relationship.
*   `name` (_string_, required) Specifies the name of the related entity.
*   `relationshipType` (_string_) Type of relationship such as migration, substitution, dependency, exclusivity.

### ProductOfferingTerm

Specifies a condition with which a product offering is made available to customers. For instance, a product offering can be offered with multiple commitment periods.

*   `description` (_string_) Provides a description of the product offering term.
*   `name` (_string_) Specifies the name of the product offering term.
*   `duration` (_object_) Specifies the duration of the product offering term.
    
    Includes all fields of `Duration`.
    
*   `validFor` (_object_) Specifies the period for which the product offering term is valid.
    
    Includes all fields of `TimePeriod`.
    

### ProductSpecificationRef

Product specification reference: A product specification is a detailed description of a tangible or intangible object made available externally in the form of a product offering to customers or other parties playing a party role.

*   `id` (_string_, required) Specifies a unique identifier of the product specification.
*   `name` (_string_, required) Specifies the name of the related entity.

### Money

Specifies a base or value business entity that's used to represent money.

*   `unit` (_string_) Specifies the currency. The ISO4217 norm uses 3 letters to define the currency.
*   `value` (_number (float)_) Specifies a positive floating point number.

### BundledProductSpecification

Specifies a type of product specification that belongs to a grouping of product specifications made available to the market. A bundled product specification inherits all attributes of a product specification.

*   `id` (_string_, required) Specifies a unique identifier for the product specification.
*   `href` (_string_) Specifies the hyperlink reference of the product specification.
*   `lifecycleStatus` (_string_) Specifies the current lifecycle status.
*   `name` (_string_, required) Specifies the name of the product specification.

### ProductSpecificationRelationship

Specifies a migration, substitution, dependency, or exclusivity relationship between product specifications.

*   `id` (_string_, required) Specifies a unique identifier of the product specification relationship.
*   `href` (_string_) Specifies the hyperlink reference of the product specification relationship.
*   `name` (_string_, required) Specifies the name of the related entity.
*   `relationshipType` (_string_) Specifies the type of relationship, such as migration, substitution, dependency, or exclusivity.

### ProductSpecification\_relatedParty

Defines a party or party role that's linked to a specific entity.

*   `id` (_string_, required) Specifies a unique identifier of the related party.
*   `href` (_string_) Specifies the hyperlink reference of the related party.
*   `name` (_string_, required) Specifies the name of the related entity.
*   `role` (_string_) Specifies the role played by the related party.

### TargetProductSchema

Specifies the reference object to the schema and type of the target product, which is described by the product specification.

*   `@type` (_string_, required) Specifies the class type of the target product.

### ProductSpecificationCharacteristic

A characteristic quality or distinctive feature of a product specification. The characteristic can take on a discrete value, such as color with a range of values (or can be derived from a formula. For example, sensitivity of 100-240 mV or usage time (hrs) (30 - talk time \*3). Certain characteristics, such as color, can be configured during processes, such as ordering.

*   `description` (_string_) Describes the CharacteristicSpecification object.
*   `name` (_string_, required) Specifies a word, term, or phrase by which the characteristic specification is known and distinguished from other characteristic specifications.
*   `valueType` (_string_, required) Specifies a type of value that the characteristic can accept, such as numeric and text.
*   `productSpecCharacteristicValue` (_array of object_, required) Defines a set of attributes, each of which can be assigned to a corresponding set of attributes in a ProductSpecificationCharacteristic object. The values of the attributes in the ProductSpecificationCharacteristicValue object describe the values of the attributes that a corresponding ProductSpecificationCharacteristic object can accept.
    
    Includes all fields of `CharacteristicValueSpecification`.
    

### BundledProductOfferingOption

Specifies the lower and upper limits for a product offering that can be procured as part of the related bundled product offering. Values can range from 0 to unbounded.

*   `numberRelOfferDefault` (_integer_) Specifies the default number of product offerings that should be procured as part of the related bundled product offering.
*   `numberRelOfferLowerLimit` (_integer_) Specifies the lower limit for a product offering that can be procured as part of the related bundled product offering.
*   `numberRelOfferUpperLimit` (_integer_) Specifies the upper limit for a product offering that can be procured as part of the related bundled product offering.

### ProdOffering-ProductPriceValue

Provides tax included amount money type.

*   `taxIncludedAmount` (_object_) Specifies the tax amount included, in the given currency.
    
    Includes all fields of `Money`.
    

### Duration

Specifies a period in a given unit of time.

*   `amount` (_integer_) Specifies the period in seconds, minutes, or hours.
*   `units` (_string_) Specifies the unit of time, such as seconds, minutes, or hours.

### CharacteristicValueSpecification

Provides specification of a value, such as number, text, or an object that can be assigned to a characteristic.

*   `isDefault` (_boolean_) Indicates whether the value is the default for a characteristic (true) or not (false).
*   `rangeInterval` (_string_) Specifies the inclusion or exclusion of the valueFrom and valueTo attributes. Possible values are open, closed, closedBottom, and closedTop.
*   `regex` (_string_) Specifies a regular expression constraint for a given value.
*   `unitOfMeasure` (_string_) Specifies a unit of measure, such as length, surface, volume, dry measure, liquid measure, money, weight, or time. Determines the quantity or magnitude of the designated kind and is a standard of comparison for others of the same kind. Assigns numerical values to the unit of measure, such as 1 foot, 1 yard, 1 mile, or 1 square foot.
*   `valueFrom` (_integer_) Specifies the lower range value that a characteristic can accept.
*   `valueTo` (_integer_) Specifies the upper range value that a characteristic can accept.
*   `valueType` (_string_) Specifies the type of value that the characteristic value can accept, such as numeric and text.
*   `validFor` (_object_) Specifies the period for which the value is applicable.
    
    Includes all fields of `TimePeriod`.
    
*   `value` (_any_, required) Specifies a discrete value that the characteristic can accept or the actual value of the characteristic.