---
schema_version: "1"
id: d91dad21b8ca375b680c03e6f9289c09891db5de55ba451033bcc9a1b81c0f50
title: Content - WhatsApp Template Message (Connect API)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/mc-core/references/generated-api-specs/mc-next-whatsapp-template.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud-growth/references/mc-next-whatsapp-template
source_site: developer.salesforce.com
content_type: documentation
content_hash: c0b77c6e70a11771fc268d90a531165308cab2c757fd918f5c7349a335430f90
products:
  - Marketing Cloud Next
  - Marketing Cloud
---
Content - WhatsApp Template Message (Connect API)

# Content - WhatsApp Template Message (Connect API)

Create and manage WhatsApp template message content and renditions in Marketing Cloud Next. Template messages use approved WhatsApp Business Account templates and support personalized parameters.

This table lists the WhatsApp template message-related use cases that the API supports.

| Supported Use Case | HTTP Verb | URI |
| --- | --- | --- |
| Create WhatsApp template message content | [POST](/docs/marketing/marketing-cloud-growth/references/mc-next-whatsapp-template?meta=createWhatsAppTemplate) | /services/data/{apiVersion}/connect/cms/contents/whatsappTemplate |
| Get WhatsApp template message content | [GET](/docs/marketing/marketing-cloud-growth/references/mc-next-whatsapp-template?meta=getWhatsAppTemplate) | /services/data/{apiVersion}/connect/cms/contents/{contentId} |
| Create a WhatsApp template message rendition | [POST](/docs/marketing/marketing-cloud-growth/references/mc-next-whatsapp-template?meta=createWhatsAppTemplateRendition) | /services/data/{apiVersion}/connect/cms/renditions/whatsappTemplate |
| Update a WhatsApp template message content variant | [PUT](/docs/marketing/marketing-cloud-growth/references/mc-next-whatsapp-template?meta=updateContentVariant) | /services/data/{apiVersion}/connect/cms/contents/variants/{variantId} |
| Delete a WhatsApp template message content variant | [DELETE](/docs/marketing/marketing-cloud-growth/references/mc-next-whatsapp-template?meta=deleteContentVariant) | /services/data/{apiVersion}/connect/cms/contents/variants/{variantId} |

WhatsApp template messages use pre-approved templates from your WhatsApp Business Account (WABA). Each template content item references a specific WABA template and defines customizable parameters for the header and body sections.

Template messages are made up of these components:

*   `whatsappTemplate`—The message definition, which contains a reference to the template in your WhatsApp Business Account.
*   `whatsappMessage`—The rendition, which contains the metadata and content of the message.

### WhatsApp Template Content Structure

The template content type uses a block-based architecture with nested sub-blocks for header and body parameters:

```json
{
  "sfdc_cms:title": "WhatsApp Template Message",
  "wabaId": "123456789",
  "wabaLang": "en",
  "wabaTemplateId": "987654321",
  "contentBlock": {
    "type": "block",
    "definition": "sfdc_cms/whatsappTemplateMessage",
    "attributes": {
      "header": { ... },
      "body": { ... }
    }
  },
  "sfdc_cms:template": {
    "definition": "@meta/123456789/en/987654321"
  }
}
```

### Content Block Architecture

The `contentBlock` property contains the WhatsApp template message structure:

*   **header**—`sfdc_cms/waTemplateHeaderText` block with text parameters
*   **body**—`sfdc_cms/waTemplateBodyText` block with text parameters

Each parameter uses the `sfdc_cms/waTemplateTextParameter` block definition.

### Content Properties

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `sfdc_cms:title` | text | Yes | The name of the content item. |
| `wabaId` | text | Yes | Your WhatsApp Business Account ID. |
| `wabaLang` | text | Yes | The language code of the template, such as `en`. |
| `wabaTemplateId` | text | Yes | The template ID from your WhatsApp Business Account. |
| `contentBlock` | block | Yes | A content block that defines the content message. |
| `description` | multiline text | No | A description of the message template. |
| `wabaManageTemplateTextLink` | text | No | A link to manage templates in your WhatsApp Business Account. |
| `wabaCountryCurrency` | text | No | A currency code for payment templates. |
| `whatsappCarouselCards` | block | No | A configuration object for a carousel card. |
| `sfdc_cms:template` | template | No | A reference to a template definition. |

### Data Providers

WhatsApp templates support these data providers for personalization:

