Hatif
    • Rate Limiting
    • Account API
      • Service Login
        POST
    • Channels API
      • Get Channels
        GET
    • Support API
      • Upload Image, Video, or PDF
        POST
      • Upload Audio File
        POST
    • Whatsapp API
      • Send Text
        POST
      • Send Template
        POST
      • Send Image
        POST
      • Send Audio
        POST
      • Send Video
        POST
      • Send File
        POST
      • List Templates (Service Account)
        GET
    • Contact
      • Set Property Value on Contact
        PUT
      • Search Contacts
        POST
      • Delete Property Value on Contact
        DELETE
      • Create Contact
        POST
      • Update Contact
        PUT
      • Get Contacts
        GET
      • Get Contact By Id
        GET
      • Create Bulk Contacts vCards
        POST
      • Contacts History
        GET
    • Contact Properties
      • List Contact Properties
        GET
      • Contact Properties Statistics
        POST
      • Create Contact Property
        POST
      • Update Contact Property
        PUT
      • Delete Contact Property
        DELETE
    • Workspace API
      • Get Workspace Users
    • Conversations API
      • Get Conversation Timeline
      • List Conversations
      • Create Conversation
      • Assign Conversation
      • Get Conversation
    • Outbound IVR API
      • Create Outbound IVR
    • Tags API
      • Tag a conversation
      • Create Tag
      • Delete Tag
      • Update Tag
      • List Tags
    • Conversations - Service Account
    • Call Webhook
    • WhatsApp Message Webhook
    • Schemas
      • Call Webhook
      • WhatsApp Message Webhook
      • ServiceAccountTemplateDto
      • ConversationDto
      • CreateTagDto
      • ServiceAccountTemplateParameterDto
      • ChannelConversationDto
      • UpdateTagDto
      • TemplateParameterDto
      • TagDto
      • ParameterValueDto
      • ConversationTimelineDto
      • PagedResultOfTagDto
      • ChannelNotFoundError
      • AiSummaryDto
      • ReplyInfoDto
      • InternalThreadDto
      • LocationMessageDto
      • AssignationInfoDto
      • PagedResultOfConversationDto
      • PagedResultOfConversationTimelineDto

      WhatsApp Message Webhook

      Webhook
      POST
      WhatsApp Message Webhook

      Configuration#

      Go to Settings → API Connect to configure your WhatsApp Webhook URL and optionally generate a Webhook Signing Secret for request verification.

      Authentication#

      If a webhookSecret is configured on the channel, all webhook requests include an X-Voxa-Signature header containing an HMAC-SHA256 signature of the raw JSON request body.

      Verifying the Signature#

      1.
      Get the raw request body as a UTF-8 string.
      2.
      Compute the HMAC-SHA256 hash using your channel's webhookSecret as the key.
      3.
      Convert the hash to a lowercase hexadecimal string.
      4.
      Compare the computed signature with the X-Voxa-Signature header value.

      Retry Policy#

      Failed deliveries are retried up to 5 times with exponential backoff: 2, 4, 8, 16, 32 minutes.

      Request

      Body Params application/jsonRequired

      Examples

      Responses

      🟢200Success
      application/json
      Bodyapplication/json

      Request Request Example
      Shell
      JavaScript
      Java
      Swift
      curl --location 'https://your-api-server.com' \
      --header 'Content-Type: application/json' \
      --data '{
          "workspaceId": "ef0efa32-d1c1-43d4-a5e2-fe7b4f00403c",
          "channelId": "5f6d08bc-455a-4532-98b8-19e2cee51160",
          "conversationId": "ee6e55e8-45fe-4a3e-9bc8-4669f9fdf77a",
          "conversationEventId": "84485902-55d7-4844-953e-8ae607e3d2c5",
          "contactId": "b5ec5d98-4bee-4da1-ad24-dde86346cb1d",
          "messageId": "string",
          "direction": "Inbound",
          "messageType": "Text",
          "body": "string",
          "mediaUrl": "string",
          "mimeType": "string",
          "status": "Sent",
          "senderUserId": "2b0414b9-b88f-4722-84b0-333eb47e9180",
          "latitude": 0,
          "longitude": 0,
          "contacts": [
              {
                  "firstName": "string",
                  "lastName": "string",
                  "middleName": "string",
                  "formattedName": "string",
                  "company": "string",
                  "phones": [
                      {
                          "phone": "string",
                          "type": "string",
                          "waId": "string"
                      }
                  ]
              }
          ],
          "creationTime": "2019-08-24T14:15:22.123Z",
          "isBillable": true,
          "errorCode": 0,
          "errorReason": "string",
          "transcription": {
              "text": "string",
              "words": [
                  {
                      "text": "string",
                      "start": 0,
                      "end": 0,
                      "type": "string",
                      "speaker": "string"
                  }
              ]
          },
          "summary": "string",
          "sentiment": 1,
          "replyToMessageId": "string",
          "interactiveReply": {
              "id": "string",
              "text": "string",
              "payload": "string",
              "templateId": "string",
              "templateName": "string"
          },
          "sentTemplate": {
              "templateId": "string",
              "templateName": "string",
              "language": "string",
              "category": "Marketing",
              "buttons": [
                  {
                      "type": "QuickReply",
                      "text": "string",
                      "url": "string",
                      "phoneNumber": "string",
                      "copyCode": "string"
                  }
              ]
          }
      }'
      Response Response Example
      {}
      Modified at 2026-08-04 23:39:45
      Previous
      Call Webhook
      Next
      Call Webhook
      Built with