---
schema_version: "1"
id: 69fc633906fa0116172068b7bfc4ca9bc34e71ffbb02e3658c2000a1cd95879d
title: TMF637 v4 Product Inventory (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/tmf637out.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/references/tmf637out
source_site: developer.salesforce.com
content_type: documentation
content_hash: 8631421873a747425ce376ebbb08e3a5f91898e5713f467513db35695123874d
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
TMF637 v4 Product Inventory (Outbound)

# TMF637 v4 Product Inventory (Outbound)

The Product Inventory Management API provides a standardized way to manage product inventory, such as creation of new inventory, updates to existing inventory, and retrieval of products in the inventory. It also provides a way to send notifications for events related to the product's lifecycle.

Protocols: https.

## Security

*   `clientIdEnforcement` (x-client-id-enforcement) Apply Client ID Enforcement policy to resource methods for authenticating API requests
    *   Header client\_id: Client Id to be passed for authenticating the API
    *   Header client\_secret: Client Secret to be passed for authenticating the API

## /notification

Event notification for the product.

## Operations

### POST Product Creation Event Notification

`POST /notification/productCreateEvent`

Security: clientIdEnforcement.

Client listener for receiving the notification ProductCreateEvent. This endpoint handles notifications when new customers are created in the system.

#### Request body

Media type: `application/json`. Schema: `array of object`.

Array of `object`.

*   `entityId` (_string_)  
    Example: `02iLT0000002lE9YAI`.
*   `entityName` (_string_)  
    Example: `Asset`.
*   `eventId` (_string_)  
    Example: `0001ade9-3f74-0b99-dbc4-42e73424b774-1`.
*   `commitTimestamp` (_number_)  
    Example: `1739268701178`.
*   `commitNumber` (_number_)  
    Example: `123`.
*   `correlationId` (_string_)  
    Example: `0001ade9-3f74-0b99-dbc4-42e73424b77`.
*   `changeEventType` (_string_)  
    Example: `Create`.
*   `enrichedFields` (_object_)
    *   `vlocity_cmt__AssetReferenceId__c` (_string_)  
        Example: `dc7ce308-b3e8-4c98-8c94-236f562ff093`.
*   `changedFields` (_object_)

_Example_

```
[
  {
    "entityId": "02iLT0000002lE9YAI",
    "entityName": "Asset",
    "eventId": "000003bf-04e1-f3b7-e4bd-a9437b775e58_1",
    "commitTimestamp": 1750169966000,
    "commitNumber": 1750169968435404800,
    "correlationId": "000003bf-04e1-f3b7-e4bd-a9437b775e58",
    "changedFields": {
      "vlocity_cmt__ProvisioningStatus__c": "Active"
    },
    "changeEventType": "Create",
    "enrichedFields": {
      "vlocity_cmt__AssetReferenceId__c": "dc7ce308-b3e8-4c98-8c94-236f562ff093"
    }
  }
]
```

#### Responses

*   **207** Agreement creation event successfully processed.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    *   `entityId` (_string_)  
        Example: `02iLT0000002lE9YAI`.
    *   `message` (_string_)  
        Example: `Event Posted Successfully`.
    
    _Example_
    
    ```
    [
      {
        "entityId": "02iLT0000002lE9YAI",
        "message": "Event Posted Successfully"
      }
    ]
    ```
    
*   **400** Bad request
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "400",
      "reason": "string",
      "message": "Bad Request",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **401** Unauthorized
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "401",
      "reason": "string",
      "message": "Unauthorized",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **403** Forbidden
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "403",
      "reason": "string",
      "message": "Forbidden",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **404** Resource not found
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "404",
      "reason": "string",
      "message": "Not Found",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **405** Method not allowed
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "405",
      "reason": "string",
      "message": "Method Not Allowed",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **500** Internal server error
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "500",
      "reason": "string",
      "message": "Internal Server Error",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **501** Not Implemented
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "501",
      "reason": "string",
      "message": "Not Implemented",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **503** Service Unavailable
    
    Headers:
    
    *   `x-ratelimit-remaining` (integer, required) The number of requests left for the time window.  
        Example: `0`.
    *   `x-ratelimit-limit` (integer, required) The maximum number of requests that the consumer is permitted to make.  
        Example: `10`.
    *   `x-ratelimit-reset` (integer, required) The remaining time, in milliseconds, until a new window starts  
        Example: `5000`.
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "503",
      "reason": "string",
      "message": "Service Unavailable",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **429** The request was not accepted because the application has exceeded the rate limit.
    
    Headers:
    
    *   `x-ratelimit-remaining` (integer, required) The amount of available quota  
        Example: `0`.
    *   `x-ratelimit-limit` (integer, required) The maximum available requests per window  
        Example: `10`.
    *   `x-ratelimit-reset` (integer, required) The remaining time, in milliseconds, until a new window starts  
        Example: `5000`.

### POST Product Attribute Change Event Notification

`POST /notification/productAttributeValueChangeEvent`

Security: clientIdEnforcement.

Client listener for receiving the notification productAttributeValueChangeEvent. This endpoint handles notifications when product attributes are modified.

#### Request body

Media type: `application/json`. Schema: `array of object`.

Array of `object`.

*   `entityId` (_string_)  
    Example: `02iLT0000002lE9YAI`.
*   `entityName` (_string_)  
    Example: `Asset`.
*   `eventId` (_string_)  
    Example: `0001ade9-3f74-0b99-dbc4-42e73424b774-1`.
*   `commitTimestamp` (_number_)  
    Example: `1739268701178`.
*   `commitNumber` (_number_)  
    Example: `123`.
*   `correlationId` (_string_)  
    Example: `0001ade9-3f74-0b99-dbc4-42e73424b77`.
*   `changeEventType` (_string_)  
    Example: `Update`.
*   `enrichedFields` (_object_)
    *   `vlocity_cmt__AssetReferenceId__c` (_string_)  
        Example: `dc7ce308-b3e8-4c98-8c94-236f562ff093`.
*   `changedFields` (_object_)

_Example_

```
[
  {
    "entityId": "02iLT0000002lE9YAI",
    "entityName": "Asset",
    "eventId": "000003bf-04e1-f3b7-e4bd-a9437b775e58_1",
    "commitTimestamp": 1750169966000,
    "commitNumber": 1750169968435404800,
    "correlationId": "000003bf-04e1-f3b7-e4bd-a9437b775e58",
    "changedFields": {
      "vlocity_cmt__ProvisioningStatus__c": "Active"
    },
    "changeEventType": "Update",
    "enrichedFields": {
      "vlocity_cmt__AssetReferenceId__c": "dc7ce308-b3e8-4c98-8c94-236f562ff093"
    }
  }
]
```

#### Responses

*   **207** Agreement attribute change event successfully processed.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    *   `entityId` (_string_)  
        Example: `02iLT0000002lE9YAI`.
    *   `message` (_string_)  
        Example: `Event Posted Successfully`.
    
    _Example_
    
    ```
    [
      {
        "entityId": "02iLT0000002lE9YAI",
        "message": "Event Posted Successfully"
      }
    ]
    ```
    
*   **400** Bad request
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "400",
      "reason": "string",
      "message": "Bad Request",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **401** Unauthorized
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "401",
      "reason": "string",
      "message": "Unauthorized",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **403** Forbidden
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "403",
      "reason": "string",
      "message": "Forbidden",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **404** Resource not found
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "404",
      "reason": "string",
      "message": "Not Found",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **405** Method not allowed
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "405",
      "reason": "string",
      "message": "Method Not Allowed",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **500** Internal server error
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "500",
      "reason": "string",
      "message": "Internal Server Error",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **501** Not Implemented
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "501",
      "reason": "string",
      "message": "Not Implemented",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **503** Service Unavailable
    
    Headers:
    
    *   `x-ratelimit-remaining` (integer, required) The number of requests left for the time window.  
        Example: `0`.
    *   `x-ratelimit-limit` (integer, required) The maximum number of requests that the consumer is permitted to make.  
        Example: `10`.
    *   `x-ratelimit-reset` (integer, required) The remaining time, in milliseconds, until a new window starts  
        Example: `5000`.
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "503",
      "reason": "string",
      "message": "Service Unavailable",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **429** The request was not accepted because the application has exceeded the rate limit.
    
    Headers:
    
    *   `x-ratelimit-remaining` (integer, required) The amount of available quota  
        Example: `0`.
    *   `x-ratelimit-limit` (integer, required) The maximum available requests per window  
        Example: `10`.
    *   `x-ratelimit-reset` (integer, required) The remaining time, in milliseconds, until a new window starts  
        Example: `5000`.

### POST Product State Change Event Notification

`POST /notification/productStateChangeEvent`

Security: clientIdEnforcement.

Client listener for receiving the notification productStateChangeEvent. This endpoint handles notifications when product states transition.

#### Request body

Media type: `application/json`. Schema: `array of object`.

Array of `object`.

*   `entityId` (_string_)  
    Example: `02iLT0000002lE9YAI`.
*   `entityName` (_string_)  
    Example: `Asset`.
*   `eventId` (_string_)  
    Example: `0001ade9-3f74-0b99-dbc4-42e73424b774-1`.
*   `commitTimestamp` (_number_)  
    Example: `1739268701178`.
*   `commitNumber` (_number_)  
    Example: `123`.
*   `correlationId` (_string_)  
    Example: `0001ade9-3f74-0b99-dbc4-42e73424b77`.
*   `changeEventType` (_string_)  
    Example: `Update`.
*   `enrichedFields` (_object_)
    *   `vlocity_cmt__AssetReferenceId__c` (_string_)  
        Example: `dc7ce308-b3e8-4c98-8c94-236f562ff093`.
*   `changedFields` (_object_)

_Example_

```
[
  {
    "entityId": "02iLT0000002lE9YAI",
    "entityName": "Asset",
    "eventId": "000003bf-04e1-f3b7-e4bd-a9437b775e58_1",
    "commitTimestamp": 1750169966000,
    "commitNumber": 1750169968435404800,
    "correlationId": "000003bf-04e1-f3b7-e4bd-a9437b775e58",
    "changedFields": {
      "vlocity_cmt__ProvisioningStatus__c": "Active"
    },
    "changeEventType": "Update",
    "enrichedFields": {
      "vlocity_cmt__AssetReferenceId__c": "dc7ce308-b3e8-4c98-8c94-236f562ff093"
    }
  }
]
```

#### Responses

*   **207** Agreement state change event successfully processed.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    *   `entityId` (_string_)  
        Example: `02iLT0000002lE9YAI`.
    *   `message` (_string_)  
        Example: `Event Posted Successfully`.
    
    _Example_
    
    ```
    [
      {
        "entityId": "02iLT0000002lE9YAI",
        "message": "Event Posted Successfully"
      }
    ]
    ```
    
*   **400** Bad request
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "400",
      "reason": "string",
      "message": "Bad Request",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **401** Unauthorized
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "401",
      "reason": "string",
      "message": "Unauthorized",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **403** Forbidden
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "403",
      "reason": "string",
      "message": "Forbidden",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **404** Resource not found
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "404",
      "reason": "string",
      "message": "Not Found",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **405** Method not allowed
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "405",
      "reason": "string",
      "message": "Method Not Allowed",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **500** Internal server error
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "500",
      "reason": "string",
      "message": "Internal Server Error",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **501** Not Implemented
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "501",
      "reason": "string",
      "message": "Not Implemented",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **503** Service Unavailable
    
    Headers:
    
    *   `x-ratelimit-remaining` (integer, required) The number of requests left for the time window.  
        Example: `0`.
    *   `x-ratelimit-limit` (integer, required) The maximum number of requests that the consumer is permitted to make.  
        Example: `10`.
    *   `x-ratelimit-reset` (integer, required) The remaining time, in milliseconds, until a new window starts  
        Example: `5000`.
    
    Media type: `application/json`. Schema: `any`.
    
    Type: `any`.
    
    _Example_
    
    ```
    {
      "@type": "Error",
      "@baseType": "string",
      "@schemaLocation": "string",
      "code": "503",
      "reason": "string",
      "message": "Service Unavailable",
      "status": "string",
      "referenceError": "string"
    }
    ```
    
*   **429** The request was not accepted because the application has exceeded the rate limit.
    
    Headers:
    
    *   `x-ratelimit-remaining` (integer, required) The amount of available quota  
        Example: `0`.
    *   `x-ratelimit-limit` (integer, required) The maximum available requests per window  
        Example: `10`.
    *   `x-ratelimit-reset` (integer, required) The remaining time, in milliseconds, until a new window starts  
        Example: `5000`.