*   `sfdc_cms__linkDataProvider`—Link data
*   `sfdc_cms__unifiedIndividualDataProvider`—Unified Individual profile data
*   `sfdc_cms__eventListDataProvider`—Event list data
*   `sfdc_cms__organizationDataProvider`—Organization data
*   `sfdc_cms__apexClassListDataProvider`—Apex class list data
*   `sfdc_cms__activationListDataProvider`—Activation list data
*   `sfdc_cms__couponListDataProvider`—Coupon list data

### Handlebars Expression Support

WhatsApp template parameter text fields support [Handlebars scripting](/docs/marketing/handlebars-for-marketing-cloud-next/overview).

**Version:** 1.0.0

Contact: Salesforce Marketing Cloud, https://www.salesforce.com/products/marketing-cloud/

## Servers

*   `https://{subdomain}.my.salesforce.com`
    *   `subdomain (default (no default)) The unique API subdomain for your Salesforce org.`

## Tags

### WhatsApp Template Content

Operations for managing WhatsApp template message content items. Templates reference pre-approved WABA templates and define personalizable parameters for header and body sections.

### WhatsApp Template Rendition

Operations for managing WhatsApp template message renditions. Renditions are the delivery-ready form of WhatsApp templates, structured for the WhatsApp Business API.

## Operations

### POST Create WhatsApp template message content

`POST /services/data/{apiVersion}/connect/cms/contents/whatsappTemplate`

Operation ID: `createWhatsAppTemplate`. Tags: WhatsApp Template Content.

Creates a WhatsApp template message content item. The content body includes the WABA template reference, language, and content block with personalizable header and body parameters.

#### Request body (required)

Media type: `application/json`. Schema: `WhatsAppTemplateContentRequest`.

_Example: textTemplateWithParameters_ Text template with header and body parameters.

```
{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__whatsappTemplate",
  "contentBody": {
    "sfdc_cms:title": "WhatsApp Template Message",
    "description": "WhatsApp Template Message for Testing.",
    "wabaId": "123456789",
    "wabaLang": "en",
    "wabaTemplateId": "987654321",
    "contentBlock": {
      "type": "block",
      "definition": "sfdc_cms/whatsappTemplateMessage",
      "attributes": {
        "header": {
          "type": "block",
          "definition": "sfdc_cms/waTemplateHeaderText",
          "attributes": {
            "type": "text",
            "parameters": [
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "Test Variable Field"
                }
              }
            ]
          }
        },
        "body": {
          "type": "block",
          "definition": "sfdc_cms/waTemplateBodyText",
          "attributes": {
            "type": "text",
            "parameters": [
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "Test Variable Field"
                }
              }
            ]
          }
        }
      }
    },
    "sfdc_cms:template": {
      "definition": "@meta/123456789/en/987654321"
    }
  }
}
```

_Example: minimalTemplate_ Minimal template with required fields only.

```
{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__whatsappTemplate",
  "contentBody": {
    "sfdc_cms:title": "Simple Notification Template",
    "wabaId": "103217599442424",
    "wabaLang": "en",
    "wabaTemplateId": "6027397137328505",
    "contentBlock": {
      "type": "block",
      "definition": "sfdc_cms/whatsappTemplateMessage",
      "attributes": {}
    }
  }
}
```

_Example: templateWithPersonalization_ Template with personalized parameters using data providers.

```
{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__whatsappTemplate",
  "contentBody": {
    "sfdc_cms:title": "Personalized Investment Offer",
    "description": "Template with personalized greeting.",
    "wabaId": "103217599442424",
    "wabaLang": "en",
    "wabaTemplateId": "6027397137328505",
    "contentBlock": {
      "type": "block",
      "definition": "sfdc_cms/whatsappTemplateMessage",
      "attributes": {
        "header": {
          "type": "block",
          "definition": "sfdc_cms/waTemplateHeaderText",
          "attributes": {
            "type": "text",
            "parameters": [
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "{{$unifiedIndividual.FirstName}}"
                }
              }
            ]
          }
        },
        "body": {
          "type": "block",
          "definition": "sfdc_cms/waTemplateBodyText",
          "attributes": {
            "type": "text",
            "parameters": [
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "{{$unifiedIndividual.FirstName}}"
                }
              },
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "{{$organization.Name}}"
                }
              }
            ]
          }
        }
      }
    },
    "sfdc_cms:template": {
      "definition": "@meta/103217599442424/en/6027397137328505"
    },
    "lightning:dataProviders": [
      {
        "sfdcExpressionKey": "$unifiedIndividual",
        "definition": "sfdc_cms__unifiedIndividualDataProvider",
        "attributes": {
          "objectApiName": "UnifiedIndividual__dlm"
        }
      },
      {
        "sfdcExpressionKey": "$organization",
        "definition": "sfdc_cms__organizationDataProvider",
        "attributes": {}
      }
    ]
  }
}
```

