VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

WhatsApp: caixa de entrada

Atendimento por WhatsApp: conversas, respostas, carrinho do atendente, notas, respostas prontas, presença, busca, métricas e representantes B2B.

A caixa de entrada é onde a equipe da loja atende clientes pelo WhatsApp. O assistente automático responde primeiro; quando o cliente pede um humano, ou quando um atendente decide assumir, a conversa passa para as pessoas. Esta seção cobre tudo que a tela de atendimento faz: listar e abrir conversas, responder com texto e mídia, montar o carrinho do cliente dentro da conversa, anotar, usar respostas prontas, ver quem está online e acompanhar métricas.

Pontos-chave
  • Exige o módulo whatsapp-commerce ligado e um administrador com os privilégios manage_settings e manage_orders (o primeiro vale para toda a família /admin/whatsapp, o segundo para a caixa de entrada).
  • Texto livre só chega dentro de 24 horas da última mensagem do cliente; depois disso só templates.
  • Responder por texto desliga o assistente naquela conversa; devolva-o com toggle-bot.
  • Abrir uma conversa (GET /threads/{id}) manda confirmação de leitura à Meta.
  • O status das mensagens da conversa é uma letra (P, S, V, R, F).

Como funciona

Quem responde

Assistente responde→Cliente pede humano→Atendente assume→Atendente devolve ao assistente

Cada conversa tem bot_enabled. Com true, o assistente responde sozinho. Quando o cliente pede um atendente, human_requested_at é preenchido, o assistente desliga e a conversa ganha urgency_state = human_requested com uma contagem regressiva. Se ninguém responder dentro do prazo, um processo automático devolve a conversa ao assistente.

urgency_stateSignificado
normalAssistente ligado, nada urgente.
human_requestedO cliente pediu um humano e ainda não houve resposta. Há urgency_seconds_remaining.
waiting_clientA loja falou por último e aguarda o cliente (contagem de 5 minutos por padrão).
manual_modeO assistente foi desligado à mão e ninguém pediu urgência.

Fluxo típico do atendente

  1. Ver o que espera

    GET /threads?status=pending lista conversas com mensagens não lidas.

  2. Abrir e ler

    GET /threads/{id} traz as últimas 50 mensagens. Para ler a mídia, GET /media/{message_id}.

  3. Responder

    POST /threads/{id}/reply (texto) ou reply-media. O assistente fica desligado nesta conversa.

  4. Vender

    GET /threads/{id}/quick-add, POST /threads/{id}/send-cart e, se for B2B, send-cart-pdf.

  5. Encerrar

    POST /threads/bulk com close, ou toggle-bot com enabled: true para devolver ao assistente.

Conceitos-chave

Conversa e mensagem

Uma conversa é única por par número da loja + telefone do cliente. Os ids de conversa são UUID; os ids de mensagem são inteiros. O telefone vem com + e código do país.

Seller (lojista) e escopo

Lojas multi-seller têm conversas no número da loja e no número de cada seller. Se o usuário do token estiver vinculado a um seller, todas as listagens e ações são restritas a ele, mesmo que o pedido tente outro vendor_id. Um administrador sem vínculo vê tudo.

Cliente cadastrado

customer_user_id só existe quando o telefone da conversa bate com um cliente cadastrado. As rotas de carrinho exigem esse vínculo.

Dinheiro e datas

Preços vêm em centavos inteiros (30000 = R$ 300,00). Datas são RFC 3339 em UTC.

Status de mensagem

Nas mensagens da conversa o status é uma letra (P pendente, S enviada, V entregue, R lida, F falhou). No histórico de envios da plataforma ele vem por extenso.

Endpoints

