---
title: "Send Marketing Template Message"
method: POST
path: "/{Version}/{Phone-Number-ID}/marketing_messages"
tags: ["Marketing Messages"]
---

# Send Marketing Template Message

`POST /{Version}/{Phone-Number-ID}/marketing_messages`

## Request

- Base URL: `https://graph.facebook.com`
- URL: `https://graph.facebook.com/{Version}/{Phone-Number-ID}/marketing_messages`
- Auth: HTTP bearer

Send marketing template messages using pre-approved templates. Supports optional product policy controls and message activity sharing settings.

## Path parameters

- `Version` string, required
- `Phone-Number-ID` string, required

## Headers

- `User-Agent` string
- `Authorization` string, required
- `Content-Type` 'application/json' | 'application/x-www-form-urlencoded' | 'multipart/form-data', required

## Request body

- MarketingMessageRequestPayload
  - `messaging_product` 'whatsapp', required: Messaging service used. Must be "whatsapp"
  - `recipient_type` 'individual', required: Type of recipient. Must be "individual"
  - `to` string, required: WhatsApp ID or phone number of the message recipient
  - `type` 'template', required: Type of message. Must be "template" for marketing messages
  - `template` TemplateObject, required
    - `name` string, required: Name of the template.
    - `language` LanguageObject, required
      - `policy` 'deterministic', required: The language policy the message should follow.
      - `code` string, required: The code of the language or locale to use (e.g., `"en"`, `"en_US"`).
    - `components` TemplateComponent[]: Array of `components` objects containing the parameters of the message.
      - `type` 'header' | 'body' | 'button', required: Describes the component type.
      - `sub_type` 'quick_reply' | 'url' | 'catalog': Required when `type=button`. Not used for other types. Type of button to create.
      - `parameters` unknown[]: Array of parameter objects with the content of the message.
        - unknown
      - `index` string: Required when `type=button`. Not used for other types. Position index of the button (0-9).
  - `product_policy` 'CLOUD_API_FALLBACK' | 'STRICT': Optional product policy setting
  - `message_activity_sharing` boolean: Optional flag to control message activity sharing

## Response `200`

Marketing message sent successfully

- MarketingMessageResponsePayload
  - `contacts` object[]
    - `input` string
    - `wa_id` string
  - `messages` object[]
    - `id` string
    - `message_status` 'accepted' | 'held_for_quality_assessment' | 'paused': The status of a WhatsApp message: - `accepted`: The message has been accepted by WhatsApp and is being processed - `held_for_quality_assessment`: The message is being held for quality assessment before delivery - `paused`: The message delivery has been paused
  - `messaging_product` string

## Other responses

- `400`: Bad Request - Invalid request parameters
- `401`: Unauthorized - Invalid or missing access token
- `403`: Forbidden - Template not approved or insufficient permissions

---

[API](https://skmtc.dev/meta/apis/whatsapp-business-messaging.md) - [All operations](https://skmtc.dev/meta/apis/whatsapp-business-messaging/llms.txt) - [OpenAPI document](https://skmtc.dev/meta/apis/whatsapp-business-messaging/revisions/5c1973265369?raw)
