SAAS WhatsApp API webhook - nxtele/nxcloud-doc-en GitHub Wiki

Webhook

Push WhatsApp-related information to the provided webhook URL (currently supports pushing Message Status and Template Button Click Callback).

  • URL: webhook_url
  • Method: POST
  • Content-Type: application/json

Message Status

Provides the receipt of message status for the scenarios where the WhatsApp API is used to send messages.

Response Parameters

Body parameters:

Parameter Type Description
statuses array[status JsonObject] Result codes
business_phone String Business phone number
messaging_product String Message type, fixed value "whatsapp"
  • status object parameters:
Parameter Type Description
conversation JsonObject Conversation information
errors array[error JsonObject] Error information
recipient_id String Recipient's WhatsApp ID
timestamp String Callback timestamp
status String Message status, sent, delivered, read, failed, deleted
id String Message ID
  • conversation object parameters:
Parameter Type Description
id String Conversation ID
expiration_timestamp String Conversation expiration timestamp
origin JsonObject Conversation type information
  • origin object parameters:
Parameter Type Description
type String Conversation type
  • error object parameters:
Parameter Type Description
code Integer Error code
title String Error message

Response Example

Message Sent

{
  "statuses": [
    {
      "id": "wamid.HBgNODYxNzYwNjA1MDgxORUCABEYEjI4RTcyNzFGRDVGQTQwQkQ1RAA=",
      "status": "sent",
      "timestamp": "1660019986",
      "recipient_id": "86176xxxx0819",
      "conversation": {
        "id": "72569257438b471cae074da84bed1b83",
        "expiration_timestamp": "1660106400",
        "origin": {
          "type": "business_initiated"
        }
      }
    }
  ]
}

Message Delivered

{
  "statuses": [
    {
      "id": "wamid.HBgNODYxNzYwNjA1MDgxORUCABEYEjI4RTcyNzFGRDVGQTQwQkQ1RAA=",
      "status": "delivered",
      "timestamp": "1660019987",
      "recipient_id": "86176xxxx0819",
      "conversation": {
        "id": "72569257438b471cae074da84bed1b83",
        "origin": {
          "type": "business_initiated"
        }
      }
    }
  ]
}

Message Read

{
  "statuses": [
    {
      "id": "wamid.HBgNODYxNzYwNjA1MDgxORUCABEYEjI4RTcyNzFGRDVGQTQwQkQ1RAA=",
      "status": "read",
      "timestamp": "1660019990",
      "recipient_id": "86176xxxx0819"
    }
  ]
}

Message Failed

{
  "statuses": [
    {
      "errors": [
        {
          "code": 470,
          "title": "Failed to send message because you are outside the support window for freeform messages to this user. Please use a valid HSM notification or reconsider."
        }
      ],
      "id": "ID",
      "recipient_id": "WHATSAPP_ID",
      "status": "failed",
      "timestamp": "TIMESTAMP"
    }
  ]
}

Message Deleted

{
  "statuses": [
    {
      "id": "ID",
      "recipient_id": "WHATSAPP_ID",
      "status": "deleted",
      "timestamp": "TIMESTAMP",
      "type": "message",
      "message": {
        "recipient_id": "WHATSAPP_ID"
      }
    }
  ]
}

Template Button Click Callback

Provides the callback for button clicks in template messages sent using the WhatsApp API (only supports callbacks for quick reply buttons in templates).

Response Parameters

Body parameters:

Parameter Type Description
contacts array[contact JsonObject] Contact information
messages array[message JsonObject] Callback information
business_phone String Business phone number
messaging_product String Message type, fixed value "whatsapp"
  • contact object parameters:
Parameter Type Description
profile object Contact information
wa_id String WhatsApp ID
  • profile object parameters:
Parameter Type Description
name String Name
  • message object parameters:
Parameter Type Description
button object Button information
from String Sender's WhatsApp number
id String Message ID
timestamp String Callback timestamp
type String Type
wa_ext String Parameters, template name, template ID, and other information when sending template messages
context object Only included when someone replies to your message. Contains information about the original message, such as the sender's ID and the message's ID
tag_name String Tag name
  • button object parameters:
Parameter Type Description
payload String Button ID
text String Button name
  • context object parameters:
Parameter Type Description
from String Sender's ID or message ID when someone replies to your message
id String Message ID

Response Example

{
    "business_phone":"1xxxxxxxxxx",
    "contacts":[
        {
            "profile":{
                "name":"Name"
            },
            "wa_id":"861xxxxxxxxxx"
        }
    ],
    "messages":[
        {
            "button":{
                "payload":"Button ID",
                "text":"Template Button Name"
            },
           "context":{
                        "from":"185xxxxxx99",
                        "id":"wamid.9ce86df19d7941c3965cac2a131a0b0e"
            },
            "from":"861xxxxxxxx59",
            "id":"wamid.HBgNODYxMzYwMzAxOTc1ORUCABIYFjNFQjA0NUJBNDczOTIzQUZBOUQ0OUEA",
            "timestamp":"1692266760",
            "type":"button",
            "tag_name":"Tag Name",
            "wa_ext":"{\"templateId\":233,\"templateName\":\"Template Name\",\"components\":[{\"type\":\"body\",\"parameters\":[{\"type\":\"text\",\"text\":\"xxxx\"},{\"type\":\"text\",\"text\":\"xxxx\"},{\"type\":\"text\",\"text\":\"xxxxx\"}]}]}"
        }
    ],
    "messaging_product":"whatsapp"
}