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

# TMF620 v4 Product Catalog Management (Outbound)

Use the TMF620 Product Catalog API to publish a request to external system. The data exchange is compliant with the TM Forum's Open API specification.

**Version:** v1

Protocols: https.

## Security

*   `basic` (Basic Authentication) This API supports Basic Authentication.

## Operations

### POST Publish a product offer

`POST /publishProductOffer`

Security: basic.

Publishes the processing request for a product, which is triggered from the Salesforce product page.

#### Request body

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

_Example_

```
{
    "productNumber": "19Aug-ParentProduct-01 updated",
    "name": "19Aug-ParentProduct-01 updated",
    "lifecycleStatus": "Active",
    "lastUpdate": "2023-01-10T14:03:27.000+0000",
    "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:00.000+0000",
        "endDateTime": "2024-03-25T00:00:00.000+0000"
    },
    "prodSpecCharValueUse": [
        {
            "productSpecCharacteristicValue": [
                {
                    "valueType": "Text"
                }
            ],
            "valueType": "Text",
            "name": "CLONED_01t4x000004EpeQAAS_Rohit Attribute Text",
            "displayName": "Rohit Attribute Text",
            "description": "Rohit Attribute Text : ",
            "configurable": false
        }
    ],
    "productOfferingPrice": [
        {
            "validFor": {
                "startDateTime": "2022-08-18T07:00:00.000+0000"
            },
            "name": "a3B4x00000056ic",
            "isBundle": false,
            "href": "/services/data/v48.0/sobjects/vlocity_cmt__PriceListEntry__c/a3B4x00000056icEAA",
            "description": "2",
            "price": {
                "unit": "USD",
                "amount": "2.00000"
            },
            "unitOfMeasure": "USD",
            "priceType": "One-time"
        }
    ],
    "bundledProductOffering": [
        {
            "bundledProdOfferOption": {
                "numberRelOfferUpperLimit": 99999,
                "numberRelOfferLowerLimit": 0,
                "numberRelOfferDefault": 1
            },
            "lifecycleStatus": "Inactive",
            "href": "/services/apexrest/vlocity_cmt/tmforum/productopenapi/v1/productOffering/01t4x000004EpeGAAS",
            "name": "19Aug-RootProduct-01",
            "id": "f218d7f5-27fb-4ad0-aee6-c67ee730f05b"
        }
    ],
    "category": [{
        "name": "SD WAN",
        "id": "69340180-8367-993e-802a-856845f635ad"
    }],
    "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"
        }
    ],
    "targetSystemDetails": [
        {
            "targetSystemName": "ARIA",
            "action": "Create",
            "productPublishEventRecordId": "a5nDo000000znkF",
            "productRecordId":"01tDo000000iAg6IAE",
            "productSpecType": "Offer"
        }
    ]
}
```

#### Responses

*   **200** Request is successful.
    
    Media type: `application/json`. Schema: `SuccessMessage`.
    
    _Example_
    
    ```
    {
        "code": "202",
        "message": "ProductId pushed to queue successfully"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "400"
    reason: There was an issue with your request.
    ```
    
*   **401** Authorization failed.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "401"
    reason: Authorization failed.
    ```
    
*   **403** Request forbidden.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "403"
    reason: Request forbidden.
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "404"
    reason: Resource not found.
    ```
    
*   **405** Method not allowed.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "405"
    reason: Method not allowed.
    ```
    
*   **406** Request not acceptable.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "406"
    reason: Request not acceptable.
    ```
    
*   **409** Resource conflict.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "409"
    reason: Resource conflict
    ```
    
*   **500** Unable to complete the request as the server encountered an error.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

### POST Publish a product specification

`POST /publishProductSpecification`

Security: basic.

Publishes the processing request for a product, which is triggered from the Salesforce product page.

#### Request body

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

_Example_

```
{
  "name" : "sample name",
  "description" : "description text",
  "validFor": {
    "startDateTime": "2020-11-24T00:00:00.000+0000",
    "endDateTime": "2022-11-24T00:00:00.000+0000"
  },
  "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"
    }
  ],
  "targetSystemDetails": [
        {
            "targetSystemName": "ARIA",
            "action": "Create",
            "productPublishEventRecordId": "a5nDo000000xnkF",
            "productRecordId":"01tDo000000iAg6IAE",
            "productSpecType": "Specification"
        }
    ]
}
```

#### Responses

*   **200** Request is successful.
    
    Media type: `application/json`. Schema: `SuccessMessage`.
    
    _Example_
    
    ```
    {
        "code": "202",
        "message": "ProductId pushed to queue successfully"
    }
    ```
    
*   **400** There was an issue with your request.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "400"
    reason: There was an issue with your request.
    ```
    
*   **401** Authorization failed.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "401"
    reason: Authorization failed.
    ```
    
*   **403** Request forbidden.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "403"
    reason: Request forbidden.
    ```
    
*   **404** Resource not found.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "404"
    reason: Resource not found.
    ```
    
*   **405** Method not allowed.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "405"
    reason: Method not allowed.
    ```
    
*   **406** Request not acceptable.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "406"
    reason: Request not acceptable.
    ```
    
*   **409** Resource conflict.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "409"
    reason: Resource conflict
    ```
    
*   **500** Unable to complete the request as the server encountered an error.
    
    Media type: `application/json`. Schema: `ErrorMessage`.
    
    _Example_
    
    ```
    code: "500"
    reason: Internal Server Error
    ```
    

## Schemas

### Offer

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`.
    
*   `targetSystemDetails` (_array of object_, required) This is an Array of target system details which need to be updated along with the action on the external system.
    
    Includes all fields of `TargetSystemDetails`.
    

### SuccessMessage

*   `message` (_string_, required)
*   `code` (_string_, required)

### ErrorMessage

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.
*   `message` (_string_) Provides more details and corrective actions related to the error, which can be shown to a client user.

### Specification

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`.
    
*   `targetSystemDetails` (_array of object_, required) This is an Array of target system details which need to be updated along with the action on the external system.
    
    Includes all fields of `TargetSystemDetails`.
    

### 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`.
    

### 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_) Defines the subclass extensible name when subclassing.
*   `@referredType` (_string_) Specifies the actual type of the target instance when needed for disambiguation.

### 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.

### TimePeriod

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

*   `endDateTime` (_string_) Specifies the end date of the period by using the IETC-RFC-3339 format.  
    Example: `2099-01-01T00:00:00.000+0000`.
*   `startDateTime` (_string_) Specifies the start date of the period by using the IETC-RFC-3339 format.  
    Example: `2099-01-01T00:00:00.000+0000`.

### TargetSystemDetails

This object describes the external system, action to be performed on external system and the rowID to be updated after updation.

*   `targetSystemName` (_string_, required) Name of the external system being updated.
*   `action` (_string_, required) Action to be taken on the external system. Create, Update are supported
*   `productPublishEventRecordId` (_string_, required) Row ID of the initial record of productPublishEvent Table
*   `productRecordId` (_string_, required) SF product ID
*   `productSpecType` (_string_, required) specification type of the product. Supported values are Offer, Specification

### 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.

### 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.

### 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.