A Inbound Communications Reference

Learn about the inbound requests that PDC REST Services Manager accepts from your enterprise product catalog. These requests are notification events that contain the complete definition of the product offering or product offering price objects.

PDC REST Services Manager accepts the following inbound event notifications:

ProductOfferingCreateEvent

The TMF 620 ProductOfferingCreateEvent event is sent by an enterprise product catalog to PDC REST Services Manager to create charge offers in PDC.

Endpoint

/productCatalogManagement/v1/listener/ProductOfferingCreateEvent

Method

POST

Sample ProductOfferingCreateEvent JSON Payload

{
   "eventId":"00004",
   "eventTime":"2025-11-16T16:42:25-04:00",
   "eventType":"ProductOfferingCreateEvent",
   "event":{
      "productOffering":{
	   "@type": "ProductOffering",
           "@schemaLocation": "/catalogManagement/Oracle/Schema/Oracle.ProductOffering.yml",
           "id": "productOffering_4321",
           "name": "Product Offering 4321",
           "description": "A product with a one-time charge and a discount",
           "href": "/mobile/custom/catalogManagement/productOffering/productOffering_4321",
           "isSellable": true,
           "validFor": {
               "startDateTime": "2025-11-15T16:42:25-04:00",
               "endDateTime": "2025-12-16T16:42:25-04:00"
           },
           "lastUpdate": "2025-11-16T16:42:25-04:00",
           "lifecycleStatus": "Launch",
           "isBundle": false,
           "version": "1.0",
           "serviceCandidate": {
               "@type": "ServiceCandidateRef",
               "id": "98765",
               "href": "/mobile/custom/catalogManagement/serviceSpecification/98765",
               "name": "Mobile Service"
           },
           "productOfferingPrice": [
               {
                   "@type": "ProductOfferingPrice",
                   "id": "popOOO_1234",
                   "name": "ProductOfferingPrice1234",
                   "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234"
               },
               {
                   "@type": "ProductOfferPriceAlteration",
                   "id": "popRBMdp_6543_Discount",
                   "name": "Discount6543",
                   "href": "/mobile/custom/catalogManagement/productOfferingPrice/popRBMdp_6543_Discount"
               }
           ]
       }
    }
  }
}

ProductOfferingAttributeValueChangeEvent

The TMF 620 ProductOfferingAttributeValueChangeEvent event is sent by an enterprise product catalog to PDC REST Services Manager to update attributes on charge offers in PDC.

Endpoint

/productCatalogManagement/v1/listener/ProductOfferingAttributeValueChangeEvent

Method

POST

Sample ProductOfferingAttributeValueChangeEvent JSON Payload

The ProductOfferingAttributeValueChangeEvent payload must contain the full definition of the object being updated, not just the changed attributes.

This sample shows the same definitions as for the ProductOfferingCreateEvent, but the values for the name, description, and version attributes are changed.

{
   "eventId":"00005",
   "eventTime":"2025-11-16T16:42:25-04:00",
   "eventType":"ProductOfferingAttributeValueChangeEvent",
   "event":{
      "productOffering":{
	   "@type": "ProductOffering",
           "@schemaLocation": "/catalogManagement/Oracle/Schema/Oracle.ProductOffering.yml",
           "id": "productOffering_4321",
           "name": "A Nice Product Offering",
           "description": "A nice product with a one-time charge and a discount",
           "href": "/mobile/custom/catalogManagement/productOffering/productOffering_4321",
           "isSellable": true,
           "validFor": {
               "startDateTime": "2025-11-15T16:42:25-04:00",
               "endDateTime": "2025-12-16T16:42:25-04:00"
           },
           "lastUpdate": "2025-11-16T16:42:25-04:00",
           "lifecycleStatus": "Launch",
           "isBundle": false,
           "version": "2.0",
           "serviceCandidate": {
               "@type": "ServiceCandidateRef",
               "id": "98765",
               "href": "/mobile/custom/catalogManagement/serviceSpecification/98765",
               "name": "Mobile Service"
           },
           "productOfferingPrice": [
               {
                   "@type": "ProductOfferingPrice",
                   "id": "popOOO_1234",
                   "name": "ProductOfferingPrice1234",
                   "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234"
               },
               {
                   "@type": "ProductOfferPriceAlteration",
                   "id": "popRBMdp_6543_Discount",
                   "name": "Discount6543",
                   "href": "/mobile/custom/catalogManagement/productOfferingPrice/popRBMdp_6543_Discount"
               }
           ]
       }
    }
  }
}

