POST /<PHONE_NUMBER_ID>/settings para habilitar os recursos da API de Ligações em um número de telefone comercial.POST /<PHONE_NUMBER_ID>/settings
| Espaço reservado | Descrição | Exemplo de valor |
|---|---|---|
<PHONE_NUMBER_ID>Número inteiro | Obrigatório A identificação do número de telefone comercial cujas configurações da API de Ligações estão sendo atualizadas. | 106540352242922 |
{ "calling": { "status": "ENABLED", "call_icon_visibility": "DEFAULT", "call_icons": { "restrict_to_user_countries": [ "US", "BR" ] }, "call_hours": { "status": "ENABLED", "timezone_id": "America/Manaus", "weekly_operating_hours": [ { "day_of_week": "MONDAY", "open_time": "0400", "close_time": "1020" }, { "day_of_week": "TUESDAY", "open_time": "0108", "close_time": "1020" } ], "holiday_schedule": [ { "date": "2026-01-01", "start_time": "0000", "end_time": "2359" } ] }, "callback_permission_status": "ENABLED", "sip": { "status": "ENABLED | DISABLED (default)", "servers": [ { "hostname": SIP_SERVER_HOSTNAME, "port": SIP_SERVER_PORT, "request_uri_user_params": { "KEY1": "VALUE1", "KEY2": "VALUE2" } } ] }, "audio": { "additional_codecs": ["PCMA", "PCMU"] } } }
| Parâmetro | Descrição | Exemplo de valor |
|---|---|---|
statusString | Opcional Habilite ou desabilite a API de Ligações para o número de telefone comercial em questão. | “ENABLED”“DISABLED” |
call_icon_visibilityString | Opcional Defina se o ícone do botão de ligação do WhatsApp será mostrado aos usuários enquanto eles conversam com a empresa. | |
call_iconsString | Opcional Defina se o ícone do botão de ligação do WhatsApp será mostrado aos usuários durante a conversa com a empresa. | |
call_hoursObjeto JSON | Opcional Permite que você especifique e acione configurações para ligações recebidas com base no seu fuso horário, no horário de funcionamento da empresa e em feriados. Todos os valores configurados anteriormente em call_hours serão substituídos pelos valores transmitidos no corpo da solicitação desta chamada à API. | |
callback_permission_statusString | Opcional Ajuste a configuração para decidir se o usuário do WhatsApp receberá um pedido de permissão para ligação após ligar para sua empresa. Observação: o pedido de permissão para ligação é acionado após uma ligação perdida ou conectada. | “ENABLED”“DISABLED” |
sipObjeto JSON | Opcional Configure o sinalizador de ligação por meio do protocolo de iniciação de sinal (SIP). Observação: quando o SIP está habilitado, não é possível usar pontos de extremidade relacionados a ligações. Além disso, você não receberá webhooks relacionados a ligações. | |
audioObjeto JSON | Opcional Defina as configurações do codec de áudio para a ligação. O Opus é o codec padrão e está sempre presente. |
|
status é definido como “ENABLED”, os recursos de ligação são habilitados para o número de telefone comercial. Os apps de cliente do WhatsApp renderizam o ícone de botão de ligação tanto na conversa comercial quanto no perfil da conversa comercial.status é definido como “DISABLED”, os recursos de ligação são desabilitados. Além disso, a conversa comercial e o perfil da conversa comercial não exibem o ícone de botão de ligação.status serão aplicadas ao ícone do botão de ligação nas conversas comerciais existentes quase em tempo real quando o número de telefone comercial estiver nos contatos do usuário do WhatsApp.call_icon_visibility. Observação: se você desabilitar a visibilidade do ícone do botão de ligação, não estará impedindo que um usuário do WhatsApp faça ligações não solicitadas para sua empresa.DEFAULT
DISABLE_ALL

