curl --request POST \
--url https://api.notifique.dev/v1/whatsapp/messages/presence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "+5528999999999",
"presence": "composing",
"messageId": "wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg..."
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
from: '+5528999999999',
presence: 'composing',
messageId: 'wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg...'
})
};
fetch('https://api.notifique.dev/v1/whatsapp/messages/presence', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.notifique.dev/v1/whatsapp/messages/presence"
payload = {
"from": "+5528999999999",
"presence": "composing",
"messageId": "wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg..."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.notifique.dev/v1/whatsapp/messages/presence"
payload := strings.NewReader("{\n \"from\": \"+5528999999999\",\n \"presence\": \"composing\",\n \"messageId\": \"wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg...\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": {
"ok": true
}
}{
"success": false,
"error": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "string",
"message": "string",
"code": "string",
"details": [
{
"field": "string",
"message": "string"
}
],
"note": "string"
}Enviar presença no chat WhatsApp
Mostra o indicador de digitação. Informe from com ID, telefone E.164 ou nome da instância; instanceId legado também é aceito. Se ambos forem enviados, from tem prioridade. Pools não são aceitos. Em conexões oficiais Meta e Gupshup, messageId deve ser o ID externo de uma mensagem recebida (messages[].id no webhook ou externalMessageId na listagem); nessas conexões, apenas composing é aceito. Em conexões QR, to é obrigatório e composing ou recording são aceitos.
curl --request POST \
--url https://api.notifique.dev/v1/whatsapp/messages/presence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"from": "+5528999999999",
"presence": "composing",
"messageId": "wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg..."
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
from: '+5528999999999',
presence: 'composing',
messageId: 'wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg...'
})
};
fetch('https://api.notifique.dev/v1/whatsapp/messages/presence', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.notifique.dev/v1/whatsapp/messages/presence"
payload = {
"from": "+5528999999999",
"presence": "composing",
"messageId": "wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg..."
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.notifique.dev/v1/whatsapp/messages/presence"
payload := strings.NewReader("{\n \"from\": \"+5528999999999\",\n \"presence\": \"composing\",\n \"messageId\": \"wamid.HBgNNTUxMTk5OTk5OTk5FQIAEhgg...\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"data": {
"ok": true
}
}{
"success": false,
"error": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "string",
"message": "string",
"code": "string",
"details": [
{
"field": "string",
"message": "string"
}
],
"note": "string"
}Autorizações
API Key no header Authorization. Exemplo: Authorization: Bearer sk_live_xxxxx
Corpo
- Option 1
- Option 2
composing = digitando; recording = gravando áudio (somente QR). Meta e Gupshup aceitam apenas composing.
composing, recording ID, telefone E.164 ou nome da instância WhatsApp. Obrigatório junto com presence, salvo quando instanceId for enviado. Pools não são aceitos.
Telefone E.164 ou JID (@s.whatsapp.net / @g.us). Obrigatório em conexões QR; ignorado nas oficiais.
Reservado para uso futuro; ignorado na v1
ID externo da mensagem recebida. Obrigatório para Meta e Gupshup oficiais; use messages[].id do webhook ou externalMessageId de GET /v1/whatsapp/messages/inbound. Não use o id interno da listagem.
1 - 256Alias legado do ID de instância. Aceita também telefone E.164 ou nome; from tem prioridade se ambos forem enviados.
Esta página foi útil?