_Example: templateWithCarouselCards_ Template with carousel cards.

```
{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__whatsappTemplate",
  "contentBody": {
    "sfdc_cms:title": "Product Carousel Template",
    "description": "Multi-card carousel WhatsApp template.",
    "wabaId": "103217599442424",
    "wabaLang": "en",
    "wabaTemplateId": "8834521098765432",
    "contentBlock": {
      "type": "block",
      "definition": "sfdc_cms/whatsappTemplateMessage",
      "attributes": {
        "body": {
          "type": "block",
          "definition": "sfdc_cms/waTemplateBodyText",
          "attributes": {
            "type": "text",
            "parameters": [
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "Summer Collection"
                }
              }
            ]
          }
        }
      }
    },
    "whatsappCarouselCards": {
      "type": "block",
      "definition": "sfdc_cms__whatsappCarouselCards",
      "attributes": {}
    },
    "sfdc_cms:template": {
      "definition": "@meta/103217599442424/en/8834521098765432"
    }
  }
}
```

_Example: templateWithCurrency_ Payment template with country currency.

```
{
  "contentSpaceOrFolderId": "0Zuxx00000003M5CAI",
  "contentType": "sfdc_cms__whatsappTemplate",
  "contentBody": {
    "sfdc_cms:title": "Payment Confirmation Template",
    "description": "Payment confirmation with INR currency.",
    "wabaId": "103217599442424",
    "wabaLang": "en",
    "wabaTemplateId": "7712345678901234",
    "wabaCountryCurrency": "INR",
    "contentBlock": {
      "type": "block",
      "definition": "sfdc_cms/whatsappTemplateMessage",
      "attributes": {
        "body": {
          "type": "block",
          "definition": "sfdc_cms/waTemplateBodyText",
          "attributes": {
            "type": "text",
            "parameters": [
              {
                "type": "block",
                "definition": "sfdc_cms/waTemplateTextParameter",
                "attributes": {
                  "type": "text",
                  "text": "5000"
                }
              }
            ]
          }
        }
      }
    },
    "sfdc_cms:template": {
      "definition": "@meta/103217599442424/en/7712345678901234"
    }
  }
}
```

#### Responses

