Webhook Request for WhatsApp Signature ID Call Configuration Status
After calling the api/channel-profile/whatsapp/{sender}/settings method, edna Pulse will send a webhook request with the status of WhatsApp signature ID call settings .
When calling the api/channel-profile/whatsapp/{sender}/settings method, specify the URL for the webhook request in the callbackUrl parameter — the endpoint of your system that will process incoming POST requests from edna Pulse.
Webhook Request Format
{
"requestId": "string",
"status": "string",
"calling": {
"status": "string",
"callIconVisibility": "string",
"callbackPermissionStatus": "string",
"callHours": {
"status": "string",
"timezoneId": "string",
"weeklyOperatingHours": [
{
"dayOfWeek": "string",
"openTime": "string",
"closeTime": "string"
},
{
"dayOfWeek": "string",
"openTime": "string",
"closeTime": "string"
}
],
"holidaySchedule": [
{
"date": "string",
"openTime": "string",
"closeTime": "string"
}
]
},
"sip": {
"status": "string",
"servers": [
{
"hostname": "string",
"port": "string",
"requestUriUserParams": {
"KEY1": "string",
"KEY2": "string",
"KEY3": "string"
}
}
]
},
"srtpKeyExchangeProtocol": "string"
}
}
Webhook Request Example
{
"requestId": "e49f9a4c89c902902a24b0a2c7ccc7bb",
"status": "SUCCESS",
"calling": {
"status": "ENABLED",
"callIconVisibility": "DEFAULT",
"callbackPermissionStatus": "ENABLED",
"callHours": {
"status": "ENABLED",
"timezoneId": "America/Manaus",
"weeklyOperatingHours": [
{
"dayOfWeek": "MONDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "TUESDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "WEDNESDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "THURSDAY",
"openTime": "1030",
"closeTime": "1900"
},
{
"dayOfWeek": "FRIDAY",
"openTime": "1030",
"closeTime": "1830"
},
{
"dayOfWeek": "SATURDAY",
"openTime": "1100",
"closeTime": "1630"
},
{
"dayOfWeek": "SUNDAY",
"openTime": "1100",
"closeTime": "1630"
}
],
"holidaySchedule": [
{
"date": "2026-01-01",
"openTime": "1200",
"closeTime": "1700"
},
{
"date": "2026-02-01",
"openTime": "1200",
"closeTime": "1700"
}
]
},
"sip": {
"status":"ENABLED",
"servers": [
{
"hostname":"sip.com",
"port":"5061",
"requestUriUserParams": {
"call_type":"wa",
"tgrp": "wacall"
}
}
]
},
"srtpKeyExchangeProtocol":"SDES"
}
}
Webhook Request Parameters
| Parameter | Data type | Character | Description |
|---|---|---|---|
requestId | string | Required | Internal request identifier. Corresponds to the value of the requestId parameter in the response to the api/channel-profile/whatsapp/{sender}/settings method request.
Obtaining Call Settings Status for WhatsApp Signature ID |
status | string | Required | Status of the request for the method api/channel-profile/whatsapp/{sender}/settings.
Possible values: - SUCCESS — succsess;
- FAILED — failed, there are errors. |
calling | object | Required | Setting up calls for signature. |
calling.status | string | Optional | Status indicating whether calls for signature are enabled or disabled.
Possible values: - ENABLED — enabled calls for signature;
- DISABLED — disabled calls for signature. |
calling.callIconVisibility | string | Optional | Configure the display of the WhatsApp call button icon for recipients when communicating with the company. Displayed if calls are enabled for the signature.
Possible values: - DEFAULT — Enable display of call button icon, default value;
- DISABLE_ALL — Disable the display of the call button icon.
developers.facebook.com |
calling.callbackPermissionStatus | string | Optional | A setting that sends the recipient a request for permission to make outgoing calls from the company after the recipient receives an incoming call. The permission request is displayed for both missed and successful calls.
Possible values: - ENABLED — enable the recipient to display a request for permission to receive calls from the company;
- DISABLED — disable the recipient to display a request for permission to receive calls from the company.
To make a call, the company requires explicit permission from the recipient for incoming calls. developers.facebook.com |
calling.callHours | object | Optional | A setting that allows you to specify the time zone and working hours. The recipient will only be able to make incoming calls to the company during the specified working hours. developers.facebook.com |
calling.callHours.status | string | Required, if the calling.callHours parameter is not empty | Status of enabling the company's work schedule setting.
Possible values: - ENABLED — enable company work schedule settings;
- DISABLED — disable company work schedule settings.
If the company's working hours setting is disabled, the company is considered to be open 24 hours a day, 7 days a week. |
calling.callHours.timezoneId | string | Required, if the calling.callHours parameter is not empty | The time zone in which the company operates. developers.facebook.com |
calling.callHours.weeklyOperatingHours | array of objects | Required, if the calling.callHours parameter is not empty | Company work schedule by day of the week. |
calling.callHours.weeklyOperatingHours.dayOfWeek | string | Required, if the calling.callHours.weeklyOperatingHours parameter is not empty | Day of the week.
Possible values: - MONDAY;
- TUESDAY;
- WEDNESDAY;
- THURSDAY;
- FRIDAY;
- SATURDAY;
- SUNDAY. |
calling.callHours.weeklyOperatingHours.openTime | string | Required, if the calling.callHours.weeklyOperatingHours parameter is not empty | Company opening hours according to the 24-hour work schedule. For example, 1130 = 11:30 AM.
- A maximum of 2 entries per day of the week is allowed. - openTime should be earlier than closeTime.
- Overlapping entries are not permitted. |
calling.callHours.weeklyOperatingHours.closeTime | string | Required, if the calling.callHours.weeklyOperatingHours parameter is not empty | Company closing time according to the 24-hour work schedule. For example, 1130 = 11:30 AM.
- A maximum of 2 entries per day of the week is allowed. - openTime should be earlier than closeTime.
- Overlapping entries are not permitted. |
calling.callHours.holidaySchedule | array of objects | Optional | Optional setting for changing the company's standard work schedule for holidays, weekends, or vacations. Up to 20 changes to the standard work schedule are supported in a single request. If the parameter is not passed in the request, the previously set value will be cleareda and the recipient will see the company's standard work schedule without changes. |
calling.callHours.holidaySchedule.date | string | Required, if the calling.callHours.holidaySchedule parameter is not empty | The date in the format YYYY-MM-DD for which you want to specify changes to the company's standard work schedule. |
calling.callHours.holidaySchedule.openTime | string | Required, if the calling.callHours.holidaySchedule parameter is not empty | Company opening hours during changes to the standard 24-hour work schedule. For example, 1130 = 11:30 AM.
- A maximum of 2 entries per day of the week is allowed. - openTime should be earlier than closeTime.
- Overlapping entries are not permitted. |
calling.callHours.holidaySchedule.closeTime | string | Required, if the calling.callHours.holidaySchedule parameter is not empty | Company closing times during changes to the standard 24-hour work schedule. For example, 1130 = 11:30 AM.
- A maximum of 2 entries per day of the week is allowed. - openTime should be earlier than closeTime.
- Overlapping entries are not permitted. |
calling.sip | object | Optional | Configuring call alerts via the Session Initiation Protocol (SIP). If SIP is enabled, you will not be able to use API methods and webhooks related to calls. developers.facebook.com |
calling.sip.status | string | Optional | Status of enabling call alert settings via SIP for this signature.
Possible values: - ENABLED — enable call signalling settings via SIP;
- DISABLED — disable call alert settings via SIP, default value.
When the status is ENABLED for the signature, only the SIP protocol will be used for call signaling, the API will not work.
If you set the status to DISABLED, the values in the calling.sip.servers parameter are not reset. If you re-enable SIP for the same signature, the previously configured values will be active. |
calling.sip.servers | array of objects | Optional | Configuring SIP server routing.
Only one SIP server can be configured for a single application. Multiple SIP servers can be configured for a single signature, as the signature can be used in multiple applications. To remove a previously configured SIP server, pass an empty array in this parameter. If you see that some servers remain after removal, these servers may belong to other applications, so you need to use the appropriate access tokens to clear them. |
calling.sip.servers.hostname | string | Required, if the calling.sip.servers parameter is not empty | The host name of the SIP server.
Requests should use TLS. |
calling.sip.servers.port | string | Required, if the calling.sip.servers parameter is not empty | The port of the SIP server that will receive requests. Requests should use TLS.
The default port is 5061. |
calling.sip.servers.requestUriUserParams | object | Optional | Any additional parameters you want to pass to the custom part of the URL request used in SIP INVITE to your SIP server.
The maximum key/value size is 128 characters.. An example of use would be Trunk Groups (RFC 4904).: -sip:[email protected];
-tgrp=wacall;
-trunk-context=byoc.example.com.
RFC 4904: Representing Trunk Groups in tel/sip Uniform Resource Identifiers (URIs)
developers.facebook.com |
calling.srtpKeyExchangeProtocol | string | Optional | Configuring the use of the SRTP key exchange protocol.
Possible values: - SDES — A simple text key defined in SDP, sent via SIP or API. Can help reduce call setup time;
- DTLS — exchange of encrypted keys in accordance with industry standards. Recommended for use. Default value. |
Response Format
In response to a request from your server, the status of its execution with the code 200 should be returned.
If the code 200 does not arrive in response to the callback request, edna Pulse performs 10 more request attempts with an interval of 2^X seconds between attempts (where X is the attempt number) until the code 200 arrives in response.
Therefore, if there is no response, the request is retried 4, 8, 16, 32, 64, 128, 256, 512, 1024, and 2048 seconds after the first attempt.