TMF637 v5 Use Cases

The TMF637 v5 API retrieves product inventory from Asset records and, from Winter ‘27, updates a limited set of fields on a single product.

You can perform these operations.

  • Retrieve a product or a collection of products
  • Update the name, description, and product serial number of a product (Winter ‘27)

Starting from the Winter ‘27 release, only the Direct Access option is supported for this API.

Important

Assumptions 

It is assumed that you have completed the following.

NOTE:

Use Cases 

I want to
Request Type
Example URL
Retrieve and display details of a particular product.GET by ID{{orgendpoint}}/services/data/{{version}}/connect/comms/productinventorymanagement/v5/productinventory/{ID}

NOTE:
For an invalid product ID, you receive HTTP 404.
List the products present in the inventory.GET List{{orgendpoint}}/services/data/{{version}}/connect/comms/productinventorymanagement/v5/productinventory
List products and return only the requested fields.GET List with Fields{{orgendpoint}}/services/data/{{version}}/connect/comms/productinventorymanagement/v5/productinventory?fields=name,description,status

NOTE:
Requested fields are part of the output when they have a value.
List products that match a filter.GET List with Filters{{orgendpoint}}/services/data/{{version}}/connect/comms/productinventorymanagement/v5/productinventory?status=Initial Sale
List products, limit the number of records, and start from the page specified by offset.GET with Pagination{{orgendpoint}}/services/data/{{version}}/connect/comms/productinventorymanagement/v5/productinventory?offset=0&pageLimit=1
Update the name, description, and product serial number of a product.PATCH{{orgendpoint}}/services/data/{{version}}/connect/comms/productinventorymanagement/v5/productinventory/{ID}

NOTE:
PATCH is available from Winter ‘27. Only name, description, and productSerialNumber can be updated.

GET by ID 

Consider you want to retrieve the product whose Asset ID is 02ixx0000004HI0AAM.

productOrderItem is included on this operation only.

Sample URL 

https://MyDomainName.my.salesforce.com/services/data/v68.0/connect/comms/productinventorymanagement/v5/productinventory/02ixx0000004HI0AAM

Sample Response 

1{
2  "id": "02ixx0000004HI0AAM",
3  "href": "/connect/comms/productinventorymanagement/v5/productinventory/02ixx0000004HI0AAM",
4  "isBundle": false,
5  "productOffering": {
6    "id": "01txx0000006i2fAAA",
7    "href": "/services/data/v68.0/sobjects/Product2/01txx0000006i2fAAA",
8    "name": "Support",
9    "@referredType": "ProductOffering"
10  },
11  "productOrderItem": [
12    {
13      "productOrderId": "00000111",
14      "orderItemAction": "add",
15      "orderItemId": "0000000037",
16      "@type": "RelatedProductOrderItem"
17    }
18  ],
19  "description": "Multi field update test",
20  "productSerialNumber": "SN-MULTI-001",
21  "startDate": "2026-07-03T00:00:00.000Z",
22  "terminationDate": "2026-08-02T23:59:59.000Z",
23  "name": "Multi-Field-Test",
24  "status": "Initial Sale",
25  "relatedParty": [
26    {
27      "id": "001xx000003GYzmAAG",
28      "name": "Cloud Kicks",
29      "role": "customer",
30      "@referredType": "Account"
31    }
32  ],
33  "productPrice": [
34    {
35      "recurringChargePeriod": "months",
36      "priceType": "termdefined",
37      "price": {
38        "dutyFreeAmount": {
39          "unit": "USD",
40          "value": 14.99
41        },
42        "taxIncludedAmount": {
43          "unit": "USD",
44          "value": 14.99
45        },
46        "@type": "Price"
47      },
48      "@type": "ProductPrice"
49    }
50  ],
51  "@type": "Product"
52}

GET List 

Consider there are multiple products in the inventory and you want to list them.

Sample URL 

https://MyDomainName.my.salesforce.com/services/data/v68.0/connect/comms/productinventorymanagement/v5/productinventory

Sample Response 

1[
2  {
3    "isBundle": false,
4    "terminationDate": "2026-09-02T23:59:59.000Z",
5    "productOffering": {
6      "id": "01txx0000006i3EAAQ",
7      "href": "/services/data/v67.0/sobjects/Product2/01txx0000006i3EAAQ",
8      "name": "API Access Premium",
9      "@referredType": "ProductOffering"
10    },
11    "@type": "Product",
12    "name": "API Access Premium",
13    "id": "02ixx0000004HHiAAM",
14    "href": "/connect/comms/productinventorymanagement/v5/productinventory/02ixx0000004HHiAAM",
15    "relatedParty": [
16      {
17        "id": "001xx000003GYzmAAG",
18        "name": "Cloud Kicks",
19        "role": "customer",
20        "@referredType": "Account"
21      }
22    ],
23    "startDate": "2026-08-03T00:00:00.000Z",
24    "productPrice": [
25      {
26        "recurringChargePeriod": "onetime",
27        "priceType": "onetime",
28        "price": {
29          "dutyFreeAmount": {
30            "unit": "USD",
31            "value": 75.0
32          },
33          "taxIncludedAmount": {
34            "unit": "USD",
35            "value": 82.5
36          },
37          "@type": "Price"
38        },
39        "@type": "ProductPrice"
40      }
41    ],
42    "status": "Initial Sale"
43  }
44]

GET List with Fields 

Consider you want to list products and return only selected fields.

Sample URL 

https://MyDomainName.my.salesforce.com/services/data/v68.0/connect/comms/productinventorymanagement/v5/productinventory?fields=name,description,status

Sample Response 

1[
2  {
3    "id": "02ixx0000004HHiAAM",
4    "href": "/connect/comms/productinventorymanagement/v5/productinventory/02ixx0000004HHiAAM",
5    "name": "API Access Premium",
6    "status": "Initial Sale",
7    "@type": "Product"
8  }
9]

GET List with Filters 

Consider you want to list products whose status is Initial Sale.

Sample URL 

https://MyDomainName.my.salesforce.com/services/data/v68.0/connect/comms/productinventorymanagement/v5/productinventory?status=Initial%20Sale

Sample Response 

1[
2  {
3    "id": "02ixx0000004HHiAAM",
4    "href": "/connect/comms/productinventorymanagement/v5/productinventory/02ixx0000004HHiAAM",
5    "name": "API Access Premium",
6    "status": "Initial Sale",
7    "isBundle": false,
8    "@type": "Product"
9  }
10]

GET with Pagination 

offset defaults to 0. pageLimit defaults to 100.

Sample URL 

https://MyDomainName.my.salesforce.com/services/data/v68.0/connect/comms/productinventorymanagement/v5/productinventory?offset=0&pageLimit=1

Sample Response 

The response is a list containing at most pageLimit products, starting at offset. The shape of each product matches GET List.

PATCH 

PATCH is available from Winter ‘27. Only name, description, and productSerialNumber can be updated.

Sample URL 

https://MyDomainName.my.salesforce.com/services/data/v68.0/connect/comms/productinventorymanagement/v5/productinventory/02ixx0000004HI0AAM

Sample Request 

1{
2  "name": "Multi-Field-Test",
3  "description": "Multi field update test",
4  "productSerialNumber": "SN-MULTI-001"
5}

Sample Response 

The response is the updated product. The shape matches GET by ID.