*   **201** WhatsApp template message content created successfully.
    
    Media type: `application/json`. Schema: `WhatsAppTemplateContentResponse`.
    
    _Example: complete_ Complete response.
    
    ```
    {
      "apiName": "MCJUR5WKNRHZFP7NAUQOMMNJ7CI4",
      "contentBody": {
        "sfdc_cms:title": "WhatsApp Template Message",
        "description": "WhatsApp Template Message for Testing.",
        "wabaId": "123456789",
        "wabaLang": "en",
        "wabaTemplateId": "987654321",
        "contentBlock": {
          "type": "block",
          "definition": "sfdc_cms/whatsappTemplateMessage",
          "attributes": {
            "header": {
              "type": "block",
              "definition": "sfdc_cms/waTemplateHeaderText",
              "attributes": {
                "type": "text",
                "parameters": [
                  {
                    "type": "block",
                    "definition": "sfdc_cms/waTemplateTextParameter",
                    "attributes": {
                      "type": "text",
                      "text": "Test Variable Field"
                    }
                  }
                ]
              }
            },
            "body": {
              "type": "block",
              "definition": "sfdc_cms/waTemplateBodyText",
              "attributes": {
                "type": "text",
                "parameters": [
                  {
                    "type": "block",
                    "definition": "sfdc_cms/waTemplateTextParameter",
                    "attributes": {
                      "type": "text",
                      "text": "Test Variable Field"
                    }
                  }
                ]
              }
            }
          }
        },
        "sfdc_cms:template": {
          "definition": "@meta/123456789/en/987654321"
        }
      },
      "contentFqn": "marketing--Default_Content_Workspace.sfdc_cms__whatsappTemplate--MCJUR5WKNRHZFP7NAUQOMMNJ7CI4",
      "contentKey": "MCJUR5WKNRHZFP7NAUQOMMNJ7CI4",
      "contentSpace": {
        "id": "0ZuSB000002FYzW0AW",
        "resourceUrl": "/services/data/v65.0/connect/cms/spaces/0ZuSB000002FYzW"
      },
      "contentType": {
        "fullyQualifiedName": "sfdc_cms__whatsappTemplate"
      },
      "createdBy": {
        "id": "005SB00000eaki1YAA",
        "name": "Admin User",
        "resourceUrl": "/services/data/v65.0/chatter/users/005SB00000eaki1YAA"
      },
      "createdDate": "2026-06-16T20:34:56.000Z",
      "externalId": null,
      "folder": {
        "id": "9PuSB000002KUDo0AO",
        "resourceUrl": "/services/data/v65.0/connect/cms/folders/9PuSB000002KUDo0AO"
      },
      "isPublished": false,
      "language": "en_US",
      "lastModifiedBy": {
        "id": "005SB00000eaki1YAA",
        "name": "Admin User",
        "resourceUrl": "/services/data/v65.0/chatter/users/005SB00000eaki1YAA"
      },
      "lastModifiedDate": "2026-06-16T20:34:56.000Z",
      "managedContentId": "20YSB000004SkOz2AK",
      "managedContentVariantId": "9PsSB0000045XAj0AM",
      "managedContentVersionId": "5OUSB000004K7np4AC",
      "status": {
        "label": "Draft",
        "status": "Draft"
      },
      "title": "WhatsApp Template Message",
      "urlName": "whatsapp-template-message",
      "versionNumber": "1.1"
    }
    ```
    
*   **400** Invalid request body.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: missingTitle_ Missing required sfdc\_cms:title.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'sfdc_cms:title' is missing",
      "details": [
        {
          "field": "contentBody.sfdc_cms:title",
          "message": "Title: Complete this field."
        }
      ]
    }
    ```
    
    _Example: missingWabaId_ Missing required wabaId.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'wabaId' is missing",
      "details": [
        {
          "field": "contentBody.wabaId",
          "message": "WhatsApp Business Account ID: Complete this field."
        }
      ]
    }
    ```
    
    _Example: missingWabaLang_ Missing required wabaLang.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'wabaLang' is missing",
      "details": [
        {
          "field": "contentBody.wabaLang",
          "message": "Template language: Complete this field."
        }
      ]
    }
    ```
    
    _Example: missingWabaTemplateId_ Missing required wabaTemplateId.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'wabaTemplateId' is missing",
      "details": [
        {
          "field": "contentBody.wabaTemplateId",
          "message": "WhatsApp Template ID: Complete this field."
        }
      ]
    }
    ```
    
    _Example: missingContentBlock_ Missing required contentBlock.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'contentBlock' is missing",
      "details": [
        {
          "field": "contentBody.contentBlock",
          "message": "Content Block: Complete this field."
        }
      ]
    }
    ```
    
    _Example: additionalProperties_ Additional properties not allowed.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Additional properties are not allowed",
      "details": [
        {
          "field": "contentBody.invalidProperty",
          "message": "You can't add the invalidProperty property because additionalProperties is set to false."
        }
      ]
    }
    ```
    
    _Example: descriptionTooLong_ The description exceeds the maximum length.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Field exceeds maximum length",
      "details": [
        {
          "field": "contentBody.description",
          "message": "Description must be 255 characters or fewer"
        }
      ]
    }
    ```
    
    _Example: invalidCurrency_ Invalid wabaCountryCurrency value.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Invalid enum value for 'wabaCountryCurrency'",
      "details": [
        {
          "field": "contentBody.wabaCountryCurrency",
          "message": "Value must be one of: INR, BRL"
        }
      ]
    }
    ```
    
*   **401** Unauthorized.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "UNAUTHORIZED",
      "message": "Authentication credentials are missing or invalid"
    }
    ```
    
*   **403** Forbidden.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "FORBIDDEN",
      "message": "Insufficient permissions to create WhatsApp template content"
    }
    ```
    
*   **500** Internal server error.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred while processing the request"
    }
    ```
    
*   **503** Service unavailable.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "SERVICE_UNAVAILABLE",
      "message": "The service is temporarily unavailable. Please try again later"
    }
    ```
    

### GET Get WhatsApp template message content by ID

