---
title: "Send WhatsApp interactive product message"
method: POST
path: "/whatsapp/1/message/interactive/product"
tags: ["channels", "whatsapp", "whatsapp-outbound-messages", "send-whatsapp-interactive-messages"]
---

# Send WhatsApp interactive product message

`POST /whatsapp/1/message/interactive/product`

## Request

- Base URL: `https://api.infobip.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.infobip.com/whatsapp/1/message/interactive/product`
- Auth: one of:
  - OAuth 2
    - Client credentials
    - Token URL: `https://api.infobip.com/auth/1/oauth2/token`
  - API key in header `Authorization`
  - API key in header `Authorization`
  - HTTP basic

Send an interactive product message to a single recipient. Interactive product messages can only be successfully delivered if the recipient has contacted the business within the last 24 hours, otherwise [template message](#channels/whatsapp/send-whatsapp-template-message) should be used. <br/> The API response will not contain the final delivery status, use [Delivery Reports](#channels/whatsapp/receive-whatsapp-delivery-reports) instead.

## Request body

- F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2InteractiveProductMessage
  - `from` string, required: Registered WhatsApp sender number. Must be in international format and comply with [WhatsApp's requirements](https://www.infobip.com/docs/whatsapp/get-started/sender-registration#phone-number-what-you-need-to-know).
  - `to` string, required: Message recipient number in international format or WhatsApp business-scoped user ID.
  - `messageId` string: The ID that uniquely identifies the message sent.
  - `content` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2InteractiveProductContent, required: The content object to build a message that will be sent.
    - `action` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2InteractiveProductActionContent, required: Allows you to specify catalog and product details sent in the product message.
      - `catalogId` string, required: The ID that uniquely identifies the [catalog](https://www.infobip.com/docs/whatsapp/manage-integration#enable-meta-catalog-for-product-based-messaging) registered with Facebook and connected to the WhatsApp Business Account the sender belongs to.
      - `productRetailerId` string, required: Product-unique identifier, as defined in catalog.
    - `body` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2InteractiveBodyContent: Body of a message containing one or more [interactive elements](https://www.infobip.com/docs/whatsapp/message-types-and-templates/free-form-messages#available-interactive-formats).
      - `text` string, required: Content of the message body.
    - `footer` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2InteractiveFooterContent: Footer of a message containing one or more [interactive elements](https://www.infobip.com/docs/whatsapp/message-types-and-templates/free-form-messages#available-interactive-formats).
      - `text` string, required: Content of the message footer.
  - `callbackData` string: Custom client data that will be included in a [Delivery Report](#channels/whatsapp/receive-whatsapp-delivery-reports).
  - `notifyUrl` string: The URL on your callback server to which delivery and seen reports will be sent. [Delivery report format](#channels/whatsapp/receive-whatsapp-delivery-reports), [Seen report format](#channels/whatsapp/receive-whatsapp-seen-reports).
  - `urlOptions` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2UrlOptions: Sets up [URL shortening](https://www.infobip.com/docs/url-shortening) and tracking feature.
    - `shortenUrl` boolean: Enable shortening of the URLs within a message. Set this to `true`, if you want to set up other URL options.
    - `trackClicks` boolean: 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: 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: Required for entity use in a send request for outbound traffic. Returned in notification events. For more details, see our [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).
  - `applicationId` string: Required for application use in a send request for outbound traffic. Returned in notification events. For more details, see our [documentation](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).
  - `context` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2MessageContext: Context object to define WhatsApp-specific metadata about a message.
    - `replyToMessageId` string, required: Inbound message ID used for a reply. Contextual bubble will not appear for template messages.

## Response `200`

Message accepted for delivery

- F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2SingleMessageInfo
  - `to` string: The destination address of the message.
  - `messageCount` integer: Number of messages required to deliver.
  - `messageId` string: The ID that uniquely identifies the message sent. If not passed, it will be automatically generated and returned in a response.
  - `status` F30d78c250ad1209aef755ddde02bb131e1749b705985f0e9f1b007c900b98e2SingleMessageStatus: Indicates the [status](https://www.infobip.com/docs/essentials/response-status-and-error-codes#api-status-codes) of the message and how to recover from an error should there be any.
    - `groupId` integer: Status group ID.
    - `groupName` string: Status group name.
    - `id` integer: Status ID.
    - `name` string: Status name.
    - `description` string: Human-readable description of the status.
    - `action` string: Action that should be taken to eliminate the error.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/infobip/apis/infobip-openapi-specification.md) - [All operations](https://skmtc.dev/infobip/apis/infobip-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/infobip/apis/infobip-openapi-specification/revisions/9dcbbaf902de?raw)
