curl --request POST \
--url https://api.notifique.dev/v1/whatsapp/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"to": [
"5511999999999"
],
"type": "text",
"payload": {
"message": "Olá!"
},
"from": "clxx..."
}
'{
"success": true,
"data": {
"messageIds": [
"clxx1...",
"clxx2..."
],
"count": 2,
"status": "QUEUED",
"scheduledAt": null,
"sandbox": false,
"localization": {
"appliedAiLocales": [
"en"
],
"fallbackLocales": [
"pt"
],
"aiTranslatedRecipientCount": 1
}
}
}{
"success": false,
"error": "Bad Request",
"message": "Validation failed",
"details": [
{
"field": "payload.message",
"message": "text type requires payload.message"
}
],
"code": "BAD_REQUEST"
}{
"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": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "Too Many Requests",
"code": "WARMUP_DAILY_LIMIT",
"message": "This instance is in the warm-up period (first 3 days). Daily send limit is 20. Try again tomorrow or wait until warm-up ends."
}{
"success": false,
"error": "Service Unavailable",
"message": "Failed to enqueue message",
"code": "SERVICE_UNAVAILABLE"
}Enviar mensaje WhatsApp
Envía un mensaje de WhatsApp a uno o más números. Contrato canónico: type + payload (texto, media, botones, lista, carrusel o type: template con payload.templateId). Use from para elegir instancia o pool. En la no oficial, type=buttons y type=carousel también están disponibles; pueden dejar de funcionar en cualquier momento.
curl --request POST \
--url https://api.notifique.dev/v1/whatsapp/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"to": [
"5511999999999"
],
"type": "text",
"payload": {
"message": "Olá!"
},
"from": "clxx..."
}
'{
"success": true,
"data": {
"messageIds": [
"clxx1...",
"clxx2..."
],
"count": 2,
"status": "QUEUED",
"scheduledAt": null,
"sandbox": false,
"localization": {
"appliedAiLocales": [
"en"
],
"fallbackLocales": [
"pt"
],
"aiTranslatedRecipientCount": 1
}
}
}{
"success": false,
"error": "Bad Request",
"message": "Validation failed",
"details": [
{
"field": "payload.message",
"message": "text type requires payload.message"
}
],
"code": "BAD_REQUEST"
}{
"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": "Bad Request",
"code": "VALIDATION_ERROR",
"message": "Campo inválido ou ausente."
}{
"success": false,
"error": "Too Many Requests",
"code": "WARMUP_DAILY_LIMIT",
"message": "This instance is in the warm-up period (first 3 days). Daily send limit is 20. Try again tomorrow or wait until warm-up ends."
}{
"success": false,
"error": "Service Unavailable",
"message": "Failed to enqueue message",
"code": "SERVICE_UNAVAILABLE"
}Autorizaciones
API Key no header Authorization. Exemplo: Authorization: Bearer sk_live_xxxxx
Encabezados
Chave única para idempotência. Alternativa: x-idempotency-key.
Cuerpo
Destinatários: números com DDI (ex.: 5511999999999) ou JID de grupo (ex.: 120363295648424210@g.us). Uma mensaje por item.
1 - 500 elementsTipo de mensaje. Use template con payload.templateId para plantillas del workspace (oficial o no oficial).
text, image, video, audio, document, location, contact, buttons, list, carousel, template Contenido según type. text: message. image|video|audio|document: mediaUrl, fileName, mimetype (obligatorios); caption opcional. location: latitude, longitude, name, address. contact: contact o contactId. buttons: title, description, buttons (1 a 3; reply | copy | url | call | pix). list: title, description, buttonText, listSections. carousel: cards (1 a 10). template: templateId, variables, headerMediaUrl, carouselCardMediaUrls.
Show child attributes
Show child attributes
Remetente WhatsApp: id da instância, id ou nome do pool, telefone E.164 ou nome da instância.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Metadados por envio, mesclados em Message.metadata (pares string→string). Respeite limites de payload.
Show child attributes
Show child attributes
Tradução por destinatário (manual ou IA). Campos traduzíveis: payload.message, payload.caption.
Show child attributes
Show child attributes
Mapa locale → string ou objeto com chaves por campo (message, caption, …). Usado com localization.mode=manual.
Variáveis para substituir placeholders {{chave}} em payload.message, payload.caption e options.autoReplyText.
Show child attributes
Show child attributes
Respuesta
Mensaje(ns) aceita(s). Enfileirada(s) ou agendada(s). Respuesta padronizada com envelope success/data; status em MAIÚSCULO (QUEUED, SCHEDULED).
true
Conteúdo de data na resposta de envio.
Show child attributes
Show child attributes
{
"messageIds": ["clxx..."],
"status": "QUEUED",
"scheduledAt": "2025-02-10T14:00:00.000Z",
"count": 1,
"sandbox": true,
"localization": {
"appliedAiLocales": ["string"],
"fallbackLocales": ["string"],
"aiTranslatedRecipientCount": 1
}
}
¿Esta página le ayudó?