`GET /services/data/{apiVersion}/connect/cms/contents/{contentId}`

Operation ID: `getWhatsAppTemplate`. Tags: WhatsApp Template Content.

Retrieves a specific WhatsApp template message content item by its unique content ID.

#### Parameters

*   `contentId` (path, string, required) Unique identifier for the content item.
    
    _Example_
    
    ```
    20Yxx0000006GHTEA2
    ```
    

#### Responses

*   **200** WhatsApp template message content retrieved successfully.
    
    Media type: `application/json`. Schema: `WhatsAppTemplateContentResponse`.
    
    _Example complete: same as POST /services/data/{apiVersion}/connect/cms/contents/whatsappTemplate 201 response._ Complete response.
    
    _Example: complete_ Complete response.
    
*   **401** Unauthorized.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "UNAUTHORIZED",
      "message": "Authentication credentials are missing or invalid"
    }
    ```
    
*   **403** Forbidden.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "FORBIDDEN",
      "message": "Insufficient permissions to read WhatsApp template content"
    }
    ```
    
*   **404** Content not found.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "NOT_FOUND",
      "message": "Content item with the specified ID does not exist"
    }
    ```
    
*   **500** Internal server error.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred while processing the request"
    }
    ```
    
*   **503** Service unavailable.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "SERVICE_UNAVAILABLE",
      "message": "The service is temporarily unavailable. Please try again later"
    }
    ```
    

### POST Create WhatsApp template message rendition

`POST /services/data/{apiVersion}/connect/cms/renditions/whatsappTemplate`

Operation ID: `createWhatsAppTemplateRendition`. Tags: WhatsApp Template Rendition.

Creates a WhatsApp template message rendition. The rendition contains metadata and content configurations used for delivery processing through the WhatsApp Business API.

The rendition is shared with WhatsApp session messages and uses the `sfdc_cms__whatsappMessage` rendition type.

#### Request body (required)

Media type: `application/json`. Schema: `WhatsAppTemplateRenditionRequest`.

_Example: templateRendition_ Standard template message rendition.

```
{
  "metadata": {
    "type": "sfdc_cms__whatsappTemplate",
    "templateId": "6027397137328505",
    "templateName": "investment_offer",
    "templateLanguage": "en",
    "templateCategory": "MARKETING",
    "contentType": "Template Message",
    "wabaId": "103217599442424",
    "messagePurpose": "Promotional"
  },
  "content": {
    "recipient_type": "individual",
    "template": {
      "name": "investment_offer",
      "language": {
        "code": "en"
      }
    },
    "messaging_product": "whatsapp",
    "type": "template"
  },
  "lightning:dataProviders": [
    {
      "sfdcExpressionKey": "$unifiedIndividual",
      "definition": "sfdc_cms__unifiedIndividualDataProvider",
      "attributes": {
        "objectApiName": "UnifiedIndividual__dlm"
      }
    }
  ]
}
```

_Example: minimalRendition_ Minimal rendition with required fields.

```
{
  "metadata": {
    "type": "sfdc_cms__whatsappTemplate",
    "templateId": "987654321",
    "templateName": "hello_world",
    "templateLanguage": "en",
    "templateCategory": "UTILITY",
    "contentType": "Template Message",
    "wabaId": "123456789",
    "messagePurpose": "Transactional"
  },
  "content": {
    "recipient_type": "individual",
    "template": {
      "name": "hello_world",
      "language": {
        "code": "en"
      }
    },
    "messaging_product": "whatsapp",
    "type": "template"
  }
}
```

#### Responses

*   **201** WhatsApp template rendition created successfully.
*   **400** Invalid request body.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: missingMetadata_ Missing metadata field.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'metadata' is missing",
      "details": [
        {
          "field": "metadata",
          "message": "This field is required"
        }
      ]
    }
    ```
    
    _Example: missingContent_ Missing content field.
    
    ```
    {
      "error": "VALIDATION_ERROR",
      "message": "Required field 'content' is missing",
      "details": [
        {
          "field": "content",
          "message": "This field is required"
        }
      ]
    }
    ```
    
*   **401** Unauthorized.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "UNAUTHORIZED",
      "message": "Authentication credentials are missing or invalid"
    }
    ```
    
*   **403** Forbidden.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "FORBIDDEN",
      "message": "Insufficient permissions to create WhatsApp template renditions"
    }
    ```
    
