Send WhatsApp interactive multi-product message

Send an interactive multi-product message to a single recipient. Interactive multi-product messages can only be successfully delivered if the recipient has contacted the business within the last 24 hours, otherwise template message should be used.
The API response will not contain the final delivery status, use Delivery Reports instead.

Please log in to see full path URL. Learn why.
post
/whatsapp/1/message/interactive/multi-product
Request rate limit:
4000 requests / second (per account)
Request Body schema:
application/json
collapse all -
from
required
string [ 1 .. 24 ] characters

Registered WhatsApp sender number. Must be in international format and comply with WhatsApp's requirements.

to
required
string [ 1 .. 24 ] characters

Message recipient number. Must be in international format.

messageId
string [ 0 .. 100 ] characters

The ID that uniquely identifies the message sent.

content
required
object

The content object to build a message that will be sent.

header
required
object

Header of a message containing one or more interactive elements.

type
required
string

Type of the header content. Select the type from the dropdown to view its parameters.

text
required
string [ 1 .. 60 ] characters

Content of the multi-product message header.

body
required
object

Body of a message containing one or more interactive elements.

text
required
string [ 1 .. 1024 ] characters

Content of the message body.

action
required
object

Allows you to specify catalog and product details sent in the multi-product message.

catalogId
required
string

The ID that uniquely identifies the catalog registered with Facebook and connected to the WhatsApp Business Account the sender belongs to.

sections
required
Array of objects [ 1 .. 10 ] items

An array of multi product sections.

Array
title
string [ 0 .. 24 ] characters

Title of the section. Required, if the message has more than one section.

productRetailerIds
required
Array of strings

An array of product-unique identifiers as defined in the catalog. If product retailer ID doesn't exist in your catalog, the product won't be displayed.

footer
object

Footer of a message containing one or more interactive elements.

text
required
string [ 1 .. 60 ] characters

Content of the message footer.

callbackData
string [ 0 .. 4000 ] characters

Custom client data that will be included in a Delivery Report.

notifyUrl
string [ 0 .. 2048 ] characters

The URL on your callback server to which delivery and seen reports will be sent. Delivery report format, Seen report format.

urlOptions
object

Sets up URL shortening and tracking feature.

shortenUrl
boolean
Default: true

Enable shortening of the URLs within a message. Set this to true, if you want to set up other URL options.

trackClicks
boolean
Default: true

Enable tracking of short URL clicks within a message: which URL was clicked, how many times, and by whom.

trackingUrl
string

The URL of your callback server on to which the Click report will be sent.

removeProtocol
boolean
Default: false

Remove a protocol, such as https://, from links to shorten a message. Note that some mobiles may not recognize such links as a URL.

customDomain
string

Select a predefined custom domain to use when generating a short URL.

entityId
string [ 0 .. 255 ] characters

Required for entity use in a send request for outbound traffic. Returned in notification events. For more details, see our documentation.

applicationId
string [ 0 .. 255 ] characters

Required for application use in a send request for outbound traffic. Returned in notification events. For more details, see our documentation.

Responses

200

Message accepted for delivery

400

Bad request

401

Unauthorized

403

Forbidden

429

Too Many Requests

500

Internal Server Error

Request samples

Content type
application/json
Example
Copy
Collapse all
{
  • "from": "441134960000",
  • "to": "441134960001",
  • "messageId": "a28dd97c-1ffb-4fcf-99f1-0b557ed381da",
  • "content":
    {
    • "header":
      {
      • "type": "TEXT",
      • "text": "Header"
      },
    • "body":
      {
      • "text": "Some text"
      },
    • "action":
      {
      • "catalogId": "1",
      • "sections":
        [
        • {
          • "title": "Title",
          • "productRetailerIds":
            [
            • "1",
            • "2"
            ]
          }
        ]
      }
    },
  • "callbackData": "Callback data",
  • "urlOptions":
    {}
}

Response samples

Content type
application/json
Copy
Collapse all
{
  • "to": "441134960001",
  • "messageCount": 1,
  • "messageId": "a28dd97c-1ffb-4fcf-99f1-0b557ed381da",
  • "status":
    {
    • "groupId": 1,
    • "groupName": "PENDING",
    • "id": 7,
    • "name": "PENDING_ENROUTE",
    • "description": "Message sent to next instance"
    }
}

Encountering issues

Contact our support

What's new? Check out

Release Notes

Unsure about a term? See

Glossary

Research panel

Help shape the future of our products
Learn more
Service status

Copyright @ 2006-2025 Infobip ltd.