Skip to main content
media_card_carousel Up to 10 cards with image or video, which the customer swipes below the message.

How it works

The message comes first, and the cards below it. Each card has its own media, its own text and its own buttons. The media you put in at creation is only the sample Meta reviews. At send time, each card’s image or video goes as a parameter, by handle or link, and can be a different one: the same approved carousel serves different campaigns.
Every card needs the same components. If one has text, all do. The set of buttons, type and order, is the same across cards; what changes from one card to the next is the label and the destination.

At creation and at send time

Fields in this model

Full JSON

Two JSON payloads: one creates the template, and Meta approves it once. The other sends the message, and goes on every dispatch, with that send’s values in the variables marked with braces.

1. Create the template

POST /whatsapp/businesses/{wabaId}/templates — see API reference.

2. Send it once approved

POST /v1/channels/{channelId}/messages — see Send template.

What Meta rejects here

  • Fewer than 2 or more than 10 cards.
  • A card without media.
  • One card with text and another without, or different button sets across cards.
  • The link Meta returns when you read a template (whatsapp.net, fbcdn.net, fbsbx.com domains) sent back as a sample: it comes back as invalid media sample, code 2388215.