Marketing Messages

Marketing template messaging hub: send paths (Cloud API and MM API), specialty template types, opt-out handling, billing, quality, and compliance.

What Counts as Marketing

A marketing message is a template message intended to promote, re-engage, or drive new user action. Examples include product or feature announcements, promotional campaigns, and seasonal reminders or win-back campaigns.

If content mixes utility and promotional intent, Meta will reclassify it as marketing — see Template Category Reclassification.

Two Send Paths: Cloud API vs MM API

Marketing templates are the only template category that can be sent through two different endpoints:

Send pathEndpointWhen to use
Cloud API (default)POST /<PHONE_NUMBER_ID>/messagesAll accounts, all marketing templates. Standard delivery, no creative or delivery optimizations.
Marketing Messages API for WhatsApp (MM API)POST /<PHONE_NUMBER_ID>/marketing_messagesEligible WABAs that have signed the MM API ToS. Adds quality-based delivery optimization, creative optimizations, conversion measurement, longer TTL, and a max-price beta.

Both paths use the same template assets, the same phone_number_id, the same access token permissions, and the same per-message billing model. Choosing MM API is opt-in and reversible. See Marketing Messages API for WhatsApp for the full mechanics, and MM API Onboarding for how to enable it.

Marketing Pages in This Section

Prerequisites

Before sending any marketing template:

  • An approved template with category MARKETING.
  • Documented user opt-in for marketing communication (see Compliance).
  • Sending from a healthy phone number (AVAILABLE — see Health Monitoring).

For MM API specifically, additionally: ToS signed for the WABA, and (for conversion measurement) a Meta Pixel or Conversions API integration.

Specialty Marketing Templates

Beyond the standard custom marketing template (header + body + footer + buttons), Meta supports several specialty marketing template types. All are created through the same /<WABA_ID>/message_templates endpoint by varying the components array.

TypeWhat it does
Custom marketingStandard structure: optional header, required body, optional footer, up to 10 buttons
Coupon codeSingle copy_code button copies an offer code to the recipient's clipboard on tap (max 20 chars)
Limited-time offerlimited_time_offer component with optional countdown timer to a Unix-millisecond expiration. WhatsApp web/desktop users see a "not supported" placeholder
Media card carouselcarousel component with up to 10 media cards (image or video header per card, optional body, up to 2 buttons per card). All cards must share the same component shape
Product card carouselSame shape as media carousel but cards reference catalog products (keeps the user inside WhatsApp instead of opening the browser)
Multi-productUp to 30 products from your catalog organized into up to 10 sections, in one message
Single-productOne product card with shop-in-WhatsApp behavior
CatalogFull product catalog browsable inside WhatsApp
Call permission requestRequired body + call_permission_request component; recipient grants/denies permission for your business to call them. Cannot be combined with other interactive components

Body text is required and must not be empty. Footer components are not supported on limited-time offer templates. Specialty components frequently exclude or require other components — refer to Meta's marketing template documentation for the exact component matrix per type before building.

User Preferences and Opt-Out

WhatsApp gives recipients a per-business "Offers and announcements" setting with three actions:

User actionWebhook?Effect on sends
Mark "Interested" / "Not interested"NoAffects per-user marketing limits between you and that user
Stop marketing messagesYes (user_preferences)API accepts the request but does not deliver. Status webhook returns failed with code 131050
Resume marketing messagesYes (user_preferences)Delivery resumes

Subscribe to the user_preferences webhook field to track stop/resume actions. Suppress users on failed + 131050 to avoid wasting send budget on undeliverable recipients.

Per-User Marketing Limits

WhatsApp dynamically caps how many marketing template messages any one user receives across all businesses, weighted by that user's individual marketing-message read rate. You cannot inspect or override this limit; it is enforced by Meta. Per-user limits are not active in the EEA, UK, Japan, and South Korea — but per-recipient quality signals still apply globally.

The simplest mitigations: keep templates relevant, send only to users who actively opted in, and don't reuse the same template too frequently.

Billing and Windows

  • Marketing template messages are billed by Meta under current rate-card rules — see Pricing.
  • Inside the 72-hour free entry point window, marketing messages are free.
  • Marketing templates do not have volume tiers — only utility and authentication do.
  • Both /messages and /marketing_messages use the same per-message billing model. The status webhook pricing.category distinguishes them: marketing for Cloud API sends, marketing_lite for MM API sends.

Dualhook does not charge per message and does not change Meta billing classification.

Content and Compliance

  • Keep claims accurate and avoid misleading urgency.
  • Do not send prohibited content categories.
  • Use clear, user-friendly language with explicit brand identity.
  • Respect opt-out handling and suppress users who revoked consent.

Note: marketing messages to recipients in the United States are blocked by Meta with error 131049 since April 1, 2025 — this is platform-wide and not specific to MM API.

Quality and Deliverability

Marketing sends affect quality rating more quickly than transactional traffic. If quality degrades:

  • Slow down campaign volume.
  • Review audience targeting and opt-in quality.
  • Reduce repetitive or low-value promotional content.

Persistent negative feedback can reduce messaging limits or lead to restrictions by Meta.

Related

  • Marketing Messages API for WhatsAppMM API for WhatsApp: the /marketing_messages endpoint, feature comparison vs Cloud API, status webhook shape, fallback behavior, and the disable-marketing-on-Cloud-API toggle.
  • MM API OnboardingOnboarding a WABA to MM API for WhatsApp: eligibility check (marketing_messages_onboarding_status), Terms of Service, Embedded Signup with marketing_messages_lite, and the MM_LITE_TERMS_SIGNED webhook.
  • Marketing Conversion TrackingMeasure conversions from marketing messages with Meta Pixel, Conversions API, and the Meta SDK. Includes fbclid handling, the click-event webhook, and Android deep-link attribution.
  • Marketing Creative OptimizationsConfigure Meta's automatic creative optimizations on MM API marketing templates: creative_features_spec at template and WABA level, opt-in/opt-out per key.
  • Marketing Deep LinksMap a URL button on a marketing template to an Android app deep link via app_deep_link, with fallback URLs for non-Android clients and uninstalled-app users.
  • Marketing Max-Price (Beta)Set a maximum price per marketing message delivery on MM API for WhatsApp using bid_spec. Includes per-message multiplier, reach estimation, and rollout phases.
  • TemplatesTemplate lifecycle, categories, and management through Dualhook and Meta Graph API.
  • Utility MessagesUtility template messaging hub: supported components and buttons, specialty types (location, call permission), CSW-free billing, volume tiers, content rules, and recategorization.
  • Capacity, Quality & LimitsAPI rate limits, messaging limit tiers, quality rating, and scaling guidance.
Browse more docsStart Free Trial