---
schema_version: "1"
id: ea2439b4c5f7db7991d9fec5fc0b5aee97d7b604438fe060c913e5e757cca30c
title: TMF629 v4 Customer Management (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/tmf629put.md
canonical_url: https://developer.salesforce.com/docs/industries/communications/references/tmf629put
source_site: developer.salesforce.com
content_type: documentation
content_hash: aae1d46da164aebcc0813503f5421d1bcb3d99eb6454fed73f84f9fd62d69421
products:
  - Communications Cloud TM Forum API
  - Industries Integrations
---
TMF629 v4 Customer Management (Outbound)

# TMF629 v4 Customer Management (Outbound)

The Customer Management API provides a standardized mechanism for customers and customer account management, such as creating, updating (full or partial), and notifications of events. A customer can be a person, an organization, or another service provider who buys products from an Enterprise. The Customer Management API allows management of identification and financial information.

Protocols: https.

## Security

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

## /notification

Notification endpoints for customer-related events.

## Operations

### POST Customer Creation Event Notification

`POST /notification/customerCreateEvent`

Security: clientIdEnforcement.

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

#### Parameters

*   `contactToMultipleAccountsEnabled` (query, boolean) Flag to filter events based on whether a contact is associated with multiple accounts  
    Default: `false`.

#### Request body

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

Array of `object`.

*   `entityId` (_string_)  
    Example: `001xx000003GavHAAS`.
*   `entityName` (_string_)  
    Example: `Account`.
*   `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_)
    *   `AccountId` (_string_)  
        Example: `001LT00000lBXnBYAW`.
*   `changedFields` (_object_)

_Example_

```
[
  {
    "entityId": "001LT00000lBXnBYAW",
    "entityName": "Account",
    "eventId": "000016be-b392-5d4e-f246-7c1ef2f83c62_1",
    "commitTimestamp": 1751280659000,
    "commitNumber": 1751280659527467000,
    "correlationId": "000016be-b392-5d4e-f246-7c1ef2f83c62",
    "changedFields": {
      "ParentId": "001LT00000bu04rYAA",
      "LastModifiedDate": "Mon Jun 30 10:50:59 GMT 2025",
      "devops001gs0__RootAccountId__c": "001LT00000kiHsHYAU",
      "devops001gs0__Disclosure3__c": "false",
      "devops001gs0__Disclosure2__c": "false",
      "devops001gs0__Disclosure1__c": "false",
      "devops001gs0__EnableAutopay__c": "false",
      "CurrencyIsoCode": "USD",
      "devops001gs0__IsPersonAccount__c": "false",
      "devops001gs0__HasFraud__c": "false",
      "Name": "Test Account",
      "CreatedById": "005LT000006GmRpYAK",
      "OwnerId": "005LT000006GmRpYAK",
      "devops001gs0__IsRootResolved__c": "true",
      "CreatedDate": "Mon Jun 30 10:50:59 GMT 2025",
      "devops001gs0__PartyId__c": "a3iLT0000004y8rYAA",
      "devops001gs0__DirectoryListed__c": "false",
      "LastModifiedById": "005LT000006GmRpYAK"
    },
    "changeEventType": "Create",
    "enrichedFields": {
      "Id": "001LT00000lBXnBYAW"
    }
  }
]
```

#### Responses

*   **207** Successfully processed a customer creation event.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    *   `entityId` (_string_)  
        Example: `07kLT000000DJHlYAO`.
    *   `message` (_string_)  
        Example: `Event Posted Successfully`.
    
    _Example_
    
    ```
    [
      {
      "entityId" : "07kLT000000DJHlYAO",
      "message" : "Event Posted Successfully"
      },
      {
      "entityId" : "07kLT000000DJJNYA4",
      "message" : "Invalid Entity Name"
      }
    ]
    ```
    
*   **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
    
    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"
    }
    ```
    
*   **200**
    
    Headers:
    
    *   `X-Ratelimit-Remaining` (number, required) Amount of the quota that is available.  
        Example: `5`.
    *   `X-Ratelimit-Limit` (number, required) Maximum available requests per window.  
        Example: `10`.
    *   `X-Ratelimit-Reset` (number, required) Remaining time, in milliseconds, until a new rate limit window starts.  
        Example: `3000`.
*   **201**
    
    Headers:
    
    *   `X-Ratelimit-Remaining` (number, required) Amount of the quota that's available.  
        Example: `5`.
    *   `X-Ratelimit-Limit` (number, required) Maximum available requests per window.  
        Example: `10`.
    *   `X-Ratelimit-Reset` (number, required) Remaining time, in milliseconds, until a new rate limit window starts.  
        Example: `3000`.

### POST Customer Attribute Change Event Notification

`POST /notification/customerAttributeValueChangeEvent`

Security: clientIdEnforcement.

Client listener for receiving the notification customerAttributeValueChangeEvent. This endpoint handles notifications when customer attributes are modified.

#### Parameters

*   `contactToMultipleAccountsEnabled` (query, boolean) Flag to filter events based on whether a contact is associated with multiple accounts  
    Default: `false`.

#### Request body

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

Array of `object`.

*   `entityId` (_string_)  
    Example: `001xx000003GavHAAS`.
*   `entityName` (_string_)  
    Example: `Account`.
*   `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: `Delete`.
*   `enrichedFields` (_object_)
    *   `AccountId` (_string_)  
        Example: `001LT00000lBXnBYAW`.
*   `changedFields` (_object_)

_Example_

```
[
  {
    "entityId": "07kLT000000DLcvYAG",
    "entityName": "AccountContactRelation",
    "eventId": "00000dba-c1b6-ecb5-544a-e208efed43ca_2",
    "commitTimestamp": 1751280763000,
    "commitNumber": 1751280764004466700,
    "correlationId": "00000dba-c1b6-ecb5-544a-e208efed43ca",
    "changedFields": {
      "LastModifiedDate": "Mon Jun 30 10:52:43 GMT 2025",
      "AccountId": "001LT00000lBXnBYAW",
      "CreatedById": "005LT000006GmRpYAK",
      "IsActive": "true",
      "CreatedDate": "Mon Jun 30 10:52:43 GMT 2025",
      "IsDirect": "true",
      "ContactId": "003LT0000051IXtYAM",
      "CurrencyIsoCode": "USD",
      "LastModifiedById": "005LT000006GmRpYAK"
    },
    "changeEventType": "Update",
    "enrichedFields": {
      "AccountId": "001LT00000lBXnBYAW"
    }
  }
]
```

#### Responses

*   **207** Successfully processed a customer attribute change event.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    *   `entityId` (_string_)  
        Example: `07kLT000000DJHlYAO`.
    *   `message` (_string_)  
        Example: `Event Posted Successfully`.
    
    _Example_
    
    ```
    [
      {
      "entityId" : "07kLT000000DJHlYAO",
      "message" : "Event Posted Successfully"
      },
      {
      "entityId" : "07kLT000000DJJNYA4",
      "message" : "Invalid Entity Name"
      }
    ]
    ```
    
*   **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
    
    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"
    }
    ```
    
*   **200**
    
    Headers:
    
    *   `X-Ratelimit-Remaining` (number, required) Amount of the quota that is available.  
        Example: `5`.
    *   `X-Ratelimit-Limit` (number, required) Maximum available requests per window.  
        Example: `10`.
    *   `X-Ratelimit-Reset` (number, required) Remaining time, in milliseconds, until a new rate limit window starts.  
        Example: `3000`.
*   **201**
    
    Headers:
    
    *   `X-Ratelimit-Remaining` (number, required) Amount of the quota that's available.  
        Example: `5`.
    *   `X-Ratelimit-Limit` (number, required) Maximum available requests per window.  
        Example: `10`.
    *   `X-Ratelimit-Reset` (number, required) Remaining time, in milliseconds, until a new rate limit window starts.  
        Example: `3000`.

### POST Customer State Change Event Notification

`POST /notification/customerStateChangeEvent`

Security: clientIdEnforcement.

Client listener for receiving the notification customerStateChangeEvent. This endpoint handles notifications when customer states transition.

#### Parameters

*   `contactToMultipleAccountsEnabled` (query, boolean) Flag to filter events based on whether a contact is associated with multiple accounts  
    Default: `false`.

#### Request body

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

Array of `object`.

*   `entityId` (_string_)  
    Example: `001xx000003GavHAAS`.
*   `entityName` (_string_)  
    Example: `Account`.
*   `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_)
    *   `AccountId` (_string_)  
        Example: `001LT00000lBXnBYAW`.
*   `changedFields` (_object_)

_Example_

```
[
  {
    "entityId": "001LT00000lBXnBYAW",
    "entityName": "Account",
    "eventId": "000016be-b392-5d4e-f246-7c1ef2f83c62_1",
    "commitTimestamp": 1751280659000,
    "commitNumber": 1751280659527467000,
    "correlationId": "000016be-b392-5d4e-f246-7c1ef2f83c62",
    "changedFields": {
      "Status": "PicklistData: Active"
    },
    "changeEventType": "Update",
    "enrichedFields": {
      "Id": "001LT00000lBXnBYAW"
    }
  }
]
```

#### Responses

*   **207** Successfully processed a customer state change event.
    
    Media type: `application/json`. Schema: `array of object`.
    
    Array of `object`.
    
    *   `entityId` (_string_)  
        Example: `07kLT000000DJHlYAO`.
    *   `message` (_string_)  
        Example: `Event Posted Successfully`.
    
    _Example_
    
    ```
    [
      {
      "entityId" : "07kLT000000DJHlYAO",
      "message" : "Event Posted Successfully"
      },
      {
      "entityId" : "07kLT000000DJJNYA4",
      "message" : "Invalid Entity Name"
      }
    ]
    ```
    
*   **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
    
    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"
    }
    ```
    
*   **200**
    
    Headers:
    
    *   `X-Ratelimit-Remaining` (number, required) Amount of the quota that is available.  
        Example: `5`.
    *   `X-Ratelimit-Limit` (number, required) Maximum available requests per window.  
        Example: `10`.
    *   `X-Ratelimit-Reset` (number, required) Remaining time, in milliseconds, until a new rate limit window starts.  
        Example: `3000`.
*   **201**
    
    Headers:
    
    *   `X-Ratelimit-Remaining` (number, required) Amount of the quota that's available.  
        Example: `5`.
    *   `X-Ratelimit-Limit` (number, required) Maximum available requests per window.  
        Example: `10`.
    *   `X-Ratelimit-Reset` (number, required) Remaining time, in milliseconds, until a new rate limit window starts.  
        Example: `3000`.