---
title: "Update a message template"
method: PATCH
path: "/api/messaging/whatsapp/templates/{id}"
tags: ["WhatsApp Templates"]
---

# Update a message template

`PATCH /api/messaging/whatsapp/templates/{id}`

Updates a template's `category` or `components`. A template can only be updated while it is **not yet approved** — once approved, delete and recreate it to make changes.

#### Permissions

The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Numbers_.

[Learn more about API scopes](/docs/platform/your-signalwire-api-space).

## Path parameters

- `id` string, required

## Request body

- UpdateWhatsAppTemplateRequest — Request body for updating a template. Provide `category`, `components`, or both. A template can only be updated while it is not yet approved.
  - `category` 'utility' | 'marketing' | 'authentication' — The category of a WhatsApp message template.
  - `components` WhatsAppTemplateComponent[] — The updated components. Required if `category` is omitted.
    - `type` string, required — The component type: `HEADER`, `BODY`, `FOOTER`, or `BUTTONS`.

## Response `200`

The request has succeeded.

- WhatsAppTemplateResponse — Response containing a single message template.
  - `id` string, uuid, required — Universal Unique Identifier.
  - `name` string, required — The template name. Lowercase letters, numbers, and underscores only.
  - `category` 'utility' | 'marketing' | 'authentication', required — The category of a WhatsApp message template.
  - `components` WhatsAppTemplateComponent[], required — The template's components (header, body, footer, buttons).
    - `type` string, required — The component type: `HEADER`, `BODY`, `FOOTER`, or `BUTTONS`.
  - `language` string, required — The template language code.
  - `parameter_format` 'named' | 'positional', required — How a template's variable placeholders are referenced.
  - `template_id` string, required — Meta's identifier for the template.
  - `template_status` 'approved' | 'archived' | 'deleted' | 'disabled' | 'flagged' | 'in_appeal' | 'limit_exceeded' | 'locked' | 'paused' | 'pending' | 'reinstated' | 'pending_deletion' | 'rejected', required — The Meta approval status of a template. A template must be `approved` before it can be used to send messages.
  - `whatsapp_business_id` string, uuid, required — Universal Unique Identifier.
  - `created_at` string, required — The date and time when the template was created.
  - `updated_at` string, required — The date and time when the template was last updated.
  - `discarded_at` string — The date and time when the template was discarded, if applicable.

## Other responses

- `400` — The request is invalid.
- `401` — Access is unauthorized.
- `404` — The server cannot find the requested resource.
- `422` — The request contains invalid parameters. See errors for details.
- `500` — An internal server error occurred.

---

[API](https://skmtc.net/signalwire/apis/signalwire-rest-api.md) · [All operations](https://skmtc.net/signalwire/apis/signalwire-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/signalwire/signalwire-rest-api/versions/05c5164b85c7/schema)