ProductOfferingStateChangeEvent

The TMF 620 ProductOfferingCreateEvent event is sent by an enterprise product catalog to PDC REST Services Manager to change the lifecycle state of charge offers in PDC.

Endpoint

/productCatalogManagement/v1/listener/ProductOfferingStateChangeEvent

Method

POST

Sample ProductOfferingStateChangeEvent JSON Payload

The ProductOfferingStateChangeEvent payload does not need to contain the entire ProductOffering definition. PDC REST Services Manager uses the @type, id, name, href, and lifecycleStatus attributes to identify the correct charge offer and update the status.

{
   "eventId":"00006",
   "eventTime":"2025-11-16T16:42:25-04:00",
   "eventType":"ProductOfferingStateChangeEvent",
   "event":{
      "productOffering":{
	   "@type": "ProductOffering",
           "id": "productOffering_4321",
           "name": "Product Offering 4321",
           "href": "/mobile/custom/catalogManagement/productOffering/productOffering_4321",
           "lifecycleStatus": "Retired",
       }
    }
  }
}

ProductOfferingPriceCreateEvent

The TMF 620 ProductOfferingPriceCreateEvent event is sent by an enterprise product catalog to PDC REST Services Manager to create charges in PDC.

Endpoint

/productCatalogManagement/v1/listener/ProductOfferingPriceCreateEvent

Method

POST

Sample ProductOfferingPriceCreateEvent JSON Payload

{
   "eventId":"00001",
   "eventTime":"2025-11-16T16:42:25-04:00",
   "eventType":"ProductOfferingPriceCreateEvent",
   "event":{
      "productOfferingPrice":{
          "@type": "ProductOfferingPrice",
            "@baseType": "ProductOfferingPrice",
            "id": "popOOO_1234",
            "name": "ProductOfferingPrice1234",
            "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234",
            "@schemaLocation": "/catalogManagement/Oracle/Oracle.ProductOfferingPrice.yml",
            "description": "A one-time fee",
            "version": "1.0",
            "isBundle": false,
            "discountable": false,
            "billOnPurchase": false,
            "priceType": "ONE_TIME_PRICE_PLAN",
            "price": {
                "unit": "USD",
                "value": 100.00
            },
            "popRelationship": [
                {
                    "@type": "PopRelationship",
                    "id": "popOOO_1234",
                    "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234",
                    "name": "ProductOfferingPrice1234",
                    "relationshipType": "DISCOUNT"
                }
            ],
            "tax": [
                {
                    "@type": "TaxItemOracle",
                    "taxCategory": "US",
                    "taxTime": "BILLING_TIME",
                    "taxCode": "cycle",
                    "taxAmount": {
                        "unit": "USD",
                        "value": 0
                    },
                    "taxRate": 0,
                    "taxProvider": "Provider1"
                }
            ],
            "validFor": {
                "startDateTime": "2025-11-16T16:42:25-04:00",
                "endDateTime": "2025-12-16T16:42:25-04:00"
            },
            "lifecycleStatus": "Launch"
      }
   }
}

ProductOfferingPriceAttributeValueChangeEvent

The TMF 620 ProductOfferingPriceAttributeValueChangeEvent event is sent by an enterprise product catalog to PDC REST Services Manager to update attributes on charges in PDC.

Endpoint

/productCatalogManagement/v1/listener/ProductOfferingPriceAttributeValueChangeEvent

Method

POST

Sample ProductOfferingPriceAttributeValueChangeEvent JSON Payload

The ProductOfferingPriceAttributeValueChangeEvent payload must contain the full definition of the object being updated, not just the changed attributes.

