Enviar Mensagem
Enviar status (stories)
https://api.nodinfra.com.br/send/statusEnvia um status do WhatsApp com suporte para texto, imagem, vídeo e áudio.
Este endpoint possui 3 modos de uso:
- envio normal: omita
recipientsemax_recipients - envio explícito: informe
recipientspara enviar apenas para números específicos; o backend aproveita os válidos e descarta os inválidos com motivo nodebug - envio parcial: informe
max_recipientspara limitar a audiência ou aplicar um cap de segurança sobrerecipients
Observação importante sobre recipients
Quando recipients é informado, o backend:
- aceita números em formato WhatsApp, JIDs
@s.whatsapp.nete JIDs@lid - quando recebe
@lid, primeiro tenta resolver esse identificador para o PN (@s.whatsapp.net) usando o cache local de LID do WhatsApp - se o
@lidnão puder ser resolvido para PN, esse item é descartado com motivolid_unresolved - valida se o destinatário existe no WhatsApp usando o mesmo fluxo de verificação do envio normal, com batch para evitar uma chamada remota por recipient
- cruza os destinatários verificados com a audiência atual permitida pela privacidade do status, aceitando equivalência PN/LID quando o cache local conhece esse vínculo
- recipients descartados aparecem em
debug.discarded_recipients, com motivos comoinvalid_format,lid_unresolved,not_on_whatsapp,outside_status_audienceeduplicate - a requisição só retorna
400quando nenhum recipient válido sobra para envio
Observação importante sobre max_recipients
O campo max_recipients foi adicionado como mitigação operacional.
Já observamos casos em que o WhatsApp bloqueia imediatamente o envio de status quando a audiência é muito grande
(por exemplo, agendas com milhares de contatos, como ~3.000).
A causa exata ainda não está totalmente clara, então a recomendação é começar com limites menores e aumentar gradualmente.
Tipos suportados
text: texto com cor de fundo e fonteimage: imagem com legenda opcionalvideo: vídeo com legenda opcionalaudio: áudio normalmyaudio: áudio enviado como vozptt: áudio enviado como voz
Cores de fundo
Informe um valor de 1 a 19. O backend converte esse índice para a cor ARGB usada pelo WhatsApp.
1: amarelo esverdeado suave2: amarelo pálido3: amarelo alaranjado vibrante4: verde vibrante5: verde musgo6: verde claro7: azul piscina8: azul intenso9: azul claro acinzentado10: lilás claro11: lilás quente12: roxo azulado13: magenta profundo14: rosa suave15: salmão rosado16: marrom claro17: cinza claro azulado18: cinza médio19: cinza profundo padrão
Exemplo rápido:
7: azul piscina13: magenta profundo19: cinza profundo (padrão)
Fontes válidas para type=text
Valores aceitos atualmente: 0, 1, 2, 6, 7, 8, 9, 10.
Limites
text: máximo de 656 caracteresmax_recipients: não pode ser negativorecipients: aceita números, JIDs@s.whatsapp.nete JIDs@lid@lidsó entra no envio quando puder ser resolvido localmente para um PN válido; caso contrário, é descartado- para tipos de mídia,
fileé obrigatório
Exemplo de envio explícito:
{
"type": "text",
"text": "Novidades chegando!",
"recipients": [
"5511999999999",
"5511888888888@s.whatsapp.net"
]
}
Exemplo de envio parcial:
{
"type": "text",
"text": "Novidades chegando!",
"background_color": 7,
"font": 1,
"max_recipients": 100
}
Corpo da requisição
typestringobrigatórioTipo do status.
valores:textimagevideoaudiomyaudioptt
exemplo: text
textstringopcionalTexto principal ou legenda.
exemplo: Novidades chegando!
background_colorintegeropcionalÍndice da cor de fundo para status em texto.
exemplo: 7
fontintegeropcionalFonte aceita para `type=text`.
valores:012678910
exemplo: 1
filestringopcionalURL ou base64 do arquivo de mídia.
exemplo: https://example.com/video.mp4
thumbnailstringopcionalCampo aceito no payload; o backend gera thumbnail automaticamente quando necessário.
exemplo: https://example.com/thumb.jpg
mimetypestringopcionalMIME type do arquivo, quando necessário.
exemplo: video/mp4
recipientsarray<string>opcionalLista explícita de destinatários. Aceita números em formato WhatsApp, JIDs `@s.whatsapp.net` e JIDs `@lid`. O backend valida item a item, descarta os inválidos com motivo no `debug` e envia para o subconjunto válido restante. Entradas `@lid` dependem de resolução local para PN.
exemplo: ["5511999999999","5511888888888@s.whatsapp.net"]
max_recipientsintegeropcionalLimita o envio a um subconjunto determinístico da audiência. Quando `recipients` for informado, funciona como cap de segurança sobre a lista explícita já validada.
exemplo: 100