call_icons, é possível especificar os países em que esses ícones devem aparecer."call_icons": { "restrict_to_user_countries": [ "US", "BR" ] }
| Parâmetro | Descrição | Exemplo de valores |
|---|---|---|
restrict_to_user_countriesLista de strings | Opcional Restrinja a visibilidade dos ícones de ligação para esses países. OBSERVAÇÃO: por exemplo, se você restringir para os "EUA", o modelo será aplicado a todas as pessoas com um número de telefone registrado nos EUA. Essas pessoas podem estar localizadas fisicamente dentro ou fora dos EUA. | Restrição aos EUA e ao Brasil:
Sem restrição:
|
call_hours, é possível especificar o fuso horário, o horário de funcionamento da empresa e os feriados que serão aplicados a todas as ligações iniciadas pelo usuário.callback_permission_status for ENABLED. O usuário também verá o próximo horário para ligação disponível na tela de opções.
"call_hours": { "status": "ENABLED", "timezone_id": "America/Manaus", "weekly_operating_hours": [ { "day_of_week": "MONDAY", "open_time": "0400", "close_time": "1020" }, { "day_of_week": "TUESDAY", "open_time": "0108", "close_time": "1020" } ], "holiday_schedule": [ { "date": "2026-01-01", "start_time": "0000", "end_time": "2359" } ] }
| Parâmetro | Descrição | Exemplo de valores | ||
|---|---|---|---|---|
statusString | Obrigatório Habilite ou desabilite o horário de atendimento da empresa. Se o horário de atendimento estiver desabilitado, a empresa será considerada aberta 24 horas por dia, 7 dias por semana. | “ENABLED”“DISABLED” | ||
timezone_idString | Obrigatório O fuso horário em que a empresa está operando. | “America/Menominee”“Asia/Singapore” | ||
weekly_operating_hoursLista de objetos JSON | Obrigatório O horário de funcionamento para cada dia da semana. Cada entrada é um objeto JSON com três pares de chave/valor: day_of_week — (Enumeração) [Obrigatório]O dia da semana. Pode conter um destes sete valores: "MONDAY", “TUESDAY”, “WEDNESDAY”, “THURSDAY”, “FRIDAY”, “SATURDAY”, “SUNDAY”
Horários de abertura e fechamento no formato de 24 horas, por exemplo, "1130" = 11:30
|
| ||
holiday_scheduleString | Opcional Uma substituição opcional para a programação semanal. É possível especificar até 20 substituições. Observação: se holiday_schedule não for enviada na solicitação, a holiday_schedule existente será excluída e substituída por uma programação vazia.date – (String) [Obrigatório]Data para a qual você deseja especificar a substituição. Formato AAAA-MM-DD.
Horários de abertura e fechamento no formato de 24 horas, por exemplo, "1130" = 11:30
|
|
"audio": { "additional_codecs": ["PCMA", "PCMU"] }
| Parâmetro | Descrição | Exemplo de valores |
|---|---|---|
additional_codecsLista de strings | Opcional Habilite codecs de áudio adicionais. Valores compatíveis: "PCMA" (G.711 A-law), "PCMU" (G.711 µ-law). O Opus é sempre habilitado por padrão e não pode ser removido. Depois de habilitar codecs adicionais, eles podem ser selecionados durante a negociação de codec SDP de acordo com o RFC 3264. |
Não são permitidos codecs adicionais:
|
{ "success": true }
call_hourscall_hours é uma data anterior à atualcall_hoursweekly_operating_hours em call_hours não pode estar vazioholiday_schedule para call_hours é inválidoweekly_operating_hours em call_hourscall_hoursGET /<PHONE_NUMBER_ID>/settings
| Parâmetro | Descrição | Exemplo de valor |
|---|---|---|
<PHONE_NUMBER_ID>Número inteiro | Obrigatório A identificação do número de telefone comercial cujas configurações da API de Ligações estão sendo obtidas. | 106540352242922 |
whatsapp_business_management: é necessário ter acesso avançado para usar a API para clientes empresariais finais{ "calling": { "status": "ENABLED", "call_icon_visibility": "DEFAULT", "callback_permission_status": "ENABLED", "call_hours": { "status": "ENABLED", "timezone_id": "[REDACTED]", "weekly_operating_hours": [ { "day_of_week": "MONDAY", "open_time": "0400", "close_time": "1020" }, { "day_of_week": "TUESDAY", "open_time": "0108", "close_time": "1020" } ], "holiday_schedule": [ { "date": "2026-01-01", "start_time": "0000", "end_time": "2359" } ] }, "sip": { "status": "ENABLED", "servers": [ { "hostname": "[REDACTED]", "sip_user_password": "[REDACTED]" } ] }, "audio": { "additional_codecs": ["PCMA", "PCMU"] } }, <Other non-calling feature configuration...> }
GET /<PHONE_NUMBER_ID>/settings?include_sip_credentials=true
{ "calling": { ... // other calling api settings "sip": { "status": "ENABLED", "servers": [ { "hostname": "sip.example.com", "sip_user_password": "{SIP_USER_PASSWORD}" } ] } } }
GET /<PHONE_NUMBER_ID>/settings retorna as configurações da API de Ligações, além de outras informações de configuração do seu número de telefone comercial do WhatsApp.{ "calling": { ... // other calling api settings "restrictions": { "restrictions_list": [ { "type": "[RESTRICTED_BUSINESS_INITIATED_CALLING|RESTRICTED_USER_INITIATED_CALLING]", "reason": "Business|User initiated calling capability has been temporarily disabled for this phone number due to high negative feedback from users.", "expiration": 1754072386 } ] } } }
| Parâmetro | Descrição |
|---|---|
<restrictions>Objeto JSON | O objeto de restrições contém estes valores: restriction_list(objeto JSON): lista de restrições aplicadas atualmente com os seguintes valores
type(string) – para a restrição de ligação, esse campo teria o valor de RESTRICTED_BUSINESS_INITIATED_CALLING ou RESTRICTED_USER_INITIATED_CALLINGreason(string) – descrição da restriçãoexpiration(número inteiro) – o horário UNIX de expiração da restrição no fuso horário UTC |

account_settings_update para receber notificações sobre atualizações nas configurações de número de telefone.account_settings_update.whatsapp_business_management para receber webhooks. Ao usar o token de acesso para o mesmo app, se você conseguir obter as configurações com sucesso, seu app também poderá receber webhooks.{
"object": "whatsapp_business_account",
"entry": [
{
"id": "whatsapp-business-account-id",
"changes": [
{
"value": {
"messaging_product": "whatsapp",
"timestamp": "1671644824",
"type": "[phone_number_settings]",
"phone_number_settings": {
"phone_number_id": "phone-number-id",
"calling": {
"status": "ENABLED",
"call_icon_visibility": "DEFAULT",
"callback_permission_status": "ENABLED",
"call_hours": {
"status": "ENABLED",
"timezone_id": "[REDACTED]",
"weekly_operating_hours": [
{
"day_of_week": "MONDAY",
"open_time": "0400",
"close_time": "1020"
},
{
"day_of_week": "TUESDAY",
"open_time": "0108",
"close_time": "1020"
}
],
"holiday_schedule": [
{
"date": "2026-01-01",
"start_time": "0000",
"end_time": "2359"
}
]
},
"sip": {
"status": "ENABLED",
"servers": [
{
"hostname": "[REDACTED]",
"port": SIP_SERVER_PORT
}
]
}
}
}
},
"field": "account_settings_update"
}
]
}
]
}
| Espaço reservado | Descrição |
|---|---|
messaging_productString | Sempre whatsapp por enquanto |
timestampNúmero inteiro | O horário em que as configurações foram atualizadas |
typeString | O tipo de alteração. No momento, apenas PHONE_NUMBER_SETTINGS |
phone_number_settingsObjeto | Este campo está presente se o tipo for PHONE_NUMBER_SETTINGS. No momento, apenas o subcampo calling é compatível. |
phone_number_settings.phone_number_idString | A identificação do número de telefone, com configurações atualizadas |
phone_number_settings.callingObjeto | Ele é exibido apenas se os campos relacionados a calling forem atualizados. Caso contrário, o valor será nulo. Quando presente, a carga é a mesma que a da API de obtenção de configurações |
account_update:{ "object": "whatsapp_business_account", "entry": [ { "id": "0", "time": 1623862418, "changes": [ { "field": "account_update", "value": { "phone_number": "PN", "event": "ACCOUNT_VIOLATION", "violation_info": { "violation_type": "[LOW_BUSINESS_INITIATED_CALLING_QUALITY|LOW_USER_INITIATED_CALLING_QUALITY]", } } } ] } ] }
account_update:{ "object": "whatsapp_business_account", "entry": [ { "id": "0", "time": 1641848059, "changes": [ { "field": "account_update", "value": { "phone_number": "PN", "event": "ACCOUNT_RESTRICTION", "restriction_info": [ { "restriction_type": "RESTRICTED_BUSINESS_INITIATED_CALLING", "expiration": 1641848057 } ] } } ] } ] }
account_update:{ "object": "whatsapp_business_account", "entry": [ { "id": "0", "time": 1641848059, "changes": [ { "field": "account_update", "value": { "phone_number": "PN", "event": "ACCOUNT_RESTRICTION", "restriction_info": [ { "restriction_type": "RESTRICTED_USER_INITIATED_CALLING", "expiration": 1641848057 } ] } } ] } ] }
[ { "object": "whatsapp_business_account", "entry": [ { "id": "0", "time": 1641848059, "changes": [ { "field": "account_update", "value": { "phone_number": "16505552771", "event": "ACCOUNT_VIOLATION", "violation_info": { "violation_type": "USER_INITIATED_CALLS_LOW_PICKUP_RATE", "remediation": "Please identify and address the cause of user-initiated calls not being picked up and make sure the business is properly resourced to handle expected call volumes." } } } ] } ] } ]
[ { "object": "whatsapp_business_account", "entry": [ { "id": "0", "time": 1641848059, "changes": [ { "field": "account_update", "value": { "phone_number": "16505552771", "event": "ACCOUNT_RESTRICTION", "restriction_info": [ { "restriction_type": "RESTRICTED_USER_INITIATED_CALLING_CALL_BUTTON_HIDDEN", "remediation": "The call button has been hidden due to low pickup rates. Please identify and address the cause of user-initiated calls not being picked up. Next, display the calling buttons by either working with your partner or going to WhatsApp Manager > Account tools > Phone numbers > select Phone number > Calls > toggle on Display call buttons" } ] } } ] } ] } ]