This sample shows the same definitions as for the ProductOfferingPriceCreateEvent, but the values for the version and discountable attributes are changed.

{
   "eventId":"00002",
   "eventTime":"2025-11-16T16:42:25-04:00",
   "eventType":"ProductOfferingPriceAttributeValueChangeEvent",
   "event":{
      "productOfferingPrice":{
          "@type": "ProductOfferingPrice",
            "@baseType": "ProductOfferingPrice",
            "id": "popOOO_1234",
            "name": "ProductOfferingPrice1234",
            "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234",
            "@schemaLocation": "/catalogManagement/Oracle/Oracle.ProductOfferingPrice.yml",
            "description": "A one-time fee",
            "version": "2.0",
            "isBundle": false,
            "discountable": false,
            "billOnPurchase": false,
            "priceType": "ONE_TIME_PRICE_PLAN",
            "price": {
                "unit": "USD",
                "value": 75.00
            },
            "popRelationship": [
                {
                    "@type": "PopRelationship",
                    "id": "popOOO_1234",
                    "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234",
                    "name": "ProductOfferingPrice1234",
                    "relationshipType": "DISCOUNT"
                }
            ],
            "tax": [
                {
                    "@type": "TaxItemOracle",
                    "taxCategory": "US",
                    "taxTime": "BILLING_TIME",
                    "taxCode": "cycle",
                    "taxAmount": {
                        "unit": "USD",
                        "value": 0
                    },
                    "taxRate": 0,
                    "taxProvider": "Provider1"
                }
            ],
            "validFor": {
                "startDateTime": "2025-11-16T16:42:25-04:00",
                "endDateTime": "2025-12-16T16:42:25-04:00"
            },
            "lifecycleStatus": "Launch"
      }
   }
}

ProductOfferingPriceStateChangeEvent

The TMF 620 ProductOfferingPriceStateChangeEvent event is sent by an enterprise product catalog to PDC REST Services Manager to change the lifecycle state of charges in PDC.

Endpoint

/productCatalogManagement/v1/listener/ProductOfferingPriceStateChangeEvent

Method

POST

Sample ProductOfferingPriceStateChangeEvent JSON Payload

The ProductOfferingPriceStateChangeEvent payload does not need to contain the entire ProductOfferingPrice definition. PDC REST Services Manager uses the @type, id, name, href, and lifecycleStatus attributes to identify the correct charge and update the status.

{
    "eventId": "00003",
    "eventTime": "2025-11-16T16:42:25-04:00",
    "eventType": "ProductOfferingPriceStateChangeEvent",
    "event": {
        "productOfferingPrice": {
            "@type": "ProductOfferingPrice",
            "@baseType": "ProductOfferingPrice",
            "id": "popOOO_1234",
            "name": "ProductOfferingPrice1234",
            "href": "/mobile/custom/catalogManagement/productOfferingPrice/popOOO_1234",
            "lifecycleStatus": "Retired"
        }
    }
}

ProjectPublish

The ProjectPublish event is sent by an enterprise product catalog to PDC REST Services Manager to notify PDC that a project has been published, and product offerings are available to be queried.

Endpoint

/productCatalogManagement/v1/projectPublishEvent

Method

POST

Sample ProductOfferingCreateEvent JSON Request Body

{
  "id": "{{$guid}}",
  "eventId": "{{$guid}}",
  "eventTime": "{{EVENT_TIME}}",
  "eventType": "projectPublishEvent",
  "correlationId": "{{$guid}}",
  "domain": "productCatalogManagement",
  "timeOcurred": "{{TIME_OCURRED}}",
  "event": {
    "project": {
      "id": "{{PROJECT_ID}}",
      "lifecycleStatus": "{{LIFECYCLE_STATUS}}",
      "name": "{{PROJECT_ID}}",
      "acknowledgementUrl": "{{ACKNOWLEDGEMENT_URL}}",
      "projectItems": [
        {
          "id": "OOO_{{INSTANCE_ID}}_OOO",
          "href": "{{ECC_MOCK}}/OOO_{{INSTANCE_ID}}_OOO",
          "name": "OOO_{{INSTANCE_ID}}_OOO",
          "version": "1.0",
          "@referredType": "ProductOfferingOracle"
        }
      ]
    }
  }
}

