> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# whatsapp

> WhatsApp Business API

**Server path:** `/whatsapp` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                    | Description                                            |
| ----------------------------------------------------------------------- | ------------------------------------------------------ |
| [`whatsapp_create_message_template`](#whatsapp_create_message_template) | Create a new message template                          |
| [`whatsapp_delete_message_template`](#whatsapp_delete_message_template) | Delete a message template                              |
| [`whatsapp_deregister_phone_number`](#whatsapp_deregister_phone_number) | Deregister a phone number from WhatsApp Cloud API      |
| [`whatsapp_get_business_account`](#whatsapp_get_business_account)       | Get WhatsApp Business Account details                  |
| [`whatsapp_get_message_template`](#whatsapp_get_message_template)       | Get a message template by ID                           |
| [`whatsapp_get_phone_number`](#whatsapp_get_phone_number)               | Get phone number details                               |
| [`whatsapp_list_message_templates`](#whatsapp_list_message_templates)   | List message templates for a WhatsApp Business Account |
| [`whatsapp_list_phone_numbers`](#whatsapp_list_phone_numbers)           | List phone numbers for a WhatsApp Business Account     |
| [`whatsapp_register_phone_number`](#whatsapp_register_phone_number)     | Register a phone number for WhatsApp                   |
| [`whatsapp_send_message`](#whatsapp_send_message)                       | Send a WhatsApp message                                |
| [`whatsapp_update_message_template`](#whatsapp_update_message_template) | Update a message template                              |

***

## whatsapp\_create\_message\_template

Create a new message template

**Parameters:**

| Parameter    | Type      | Required | Default | Description                                                      |
| ------------ | --------- | -------- | ------- | ---------------------------------------------------------------- |
| `waba_id`    | string    | Yes      | —       | The WhatsApp Business Account ID                                 |
| `category`   | string    | Yes      | —       | Template category                                                |
| `components` | object\[] | Yes      | —       | Template components defining the message structure               |
| `language`   | string    | Yes      | —       | Template language code (e.g. en\_US, es, pt\_BR)                 |
| `name`       | string    | Yes      | —       | Template name (lowercase letters, numbers, and underscores only) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "waba_id": {
        "type": "string",
        "description": "The WhatsApp Business Account ID"
      },
      "category": {
        "type": "string",
        "description": "Template category",
        "enum": [
          "MARKETING",
          "UTILITY",
          "AUTHENTICATION"
        ]
      },
      "components": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "HEADER",
                "BODY",
                "FOOTER",
                "BUTTONS"
              ],
              "description": "Component type"
            },
            "text": {
              "type": "string",
              "description": "Component text content"
            },
            "format": {
              "type": "string",
              "description": "Header format (TEXT, IMAGE, VIDEO, DOCUMENT)"
            },
            "buttons": {
              "type": "array",
              "items": {
                "type": "object"
              },
              "description": "Button definitions for BUTTONS component"
            }
          }
        },
        "description": "Template components defining the message structure"
      },
      "language": {
        "type": "string",
        "description": "Template language code (e.g. en_US, es, pt_BR)"
      },
      "name": {
        "type": "string",
        "description": "Template name (lowercase letters, numbers, and underscores only)"
      }
    },
    "required": [
      "PCID",
      "waba_id",
      "category",
      "components",
      "language",
      "name"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_delete\_message\_template

Delete a message template

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                     |
| --------- | ------ | -------- | ------- | --------------------------------------------------------------- |
| `waba_id` | string | Yes      | —       | The WhatsApp Business Account ID                                |
| `name`    | string | Yes      | —       | The name of the template to delete                              |
| `hsm_id`  | string | No       | —       | The template ID (hsm\_id) to delete a specific language variant |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "waba_id": {
        "type": "string",
        "description": "The WhatsApp Business Account ID"
      },
      "name": {
        "type": "string",
        "description": "The name of the template to delete"
      },
      "hsm_id": {
        "type": "string",
        "description": "The template ID (hsm_id) to delete a specific language variant"
      }
    },
    "required": [
      "PCID",
      "waba_id",
      "name"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_deregister\_phone\_number

Deregister a phone number from WhatsApp Cloud API

**Parameters:**

| Parameter         | Type   | Required | Default | Description                       |
| ----------------- | ------ | -------- | ------- | --------------------------------- |
| `phone_number_id` | string | Yes      | —       | The phone number ID to deregister |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "phone_number_id": {
        "type": "string",
        "description": "The phone number ID to deregister"
      }
    },
    "required": [
      "PCID",
      "phone_number_id"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_get\_business\_account

Get WhatsApp Business Account details

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                          |
| --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------------ |
| `waba_id` | string | Yes      | —       | The WhatsApp Business Account ID                                                     |
| `fields`  | string | No       | —       | Comma-separated list of fields to return (e.g. id,name,currency,timezone\_id,status) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "waba_id": {
        "type": "string",
        "description": "The WhatsApp Business Account ID"
      },
      "fields": {
        "type": "string",
        "description": "Comma-separated list of fields to return (e.g. id,name,currency,timezone_id,status)"
      }
    },
    "required": [
      "PCID",
      "waba_id"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_get\_message\_template

Get a message template by ID

**Parameters:**

| Parameter     | Type   | Required | Default | Description                              |
| ------------- | ------ | -------- | ------- | ---------------------------------------- |
| `template_id` | string | Yes      | —       | The template ID                          |
| `fields`      | string | No       | —       | Comma-separated list of fields to return |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "template_id": {
        "type": "string",
        "description": "The template ID"
      },
      "fields": {
        "type": "string",
        "description": "Comma-separated list of fields to return"
      }
    },
    "required": [
      "PCID",
      "template_id"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_get\_phone\_number

Get phone number details

**Parameters:**

| Parameter         | Type   | Required | Default | Description                              |
| ----------------- | ------ | -------- | ------- | ---------------------------------------- |
| `phone_number_id` | string | Yes      | —       | The phone number ID                      |
| `fields`          | string | No       | —       | Comma-separated list of fields to return |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "phone_number_id": {
        "type": "string",
        "description": "The phone number ID"
      },
      "fields": {
        "type": "string",
        "description": "Comma-separated list of fields to return"
      }
    },
    "required": [
      "PCID",
      "phone_number_id"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_list\_message\_templates

List message templates for a WhatsApp Business Account

**Parameters:**

| Parameter | Type    | Required | Default | Description                                                                            |
| --------- | ------- | -------- | ------- | -------------------------------------------------------------------------------------- |
| `waba_id` | string  | Yes      | —       | The WhatsApp Business Account ID                                                       |
| `name`    | string  | No       | —       | Filter templates by name                                                               |
| `limit`   | integer | No       | —       | Number of results per page                                                             |
| `after`   | string  | No       | —       | Pagination cursor for the next page (from paging.cursors.after in a previous response) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "waba_id": {
        "type": "string",
        "description": "The WhatsApp Business Account ID"
      },
      "name": {
        "type": "string",
        "description": "Filter templates by name"
      },
      "limit": {
        "type": "integer",
        "description": "Number of results per page"
      },
      "after": {
        "type": "string",
        "description": "Pagination cursor for the next page (from paging.cursors.after in a previous response)"
      }
    },
    "required": [
      "PCID",
      "waba_id"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_list\_phone\_numbers

List phone numbers for a WhatsApp Business Account

**Parameters:**

| Parameter | Type    | Required | Default | Description                                                                                                     |
| --------- | ------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------- |
| `waba_id` | string  | Yes      | —       | The WhatsApp Business Account ID                                                                                |
| `fields`  | string  | No       | —       | Comma-separated list of fields to return (e.g. id,display\_phone\_number,verified\_name,status,quality\_rating) |
| `limit`   | integer | No       | —       | Number of results per page (1-100)                                                                              |
| `after`   | string  | No       | —       | Pagination cursor for next page                                                                                 |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "waba_id": {
        "type": "string",
        "description": "The WhatsApp Business Account ID"
      },
      "fields": {
        "type": "string",
        "description": "Comma-separated list of fields to return (e.g. id,display_phone_number,verified_name,status,quality_rating)"
      },
      "limit": {
        "type": "integer",
        "description": "Number of results per page (1-100)"
      },
      "after": {
        "type": "string",
        "description": "Pagination cursor for next page"
      }
    },
    "required": [
      "PCID",
      "waba_id"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_register\_phone\_number

Register a phone number for WhatsApp

**Parameters:**

| Parameter           | Type   | Required | Default | Description                                                                             |
| ------------------- | ------ | -------- | ------- | --------------------------------------------------------------------------------------- |
| `phone_number_id`   | string | Yes      | —       | The phone number ID to register                                                         |
| `messaging_product` | string | Yes      | —       | Must be 'whatsapp'                                                                      |
| `pin`               | string | No       | —       | 6-digit PIN for two-step verification (required only if 2-step verification is enabled) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "phone_number_id": {
        "type": "string",
        "description": "The phone number ID to register"
      },
      "messaging_product": {
        "type": "string",
        "description": "Must be 'whatsapp'",
        "enum": [
          "whatsapp"
        ]
      },
      "pin": {
        "type": "string",
        "description": "6-digit PIN for two-step verification (required only if 2-step verification is enabled)"
      }
    },
    "required": [
      "PCID",
      "phone_number_id",
      "messaging_product"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_send\_message

Send a WhatsApp message

**Parameters:**

| Parameter           | Type      | Required | Default | Description                                                                                                                   |
| ------------------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `phone_number_id`   | string    | Yes      | —       | The ID of the sending phone number                                                                                            |
| `audio`             | object    | No       | —       | Audio message content. Required when type is 'audio'.                                                                         |
| `contacts`          | object\[] | No       | —       | Contacts message content. Required when type is 'contacts'. Array of contact objects.                                         |
| `context`           | object    | No       | —       | For reply messages, contains the ID of the message being replied to                                                           |
| `document`          | object    | No       | —       | Document message content. Required when type is 'document'.                                                                   |
| `image`             | object    | No       | —       | Image message content. Required when type is 'image'.                                                                         |
| `interactive`       | object    | No       | —       | Interactive message content. Required when type is 'interactive'. Supports list, button, product, and product\_list subtypes. |
| `location`          | object    | No       | —       | Location message content. Required when type is 'location'.                                                                   |
| `messaging_product` | string    | Yes      | —       | Messaging service used. Must be 'whatsapp'.                                                                                   |
| `reaction`          | object    | No       | —       | Reaction message content. Required when type is 'reaction'.                                                                   |
| `recipient_type`    | string    | No       | —       | Recipient type. Use 'individual' to send to a single phone number.                                                            |
| `sticker`           | object    | No       | —       | Sticker message content. Required when type is 'sticker'.                                                                     |
| `template`          | object    | No       | —       | Template message content. Required when type is 'template'.                                                                   |
| `text`              | object    | No       | —       | Text message content. Required when type is 'text'.                                                                           |
| `to`                | string    | Yes      | —       | Recipient's phone number in E.164 format (e.g. +14155552671) for individuals, or group ID for groups                          |
| `type`              | string    | Yes      | —       | Type of message to send                                                                                                       |
| `video`             | object    | No       | —       | Video message content. Required when type is 'video'.                                                                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "phone_number_id": {
        "type": "string",
        "description": "The ID of the sending phone number"
      },
      "audio": {
        "type": "object",
        "description": "Audio message content. Required when type is 'audio'.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Media object ID"
          },
          "link": {
            "type": "string",
            "description": "Publicly accessible URL of the audio file"
          }
        }
      },
      "contacts": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "object",
              "description": "Contact name"
            },
            "phones": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "description": "Phone type (CELL, MAIN, HOME, WORK)"
                  }
                }
              },
              "description": "Contact phone numbers"
            },
            "emails": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "email": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "description": "Email type (HOME, WORK)"
                  }
                }
              },
              "description": "Contact email addresses"
            }
          }
        },
        "description": "Contacts message content. Required when type is 'contacts'. Array of contact objects."
      },
      "context": {
        "type": "object",
        "description": "For reply messages, contains the ID of the message being replied to",
        "properties": {
          "message_id": {
            "type": "string",
            "description": "ID of the message to reply to"
          }
        }
      },
      "document": {
        "type": "object",
        "description": "Document message content. Required when type is 'document'.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Media object ID"
          },
          "link": {
            "type": "string",
            "description": "Publicly accessible URL of the document"
          },
          "caption": {
            "type": "string",
            "description": "Document caption text"
          },
          "filename": {
            "type": "string",
            "description": "Filename displayed in the message"
          }
        }
      },
      "image": {
        "type": "object",
        "description": "Image message content. Required when type is 'image'.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Media object ID (from media upload)"
          },
          "link": {
            "type": "string",
            "description": "Publicly accessible URL of the image"
          },
          "caption": {
            "type": "string",
            "description": "Image caption text"
          }
        }
      },
      "interactive": {
        "type": "object",
        "description": "Interactive message content. Required when type is 'interactive'. Supports list, button, product, and product_list subtypes.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Interactive message subtype: list, button, product, product_list",
            "enum": [
              "list",
              "button",
              "product",
              "product_list"
            ]
          },
          "header": {
            "type": "object",
            "description": "Optional header (text, image, video, or document)"
          },
          "body": {
            "type": "object",
            "description": "Body text of the interactive message"
          },
          "footer": {
            "type": "object",
            "description": "Optional footer text"
          },
          "action": {
            "type": "object",
            "description": "Action object (buttons or list sections)"
          }
        }
      },
      "location": {
        "type": "object",
        "description": "Location message content. Required when type is 'location'.",
        "properties": {
          "longitude": {
            "type": "number",
            "description": "Location longitude"
          },
          "latitude": {
            "type": "number",
            "description": "Location latitude"
          },
          "name": {
            "type": "string",
            "description": "Location name"
          },
          "address": {
            "type": "string",
            "description": "Location address"
          }
        }
      },
      "messaging_product": {
        "type": "string",
        "description": "Messaging service used. Must be 'whatsapp'.",
        "enum": [
          "whatsapp"
        ]
      },
      "reaction": {
        "type": "object",
        "description": "Reaction message content. Required when type is 'reaction'.",
        "properties": {
          "message_id": {
            "type": "string",
            "description": "ID of the message to react to"
          },
          "emoji": {
            "type": "string",
            "description": "Emoji to react with (or empty string to remove reaction)"
          }
        }
      },
      "recipient_type": {
        "type": "string",
        "description": "Recipient type. Use 'individual' to send to a single phone number.",
        "enum": [
          "individual",
          "group"
        ]
      },
      "sticker": {
        "type": "object",
        "description": "Sticker message content. Required when type is 'sticker'.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Media object ID (from media upload)"
          },
          "link": {
            "type": "string",
            "description": "Publicly accessible URL of the sticker (WebP format)"
          }
        }
      },
      "template": {
        "type": "object",
        "description": "Template message content. Required when type is 'template'.",
        "properties": {
          "name": {
            "type": "string",
            "description": "The template name"
          },
          "language": {
            "type": "object",
            "description": "Template language"
          },
          "components": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "description": "Template component variable values"
          }
        }
      },
      "text": {
        "type": "object",
        "description": "Text message content. Required when type is 'text'.",
        "properties": {
          "body": {
            "type": "string",
            "description": "Message text (max 4096 characters)"
          },
          "preview_url": {
            "type": "boolean",
            "description": "Whether to render link previews for URLs in the message body"
          }
        }
      },
      "to": {
        "type": "string",
        "description": "Recipient's phone number in E.164 format (e.g. +14155552671) for individuals, or group ID for groups"
      },
      "type": {
        "type": "string",
        "description": "Type of message to send",
        "enum": [
          "text",
          "image",
          "audio",
          "video",
          "document",
          "sticker",
          "template",
          "interactive",
          "contacts",
          "location",
          "reaction"
        ]
      },
      "video": {
        "type": "object",
        "description": "Video message content. Required when type is 'video'.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Media object ID"
          },
          "link": {
            "type": "string",
            "description": "Publicly accessible URL of the video"
          },
          "caption": {
            "type": "string",
            "description": "Video caption text"
          }
        }
      }
    },
    "required": [
      "PCID",
      "phone_number_id",
      "messaging_product",
      "to",
      "type"
    ]
  }
  ```
</Expandable>

***

## whatsapp\_update\_message\_template

Update a message template

**Parameters:**

| Parameter     | Type      | Required | Default | Description                 |
| ------------- | --------- | -------- | ------- | --------------------------- |
| `template_id` | string    | Yes      | —       | The template ID to update   |
| `category`    | string    | No       | —       | New template category       |
| `components`  | object\[] | No       | —       | Updated template components |
| `language`    | string    | No       | —       | Template language code      |
| `name`        | string    | No       | —       | New template name           |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "template_id": {
        "type": "string",
        "description": "The template ID to update"
      },
      "category": {
        "type": "string",
        "description": "New template category",
        "enum": [
          "MARKETING",
          "UTILITY",
          "AUTHENTICATION"
        ]
      },
      "components": {
        "type": "array",
        "items": {
          "type": "object"
        },
        "description": "Updated template components"
      },
      "language": {
        "type": "string",
        "description": "Template language code"
      },
      "name": {
        "type": "string",
        "description": "New template name"
      }
    },
    "required": [
      "PCID",
      "template_id"
    ]
  }
  ```
</Expandable>
