Skip to main content
Cada instância tem uma fila de saída. Todo POST /send-* (e reações, encaminhamentos, enquetes, fixar, apagar) entra nela e sai na ordem, respeitando o intervalo anti-ban.

Ciclo de uma mensagem

  • Resposta imediata com wabox_id (id na fila) e message_id (id no WhatsApp, já definitivo).
  • Intervalo: aleatório entre delay_message_min_ms e delay_message_max_ms (padrão 1.000 a 3.000 ms), contado do fim da mensagem anterior. delay_message na chamada substitui esse intervalo para aquela mensagem; delay_typing acrescenta “digitando…” antes.
  • Mídia: um envio de mídia por vez por instância; textos não esperam mídia.

Quando a instância está desconectada

Por padrão, a fila aceita e segura as mensagens. Ao reconectar (connected), elas saem na ordem, com o intervalo normal — nada é disparado de uma vez. Se preferir falhar rápido, ligue disable_enqueue_when_disconnected em PUT /settings: os envios passam a responder 409 queue_disabled_while_disconnected enquanto o número estiver fora.
Mensagens presas na fila por muito tempo podem ficar obsoletas (“seu código expira em 5 minutos”). Para conteúdo sensível a tempo, verifique GET /status antes de enviar ou use disable_enqueue_when_disconnected e trate o 409.

Inspecionar e limpar

GET /queue lista wabox_id, message_id, phone, type e o conteúdo, paginado. Mensagens já enviadas não aparecem (o Wabox não guarda histórico).

Capacidade

A fila comporta 1.000 mensagens por instância. Acima disso, POST /send-* responde 409 queue_full. Na prática, com o intervalo padrão, 1.000 mensagens levam cerca de 30 a 50 minutos para sair — se você está batendo nesse teto, distribua entre várias instâncias.

Reenvio e falhas

  • O Wabox tenta enviar cada mensagem enquanto o aparelho estiver conectado; falhas definitivas (phone_not_on_whatsapp, media_invalid, message_not_found, not_allowed) viram delivery com error_code e a mensagem sai da fila.
  • send_timeout significa que o aparelho não confirmou a tempo. A mensagem pode ter saído. Não reenvie às cegas: espere o message_status ou confira com o contato.
  • Não existe reenvio automático pela API. Se você precisa garantir entrega, implemente no seu lado: registre wabox_id, espere delivery, e reenvie só em falhas definitivas que façam sentido repetir.

Mensagens referenciadas (responder, encaminhar, editar, votar)

reply_to_message_id, forward-message, edit_message_id, send-poll-vote e send-event-response precisam do conteúdo da mensagem original, que o WhatsApp não fornece sob demanda. O engine mantém um cache em memória (as últimas ~4.000 mensagens por instância, recebidas ou enviadas desde o último restart). Fora do cache, o resultado é delivery com message_not_found. Na prática: responder/encaminhar mensagens recentes funciona; mensagens de dias atrás ou anteriores a um restart do engine falham com message_not_found. Se a citação for opcional para você, trate esse erro reenviando sem reply_to_message_id.

Ordem entre instâncias

Filas são independentes por instância. Se você tem várias instâncias enviando para o mesmo contato, não há ordenação entre elas.