---
schema_version: "1"
id: bbbf4f10dc836697a0a071eeddd3bf2f6cf09891ee293e46e41521297b264315
title: Extensibility for TMF666 v5 Account Management API
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/industries-integrations/comms/guides/Extensibility/TMF666/TMF666_extensibility.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/guide/TMF666_extensibility.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 82f42ecd322e6e43b9fed7813e3f7c66010c258ef277335617a514d7a7e9f204
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
# Extensibility for TMF666 v5 Account Management API

For the TMF666 API, extensibility is enabled through Apex lifecycle hooks and customizable GraphQL queries and mutations. These extension points let customers validate and transform requests, customize Billing Account persistence, and enrich API processing without changing the TMF666 contract.

You can use the extension points to:

- Extend Billing Accounts with additional fields.
- Map fields from Billing Account and related Salesforce records.
- Customize GET fields, filters, sorting, and nested GraphQL selections.
- Apply custom request validations.
- Customize POST, PATCH, and DELETE mutations.
- Refine GET processing and run post-operation logic.
- Enforce customer-specific rules before a Billing Account is deactivated.

TMF666 v5 currently supports the `billingAccount` resource.

**important:** - For access methods, prerequisites, and using the API, see [TMF666 v5 Account Management API](https://developer.salesforce.com/docs/industries/TMF666/TMF666.md).

## Supported Interfaces and Hooks

| Interface Name             | Hooks Used by the Operation                                                                                                            | Primary Customization                                   |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `IAccountManagementGET`    | `transformRequest`<br>`configureDefaultValidations`<br>`applyCustomValidations`<br>`customiseGraphQLQuery`<br>`handlePostOperation`    | Customize Billing Account queries and post-processing   |
| `IAccountManagementPOST`   | `transformRequest`<br>`configureDefaultValidations`<br>`applyCustomValidations`<br>`customiseMutationPayload`<br>`handlePostOperation` | Validate and customize Billing Account creation         |
| `IAccountManagementPATCH`  | `transformRequest`<br>`configureDefaultValidations`<br>`applyCustomValidations`<br>`customiseMutationPayload`<br>`handlePostOperation` | Validate and customize partial Billing Account updates  |
| `IAccountManagementDELETE` | `transformRequest`<br>`configureDefaultValidations`<br>`applyCustomValidations`<br>`customiseMutationPayload`<br>`handlePostOperation` | Validate and customize logical Billing Account deletion |

`IAccountManagementGET` inherits from `ICommsGET` and the common `ICommsExtensible` contract.
