---
schema_version: "1"
id: ea60c6f2e1bfc0136fbda38e2ac085a2c9a9fcb9f0f0119959e2bfceaacc5e7a
title: Apex Resources
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries-integrations/comms/guides/TMF620/apex/tmf620_apex_interfaces.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/guide/tmf620_apex_interfaces.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 428a8d1f186927ff474d98fb872921ea30ee4f7c8f7be6f23803010f3b82347a
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
# Apex Resources

APEX classes providing out-of-box implementation:

- TMFOpenAPICategoryService
- TMFOpenAPICatalogService
- TMFOpenAPIProductService

Use Apex interfaces if you want to completely customize the TMF620 ProductSpecification and ProductOffering APIs and only use the Salesforce framework for integrations. The Salesforce framework includes the consent check, permissions and licensing check, and invocation of the REST resource.

You can use these Apex interfaces to customize TMF620 API:

- [TMFOpenApiGetProductSpecInterface](https://developer.salesforce.com/docs/industries/communications/guide/TMFOpenApiGetProductSpecInterface.md)
- [TMFOpenApiPostProductSpecInterface](https://developer.salesforce.com/docs/industries/communications/guide/TMFOpenApiPostProductSpecInterface.md)
- [TMFOpenApiGetProdOfferingInterface](https://developer.salesforce.com/docs/industries/communications/guide/TMFOpenApiGetProdOfferingInterface.md)
- [TMFOpenApiPostProdOfferingInterface](https://developer.salesforce.com/docs/industries/communications/guide/TMFOpenApiPostProdOfferingInterface.md)

By default, no implementation is associated to the interfaces. If you want to add your own implementation of the API handlers, write a class implementing these interfaces and add the details to the interface implementation on the org.

**Example: Extend the POST method of the Product Specification resource**

1. If you don't want to use the out-of-box mappings and just reuse the framework, the default value of the metadata record VlocityIntegrationSetting\_\_mdt.TMForumCreateProductSpecificationVIPName should be empty.
2. The default value of the metadata record VlocityIntegrationSetting\_\_mdt.TMFOpenApiPostProductSpec must be populated with the class.
3. The framework will automatically skip the out-of-box implementation of the POST method of ProductSpecification and invoke the customer implementation class.
