# Wabox > API de WhatsApp para o seu sistema: instâncias, envio de mensagens e webhooks via REST. > ## Agent Instructions > Wabox é uma API não-oficial de WhatsApp (aparelho vinculado). Tudo é snake_case; a base é https://api.wabox.me/instances/{instance_id}/token/{token}. > Envios respondem { id, message_id, wabox_id, status: "queued" } na hora; o resultado real chega no webhook delivery. Envios não são idempotentes: confira GET /queue antes de repetir. > Sempre verifique X-Wabox-Signature (HMAC-SHA256 de ".") nos webhooks e deduplique por event_id. > Botões, listas, carrossel e catálogo são best effort e não renderizam no WhatsApp Web/Desktop. Não existem: chamadas, listas de transmissão, histórico de mensagens, instância mobile. > Não invente endpoints ou campos: use o OpenAPI em https://api.wabox.me/openapi.json. - [Introdução](https://developer.wabox.me/introduction.md): O que o Wabox faz, para quem serve e o que ele não faz. - [Primeiros passos](https://developer.wabox.me/quickstart.md): Crie a conta, conecte um número e envie a primeira mensagem em cinco minutos. - [Conceitos](https://developer.wabox.me/concepts.md): Instância, fila, webhooks e os identificadores que aparecem em toda a API. - [Construir com IA](https://developer.wabox.me/build-with-ai.md): Como dar contexto do Wabox a agentes de código e assistentes: llms.txt, MCP das docs, skills para agentes e os pontos de partida mais comuns. - [Autenticação](https://developer.wabox.me/security/authentication.md): instance_id e token na URL, e as camadas opcionais por cima. - [Client-Token](https://developer.wabox.me/security/client-token.md): Um segundo segredo, no header, exigido em todas as instâncias do workspace. - [Allowlist de IPs](https://developer.wabox.me/security/ip-allowlist.md): Restrinja a API pública aos endereços dos seus servidores. - [Assinatura dos webhooks](https://developer.wabox.me/security/webhook-signature.md): Verifique com HMAC-SHA256 que cada entrega veio do Wabox e não é uma repetição. - [Rotação de token e segredo](https://developer.wabox.me/security/credential-rotation.md): O que fazer quando um token da instância, o Client-Token ou o segredo do webhook vaza. - [Visão geral dos webhooks](https://developer.wabox.me/webhooks/overview.md): Como o Wabox entrega eventos, o que vem em cada requisição e as garantias de entrega. - [Webhook received](https://developer.wabox.me/webhooks/received.md): Toda mensagem que chega ao número, com o conteúdo em um bloco por tipo. - [Webhook delivery](https://developer.wabox.me/webhooks/delivery.md): O resultado de cada envio feito pela API: saiu do aparelho ou falhou, e por quê. - [Webhook message_status](https://developer.wabox.me/webhooks/message-status.md): Os ticks: enviada, entregue, lida e reproduzida, para as mensagens que você mandou. - [Webhooks connected e disconnected](https://developer.wabox.me/webhooks/connection.md): Saiba na hora quando o número conecta, cai, é deslogado ou banido — e o que fazer em cada caso. - [Webhook chat_presence](https://developer.wabox.me/webhooks/chat-presence.md): Contato digitando, gravando áudio, online ou ausente. - [Filtros de webhook](https://developer.wabox.me/webhooks/filters.md): Escolha o que chega: mensagens próprias, grupos, tipos de mídia e tipos de evento. - [Boas práticas e anti-ban](https://developer.wabox.me/guides/best-practices.md): Como o WhatsApp decide banir um número e o que o Wabox faz — e o que só você pode fazer — para evitar. - [Wabox × API oficial do WhatsApp](https://developer.wabox.me/guides/official-api.md): O que muda em relação à WhatsApp Business Platform da Meta e quando cada uma faz sentido. - [Tipos de mensagem](https://developer.wabox.me/guides/message-types.md): Texto, mídia, localização, contatos, enquetes, reações, respostas, menções, edição e exclusão. - [O que renderiza onde](https://developer.wabox.me/guides/rendering-support.md): Botões, listas, carrossel, PIX, eventos e status: em quais aparelhos cada mensagem interativa aparece. - [Mídia](https://developer.wabox.me/guides/media.md): URL ou base64, limites, formatos, conversões automáticas e a expiração das mídias recebidas. - [Fila e reenvio](https://developer.wabox.me/guides/queue-and-retries.md): Como a fila de saída funciona, o que acontece quando a instância cai e como inspecionar ou limpar mensagens pendentes. - [Rate limit e tratamento de erros](https://developer.wabox.me/guides/rate-limits-and-errors.md): Como dimensionar o cliente HTTP, quando repetir uma chamada e quando não. - [Identificadores: phone, LID, grupos e canais](https://developer.wabox.me/guides/identifiers.md): Como o WhatsApp identifica chats e por que você deve guardar o LID junto com o número. - [Diagnóstico pela aba Testes](https://developer.wabox.me/guides/diagnostics.md): Rode o checklist automático da instância e saiba o que continua funcionando depois de uma atualização do WhatsApp. - [Migrando do z-api](https://developer.wabox.me/migration/z-api.md): Troque o host, converta para snake_case e o resto continua igual. O que muda, o que não muda e como migrar sem parar. - [Tabela de rotas z-api → Wabox](https://developer.wabox.me/migration/route-mapping.md): Equivalência endpoint a endpoint entre a z-api e o Wabox, com os aliases de compatibilidade aceitos e o que não existe. - [Claude, ChatGPT e outros apps de IA (MCP)](https://developer.wabox.me/integrations/mcp.md): Conecte um assistente de IA ao seu número pelo servidor MCP do Wabox: OAuth com escolha de instâncias e permissões, tools de envio e de grupos, e como revogar. - [n8n](https://developer.wabox.me/integrations/n8n.md): Receba mensagens do WhatsApp em um workflow do n8n e responda com o nó de requisição HTTP. - [Make](https://developer.wabox.me/integrations/make.md): Monte um cenário no Make que recebe mensagens do WhatsApp por webhook e responde com o módulo HTTP. - [Zapier](https://developer.wabox.me/integrations/zapier.md): Receba mensagens do WhatsApp com Catch Hook e responda com uma ação POST do Webhooks by Zapier. - [Typebot](https://developer.wabox.me/integrations/typebot.md): Envie mensagens pelo Wabox a partir de um fluxo do Typebot e entenda o que é preciso para receber mensagens do WhatsApp nele. - [Integração HTTP genérica](https://developer.wabox.me/integrations/http.md): Receba webhooks, verifique a assinatura, envie mensagens e trate os erros da API em qualquer linguagem. - [Partner API](https://developer.wabox.me/partner/api.md): Para integradores: crie e administre instâncias do seu workspace Partner por API, sem trial nem cobrança no Wabox. - [Limitações conhecidas](https://developer.wabox.me/resources/limitations.md): Tudo que o Wabox não faz ou faz em modo best effort, por área, com o motivo. - [Postman, Insomnia e clientes gerados](https://developer.wabox.me/resources/postman.md): Importe a especificação OpenAPI e gere uma coleção ou um SDK na sua linguagem. - [Changelog](https://developer.wabox.me/resources/changelog.md): Mudanças na API pública, nos webhooks e nesta documentação. - [Introdução à API](https://developer.wabox.me/api-reference/introduction.md): Base URL, autenticação, formato dos dados e como usar o playground. - [Erros](https://developer.wabox.me/api-reference/errors.md): Formato do erro, códigos HTTP e todos os códigos de erro da API e do webhook delivery. - [Paginação, rate limit e limites](https://developer.wabox.me/api-reference/pagination-and-limits.md): Como paginar listas, o que acontece ao passar do limite de requisições e os tetos de fila e mídia. - [QR code (base64)](https://developer.wabox.me/api-reference/instance/qr-code.md): Retorna o QR code atual como data URL PNG (`data:image/png;base64,...`). Consulte a cada ~10s enquanto o status for `qr`; cada QR expira em `expires_at` e um novo é gerado automaticamente. `value` é `null` quando não há QR disponível (instância já conectada ou sessão ainda não iniciada). Se a instân… - [QR code (imagem PNG)](https://developer.wabox.me/api-reference/instance/qr-code-image.md): Mesmo QR de `GET /qr-code`, mas entregue como imagem PNG (512×512) — útil para exibir direto em uma tag ``. Responde `404 not_found` quando não há QR disponível (instância conectada ou sessão ainda não iniciada). - [Código de pareamento por número](https://developer.wabox.me/api-reference/instance/phone-code-phone.md): Alternativa ao QR: gera o código para a opção "Conectar com número de telefone" do WhatsApp. `phone` é o número que será conectado, com DDI e sem símbolos. A sessão precisa estar em `qr` (aguardando pareamento); caso contrário retorna `409 instance_not_connected`. - [Status da conexão](https://developer.wabox.me/api-reference/instance/status.md): Consulta o status ao vivo no engine (cai para a última visão conhecida se o engine não responder). `status` é um de `created`, `starting`, `qr`, `connecting`, `connected`, `disconnected`, `logged_out`, `banned`, `stopped`. `smartphone_connected` indica se o celular está alcançável. `error` é `null`… - [Dados e configuração da instância](https://developer.wabox.me/api-reference/instance/me.md): Retorna a instância completa: identificação, `token`, status, número conectado, assinatura, `settings`, `webhooks` e a `api_url` base pronta para uso. - [Dados do celular conectado](https://developer.wabox.me/api-reference/instance/device.md): Número, JID, nome do perfil, plataforma (`android`, `ios`…) e data da conexão do aparelho vinculado. Retorna `409 instance_not_connected` se a instância não estiver conectada. - [Reiniciar a sessão](https://developer.wabox.me/api-reference/instance/restart.md): Reinicia a sessão da instância no engine sem deslogar o WhatsApp — a conexão é refeita com as credenciais salvas. Use quando a instância travar em `disconnected` ou após alterar `settings` de sessão. `status` é o status logo após o reinício (normalmente `connecting`). - [Desconectar (logout do WhatsApp)](https://developer.wabox.me/api-reference/instance/disconnect.md): Desloga a conta do WhatsApp desta instância — o aparelho vinculado é removido e a instância vai para `logged_out`. Para conectar de novo será preciso ler um novo QR code. - [Renomear a instância](https://developer.wabox.me/api-reference/instance/name.md): Altera o nome exibido no dashboard (1 a 80 caracteres). Não afeta o perfil do WhatsApp. - [Webhooks: URLs, filtros e secret](https://developer.wabox.me/api-reference/instance/get-webhooks.md): URLs de cada tipo de webhook (`*_url`, `null` = desativado), filtros (`notify_sent_by_me`, `ignore_*`) e o `secret` de assinatura. `secret` assina toda entrega: header `X-Wabox-Signature: t=,v1=` onde `v1 = HMAC-SHA256(secret, ".")`. Valide recalculando sobre o… - [Atualizar webhooks (parcial)](https://developer.wabox.me/api-reference/instance/put-webhooks.md): Atualiza só os campos enviados; os demais ficam como estão. Envie `null` em uma `*_url` para desativar aquele webhook. URLs precisam ser http(s). Retorna a configuração completa após a alteração. - [Rotacionar o secret dos webhooks](https://developer.wabox.me/api-reference/instance/webhooks-secret.md): Gera um novo `secret` de assinatura e passa a usá-lo imediatamente. Entregas já enfileiradas mantêm o secret anterior nas retentativas restantes. - [Definir a URL de um webhook](https://developer.wabox.me/api-reference/instance/webhooks-type.md): `type` ∈ `received` | `delivery` | `message_status` | `connected` | `disconnected` | `chat_presence`. Body: `{ "value": "https://..." }` (`null` para desativar). Retorna a configuração completa de webhooks. - [Configurações da instância](https://developer.wabox.me/api-reference/instance/get-settings.md): `auto_read_message`/`auto_read_status`: marcar mensagens/status como lidos automaticamente. `call_reject_auto` + `call_reject_message`: rejeitar chamadas e responder com um texto. `disable_enqueue_when_disconnected`: recusar envios (`409 queue_disabled_while_disconnected`) em vez de enfileirar enqua… - [Atualizar configurações (parcial)](https://developer.wabox.me/api-reference/instance/put-settings.md): Atualiza só os campos enviados e retorna as configurações completas. `delay_message_min_ms` não pode ser maior que `delay_message_max_ms` (`409 conflict`). Configurações de sessão (`auto_read_*`, `call_reject_*`, `proxy_url`) só passam a valer após um `restart`. - [Enviar texto](https://developer.wabox.me/api-reference/messages/send-text.md): Suporta resposta (`reply_to_message_id`), menções e edição (`edit_message_id`). Formatação do texto: `*negrito*`, `_itálico_`, `~riscado~` e `` ```mono``` ``. - [Enviar texto com preview de link](https://developer.wabox.me/api-reference/messages/send-link.md): Título, descrição e imagem do preview são definidos por você (não há scraping da página). A URL é acrescentada ao texto quando ainda não estiver nele. - [Enviar imagem](https://developer.wabox.me/api-reference/messages/send-image.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar áudio / mensagem de voz](https://developer.wabox.me/api-reference/messages/send-audio.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar vídeo](https://developer.wabox.me/api-reference/messages/send-video.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar vídeo redondo (PTV)](https://developer.wabox.me/api-reference/messages/send-ptv.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar GIF (MP4 com reprodução de GIF)](https://developer.wabox.me/api-reference/messages/send-gif.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar documento](https://developer.wabox.me/api-reference/messages/send-document.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar sticker](https://developer.wabox.me/api-reference/messages/send-sticker.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar localização](https://developer.wabox.me/api-reference/messages/send-location.md): A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias dele) e o resultado chega no webhook `delivery`. - [Enviar cartão de contato](https://developer.wabox.me/api-reference/messages/send-contact.md): Envia um único vCard. Para vários contatos na mesma mensagem use `send-contacts`. - [Enviar vários contatos em uma mensagem](https://developer.wabox.me/api-reference/messages/send-contacts.md): Até 50 cartões na mesma mensagem. - [Reagir a uma mensagem](https://developer.wabox.me/api-reference/messages/send-reaction.md): Retorna o id da mensagem que recebeu a reação. Em grupos, informe `participant` (quem enviou a mensagem) e `from_me` quando o engine não conhecer a mensagem. A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias dele) e o resultado c… - [Remover sua reação de uma mensagem](https://developer.wabox.me/api-reference/messages/remove-reaction.md): Envia uma reação vazia para a mensagem informada. A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias dele) e o resultado chega no webhook `delivery`. - [Encaminhar mensagem](https://developer.wabox.me/api-reference/messages/forward-message.md): Só é possível encaminhar mensagens que esta instância enviou ou recebeu recentemente (o engine mantém um histórico limitado em memória; nada é armazenado em repouso). Caso contrário o webhook `delivery` reporta `message_not_found`. `from_phone` indica o chat de origem quando for diferente do destino… - [Fixar ou desafixar mensagem](https://developer.wabox.me/api-reference/messages/pin-message.md): `pin: false` desafixa. `duration_seconds` aceita 86400 (24 h), 604800 (7 dias, padrão) ou 2592000 (30 dias). Não aceita `delay_message`/`delay_typing`. - [Apagar mensagem para todos](https://developer.wabox.me/api-reference/messages/messages.md): Parâmetros via query string (ou body JSON): `phone`, `message_id`, `owner` opcional (padrão true; `false` apaga a mensagem de outra pessoa quando você é admin do grupo) e `participant`. Não aceita `delay_message`/`delay_typing`. - [Enviar enquete](https://developer.wabox.me/api-reference/messages/send-poll.md): De 2 a 12 opções. `poll_max_options` define quantas opções podem ser marcadas (0 = sem limite; padrão 1). Os votos chegam no webhook `received`. - [Votar em uma enquete](https://developer.wabox.me/api-reference/messages/send-poll-vote.md): Só é possível votar em enquetes que esta instância enviou ou recebeu. `options` recebe os nomes das opções; um array vazio limpa o voto. Não aceita `delay_message`/`delay_typing`. A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias… - [Marcar mensagens como lidas (ticks azuis)](https://developer.wabox.me/api-reference/messages/read-message.md): Ação imediata: exige a instância conectada e não passa pela fila (responde 409 `instance_not_connected` se estiver offline). Informe `message_id` ou `message_ids` (até 100) e, em grupos, o `participant` que as enviou. - [Mostrar digitando / gravando / online](https://developer.wabox.me/api-reference/messages/send-presence.md): Ação imediata: exige a instância conectada e não passa pela fila (responde 409 `instance_not_connected` se estiver offline). `composing`/`recording`/`paused` precisam de `phone` (sem ele, 400 `invalid_request`); `available`/`unavailable` são globais. `status` não diferencia maiúsculas de minúsculas.… - [Enviar mensagem com botões](https://developer.wabox.me/api-reference/interactive/send-button-list.md): Até 10 botões em `buttons[]`, de quatro tipos: `{ type: "reply", id, label }` (resposta rápida — o `id` volta no webhook `buttons_response`), `{ type: "url", label, url }` (abre um link), `{ type: "call", label, phone }` (liga para o número) e `{ type: "copy", label, code }` (copia `code` para a áre… - [Enviar código OTP com botão "copiar"](https://developer.wabox.me/api-reference/interactive/send-button-otp.md): Atalho para uma mensagem com um único botão `copy` que coloca `code` na área de transferência do destinatário. `button_label` é o texto do botão (padrão `Copiar código`). Aceita `title`, `footer` e os campos de resposta/menção como `send-button-list`. - [Enviar botão de pagamento PIX](https://developer.wabox.me/api-reference/interactive/send-button-pix.md): Envia um card "copiar chave PIX" com o `name` do recebedor, a chave (`key`) e o `key_type` (`cpf`, `cnpj`, `phone`, `email` ou `evp` — chave aleatória; aceita maiúsculas). `message` é um texto opcional acima do botão. É uma chave PIX estática: o valor não vai na mensagem, informe-o no texto. - [Enviar lista de opções (menu de seleção única)](https://developer.wabox.me/api-reference/interactive/send-option-list.md): `button_label` (até 20 caracteres) é o texto do botão que abre o menu. As opções vão em `sections[].rows[]` (até 10 seções com `title` opcional, cada uma com até 10 linhas) ou no atalho `options[]` (até 10 linhas em uma única seção sem título) — envie um dos dois. Cada linha tem `id`, `title` (até 2… - [Enviar carrossel de cards](https://developer.wabox.me/api-reference/interactive/send-carousel.md): `message` é o texto que acompanha o carrossel e `cards[]` tem de 1 a 10 cards. Cada card tem `image` obrigatória (URL, data URL ou base64), `text`, `title`/`footer` opcionais e até 3 `buttons` nos mesmos formatos de `send-button-list` (reply, url, call, copy; `type` pode ser omitido). Botões `reply`… - [Criar evento de calendário](https://developer.wabox.me/api-reference/interactive/send-event.md): Cria um evento do WhatsApp no chat (`phone` costuma ser um grupo). `start_at`/`end_at` em ISO-8601 com fuso (ex.: `2026-09-15T14:00:00Z`); opcionais `description`, `location` (`name`, `latitude`, `longitude`), `join_link` (link de chamada/reunião) e `extra_guests_allowed`. Os convidados respondem pe… - [Editar ou cancelar um evento](https://developer.wabox.me/api-reference/interactive/send-edit-event.md): Envie o evento completo novamente (todos os campos de `send-event`) com `edit_message_id` = `message_id` do evento original; `canceled: true` cancela o evento. A resposta devolve o mesmo `message_id` do evento editado. - [Responder a um evento (RSVP)](https://developer.wabox.me/api-reference/interactive/send-event-response.md): Confirma presença em um evento: `event_message_id` é o `message_id` do evento e `response` é `going`, `not_going` ou `maybe` (aceita maiúsculas). `extra_guests` (0–99) informa acompanhantes quando o evento permite. Em grupos, use `participant` (telefone de quem criou o evento) e `from_me` para ajuda… - [Publicar status de texto](https://developer.wabox.me/api-reference/interactive/send-text-status.md): Publica no seu status (stories). Quem vê segue a sua configuração de privacidade de status. Sempre endereçado a `status@broadcast` — não envie `phone`. Aceita apenas `delay_message` (não há `delay_typing`). Opcionais: `background_color` (`#RRGGBB`; padrão verde do WhatsApp) e `font` (índice da fonte… - [Publicar status de imagem](https://developer.wabox.me/api-reference/interactive/send-image-status.md): Publica no seu status (stories). Quem vê segue a sua configuração de privacidade de status. Sempre endereçado a `status@broadcast` — não envie `phone`. Aceita apenas `delay_message` (não há `delay_typing`). `image` aceita URL, data URL ou base64; `caption` é a legenda e `mime_type` sobrescreve o tip… - [Publicar status de vídeo](https://developer.wabox.me/api-reference/interactive/send-video-status.md): Publica no seu status (stories). Quem vê segue a sua configuração de privacidade de status. Sempre endereçado a `status@broadcast` — não envie `phone`. Aceita apenas `delay_message` (não há `delay_typing`). `video` aceita URL, data URL ou base64 de um MP4; `caption` é a legenda e `mime_type` sobresc… - [Convidar alguém para administrar seu canal](https://developer.wabox.me/api-reference/interactive/send-newsletter-admin-invite.md): Envia para `phone` um card de convite para administrar o canal `newsletter_id` (formato `@newsletter`), com `caption` opcional. Para publicar em um canal, use qualquer endpoint `send-*` com `phone: "@newsletter"`. - [Listar mensagens na fila](https://developer.wabox.me/api-reference/queue/get-queue.md): Mensagens enviadas pela API que ainda não saíram — normalmente porque a instância está desconectada (elas são entregues em ordem assim que reconectar). Paginado por `page`/`page_size` (máx. 100), do mais antigo para o mais novo. `wabox_id` é o id retornado no envio; `message_id` é o id que a mensage… - [Limpar a fila](https://developer.wabox.me/api-reference/queue/delete-queue.md): Remove todas as mensagens ainda na fila desta instância; elas não serão enviadas. `removed` é a quantidade descartada. Mensagens já em envio não são afetadas. - [Remover uma mensagem da fila](https://developer.wabox.me/api-reference/queue/queue-wabox-id.md): Descarta uma mensagem específica pelo `wabox_id` retornado no envio. `value` é `false` (e `removed` 0) quando ela não está mais na fila — já foi enviada ou nunca existiu. - [Listar conversas](https://developer.wabox.me/api-reference/chats/chats.md): O engine mantém, por instância, uma lista de conversas (só metadados — nunca o conteúdo das mensagens): iniciada com o histórico que o celular envia após o pareamento e depois atualizada pelo tráfego e pelas mudanças feitas no celular. Conversas fixadas vêm primeiro, depois as mais recentes. Imediat… - [Detalhes da conversa](https://developer.wabox.me/api-reference/chats/chats-phone.md): Contagem de não lidas, flags de arquivada/fixada/silenciada e timer de mensagens temporárias. 404 `chat_not_found` quando o engine ainda não viu a conversa. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Arquivar / silenciar / fixar / ler / não lida / apagar conversa](https://developer.wabox.me/api-reference/chats/chats-phone-action.md): `action` ∈ archive | unarchive | mute | unmute | pin | unpin | read | unread | delete. Para `mute`, body `{ "mute_seconds": 28800 }` (ausente = para sempre); nas demais ações o body é opcional. A mudança é refletida no celular via app state do WhatsApp. Imediato: exige a instância conectada (caso co… - [Timer de mensagens temporárias](https://developer.wabox.me/api-reference/chats/chats-phone-expiration.md): Body `{ "value": 0 | 86400 | 604800 | 7776000 }` (segundos; 0 desativa). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar contatos](https://developer.wabox.me/api-reference/contacts/contacts.md): Contatos conhecidos pelo número conectado (agenda + pessoas vistas em conversas), paginados e ordenados por telefone. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar contatos bloqueados](https://developer.wabox.me/api-reference/contacts/contacts-blocked.md): Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Detalhes do contato](https://developer.wabox.me/api-reference/contacts/contacts-phone.md): Nome na agenda, push name, nome comercial, recado ("about") e se o número está no WhatsApp. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [URL da foto de perfil (usuário ou grupo)](https://developer.wabox.me/api-reference/contacts/contacts-phone-picture.md): `url` é um link temporário do CDN do WhatsApp; `null` quando o usuário oculta a foto ou não tem uma. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Verificar se o número está no WhatsApp](https://developer.wabox.me/api-reference/contacts/phone-exists-phone.md): Retorna `exists` e, quando registrado, o telefone canônico e o JID. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Verificar até 50 números de uma vez](https://developer.wabox.me/api-reference/contacts/phone-exists-batch.md): Cada telefone recebe seu próprio resultado, na mesma ordem enviada. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Bloquear contato](https://developer.wabox.me/api-reference/contacts/contacts-phone-block.md): Retorna a lista de bloqueados resultante. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Desbloquear contato](https://developer.wabox.me/api-reference/contacts/contacts-phone-unblock.md): Retorna a lista de bloqueados resultante. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Definir o nome do perfil (push name)](https://developer.wabox.me/api-reference/profile/profile-name.md): Body `{ "value": "..." }` (máx. 25 caracteres). Também disponível em `PUT /profile-name` (compat z-api). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Definir o recado ("about")](https://developer.wabox.me/api-reference/profile/profile-about.md): Body `{ "value": "..." }` (máx. 139 caracteres; string vazia limpa o recado). Também disponível em `PUT /profile-description` (compat z-api). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Definir a foto de perfil](https://developer.wabox.me/api-reference/profile/put-profile-picture.md): Body `{ "value": "" }` de uma imagem JPEG/PNG; redimensionada para 640px. `mime_type` é opcional (sobrescreve o tipo detectado). Também disponível em `PUT /profile-picture` (compat z-api). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Remover a foto de perfil](https://developer.wabox.me/api-reference/profile/delete-profile-picture.md): Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar grupos](https://developer.wabox.me/api-reference/groups/get-groups.md): Grupos dos quais o número participa. Os participantes são omitidos, a menos que `include_participants=true`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar grupo](https://developer.wabox.me/api-reference/groups/post-groups.md): Você é adicionado como super admin automaticamente. Participantes que não puderam ser adicionados aparecem na lista de participantes do grupo retornado. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Informações do grupo pelo link de convite](https://developer.wabox.me/api-reference/groups/groups-invite-info.md): `?invite=`. Não entra no grupo, só consulta. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Entrar em um grupo pelo link de convite](https://developer.wabox.me/api-reference/groups/groups-join.md): Body `{ "invite": "" }`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Metadados e participantes do grupo](https://developer.wabox.me/api-reference/groups/get-groups-id.md): Id do grupo como devolvido pela API / webhooks: `-group` (o JID bruto `@g.us` também é aceito). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Atualizar nome / descrição / foto / configurações](https://developer.wabox.me/api-reference/groups/put-groups-id.md): Body parcial: envie só os campos que quer alterar. `remove_picture: true` remove a foto; `description: ""` limpa a descrição. Id do grupo como devolvido pela API / webhooks: `-group` (o JID bruto `@g.us` também é aceito). Imediata: exige a instância conectada (caso contrário, 409 `instance_n… - [Link de convite](https://developer.wabox.me/api-reference/groups/groups-id-invite-link.md): Somente admins. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Revogar o link de convite e gerar um novo](https://developer.wabox.me/api-reference/groups/groups-id-invite-link-revoke.md): O link anterior deixa de funcionar. Somente admins. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Adicionar / remover / promover / rebaixar / aprovar / rejeitar participantes](https://developer.wabox.me/api-reference/groups/groups-id-participants.md): Body `{ "action": "add" | "remove" | "promote" | "demote" | "approve" | "reject", "phones": [...] }`. Cada telefone recebe seu próprio resultado (`error` é o status do WhatsApp: 403 não permitido, 408 saiu recentemente, 409 já é membro…). Imediata: exige a instância conectada (caso contrário, 409 `i… - [Solicitações de entrada pendentes](https://developer.wabox.me/api-reference/groups/groups-id-requests.md): Para grupos com aprovação de entrada ativada (`join_approval_required`). Aprove ou rejeite com `POST /groups/{id}/participants` (`action: "approve" | "reject"`). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Sair do grupo](https://developer.wabox.me/api-reference/groups/groups-id-leave.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar comunidades](https://developer.wabox.me/api-reference/communities/get-communities.md): Comunidades das quais você participa. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar comunidade](https://developer.wabox.me/api-reference/communities/post-communities.md): O WhatsApp cria o grupo de avisos automaticamente; `participants` são adicionados a ele. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Metadados e grupos vinculados](https://developer.wabox.me/api-reference/communities/get-communities-id.md): Id da comunidade no formato de grupo: `-group`. `groups[]` lista os grupos vinculados (o grupo de avisos vem com `is_announcement: true`). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Atualizar nome / descrição / foto](https://developer.wabox.me/api-reference/communities/put-communities-id.md): Mesmo body de `PUT /groups/{id}` (parcial; `remove_picture: true` remove a foto). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Todos os membros da comunidade](https://developer.wabox.me/api-reference/communities/communities-id-participants.md): Telefones dos membros de todos os grupos vinculados (sem repetição). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Vincular grupos existentes à comunidade](https://developer.wabox.me/api-reference/communities/communities-id-groups.md): Body `{ "group_ids": [...] }` — você precisa ser admin da comunidade e dos grupos. Um resultado por grupo (`error` é o status do WhatsApp, ex.: 403 não permitido). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar grupo dentro da comunidade](https://developer.wabox.me/api-reference/communities/communities-id-groups-create.md): Mesmo body de `POST /groups`. O grupo já nasce vinculado (`parent_id` = id da comunidade). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Desvincular grupos da comunidade](https://developer.wabox.me/api-reference/communities/communities-id-groups-unlink.md): Body `{ "group_ids": [...] }`. Os grupos continuam existindo, só deixam de fazer parte da comunidade. Um resultado por grupo. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Desvincular um grupo da comunidade](https://developer.wabox.me/api-reference/communities/communities-id-groups-group-id.md): Atalho para `POST /communities/{id}/groups/unlink` com um único grupo; devolve só o resultado dele. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Sair da comunidade](https://developer.wabox.me/api-reference/communities/communities-id-leave.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Canais que você possui ou segue](https://developer.wabox.me/api-reference/newsletters/get-newsletters.md): `role` indica sua relação com cada canal (`owner`, `admin`, `subscriber`). Para publicar em um canal seu, use qualquer endpoint `send-*` com `phone: "@newsletter"`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar canal](https://developer.wabox.me/api-reference/newsletters/post-newsletters.md): Você passa a ser o dono. `picture` opcional (JPEG/PNG, por URL ou base64). Para publicar em um canal seu, use qualquer endpoint `send-*` com `phone: "@newsletter"`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Informações do canal pelo link de convite](https://developer.wabox.me/api-reference/newsletters/newsletters-invite-info.md): `?invite=`. Não segue o canal, só consulta. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Metadados do canal](https://developer.wabox.me/api-reference/newsletters/newsletters-id.md): Id do canal como devolvido pela API / webhooks: `@newsletter`. Para publicar em um canal seu, use qualquer endpoint `send-*` com `phone: "@newsletter"`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Seguir canal](https://developer.wabox.me/api-reference/newsletters/newsletters-id-follow.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Deixar de seguir canal](https://developer.wabox.me/api-reference/newsletters/newsletters-id-unfollow.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Silenciar canal](https://developer.wabox.me/api-reference/newsletters/newsletters-id-mute.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Reativar notificações do canal](https://developer.wabox.me/api-reference/newsletters/newsletters-id-unmute.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Publicações recentes](https://developer.wabox.me/api-reference/newsletters/newsletters-id-messages.md): Metadados + texto das últimas publicações. A mídia não é baixada: para publicações de imagem/vídeo/documento você recebe só o `type` (e o `text`, se houver). `?count=` (≤ 100, padrão 50) e `?before=` paginam para trás. Imediata: exige a instância conectada (caso contrário, 409 `instance_n… - [Reagir a uma publicação](https://developer.wabox.me/api-reference/newsletters/newsletters-id-reaction.md): Body `{ "server_id": 119, "reaction": "👍" }`. `server_id` vem da listagem de publicações ou do webhook `received`. Reação vazia (`""`) remove a sua. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Marcar publicações como vistas](https://developer.wabox.me/api-reference/newsletters/newsletters-id-read.md): Body `{ "server_ids": [118, 119] }` (até 100 por chamada). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Configurações de privacidade atuais](https://developer.wabox.me/api-reference/privacy/privacy.md): Quem pode ver seu "visto por último" / online / foto de perfil / recado, confirmações de leitura, quem pode adicionar você a grupos, ligar ou enviar mensagem. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Alterar uma configuração de privacidade](https://developer.wabox.me/api-reference/privacy/privacy-setting.md): Body `{ "value": ... }`. Valores permitidos — `last_seen`: `all` | `contacts` | `contact_blacklist` | `none`; `online`: `all` | `match_last_seen`; `profile_picture`: `all` | `contacts` | `contact_blacklist` | `none`; `about`: `all` | `contacts` | `contact_blacklist` | `none`; `read_receipts`: `all`… - [Perfil comercial](https://developer.wabox.me/api-reference/business/get-business-profile.md): Descrição, endereço, e-mail, sites, categorias e horário de funcionamento de uma conta WhatsApp Business. `?phone=` lê o perfil de outro negócio; omitido = o seu. Contas comuns respondem `is_business: false` (os demais campos vêm vazios). Imediata: exige a instância conectada (caso contrário, 409 `i… - [Atualizar o perfil comercial](https://developer.wabox.me/api-reference/business/put-business-profile.md): Atualização parcial: só os campos enviados mudam (`website: []` / `categories: []` limpam). `business_hours.config[].open_time/close_time` são `HH:MM` no `timezone` informado. Os ids de `categories` são os que aparecem em `categories[].id` de qualquer perfil comercial. - [Listar produtos do catálogo](https://developer.wabox.me/api-reference/business/get-business-products.md): Seu catálogo, ou o de outro negócio com `?phone=`. Pagine com `?limit=` (≤100, padrão 50) e `?cursor=`; quando `next_cursor` não vem na resposta, não há mais páginas. Preços são valores decimais na moeda de `currency` (`79.9` = R$ 79,90). - [Criar um produto](https://developer.wabox.me/api-reference/business/post-business-products.md): Adiciona um produto ao seu catálogo. `images` são enviadas ao WhatsApp (JPEG/PNG, até 10; URL, data URL ou base64). Produtos novos passam pela revisão do WhatsApp (`review_status`). `price` é decimal na moeda de `currency` (ISO-4217). - [Apagar vários produtos](https://developer.wabox.me/api-reference/business/delete-business-products.md): Body `{ "product_ids": [...] }` (1–50 ids). Responde 404 `product_not_found` se algum id não está no seu catálogo. - [Editar um produto](https://developer.wabox.me/api-reference/business/put-business-products-id.md): Atualização parcial; `images` (quando enviado) substitui todas as imagens (`[]` remove todas). Responde 404 `product_not_found` se o produto não está no seu catálogo. - [Apagar um produto](https://developer.wabox.me/api-reference/business/delete-business-products-id.md): Remove o produto do seu catálogo. Responde 404 `product_not_found` se ele não existe. - [Listar coleções do catálogo](https://developer.wabox.me/api-reference/business/business-collections.md): Coleções (com seus produtos) do seu catálogo ou do de outro negócio (`?phone=`). - [Detalhes de um pedido](https://developer.wabox.me/api-reference/business/business-orders-id.md): Itens e totais de um pedido que um cliente fez a partir do seu catálogo. `id` e `?token=` vêm do bloco `order` do webhook `received`. Responde 404 `order_not_found` se o par id/token não bate. - [Enviar card de produto](https://developer.wabox.me/api-reference/business/send-product.md): Card de um produto do seu catálogo (ou do catálogo de outro negócio, com `business_phone`), com `message` opcional abaixo. `product_id` pode ser o id do WhatsApp ou o seu `retailer_id`. O produto é lido do catálogo na hora do envio: se não existir, o `delivery` chega com erro. - [Enviar link do catálogo](https://developer.wabox.me/api-reference/business/send-catalog.md): Envia `https://wa.me/c/` (seu próprio catálogo por padrão) com uma `message` opcional acima. - [Enviar card de pedido](https://developer.wabox.me/api-reference/business/send-order.md): Card com o resumo de um pedido (`title`, `item_count`, `total`). Os itens só existem em pedidos que o cliente fez a partir do catálogo: um card criado aqui sem `token` mostra apenas o resumo. `order_id` é a sua referência (gerada quando omitida); `status` padrão `inquiry`. Para responder a um pedido… - [Aceitar ou recusar um pedido](https://developer.wabox.me/api-reference/business/order-status-update.md): Responde a um pedido que o cliente fez: devolva o `order_id`, o `token` e o `message_id` da mensagem do pedido como `order_request_message_id` (tudo do bloco `order` do webhook `received`), com `status: accepted | declined`. Use `GET /business/orders/{id}` para ler os itens antes. - [Listar etiquetas](https://developer.wabox.me/api-reference/labels/get-labels.md): Todas as etiquetas com os chats (telefones / ids de grupo) que as carregam. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. A primeira chamada após a instância (re)iniciar dispara uma sincronização das etiquetas com o WhatsApp e pode responder 502 `action… - [Criar uma etiqueta](https://developer.wabox.me/api-reference/labels/post-labels.md): Body `{ "name", "color" }` (`color` = índice da paleta dos apps do WhatsApp, 0–19; padrão 0). Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Renomear / recolorir uma etiqueta](https://developer.wabox.me/api-reference/labels/put-labels-id.md): Envie `name`, `color` ou ambos. Responde 404 `label_not_found` se a etiqueta não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Apagar uma etiqueta](https://developer.wabox.me/api-reference/labels/delete-labels-id.md): Remove a etiqueta de todos os chats. Responde 404 `label_not_found` se ela não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Etiquetar um chat](https://developer.wabox.me/api-reference/labels/put-chats-phone-labels-id.md): `phone` pode ser um usuário ou um id de grupo. Responde 404 `label_not_found` se a etiqueta não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Tirar a etiqueta de um chat](https://developer.wabox.me/api-reference/labels/delete-chats-phone-labels-id.md): Responde 404 `label_not_found` se a etiqueta não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar instâncias](https://developer.wabox.me/api-reference/partner/get-instances.md): Instâncias do workspace Partner, da mais recente para a mais antiga, com `token` e webhooks. Filtre por `status` (`connected` / `disconnected`) ou `q` (nome, id ou número). - [Criar instância](https://developer.wabox.me/api-reference/partner/post-instances.md): Cria uma instância no workspace Partner e já inicia a sessão. A resposta traz `id`, `token` e `api_url`: use-os na API pública normal para obter o QR (`GET /qr-code`), status e enviar mensagens. `webhooks` e `settings` são opcionais e aceitam os mesmos campos de `PUT /webhooks` e `PUT /settings`. In… - [Detalhes da instância](https://developer.wabox.me/api-reference/partner/get-instances-instance-id.md) - [Atualizar instância](https://developer.wabox.me/api-reference/partner/put-instances-instance-id.md): Atualização parcial de `name`, `webhooks` e/ou `settings`. - [Excluir instância](https://developer.wabox.me/api-reference/partner/delete-instances-instance-id.md): Desconecta o número (o aparelho vinculado some do celular), para a sessão e remove a instância. Mensagens na fila são descartadas. - [Gerar novo token da instância](https://developer.wabox.me/api-reference/partner/instances-instance-id-rotate-token.md): O token atual deixa de valer imediatamente. - [Webhook received — mensagem recebida](https://developer.wabox.me/api-reference/webhooks/received.md): Uma mensagem chegou ao número conectado. - [Webhook delivery — resultado do envio](https://developer.wabox.me/api-reference/webhooks/delivery.md): Fecha o ciclo de cada envio feito pela API. - [Webhook message_status — recibos](https://developer.wabox.me/api-reference/webhooks/message-status.md): Entregue, lida ou reproduzida: os ticks das mensagens que você enviou. - [Webhook connected — instância conectada](https://developer.wabox.me/api-reference/webhooks/connected.md): O número leu o QR code ou reconectou. - [Webhook disconnected — instância desconectada](https://developer.wabox.me/api-reference/webhooks/disconnected.md): Queda de conexão, logout no celular ou banimento. - [Webhook chat_presence — presença no chat](https://developer.wabox.me/api-reference/webhooks/chat-presence.md): Contato digitando, gravando áudio ou online. - [QR code (base64)](https://developer.wabox.me/api-reference/instance/qr-code-base64.md): Retorna o QR code atual como data URL PNG (`data:image/png;base64,...`). Consulte a cada ~10s enquanto o status for `qr`; cada QR expira em `expires_at` e um novo é gerado automaticamente. `value` é `null` quando não há QR disponível (instância já conectada ou sessão ainda não iniciada). Se a instân… - [QR code (imagem PNG)](https://developer.wabox.me/api-reference/instance/qr-code-imagem-png.md): Mesmo QR de `GET /qr-code`, mas entregue como imagem PNG (512×512) — útil para exibir direto em uma tag ``. Responde `404 not_found` quando não há QR disponível (instância conectada ou sessão ainda não iniciada). - [Código de pareamento por número](https://developer.wabox.me/api-reference/instance/código-de-pareamento-por-número.md): Alternativa ao QR: gera o código para a opção "Conectar com número de telefone" do WhatsApp. `phone` é o número que será conectado, com DDI e sem símbolos. A sessão precisa estar em `qr` (aguardando pareamento); caso contrário retorna `409 instance_not_connected`. - [Status da conexão](https://developer.wabox.me/api-reference/instance/status-da-conexão.md): Consulta o status ao vivo no engine (cai para a última visão conhecida se o engine não responder). `status` é um de `created`, `starting`, `qr`, `connecting`, `connected`, `disconnected`, `logged_out`, `banned`, `stopped`. `smartphone_connected` indica se o celular está alcançável. `error` é `null`… - [Dados e configuração da instância](https://developer.wabox.me/api-reference/instance/dados-e-configuração-da-instância.md): Retorna a instância completa: identificação, `token`, status, número conectado, assinatura, `settings`, `webhooks` e a `api_url` base pronta para uso. - [Dados do celular conectado](https://developer.wabox.me/api-reference/instance/dados-do-celular-conectado.md): Número, JID, nome do perfil, plataforma (`android`, `ios`…) e data da conexão do aparelho vinculado. Retorna `409 instance_not_connected` se a instância não estiver conectada. - [Reiniciar a sessão](https://developer.wabox.me/api-reference/instance/reiniciar-a-sessão.md): Reinicia a sessão da instância no engine sem deslogar o WhatsApp — a conexão é refeita com as credenciais salvas. Use quando a instância travar em `disconnected` ou após alterar `settings` de sessão. `status` é o status logo após o reinício (normalmente `connecting`). - [Desconectar (logout do WhatsApp)](https://developer.wabox.me/api-reference/instance/desconectar-logout-do-whatsapp.md): Desloga a conta do WhatsApp desta instância — o aparelho vinculado é removido e a instância vai para `logged_out`. Para conectar de novo será preciso ler um novo QR code. - [Renomear a instância](https://developer.wabox.me/api-reference/instance/renomear-a-instância.md): Altera o nome exibido no dashboard (1 a 80 caracteres). Não afeta o perfil do WhatsApp. - [Webhooks: URLs, filtros e secret](https://developer.wabox.me/api-reference/instance/webhooks:-urls-filtros-e-secret.md): URLs de cada tipo de webhook (`*_url`, `null` = desativado), filtros (`notify_sent_by_me`, `ignore_*`) e o `secret` de assinatura. `secret` assina toda entrega: header `X-Wabox-Signature: t=,v1=` onde `v1 = HMAC-SHA256(secret, ".")`. Valide recalculando sobre o… - [Atualizar webhooks (parcial)](https://developer.wabox.me/api-reference/instance/atualizar-webhooks-parcial.md): Atualiza só os campos enviados; os demais ficam como estão. Envie `null` em uma `*_url` para desativar aquele webhook. URLs precisam ser http(s). Retorna a configuração completa após a alteração. - [Rotacionar o secret dos webhooks](https://developer.wabox.me/api-reference/instance/rotacionar-o-secret-dos-webhooks.md): Gera um novo `secret` de assinatura e passa a usá-lo imediatamente. Entregas já enfileiradas mantêm o secret anterior nas retentativas restantes. - [Definir a URL de um webhook](https://developer.wabox.me/api-reference/instance/definir-a-url-de-um-webhook.md): `type` ∈ `received` | `delivery` | `message_status` | `connected` | `disconnected` | `chat_presence`. Body: `{ "value": "https://..." }` (`null` para desativar). Retorna a configuração completa de webhooks. - [Configurações da instância](https://developer.wabox.me/api-reference/instance/configurações-da-instância.md): `auto_read_message`/`auto_read_status`: marcar mensagens/status como lidos automaticamente. `call_reject_auto` + `call_reject_message`: rejeitar chamadas e responder com um texto. `disable_enqueue_when_disconnected`: recusar envios (`409 queue_disabled_while_disconnected`) em vez de enfileirar enqua… - [Atualizar configurações (parcial)](https://developer.wabox.me/api-reference/instance/atualizar-configurações-parcial.md): Atualiza só os campos enviados e retorna as configurações completas. `delay_message_min_ms` não pode ser maior que `delay_message_max_ms` (`409 conflict`). Configurações de sessão (`auto_read_*`, `call_reject_*`, `proxy_url`) só passam a valer após um `restart`. - [Enviar texto](https://developer.wabox.me/api-reference/messages/enviar-texto.md): Suporta resposta (`reply_to_message_id`), menções e edição (`edit_message_id`). Formatação do texto: `*negrito*`, `_itálico_`, `~riscado~` e `` ```mono``` ``. - [Enviar texto com preview de link](https://developer.wabox.me/api-reference/messages/enviar-texto-com-preview-de-link.md): Título, descrição e imagem do preview são definidos por você (não há scraping da página). A URL é acrescentada ao texto quando ainda não estiver nele. - [Enviar imagem](https://developer.wabox.me/api-reference/messages/enviar-imagem.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar áudio / mensagem de voz](https://developer.wabox.me/api-reference/messages/enviar-áudio-mensagem-de-voz.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar vídeo](https://developer.wabox.me/api-reference/messages/enviar-vídeo.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar vídeo redondo (PTV)](https://developer.wabox.me/api-reference/messages/enviar-vídeo-redondo-ptv.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar GIF (MP4 com reprodução de GIF)](https://developer.wabox.me/api-reference/messages/enviar-gif-mp4-com-reprodução-de-gif.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar documento](https://developer.wabox.me/api-reference/messages/enviar-documento.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar sticker](https://developer.wabox.me/api-reference/messages/enviar-sticker.md): A mídia pode ser uma URL http(s) (baixada pelo engine), uma `data:` URL ou base64 puro. Use `mime_type`/`file_name` quando o tipo não puder ser inferido. Limites: 16 MB para imagens/áudios/vídeos/stickers, 100 MB para documentos (arquivos maiores falham no webhook `delivery` com `media_invalid`). En… - [Enviar localização](https://developer.wabox.me/api-reference/messages/enviar-localização.md): A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias dele) e o resultado chega no webhook `delivery`. - [Enviar cartão de contato](https://developer.wabox.me/api-reference/messages/enviar-cartão-de-contato.md): Envia um único vCard. Para vários contatos na mesma mensagem use `send-contacts`. - [Enviar vários contatos em uma mensagem](https://developer.wabox.me/api-reference/messages/enviar-vários-contatos-em-uma-mensagem.md): Até 50 cartões na mesma mensagem. - [Reagir a uma mensagem](https://developer.wabox.me/api-reference/messages/reagir-a-uma-mensagem.md): Retorna o id da mensagem que recebeu a reação. Em grupos, informe `participant` (quem enviou a mensagem) e `from_me` quando o engine não conhecer a mensagem. A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias dele) e o resultado c… - [Remover sua reação de uma mensagem](https://developer.wabox.me/api-reference/messages/remover-sua-reação-de-uma-mensagem.md): Envia uma reação vazia para a mensagem informada. A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias dele) e o resultado chega no webhook `delivery`. - [Encaminhar mensagem](https://developer.wabox.me/api-reference/messages/encaminhar-mensagem.md): Só é possível encaminhar mensagens que esta instância enviou ou recebeu recentemente (o engine mantém um histórico limitado em memória; nada é armazenado em repouso). Caso contrário o webhook `delivery` reporta `message_not_found`. `from_phone` indica o chat de origem quando for diferente do destino… - [Fixar ou desafixar mensagem](https://developer.wabox.me/api-reference/messages/fixar-ou-desafixar-mensagem.md): `pin: false` desafixa. `duration_seconds` aceita 86400 (24 h), 604800 (7 dias, padrão) ou 2592000 (30 dias). Não aceita `delay_message`/`delay_typing`. - [Apagar mensagem para todos](https://developer.wabox.me/api-reference/messages/apagar-mensagem-para-todos.md): Parâmetros via query string (ou body JSON): `phone`, `message_id`, `owner` opcional (padrão true; `false` apaga a mensagem de outra pessoa quando você é admin do grupo) e `participant`. Não aceita `delay_message`/`delay_typing`. - [Enviar enquete](https://developer.wabox.me/api-reference/messages/enviar-enquete.md): De 2 a 12 opções. `poll_max_options` define quantas opções podem ser marcadas (0 = sem limite; padrão 1). Os votos chegam no webhook `received`. - [Votar em uma enquete](https://developer.wabox.me/api-reference/messages/votar-em-uma-enquete.md): Só é possível votar em enquetes que esta instância enviou ou recebeu. `options` recebe os nomes das opções; um array vazio limpa o voto. Não aceita `delay_message`/`delay_typing`. A mensagem entra na fila e é enviada de forma assíncrona; `message_id` já é o id definitivo no WhatsApp (`id` é um alias… - [Marcar mensagens como lidas (ticks azuis)](https://developer.wabox.me/api-reference/messages/marcar-mensagens-como-lidas-ticks-azuis.md): Ação imediata: exige a instância conectada e não passa pela fila (responde 409 `instance_not_connected` se estiver offline). Informe `message_id` ou `message_ids` (até 100) e, em grupos, o `participant` que as enviou. - [Mostrar digitando / gravando / online](https://developer.wabox.me/api-reference/messages/mostrar-digitando-gravando-online.md): Ação imediata: exige a instância conectada e não passa pela fila (responde 409 `instance_not_connected` se estiver offline). `composing`/`recording`/`paused` precisam de `phone` (sem ele, 400 `invalid_request`); `available`/`unavailable` são globais. `status` não diferencia maiúsculas de minúsculas.… - [Listar mensagens na fila](https://developer.wabox.me/api-reference/queue/listar-mensagens-na-fila.md): Mensagens enviadas pela API que ainda não saíram — normalmente porque a instância está desconectada (elas são entregues em ordem assim que reconectar). Paginado por `page`/`page_size` (máx. 100), do mais antigo para o mais novo. `wabox_id` é o id retornado no envio; `message_id` é o id que a mensage… - [Limpar a fila](https://developer.wabox.me/api-reference/queue/limpar-a-fila.md): Remove todas as mensagens ainda na fila desta instância; elas não serão enviadas. `removed` é a quantidade descartada. Mensagens já em envio não são afetadas. - [Remover uma mensagem da fila](https://developer.wabox.me/api-reference/queue/remover-uma-mensagem-da-fila.md): Descarta uma mensagem específica pelo `wabox_id` retornado no envio. `value` é `false` (e `removed` 0) quando ela não está mais na fila — já foi enviada ou nunca existiu. - [Listar contatos](https://developer.wabox.me/api-reference/contacts/listar-contatos.md): Contatos conhecidos pelo número conectado (agenda + pessoas vistas em conversas), paginados e ordenados por telefone. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar contatos bloqueados](https://developer.wabox.me/api-reference/contacts/listar-contatos-bloqueados.md): Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Detalhes do contato](https://developer.wabox.me/api-reference/contacts/detalhes-do-contato.md): Nome na agenda, push name, nome comercial, recado ("about") e se o número está no WhatsApp. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [URL da foto de perfil (usuário ou grupo)](https://developer.wabox.me/api-reference/contacts/url-da-foto-de-perfil-usuário-ou-grupo.md): `url` é um link temporário do CDN do WhatsApp; `null` quando o usuário oculta a foto ou não tem uma. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Verificar se o número está no WhatsApp](https://developer.wabox.me/api-reference/contacts/verificar-se-o-número-está-no-whatsapp.md): Retorna `exists` e, quando registrado, o telefone canônico e o JID. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Verificar até 50 números de uma vez](https://developer.wabox.me/api-reference/contacts/verificar-até-50-números-de-uma-vez.md): Cada telefone recebe seu próprio resultado, na mesma ordem enviada. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Bloquear contato](https://developer.wabox.me/api-reference/contacts/bloquear-contato.md): Retorna a lista de bloqueados resultante. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Desbloquear contato](https://developer.wabox.me/api-reference/contacts/desbloquear-contato.md): Retorna a lista de bloqueados resultante. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Definir o nome do perfil (push name)](https://developer.wabox.me/api-reference/profile/definir-o-nome-do-perfil-push-name.md): Body `{ "value": "..." }` (máx. 25 caracteres). Também disponível em `PUT /profile-name` (compat z-api). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Definir o recado ("about")](https://developer.wabox.me/api-reference/profile/definir-o-recado-"about".md): Body `{ "value": "..." }` (máx. 139 caracteres; string vazia limpa o recado). Também disponível em `PUT /profile-description` (compat z-api). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Definir a foto de perfil](https://developer.wabox.me/api-reference/profile/definir-a-foto-de-perfil.md): Body `{ "value": "" }` de uma imagem JPEG/PNG; redimensionada para 640px. `mime_type` é opcional (sobrescreve o tipo detectado). Também disponível em `PUT /profile-picture` (compat z-api). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Remover a foto de perfil](https://developer.wabox.me/api-reference/profile/remover-a-foto-de-perfil.md): Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar grupos](https://developer.wabox.me/api-reference/groups/listar-grupos.md): Grupos dos quais o número participa. Os participantes são omitidos, a menos que `include_participants=true`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar grupo](https://developer.wabox.me/api-reference/groups/criar-grupo.md): Você é adicionado como super admin automaticamente. Participantes que não puderam ser adicionados aparecem na lista de participantes do grupo retornado. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Informações do grupo pelo link de convite](https://developer.wabox.me/api-reference/groups/informações-do-grupo-pelo-link-de-convite.md): `?invite=`. Não entra no grupo, só consulta. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Entrar em um grupo pelo link de convite](https://developer.wabox.me/api-reference/groups/entrar-em-um-grupo-pelo-link-de-convite.md): Body `{ "invite": "" }`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Metadados e participantes do grupo](https://developer.wabox.me/api-reference/groups/metadados-e-participantes-do-grupo.md): Id do grupo como devolvido pela API / webhooks: `-group` (o JID bruto `@g.us` também é aceito). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Atualizar nome / descrição / foto / configurações](https://developer.wabox.me/api-reference/groups/atualizar-nome-descrição-foto-configurações.md): Body parcial: envie só os campos que quer alterar. `remove_picture: true` remove a foto; `description: ""` limpa a descrição. Id do grupo como devolvido pela API / webhooks: `-group` (o JID bruto `@g.us` também é aceito). Imediata: exige a instância conectada (caso contrário, 409 `instance_n… - [Link de convite](https://developer.wabox.me/api-reference/groups/link-de-convite.md): Somente admins. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Revogar o link de convite e gerar um novo](https://developer.wabox.me/api-reference/groups/revogar-o-link-de-convite-e-gerar-um-novo.md): O link anterior deixa de funcionar. Somente admins. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Adicionar / remover / promover / rebaixar / aprovar / rejeitar participantes](https://developer.wabox.me/api-reference/groups/adicionar-remover-promover-rebaixar-aprovar-rejeitar-participantes.md): Body `{ "action": "add" | "remove" | "promote" | "demote" | "approve" | "reject", "phones": [...] }`. Cada telefone recebe seu próprio resultado (`error` é o status do WhatsApp: 403 não permitido, 408 saiu recentemente, 409 já é membro…). Imediata: exige a instância conectada (caso contrário, 409 `i… - [Solicitações de entrada pendentes](https://developer.wabox.me/api-reference/groups/solicitações-de-entrada-pendentes.md): Para grupos com aprovação de entrada ativada (`join_approval_required`). Aprove ou rejeite com `POST /groups/{id}/participants` (`action: "approve" | "reject"`). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Sair do grupo](https://developer.wabox.me/api-reference/groups/sair-do-grupo.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar conversas](https://developer.wabox.me/api-reference/chats/listar-conversas.md): O engine mantém, por instância, uma lista de conversas (só metadados — nunca o conteúdo das mensagens): iniciada com o histórico que o celular envia após o pareamento e depois atualizada pelo tráfego e pelas mudanças feitas no celular. Conversas fixadas vêm primeiro, depois as mais recentes. Imediat… - [Detalhes da conversa](https://developer.wabox.me/api-reference/chats/detalhes-da-conversa.md): Contagem de não lidas, flags de arquivada/fixada/silenciada e timer de mensagens temporárias. 404 `chat_not_found` quando o engine ainda não viu a conversa. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Arquivar / silenciar / fixar / ler / não lida / apagar conversa](https://developer.wabox.me/api-reference/chats/arquivar-silenciar-fixar-ler-não-lida-apagar-conversa.md): `action` ∈ archive | unarchive | mute | unmute | pin | unpin | read | unread | delete. Para `mute`, body `{ "mute_seconds": 28800 }` (ausente = para sempre); nas demais ações o body é opcional. A mudança é refletida no celular via app state do WhatsApp. Imediato: exige a instância conectada (caso co… - [Timer de mensagens temporárias](https://developer.wabox.me/api-reference/chats/timer-de-mensagens-temporárias.md): Body `{ "value": 0 | 86400 | 604800 | 7776000 }` (segundos; 0 desativa). Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Enviar mensagem com botões](https://developer.wabox.me/api-reference/interactive/enviar-mensagem-com-botões.md): Até 10 botões em `buttons[]`, de quatro tipos: `{ type: "reply", id, label }` (resposta rápida — o `id` volta no webhook `buttons_response`), `{ type: "url", label, url }` (abre um link), `{ type: "call", label, phone }` (liga para o número) e `{ type: "copy", label, code }` (copia `code` para a áre… - [Enviar código OTP com botão "copiar"](https://developer.wabox.me/api-reference/interactive/enviar-código-otp-com-botão-"copiar".md): Atalho para uma mensagem com um único botão `copy` que coloca `code` na área de transferência do destinatário. `button_label` é o texto do botão (padrão `Copiar código`). Aceita `title`, `footer` e os campos de resposta/menção como `send-button-list`. - [Enviar botão de pagamento PIX](https://developer.wabox.me/api-reference/interactive/enviar-botão-de-pagamento-pix.md): Envia um card "copiar chave PIX" com o `name` do recebedor, a chave (`key`) e o `key_type` (`cpf`, `cnpj`, `phone`, `email` ou `evp` — chave aleatória; aceita maiúsculas). `message` é um texto opcional acima do botão. É uma chave PIX estática: o valor não vai na mensagem, informe-o no texto. - [Enviar lista de opções (menu de seleção única)](https://developer.wabox.me/api-reference/interactive/enviar-lista-de-opções-menu-de-seleção-única.md): `button_label` (até 20 caracteres) é o texto do botão que abre o menu. As opções vão em `sections[].rows[]` (até 10 seções com `title` opcional, cada uma com até 10 linhas) ou no atalho `options[]` (até 10 linhas em uma única seção sem título) — envie um dos dois. Cada linha tem `id`, `title` (até 2… - [Enviar carrossel de cards](https://developer.wabox.me/api-reference/interactive/enviar-carrossel-de-cards.md): `message` é o texto que acompanha o carrossel e `cards[]` tem de 1 a 10 cards. Cada card tem `image` obrigatória (URL, data URL ou base64), `text`, `title`/`footer` opcionais e até 3 `buttons` nos mesmos formatos de `send-button-list` (reply, url, call, copy; `type` pode ser omitido). Botões `reply`… - [Criar evento de calendário](https://developer.wabox.me/api-reference/interactive/criar-evento-de-calendário.md): Cria um evento do WhatsApp no chat (`phone` costuma ser um grupo). `start_at`/`end_at` em ISO-8601 com fuso (ex.: `2026-09-15T14:00:00Z`); opcionais `description`, `location` (`name`, `latitude`, `longitude`), `join_link` (link de chamada/reunião) e `extra_guests_allowed`. Os convidados respondem pe… - [Editar ou cancelar um evento](https://developer.wabox.me/api-reference/interactive/editar-ou-cancelar-um-evento.md): Envie o evento completo novamente (todos os campos de `send-event`) com `edit_message_id` = `message_id` do evento original; `canceled: true` cancela o evento. A resposta devolve o mesmo `message_id` do evento editado. - [Responder a um evento (RSVP)](https://developer.wabox.me/api-reference/interactive/responder-a-um-evento-rsvp.md): Confirma presença em um evento: `event_message_id` é o `message_id` do evento e `response` é `going`, `not_going` ou `maybe` (aceita maiúsculas). `extra_guests` (0–99) informa acompanhantes quando o evento permite. Em grupos, use `participant` (telefone de quem criou o evento) e `from_me` para ajuda… - [Publicar status de texto](https://developer.wabox.me/api-reference/interactive/publicar-status-de-texto.md): Publica no seu status (stories). Quem vê segue a sua configuração de privacidade de status. Sempre endereçado a `status@broadcast` — não envie `phone`. Aceita apenas `delay_message` (não há `delay_typing`). Opcionais: `background_color` (`#RRGGBB`; padrão verde do WhatsApp) e `font` (índice da fonte… - [Publicar status de imagem](https://developer.wabox.me/api-reference/interactive/publicar-status-de-imagem.md): Publica no seu status (stories). Quem vê segue a sua configuração de privacidade de status. Sempre endereçado a `status@broadcast` — não envie `phone`. Aceita apenas `delay_message` (não há `delay_typing`). `image` aceita URL, data URL ou base64; `caption` é a legenda e `mime_type` sobrescreve o tip… - [Publicar status de vídeo](https://developer.wabox.me/api-reference/interactive/publicar-status-de-vídeo.md): Publica no seu status (stories). Quem vê segue a sua configuração de privacidade de status. Sempre endereçado a `status@broadcast` — não envie `phone`. Aceita apenas `delay_message` (não há `delay_typing`). `video` aceita URL, data URL ou base64 de um MP4; `caption` é a legenda e `mime_type` sobresc… - [Convidar alguém para administrar seu canal](https://developer.wabox.me/api-reference/interactive/convidar-alguém-para-administrar-seu-canal.md): Envia para `phone` um card de convite para administrar o canal `newsletter_id` (formato `@newsletter`), com `caption` opcional. Para publicar em um canal, use qualquer endpoint `send-*` com `phone: "@newsletter"`. - [Configurações de privacidade atuais](https://developer.wabox.me/api-reference/privacy/configurações-de-privacidade-atuais.md): Quem pode ver seu "visto por último" / online / foto de perfil / recado, confirmações de leitura, quem pode adicionar você a grupos, ligar ou enviar mensagem. Imediato: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Alterar uma configuração de privacidade](https://developer.wabox.me/api-reference/privacy/alterar-uma-configuração-de-privacidade.md): Body `{ "value": ... }`. Valores permitidos — `last_seen`: `all` | `contacts` | `contact_blacklist` | `none`; `online`: `all` | `match_last_seen`; `profile_picture`: `all` | `contacts` | `contact_blacklist` | `none`; `about`: `all` | `contacts` | `contact_blacklist` | `none`; `read_receipts`: `all`… - [Listar comunidades](https://developer.wabox.me/api-reference/communities/listar-comunidades.md): Comunidades das quais você participa. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar comunidade](https://developer.wabox.me/api-reference/communities/criar-comunidade.md): O WhatsApp cria o grupo de avisos automaticamente; `participants` são adicionados a ele. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Metadados e grupos vinculados](https://developer.wabox.me/api-reference/communities/metadados-e-grupos-vinculados.md): Id da comunidade no formato de grupo: `-group`. `groups[]` lista os grupos vinculados (o grupo de avisos vem com `is_announcement: true`). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Atualizar nome / descrição / foto](https://developer.wabox.me/api-reference/communities/atualizar-nome-descrição-foto.md): Mesmo body de `PUT /groups/{id}` (parcial; `remove_picture: true` remove a foto). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Todos os membros da comunidade](https://developer.wabox.me/api-reference/communities/todos-os-membros-da-comunidade.md): Telefones dos membros de todos os grupos vinculados (sem repetição). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Vincular grupos existentes à comunidade](https://developer.wabox.me/api-reference/communities/vincular-grupos-existentes-à-comunidade.md): Body `{ "group_ids": [...] }` — você precisa ser admin da comunidade e dos grupos. Um resultado por grupo (`error` é o status do WhatsApp, ex.: 403 não permitido). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar grupo dentro da comunidade](https://developer.wabox.me/api-reference/communities/criar-grupo-dentro-da-comunidade.md): Mesmo body de `POST /groups`. O grupo já nasce vinculado (`parent_id` = id da comunidade). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Desvincular grupos da comunidade](https://developer.wabox.me/api-reference/communities/desvincular-grupos-da-comunidade.md): Body `{ "group_ids": [...] }`. Os grupos continuam existindo, só deixam de fazer parte da comunidade. Um resultado por grupo. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Desvincular um grupo da comunidade](https://developer.wabox.me/api-reference/communities/desvincular-um-grupo-da-comunidade.md): Atalho para `POST /communities/{id}/groups/unlink` com um único grupo; devolve só o resultado dele. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Sair da comunidade](https://developer.wabox.me/api-reference/communities/sair-da-comunidade.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Canais que você possui ou segue](https://developer.wabox.me/api-reference/newsletters/canais-que-você-possui-ou-segue.md): `role` indica sua relação com cada canal (`owner`, `admin`, `subscriber`). Para publicar em um canal seu, use qualquer endpoint `send-*` com `phone: "@newsletter"`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Criar canal](https://developer.wabox.me/api-reference/newsletters/criar-canal.md): Você passa a ser o dono. `picture` opcional (JPEG/PNG, por URL ou base64). Para publicar em um canal seu, use qualquer endpoint `send-*` com `phone: "@newsletter"`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Informações do canal pelo link de convite](https://developer.wabox.me/api-reference/newsletters/informações-do-canal-pelo-link-de-convite.md): `?invite=`. Não segue o canal, só consulta. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Metadados do canal](https://developer.wabox.me/api-reference/newsletters/metadados-do-canal.md): Id do canal como devolvido pela API / webhooks: `@newsletter`. Para publicar em um canal seu, use qualquer endpoint `send-*` com `phone: "@newsletter"`. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Seguir canal](https://developer.wabox.me/api-reference/newsletters/seguir-canal.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Deixar de seguir canal](https://developer.wabox.me/api-reference/newsletters/deixar-de-seguir-canal.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Silenciar canal](https://developer.wabox.me/api-reference/newsletters/silenciar-canal.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Reativar notificações do canal](https://developer.wabox.me/api-reference/newsletters/reativar-notificações-do-canal.md): Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Publicações recentes](https://developer.wabox.me/api-reference/newsletters/publicações-recentes.md): Metadados + texto das últimas publicações. A mídia não é baixada: para publicações de imagem/vídeo/documento você recebe só o `type` (e o `text`, se houver). `?count=` (≤ 100, padrão 50) e `?before=` paginam para trás. Imediata: exige a instância conectada (caso contrário, 409 `instance_n… - [Reagir a uma publicação](https://developer.wabox.me/api-reference/newsletters/reagir-a-uma-publicação.md): Body `{ "server_id": 119, "reaction": "👍" }`. `server_id` vem da listagem de publicações ou do webhook `received`. Reação vazia (`""`) remove a sua. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Marcar publicações como vistas](https://developer.wabox.me/api-reference/newsletters/marcar-publicações-como-vistas.md): Body `{ "server_ids": [118, 119] }` (até 100 por chamada). Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Perfil comercial](https://developer.wabox.me/api-reference/business/perfil-comercial.md): Descrição, endereço, e-mail, sites, categorias e horário de funcionamento de uma conta WhatsApp Business. `?phone=` lê o perfil de outro negócio; omitido = o seu. Contas comuns respondem `is_business: false` (os demais campos vêm vazios). Imediata: exige a instância conectada (caso contrário, 409 `i… - [Atualizar o perfil comercial](https://developer.wabox.me/api-reference/business/atualizar-o-perfil-comercial.md): Atualização parcial: só os campos enviados mudam (`website: []` / `categories: []` limpam). `business_hours.config[].open_time/close_time` são `HH:MM` no `timezone` informado. Os ids de `categories` são os que aparecem em `categories[].id` de qualquer perfil comercial. - [Listar produtos do catálogo](https://developer.wabox.me/api-reference/business/listar-produtos-do-catálogo.md): Seu catálogo, ou o de outro negócio com `?phone=`. Pagine com `?limit=` (≤100, padrão 50) e `?cursor=`; quando `next_cursor` não vem na resposta, não há mais páginas. Preços são valores decimais na moeda de `currency` (`79.9` = R$ 79,90). - [Criar um produto](https://developer.wabox.me/api-reference/business/criar-um-produto.md): Adiciona um produto ao seu catálogo. `images` são enviadas ao WhatsApp (JPEG/PNG, até 10; URL, data URL ou base64). Produtos novos passam pela revisão do WhatsApp (`review_status`). `price` é decimal na moeda de `currency` (ISO-4217). - [Apagar vários produtos](https://developer.wabox.me/api-reference/business/apagar-vários-produtos.md): Body `{ "product_ids": [...] }` (1–50 ids). Responde 404 `product_not_found` se algum id não está no seu catálogo. - [Editar um produto](https://developer.wabox.me/api-reference/business/editar-um-produto.md): Atualização parcial; `images` (quando enviado) substitui todas as imagens (`[]` remove todas). Responde 404 `product_not_found` se o produto não está no seu catálogo. - [Apagar um produto](https://developer.wabox.me/api-reference/business/apagar-um-produto.md): Remove o produto do seu catálogo. Responde 404 `product_not_found` se ele não existe. - [Listar coleções do catálogo](https://developer.wabox.me/api-reference/business/listar-coleções-do-catálogo.md): Coleções (com seus produtos) do seu catálogo ou do de outro negócio (`?phone=`). - [Detalhes de um pedido](https://developer.wabox.me/api-reference/business/detalhes-de-um-pedido.md): Itens e totais de um pedido que um cliente fez a partir do seu catálogo. `id` e `?token=` vêm do bloco `order` do webhook `received`. Responde 404 `order_not_found` se o par id/token não bate. - [Enviar card de produto](https://developer.wabox.me/api-reference/business/enviar-card-de-produto.md): Card de um produto do seu catálogo (ou do catálogo de outro negócio, com `business_phone`), com `message` opcional abaixo. `product_id` pode ser o id do WhatsApp ou o seu `retailer_id`. O produto é lido do catálogo na hora do envio: se não existir, o `delivery` chega com erro. - [Enviar link do catálogo](https://developer.wabox.me/api-reference/business/enviar-link-do-catálogo.md): Envia `https://wa.me/c/` (seu próprio catálogo por padrão) com uma `message` opcional acima. - [Enviar card de pedido](https://developer.wabox.me/api-reference/business/enviar-card-de-pedido.md): Card com o resumo de um pedido (`title`, `item_count`, `total`). Os itens só existem em pedidos que o cliente fez a partir do catálogo: um card criado aqui sem `token` mostra apenas o resumo. `order_id` é a sua referência (gerada quando omitida); `status` padrão `inquiry`. Para responder a um pedido… - [Aceitar ou recusar um pedido](https://developer.wabox.me/api-reference/business/aceitar-ou-recusar-um-pedido.md): Responde a um pedido que o cliente fez: devolva o `order_id`, o `token` e o `message_id` da mensagem do pedido como `order_request_message_id` (tudo do bloco `order` do webhook `received`), com `status: accepted | declined`. Use `GET /business/orders/{id}` para ler os itens antes. - [Listar etiquetas](https://developer.wabox.me/api-reference/labels/listar-etiquetas.md): Todas as etiquetas com os chats (telefones / ids de grupo) que as carregam. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. A primeira chamada após a instância (re)iniciar dispara uma sincronização das etiquetas com o WhatsApp e pode responder 502 `action… - [Criar uma etiqueta](https://developer.wabox.me/api-reference/labels/criar-uma-etiqueta.md): Body `{ "name", "color" }` (`color` = índice da paleta dos apps do WhatsApp, 0–19; padrão 0). Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Renomear / recolorir uma etiqueta](https://developer.wabox.me/api-reference/labels/renomear-recolorir-uma-etiqueta.md): Envie `name`, `color` ou ambos. Responde 404 `label_not_found` se a etiqueta não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Apagar uma etiqueta](https://developer.wabox.me/api-reference/labels/apagar-uma-etiqueta.md): Remove a etiqueta de todos os chats. Responde 404 `label_not_found` se ela não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Etiquetar um chat](https://developer.wabox.me/api-reference/labels/etiquetar-um-chat.md): `phone` pode ser um usuário ou um id de grupo. Responde 404 `label_not_found` se a etiqueta não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Tirar a etiqueta de um chat](https://developer.wabox.me/api-reference/labels/tirar-a-etiqueta-de-um-chat.md): Responde 404 `label_not_found` se a etiqueta não existe. Etiquetas só existem em contas **WhatsApp Business**. As mudanças são refletidas no celular. Imediata: exige a instância conectada (caso contrário, 409 `instance_not_connected`). - [Listar instâncias](https://developer.wabox.me/api-reference/partner/listar-instâncias.md): Instâncias do workspace Partner, da mais recente para a mais antiga, com `token` e webhooks. Filtre por `status` (`connected` / `disconnected`) ou `q` (nome, id ou número). - [Criar instância](https://developer.wabox.me/api-reference/partner/criar-instância.md): Cria uma instância no workspace Partner e já inicia a sessão. A resposta traz `id`, `token` e `api_url`: use-os na API pública normal para obter o QR (`GET /qr-code`), status e enviar mensagens. `webhooks` e `settings` são opcionais e aceitam os mesmos campos de `PUT /webhooks` e `PUT /settings`. In… - [Detalhes da instância](https://developer.wabox.me/api-reference/partner/detalhes-da-instância.md) - [Atualizar instância](https://developer.wabox.me/api-reference/partner/atualizar-instância.md): Atualização parcial de `name`, `webhooks` e/ou `settings`. - [Excluir instância](https://developer.wabox.me/api-reference/partner/excluir-instância.md): Desconecta o número (o aparelho vinculado some do celular), para a sessão e remove a instância. Mensagens na fila são descartadas. - [Gerar novo token da instância](https://developer.wabox.me/api-reference/partner/gerar-novo-token-da-instância.md): O token atual deixa de valer imediatamente. - [Mensagem recebida](https://developer.wabox.me/api-reference/webhooks/mensagem-recebida.md): Disparado para cada mensagem que chega ao número conectado (e para as enviadas pelo próprio celular ou pela API quando `notify_sent_by_me` está ligado — nesse caso `from_me: true`; `from_api` diz se saiu pela API). O conteúdo vem em **um** bloco opcional conforme o tipo: `text`, `image`, `audio`, `v… - [Resultado de um envio](https://developer.wabox.me/api-reference/webhooks/resultado-de-um-envio.md): Fecha o ciclo de cada `POST /send-*`: `wabox_id` é o id devolvido pelo endpoint e `message_id` o id do WhatsApp (o mesmo da resposta). Quando o envio falha, `error_code` traz o motivo (`phone_not_on_whatsapp`, `media_invalid`, `message_not_found`, `send_timeout`…) e `message_id` pode vir ausente. - [Recibo de mensagem entregue lida reproduzida](https://developer.wabox.me/api-reference/webhooks/recibo-de-mensagem-entregue-lida-reproduzida.md): Ticks das mensagens que **você** enviou: `SENT` (um tick), `RECEIVED` (dois), `READ` (azul), `PLAYED` (áudio ouvido). Pode agrupar vários `ids` do mesmo chat. Em grupos, `participant_phone` indica quem produziu o recibo. - [Instância conectada](https://developer.wabox.me/api-reference/webhooks/instância-conectada.md): O número leu o QR code / código de pareamento ou reconectou. `phone` é o número conectado. - [Instância desconectada](https://developer.wabox.me/api-reference/webhooks/instância-desconectada.md): `reason` diz o que aconteceu: `network` e `stream_replaced` são temporários (o engine reconecta sozinho); `logged_out` (dispositivo removido no celular) e `banned` exigem novo QR code; `stopped` é uma parada pela API/assinatura. - [Presença no chat digitando gravando online](https://developer.wabox.me/api-reference/webhooks/presença-no-chat-digitando-gravando-online.md): `COMPOSING`, `RECORDING`, `PAUSED`, `AVAILABLE`, `UNAVAILABLE`. `last_seen` só quando o contato compartilha o "visto por último". ## OpenAPI Specs - [openapi](/openapi.json)