Sample Response

Status: 201

description: received for the processing

ProductOffering/{Name}

The TMF 620 ProductOffering request is sent by an enterprise product catalog to PDC REST Services Manager to retrieve a charge offer.

Endpoint

/productCatalogManagement/v4/productOffering/{name}

Method

GET

Sample JSON Payload Returned by PDC REST Services Manager

{
    "atBaseType": "ProductOffering",
    "atType": "ProductOffering",
    "description": "ChargeOffer2",
    "href": "/productCatalogManagement/v1/productOffering/ChargeOffer2",
    "id": "ChargeOffer2",
    "isBundle": false,
    "isSellable": false,
    "lifecycleStatus": "In design",
    "name": "ChargeOffer2",
    "productOfferingPrice": [
        {
            "atType": "ProductOfferingPriceRef",
            "href": "/productCatalogManagement/v1/productOfferingPrice/ChargeOffer2pp",
            "id": "ChargeOffer2pp",
            "name": "ChargeOffer2pp"
        }
    ],
    "serviceCandidate": {
        "atReferredType": "ServiceCandidate",
        "atType": "ServiceCandidateRef",
        "id": "TelcoGsm",
        "name": "TelcoGsm"
    },
    "validFor": {
        "startDateTime": "2022-07-14T00:00:00Z"
    },
    "version": "1.0"
}

ProductOfferingPrice/{Name}

The TMF 620 ProductOfferingPrice request is sent by an enterprise product catalog to PDC REST Services Manager to retrieve a charge offer price entity by name.

Endpoint

/productCatalogManagement/v4/productOfferingPrice/{name}

Method

GET

Sample Returned JSON Payload

This shows a sample JSON payload returned for a one-time charge offer with a price tag.

{
    "atBaseType": "ProductOfferingPrice",
    "atType": "ProductOfferingPriceOracle",
    "href": "productCatalogManagement/v4/productOfferingPrice/priceTagOneTimePOP",
    "id": "priceTagOneTimePOP",
    "isBundle": false,
    "name": "priceTagOneTimePOP",
    "priceType": "ONE_TIME",
    "validFor": {},
    "version": "1.0",
    "priceAlteration": [
        {
            "atType": "POPAlterationOracle",
            "id": "priceTagOneTimePOP_BI_1",
            "name": "priceTagOneTimePOP_BI_1",
            "price": {
                "dutyFreeAmount": {
                    "unit": "USD",
                    "value": 1000.0
                },
                "priceTag": {
                    "attributeName": "price",
                    "description": "PT_Set_1000",
                    "tagName": "PT_Set_1000",
                    "tagScope": "EVENT_PROFILE"
                }
            },
            "priceType": "ONE_TIME"
        }
    ]
}

Sample Returned JSON Payload

This shows a sample JSON payload returned for a recurring charge offer pricing entity with a tax code.

{
    "atBaseType": "ProductOfferingPrice",
    "atType": "ProductOfferingPriceOracle",
    "href": "productCatalogManagement/v4/productOfferingPrice/charge-2",
    "id": "charge-2",
    "isBundle": false,
    "name": "charge-2",
    "priceType": "RECURRING",
    "recurringChargePeriodLength": 1,
    "recurringChargePeriodType": "BI_MONTHLY",
    "tax": [
        {
            "id": "VAT",
            "taxCategory": "CUSTOM",
            "taxRate": 5.0
        }
    ],
    "validFor": {
        "endDateTime": "2038-01-01T00:00:00Z",
        "startDateTime": "1970-01-01T00:00:00Z"
    },
    "version": "1.0",
    "priceAlteration": [
        {
            "atType": "POPAlterationOracle",
            "price": {
                "dutyFreeAmount": {
                    "unit": "USD",
                    "value": 200.0
                }
            }
        }
    ]
}