Free-form messages
Free-form messages are non-template messages, such as text, media, location, or interactive messages, that can be sent to users within a valid session. These messages do not require Meta approval but must follow strict delivery rules.
When can you send free-form messages?
You can send free-form messages only within 24 hours of the user's last message. This is known as the messaging window.
- The 24-hour session resets with each inbound message from the user.
- If the window expires, you must use a pre-approved template instead.
WhatsApp will reject free-form messages sent outside the 24-hour window.
Supported message types and limitations
WhatsApp supports a range of free-form message types. Each type has a specific file format and size limitation.
Message types
Message type | Supported format | Max size/Limit |
---|---|---|
Text | Plain text, emojis, Markdown (limited) | • 4,096 characters |
Image | .jpeg , .jpg , .png | • 5 MB • 8-bit, RGB or RGBA • Image caption up to 3,000 characters |
Video | .mp4, .3gp (H.264 + AAC only) | • 16 MB, single audio stream only • Video caption up to 3,000 characters |
Audio | .aac , .m4a , .amr , .mp3 , .ogg | • 16 MB |
Document | .pdf , .xls(x) , .doc(x) , .ppt(x) , .txt | • 100 MB • Document name up to 240 characters |
Sticker | .webp (static/animated) | • 100 KB (static) • 500 KB (animated) |
Location | Latitude, longitude, optional name/address | - |
Contacts | vCard object (name, phone, email, etc.) | - |
Text formatting rules
WhatsApp supports a limited subset of Markdown for formatting:
Formatting | Symbol | Example | Preview |
---|---|---|---|
Bold | Asterisk (*) | This is *bold*. | This is bold. |
Italics | Underscore (_) | This is _italics_. | This is italics. |
Strikethrough | Tilde (~) | This is ~strikethrough~. | This is |
Code | Three backticks ( ` ` `) | This is ```code```. | This is code . |
Text messages can contain up to 4,096 characters, including URLs. You can also choose to enable or disable URL previews.
Available interactive formats
Free-form messages can include several interactive elements if you are still within the 24-hour session window.
Format | Description |
---|---|
List message | Scrollable list of up to 10 items |
Button message | Up to 3 tap-to-reply buttons (text only) |
Product message | Single product card from your Meta catalog |
Multi-product message | Up to 30 products across 10 sections |
URL button message | Direct users to a specified URL |
Location request message | Prompts users to share current or nearby location |
Payments message (India and Brazil only) | Two-step order + confirmation flow over WhatsApp Payments. |
List message
Use list messages to let users select one option from a scrollable list of up to 10 items. This format is useful for workflows such as choosing a location, service category, or appointment slot.
Requirements:
- Only one item can be selected per message
- Can only be sent during a 24-hour user-initiated session
- Each section must include at least one row
Structure:
- Header (optional): Text, max 60 characters
- Body (required): Message content, max 1,024 characters
- Footer (optional): Text, max 60 characters
- List button: Visible button that opens the list, max 20 characters
- Section title: Visible group heading for rows, max 24 characters
- List items:
- Title (required): Max 24 characters
- Description (optional): Max 72 characters
- Postback: Payload value returned upon selection, max 200 characters
Button message
Send a message with up to three quick reply buttons, allowing users to respond instantly by selecting one of the predefined options. This works like quick replies in templates but is also available in free-form messages.
Structure:
- Header (optional): Text (max 60 characters) or media (image, video, or document)
- Body (required): Message content, max 1,024 characters
- Footer (optional): Text, max 20 characters
- Buttons: 1 to 3 text-only buttons, max 20 characters each
Only one button can be selected per message.
Product message
Product messages display a single product card from your Meta catalog. Users can ask questions, view product details, add the product to the card, and proceed to checkout all within WhatsApp.
Requirements:
- Meta catalog must be connected to your WhatsApp Business Account.
Structure:
- Body (required): Max 1,024 characters
- Footer (optional): Max 60 characters
- Catalog ID: Catalog ID from the Facebook account connected to your WABA
- Product ID: Must match the catalog
You can send up to 10 product messages in a horizontally scrollable view. Each card must use the same components if optional fields (for example, footer) are included.

Product messages are available over Answers, Conversations, and API (opens in a new tab).
Multi-product message
Multi-product messages enable you to showcase up to 30 products across 10 sections, allowing users to browse and add items to their cart, all within the chat.
Requirements:
- Meta catalog must be connected to your WhatsApp Business Account.
Structure:
- Header (required): Max 60 characters
- Body (required): Max 1,024 characters
- Footer (optional): Max 60 characters
- Catalog ID: Catalog ID from the Facebook account connected to your WABA
- Section title: Visible group heading, max 24 characters
- Product ID: Must match the catalog

Multi-product messages are available over Answers, Conversations, and API (opens in a new tab).
URL button message
Use a URL button message to embed clickable links in your message, allowing recipients to open websites, landing pages, or documents with one tap.
Structure:
- Body (required):
- Header (optional)
- Footer (optional)
- Button
- Label: Max 20 character
- URL: Max 2,048 characters. Can be static or include dynamic placeholders
You can also enable advanced options like shortening and tracking button URLs to tailor the message and gather valuable engagement metrics.

URL button messages are available over WhatsApp API (opens in a new tab).
Location request message
Location request message prompts users to share their location quickly. This is helpful for bookings, delivery addresses, or store locator flows.
Restrictions:
- Users cannot share their live location - only their or a nearby location.
- Can only be sent within an open 24-hour session

Location request messages are available over WhatsApp API (opens in a new tab) and can be used with the Answers Call API element.
Payments message
WhatsApp Payments allow businesses to collect payments directly in chat. It uses a two-message structure:
order_details
: Sent by the business to request payment.order_status
: Sent by the business to confirm successful payment.
Structure (per message):
- Header
- Body
- Footer
- Action: Include all the information needed to complete payment.
WhatsApp Payments is only available in selected regions (India, Brazil)
For more information, refer to WhatsApp Payments section.
Send free-form messages over the API
You can send the following free-form messages over API:
API | Description |
---|---|
Send text message (opens in a new tab) | Send a plain text message to a single or multiple recipients. |
Send image (opens in a new tab) | Send an image message with an optional caption. |
Send video (opens in a new tab) | Send a video message, optionally with caption and thumbnail. |
Send audio (opens in a new tab) | Send an audio file such as a voice recording or music clip. |
Send document (opens in a new tab) | Send a file message with optional filename. |
Send sticker (opens in a new tab) | Send a static or animated WebP sticker. |
Send location (opens in a new tab) | Share a static location pin using GPS coordinates and optional address. |
Send contact (opens in a new tab) | Send a saved contact as a vCard. |
Send interactive buttons (opens in a new tab) | Send up to three quick reply buttons in a single message. |
Send interactive list (opens in a new tab) | Send a scrollable list of items grouped into one or more sections. |
Send product message (opens in a new tab) | Send a single product from your connected Meta catalog. |
Send multi-product message (opens in a new tab) | Send a collection of up to 30 products in a scrollable format. |