Send Catalog Message

curl --location --request POST '' \
--header 'apikey: {{api_key}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'source={{source}}' \
--data-urlencode '{{srcname}}' \
--data-urlencode 'destination={{destination}}' \
--data-urlencode 'message={
      "type": "product_details",
      "subType": "catalog_message",
      "body": {
        "text":"body content!"
      "footer": {
        "text":"footer content!"
      "thumbnailId": "{{product_retailer_id}}"
  }' \
--data-urlencode 'channel=whatsapp' \
--data-urlencode 'disablePreview=true'

Meta Payloads Example

  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "<receipientPhoneNumber>",
  "type": "interactive",
  "interactive" : {
    "type" : "catalog_message",
    "body" : {
      "text": "Thanks for your order! Tell us what address you’d like this order delivered to."
    "action": {
      "name": "catalog_message",
      "parameters": { // *Optional
        "thumbnail_product_retailer_id": "<Product-retailer-id>"


Status CodeResponseComment
Success 200 {
"status": "submitted",
"messageId": "4bed9a90-9f7a-4584-be5b-8ee1cba61a01"
Error 401{
"message": {
"message": "Authentication Failed"
"status": "error"
When APIKey authentication fails or apikey is not sent

Request Parameters

apikeyApikey of the account where the app is to be createdShould be a valid apikey
sourceSource Phone Number
src.nameSource App Name
destinationDestination phone number
messageCatalog message payload
channelChannel to send messages to- Must be WhatsApp
disablePreviewWhether to disable preview of url

Message Payloads

typeMessage typeShould be product_detailsfor product messages
sub_typeMessage Sub TypeShould be product_detailsfor product messages
bodyMessage Body Content
footerMessage Footer contentOptional
thumbnailIdProduct Id to be shown as Thumbnail for catalogShould contain valid product IDs from the catalog connected to Waba