MétodoCaminhoPara que servePágina
GET/api/v1/admin/whatsapp/threadsLista as conversas, as mais recentes primeiro, com filtrosConversas
GET/api/v1/admin/whatsapp/threads/{id}Devolve a conversa e as últimas 50 mensagensConversas
POST/api/v1/admin/whatsapp/threads/{id}/mark-readZera o contador de não lidas da conversaConversas
POST/api/v1/admin/whatsapp/threads/{id}/toggle-botLiga ou desliga o assistente automático nesta conversaConversas
POST/api/v1/admin/whatsapp/threads/bulkAplica uma ação a várias conversas de uma vezConversas
POST/api/v1/admin/whatsapp/threads/{id}/replyEnvia uma mensagem de texto ao cliente da conversaResponder ao cliente
POST/api/v1/admin/whatsapp/threads/{id}/reply-mediaEnvia imagem, vídeo, áudio ou documento ao clienteResponder ao cliente
GET/api/v1/admin/whatsapp/media/{message_id}Devolve os bytes da mídia (imagem, áudio, documento) de uma mensagemResponder ao cliente
GET/api/v1/admin/whatsapp/threads/{id}/quick-addBusca produtos do seller da conversa para o atendente adicionarCarrinho do atendente
GET/api/v1/admin/whatsapp/products/{productId}/variantsLista as variações (tamanho, cor...) de um produtoCarrinho do atendente
POST/api/v1/admin/whatsapp/threads/{id}/send-cartAdiciona itens ao carrinho do cliente e envia o resumo no WhatsAppCarrinho do atendente
POST/api/v1/admin/whatsapp/threads/{id}/clear-cartRemove todos os itens do carrinho do cliente da conversaCarrinho do atendente
GET/api/v1/admin/whatsapp/threads/{id}/cart-pdfGera e devolve o PDF do carrinho, sem enviarOrçamento em PDF
POST/api/v1/admin/whatsapp/threads/{id}/send-cart-pdfGera o PDF do carrinho e o envia como documento no WhatsAppOrçamento em PDF
GET/api/v1/admin/whatsapp/threads/{id}/notesLista as notas internas da conversaNotas internas
POST/api/v1/admin/whatsapp/threads/{id}/notesCria uma nota interna na conversaNotas internas
PATCH/api/v1/admin/whatsapp/threads/{id}/notes/{note_id}Altera o texto ou o estado de fixação de uma notaNotas internas
DELETE/api/v1/admin/whatsapp/threads/{id}/notes/{note_id}Exclui (logicamente) uma nota internaNotas internas
GET/api/v1/admin/whatsapp/canned-repliesLista as respostas prontas do seu escopoRespostas prontas
POST/api/v1/admin/whatsapp/canned-repliesCria uma resposta prontaRespostas prontas
PUT/api/v1/admin/whatsapp/canned-replies/reorderDefine a ordem da listaRespostas prontas
PUT/api/v1/admin/whatsapp/canned-replies/{id}Altera uma resposta prontaRespostas prontas
DELETE/api/v1/admin/whatsapp/canned-replies/{id}Exclui (logicamente) uma resposta prontaRespostas prontas
POST/api/v1/admin/whatsapp/heartbeatRegistra que o usuário do token está ativo agoraPresença dos atendentes
GET/api/v1/admin/whatsapp/presenceLista os atendentes e o estado de cada umPresença dos atendentes
POST/api/v1/admin/whatsapp/presence/statusDefine o recado de status do usuário do tokenPresença dos atendentes
GET/api/v1/admin/whatsapp/messages/searchProcura mensagens por texto, tipo, direção, seller e dataBusca e métricas
GET/api/v1/admin/whatsapp/metricsResume o volume de conversas e mensagens num períodoBusca e métricas
POST/api/v1/admin/whatsapp/testEnvia um texto de teste para conferir a configuraçãoMensagens enviadas
POST/api/v1/admin/whatsapp/sendEnvia um template ou um texto a um telefoneMensagens enviadas
GET/api/v1/admin/whatsapp/messagesLista as mensagens enviadas pela plataforma, com filtrosMensagens enviadas
POST/api/v1/admin/whatsapp/queue/{id}/retryColoca de volta na fila um envio que falhouMensagens enviadas
GET/api/v1/admin/whatsapp/rep-assignmentsLista quem atende quemRepresentantes B2B
POST/api/v1/admin/whatsapp/rep-assignmentsLiga um representante a um clienteRepresentantes B2B
DELETE/api/v1/admin/whatsapp/rep-assignments/{id}Desfaz a ligação entre representante e clienteRepresentantes B2B
GET/api/v1/admin/whatsapp/discount-approvalsLista os pedidos de desconto feitos por representantesRepresentantes B2B
POST/api/v1/admin/whatsapp/discount-approvals/{id}/reviewAprova ou recusa um pedido de descontoRepresentantes B2B

Erros comuns

  • Tentar responder com texto depois de 24 horas: a Meta recusa e a rota devolve 502. Envie um template.
  • Esperar que status=pending filtre "humano pedido": ele filtra por mensagens não lidas.
  • Esquecer que responder desliga o assistente: depois, devolva com toggle-bot.
  • Usar send-cart em conversa sem cliente cadastrado: 422 thread_no_customer_user.
  • Reenviar o mesmo item em send-cart achando que ele substitui: a quantidade é somada.
  • Usar só manage_orders no token: toda a família exige também manage_settings.
  • Abrir conversas por script só para ler: cada GET /threads/{id} marca mensagens como lidas no WhatsApp do cliente.

Próximos passos

Conversas
Listar, abrir e organizar.
Responder
Texto e mídia ao cliente.
Campanhas
Mensagens em massa e templates.
Anterior
Mini-loja no WhatsApp
Próxima
Conversas
Nesta página
  • Como funciona
  • Quem responde
  • Fluxo típico do atendente
  • Conceitos-chave
  • Conversa e mensagem
  • Seller (lojista) e escopo
  • Cliente cadastrado
  • Dinheiro e datas
  • Status de mensagem
  • Endpoints
  • Erros comuns
  • Próximos passos