Phone Number ID and WhatsApp Business Account IDhttps://your-api-host/api/webhooks/whatsapp/{integrationSetupId}WebhookVerifyToken| Key Name | Required? | Secret? | Description |
|---|---|---|---|
| PhoneNumberId | Required | Numeric ID of the WhatsApp Business phone number. Found in Meta Developer Console → WhatsApp → API Setup. | |
| AccessToken | Required | Secret | Bearer token sent with every Graph API call. Use a System User token for production — temporary tokens expire in ~24h. |
| BusinessAccountId | Optional | WhatsApp Business Account (WABA) ID. Needed for account-level operations and template management. | |
| WebhookVerifyToken | Optional | Secret | A token you invent and store here. Meta sends it back during webhook verification — must match exactly. |
| ApiVersion | Optional | Meta Graph API version, e.g. v20.0. Defaults to v20.0 when omitted. |
Development — credentials are Base64-encoded JSON stored in the SecretStorageRef DB column (easy local testing, NOT safe for prod).
Production — credentials are stored as a single JSON secret in Azure Key Vault. The DB column holds only the KV secret name. Ensure your App Service has a Managed Identity with Key Vault Secrets Officer role.
Returns all active integration types with their required keys — call this first to see what credentials are needed.
Stores your credentials and returns an IntegrationSetupId used in all subsequent calls.
GET /api/webhooks/whatsapp/{integrationSetupId}?hub.mode=subscribe&hub.verify_token=YOUR_TOKEN&hub.challenge=CHALLENGE
POST /api/webhooks/whatsapp/{integrationSetupId}
In Meta Developer Console → WhatsApp → Configuration:
• Callback URL: https://your-api-host/api/webhooks/whatsapp/{integrationSetupId}
• Verify token: the WebhookVerifyToken you supplied when setting up the integration
• Subscribe to: messages