---
title: "Update a Whatsapp message template"
method: PATCH
path: "/v2/whatsapp_message_templates/{id}"
tags: ["Whatsapp Message Templates"]
---

# Update a Whatsapp message template

`PATCH /v2/whatsapp_message_templates/{id}`

## Path parameters

- `id` string, required

## Request body

- WhatsappUpdateTemplateRequest
  - `category` 'MARKETING' | 'UTILITY' | 'AUTHENTICATION'
  - `components` union[] — Updated template components. Same structure as the create request.
    - union — A template component. Additional Meta component types not listed here are also accepted.
      - WhatsappTemplateHeaderComponent — Optional header displayed at the top of the message.
        - `type` 'HEADER', required
        - `format` 'TEXT' | 'IMAGE' | 'VIDEO' | 'DOCUMENT' | 'LOCATION', required — Header format type: TEXT (supports one variable), IMAGE, VIDEO, DOCUMENT, or LOCATION.
        - `text` string — Header text. Required when format is TEXT. Supports one variable ({{1}}). Variables cannot be at the start or end.
        - `example` object — Sample values for header variables.
          - `header_text` string[] — Sample values for text header variables.
          - `header_handle` string[] — Media handle for IMAGE, VIDEO, or DOCUMENT headers.
      - WhatsappTemplateBodyComponent — The main text content of the message. Supports multiple variable parameters ({{1}}, {{2}}, etc.). Variables cannot be at the start or end. Maximum 1024 characters.
        - `type` 'BODY', required
        - `text` string — Body text content. Use {{1}}, {{2}}, etc. for variable placeholders. Required for MARKETING and UTILITY templates. Optional for AUTHENTICATION templates where Meta provides the built-in OTP body.
        - `example` object — Sample values for body variables. Required when body text contains parameters.
          - `body_text` array[] — Array containing one array of sample values, one per variable in order.
            - string[]
      - WhatsappTemplateFooterComponent — Optional footer displayed at the bottom of the message. Does not support variables.
        - `type` 'FOOTER', required
        - `text` string — Footer text. Maximum 60 characters. For non-authentication templates.
        - `code_expiration_minutes` integer — OTP code expiration time in minutes. Used in AUTHENTICATION template footers instead of free-form text.
      - WhatsappTemplateButtonsComponent — Optional interactive buttons. Maximum 3 buttons per template.
        - `type` 'BUTTONS', required
        - `buttons` object[], required — Array of button objects. Meta supports various combinations of button types.
          - `type` 'URL' | 'PHONE_NUMBER' | 'QUICK_REPLY' | 'OTP' | 'COPY_CODE' | 'FLOW', required
          - `text` string — Button label text. Maximum 25 characters. Required for URL, PHONE_NUMBER, and QUICK_REPLY buttons. Not required for OTP buttons (Meta supplies the label).
          - `url` string — URL for URL-type buttons. Supports one variable ({{1}}).
          - `phone_number` string — Phone number in E.164 format.
          - `otp_type` 'COPY_CODE' | 'ONE_TAP'
          - `example` string[] — Sample values for URL variable.
          - `package_name` string — Android package name. Required for ONE_TAP OTP buttons.
          - `signature_hash` string — Android app signing key hash. Required for ONE_TAP OTP buttons.
          - `autofill_text` string — Custom autofill button text for ONE_TAP OTP buttons.
          - `zero_tap_terms_accepted` boolean — Whether zero-tap terms have been accepted.
          - `flow_id` string — Flow ID for FLOW-type buttons.
          - `flow_action` 'navigate' | 'data_exchange' — Flow action type for FLOW-type buttons.
          - `navigate_screen` string — Target screen name for FLOW buttons with navigate action.
      - WhatsappTemplateCarouselComponent — Carousel component for multi-card templates. Each card can contain its own header, body, and buttons.
        - `type` 'CAROUSEL', required
        - `cards` object[], required — Array of card objects, each with its own components.
          - `components` object[]

## Response `200`

Successful response with Whatsapp template

- object
  - `data` WhatsappTemplateData
    - `id` string
    - `record_type` string
    - `template_id` string
    - `name` string
    - `category` 'MARKETING' | 'UTILITY' | 'AUTHENTICATION'
    - `language` string
    - `status` string — Current template status from Meta (e.g. PENDING, APPROVED, REJECTED, PAUSED, DISABLED). Additional statuses may be returned as Meta evolves the template lifecycle.
    - `rejection_reason` string
    - `components` object[] — Template components (header, body, footer, buttons) as submitted, including example values.
    - `whatsapp_business_account` object
      - `id` string
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `4XX` — Unexpected error

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api-2/versions/8f5f4e537994/schema)
