Skip to main content

Request

Use type as interactive and set interactive.type to product_list. A multi-product message displays products from your catalog grouped in sections. The recipient can browse, view details, add items to their WhatsApp cart, and send the cart back as an order.

Field types

  • to: string (required)
  • type: string = interactive (required)
  • interactive: object (required)
  • interactive.type: string = product_list (required)
  • interactive.header: object (required)
  • interactive.header.type: string = text (required)
  • interactive.header.text: string (required)
  • interactive.body: object (required)
  • interactive.body.text: string (required)
  • interactive.footer: object (optional)
  • interactive.footer.text: string (optional)
  • interactive.action: object (required)
  • interactive.action.catalog_id: string (required)
  • interactive.action.sections: array of objects (required)
  • interactive.action.sections[].title: string (required)
  • interactive.action.sections[].product_items: array of objects (required)
  • interactive.action.sections[].product_items[].product_retailer_id: string (required)
  • tags: array of strings (optional)
  • metadata: object | string (optional)

Field behavior and limits

  • interactive.header.text is required, max 60 characters. The header type must be text.
  • interactive.body.text is required, max 1024 characters.
  • interactive.footer.text is optional, max 60 characters.
  • interactive.action.catalog_id is the ID of the Meta catalog connected to the WhatsApp Business account.
  • interactive.action.sections requires at least 1 section.
  • Across all sections, at most 30 product_items in total.
  • Product data (image, name, price, stock) is fetched by WhatsApp at delivery time — the recipient always sees the latest catalog state.
  • If none of the product_retailer_id values match a product in the catalog, the message is not delivered and an error is returned. If at least one matches, the message is sent and missing items are dropped silently.
  • Cannot be sent as a notification — only inside an existing conversation.