*   **500** Internal server error.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred while processing the request"
    }
    ```
    
*   **503** Service unavailable.
    
    Media type: `application/json`. Schema: `Error`.
    
    _Example: response_ Example response.
    
    ```
    {
      "error": "SERVICE_UNAVAILABLE",
      "message": "The service is temporarily unavailable. Please try again later"
    }
    ```
    

### PUT Update WhatsApp template message variant

`PUT /services/data/{apiVersion}/connect/cms/contents/variants/{variantId}`

Operation ID: `updateContentVariant`. Tags: Content Lifecycle.

Updates a WhatsApp template message by creating a variant. Content updates operate on the content variant (the `managedContentVariantId` returned when the content was created), not on the content item ID.

#### Parameters

*   `variantId` (path, string, required) The `managedContentVariantId` returned in the original creation request.  
    Example: `9PsSB000004Cw170AC`.

#### Request body (required)

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

*   `contentBody` (_object_, required) The full content body for the message variant. Must contain either an `sfdc_cms:block` or a `rawHtml` block but not both.

_Example: complete_ Complete request.

```
{
  "contentBody": {
    "sfdc_cms:title": "Updated Content Item"
  }
}
```

#### Responses

*   **200** Variant updated successfully.
    
    Media type: `application/json`. Schema: `object`.
    
    _Example: complete_ Complete response.
    
    ```
    {}
    ```
    
*   **400** Invalid request body.
*   **404** Variant not found.

### DELETE Delete WhatsApp template message variant

`DELETE /services/data/{apiVersion}/connect/cms/contents/variants/{variantId}`

Operation ID: `deleteContentVariant`. Tags: Content Lifecycle.

Deletes a WhatsApp template message by deleting its variant. Content deletions operate on the content variant (the `managedContentVariantId` returned when the content was created), not on the content item ID.

#### Parameters

*   `variantId` (path, string, required) The `managedContentVariantId` returned in the original creation request.  
    Example: `9PsSB000004Cw170AC`.

#### Responses

*   **204** Variant deleted successfully (no content).
*   **404** Variant not found.

## Schemas

### WhatsAppTemplateContentRequest

Request to create a WhatsApp template message content item.

*   `contentSpaceOrFolderId` (_string_, required) The ID of the content space or folder to create the content in.
*   `contentType` (_string_, required) Must be `sfdc_cms__whatsappTemplate`.  
    Allowed values: `sfdc_cms__whatsappTemplate`.
*   `contentBody` (_WhatsAppTemplateContentBody_, required)

### WhatsAppTemplateContentResponse

Response structure returned when creating or retrieving WhatsApp template content. This envelope is standard across all CMS content types.

*   `apiName` (_string_) System-generated API name for the content item.
*   `contentBody` (_WhatsAppTemplateContentBody_)
*   `contentFqn` (_string_, nullable) Fully qualified name including workspace and content type.
*   `contentKey` (_string_) 28-character alphanumeric content key used for cross-references.
*   `contentSpace` (_object_)
    *   `id` (_string_)
    *   `resourceUrl` (_string_)
*   `contentType` (_object_)
    *   `fullyQualifiedName` (_string_)
*   `createdBy` (_object_)
    *   `id` (_string_)
    *   `name` (_string_)
    *   `resourceUrl` (_string_)
*   `createdDate` (_string (date-time)_)
*   `externalId` (_string_, nullable) An external identifier for the template message, if one is set.
*   `folder` (_object_)
    *   `id` (_string_)
    *   `resourceUrl` (_string_)
*   `isPublished` (_boolean_)
*   `language` (_string_)
*   `lastModifiedBy` (_object_)
    *   `id` (_string_)
    *   `name` (_string_)
    *   `resourceUrl` (_string_)
*   `lastModifiedDate` (_string (date-time)_)
*   `managedContentId` (_string_) The Salesforce record ID for the managed content item.
*   `managedContentVariantId` (_string_) The variant ID for this content version.
*   `managedContentVersionId` (_string_) The version ID for this specific content version.
*   `status` (_object_)
    *   `label` (_string_)
    *   `status` (_string_)  
        Allowed values: `Draft`, `Published`.
*   `title` (_string_) The display title of the content.
*   `urlName` (_string_) URL-friendly slug auto-generated from title.
*   `versionNumber` (_string_) Content version number.

### Error

*   `error` (_string_, required) Error code or type.
*   `message` (_string_, required) Human-readable error message.
*   `details` (_array of object_) Additional error details.
    *   `field` (_string_) Field path that caused the error.
    *   `message` (_string_) Field-specific error message.

### WhatsAppTemplateRenditionRequest

Request structure for WhatsApp template message rendition. The rendition is the delivery-ready form of a WhatsApp template, containing metadata for routing and content structured for the WhatsApp Business API.

*   `metadata` (_WhatsAppRenditionMetadata_, required)
*   `content` (_WhatsAppRenditionContent_, required)
*   `lightning:dataProviders` (_array of DataProvider_) Data provider configurations for personalization.

### WhatsAppTemplateContentBody

The content body for a WhatsApp template message. Contains CMS metadata, WhatsApp Business Account template identifiers, and the content block with parameters that can be personalized.

*   `sfdc_cms:title` (_string_, required) The name of the template content item.
*   `description` (_string_) Description of the template message.  
    Maximum length: 255.
*   `wabaId` (_string_, required) The ID of the WhatsApp Business Account that owns the template.
*   `wabaLang` (_string_, required) The language code for the template, such as `en_US` or `pt_BR`. This value must match a language variant registered for the template in WhatsApp.
*   `wabaTemplateId` (_string_, required) The template ID from the WhatsApp Business Account. This is the unique identifier that WhatsApp assigns to the approved template.
*   `wabaManageTemplateTextLink` (_string_) An optional link to the WhatsApp Business Account template management interface.
*   `wabaCountryCurrency` (_string_) A country currency code for payment templates. This property applies only to templates that include payment components.  
    Allowed values: `INR`, `BRL`.
*   `contentBlock` (_WhatsAppTemplateMessageBlock_, required)
*   `whatsappCarouselCards` (_WhatsAppCarouselCardsBlock_)
*   `sfdc_cms:template` (_TemplateReference_)
*   `lightning:dataProviders` (_array of DataProvider_) Data providers for personalization expressions.

### WhatsAppRenditionMetadata

Metadata for the WhatsApp template rendition. Contains template identification, categorization, and routing information.

*   `type` (_string_) Content type identifier.
*   `templateId` (_string_) WABA template ID.
*   `templateName` (_string_) Template name as registered in WABA.
*   `templateLanguage` (_string_) Template language code.
*   `templateCategory` (_string_) WhatsApp template category.  
    Allowed values: `MARKETING`, `UTILITY`, `AUTHENTICATION`.
*   `contentType` (_string_) Human-readable content type label.
*   `wabaId` (_string_) WhatsApp Business Account ID.
*   `messagePurpose` (_string_) Message purpose classification.  
    Allowed values: `Promotional`, `Transactional`.

### WhatsAppRenditionContent

Content payload for WhatsApp template delivery. Structured according to the WhatsApp Business API template message format.

*   `recipient_type` (_string_) Recipient type for delivery.  
    Allowed values: `individual`.
*   `template` (_object_) Template identification for WhatsApp Business API.
    *   `name` (_string_) Template name as registered in WABA.
    *   `language` (_object_) Language configuration.
        *   `code` (_string_) Language code.
*   `messaging_product` (_string_) Messaging product identifier.  
    Allowed values: `whatsapp`.
*   `type` (_string_) Message type.  
    Allowed values: `template`.

### DataProvider

Data provider configuration for personalization expressions. Data providers supply runtime data for Handlebars merge fields in template parameters.

*   `sfdcExpressionKey` (_string_) Expression key prefix used in Handlebars expressions. Available keys: `$link`, `$unifiedIndividual`, `$eventList`, `$organization`, `$apexClassList`, `$activationList`, `$couponList`.
*   `definition` (_string_) Data provider block definition.  
    Allowed values: `sfdc_cms__linkDataProvider`, `sfdc_cms__unifiedIndividualDataProvider`, `sfdc_cms__eventListDataProvider`, `sfdc_cms__organizationDataProvider`, `sfdc_cms__apexClassListDataProvider`, `sfdc_cms__activationListDataProvider`, `sfdc_cms__couponListDataProvider`.
*   `attributes` (_object_) Data provider configuration attributes. Structure varies by provider type. For `sfdc_cms__linkDataProvider`, includes `allowedFields` (for example, \["PreferenceCenterUrl"\]). For `sfdc_cms__unifiedIndividualDataProvider`, includes `objectApiName`.

### WhatsAppTemplateMessageBlock

The content block for a WhatsApp template message. Contains the structured header and body sub-blocks with text parameters.

The block uses the `sfdc_cms/whatsappTemplateMessage` definition, and its `attributes` contain `header` and `body` sub-blocks.

*   `type` (_string_, required) Always "block".  
    Allowed values: `block`.
*   `definition` (_string_, required) Block definition identifier for WhatsApp template messages.  
    Allowed values: `sfdc_cms/whatsappTemplateMessage`.
*   `attributes` (_WhatsAppTemplateMessageAttributes_, required)

### WhatsAppCarouselCardsBlock

Carousel cards block for WhatsApp template messages. Used when the template in your WhatsApp Business Account includes a carousel component with multiple cards.

The block can contain `sfdc_cms__whatsappCarouselCards` blocks.

*   `type` (_string_) Always "block".  
    Allowed values: `block`.
*   `definition` (_string_) Carousel cards block definition.  
    Allowed values: `sfdc_cms__whatsappCarouselCards`.
*   `attributes` (_object_) Carousel card configuration attributes.

### TemplateReference

A reference to the template type. Contains a definition string that encodes the language, the template ID in Marketing Cloud Next (`templateId`), and the template ID from your WhatsApp Business Account (`wabaId`). Use the format `@meta/{wabaId}/{lang}/{templateId}`.

*   `definition` (_string_, required) The template definition path in the format `@meta/{wabaId}/{lang}/{templateId}`. This links the CMS content item to the specific template variant in your WhatsApp Business Account.  
    Pattern: ^@meta/\[^/\]+/\[^/\]+/\[^/\]+$.

### WhatsAppTemplateMessageAttributes

Attributes of the WhatsApp template message block. Contains optional `header` and `body` sub-blocks for template sections that require personalized parameters.

*   `header` (_WhatsAppTemplateHeaderBlock_)
*   `body` (_WhatsAppTemplateBodyBlock_)

### WhatsAppTemplateHeaderBlock

Header text block for the WhatsApp template. Contains text-type parameters that map to the template header variables defined in your WhatsApp Business Account.

*   `type` (_string_, required) Always "block".  
    Allowed values: `block`.
*   `definition` (_string_, required) Header text block definition.  
    Allowed values: `sfdc_cms/waTemplateHeaderText`.
*   `attributes` (_WhatsAppTemplateTextSectionAttributes_, required)

### WhatsAppTemplateBodyBlock

Body text block for the WhatsApp template. Contains text-type parameters that map to the template body variables defined in your WhatsApp Business Account.

*   `type` (_string_, required) Always "block".  
    Allowed values: `block`.
*   `definition` (_string_, required) Body text block definition.  
    Allowed values: `sfdc_cms/waTemplateBodyText`.
*   `attributes` (_WhatsAppTemplateTextSectionAttributes_, required)

### WhatsAppTemplateTextSectionAttributes

Attributes for a template text section (header or body). Contains the content type and an ordered array of text parameters.

*   `type` (_string_, required) Content type of the section (currently only "text" is supported).  
    Allowed values: `text`.
*   `parameters` (_array of WhatsAppTemplateTextParameter_, required) Ordered list of text parameters. Each parameter corresponds to a numbered placeholder ({{1}}, {{2}}, and so on) in the WABA template.

### WhatsAppTemplateTextParameter

A single text parameter for a WhatsApp template section. Maps to a numbered variable placeholder in the template in your WhatsApp Business Account, such as {{1}}, {{2}}. Supports Handlebars expressions for personalization.

*   `type` (_string_, required) Always "block".  
    Allowed values: `block`.
*   `definition` (_string_, required) Text parameter block definition.  
    Allowed values: `sfdc_cms/waTemplateTextParameter`.
*   `attributes` (_object_, required)
    *   `type` (_string_, required) Parameter type (currently only "text" is supported).  
        Allowed values: `text`.
    *   `text` (_string_, required) The text value for this parameter. Can be a static string or a Handlebars personalization expression (for example, `{{$unifiedIndividual.FirstName}}`).

### WhatsAppTemplateListResponse

Paginated list of WhatsApp template content items.

*   `items` (_array of WhatsAppTemplateContentResponse_) List of content items.
*   `nextPageToken` (_string_) Token for retrieving the next page of results (null if no more pages).
*   `totalCount` (_integer_) Total number of matching content items.