VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Mini-loja WhatsApp: atendimento

Links de mídia da conversa

Abre uma imagem, áudio, vídeo ou documento da conversa de WhatsApp por um link assinado, sem login.

Quando a loja exporta conversas do atendimento (por exemplo, uma planilha CSV), as mensagens com mídia levam um link assinado em vez do arquivo. Quem recebe a planilha abre o link direto no navegador, sem login. A assinatura do próprio link é a autorização.

Estes tokens não são o token da mini-loja

O {token} destas duas rotas é um token assinado pela plataforma para uma única mensagem, gerado só para mídia de mensagens que a loja possui. Você não o cria nem o deriva do token da mini-loja: ele chega pronto dentro da URL exportada. Qualquer alteração no token faz a assinatura falhar.

Há dois formatos de link, e os dois devolvem o arquivo da mensagem.

Abrir pelo link da conversa

GET/api/v1/storefront/wa-coex/inbox-media/{token}Pública

Devolve a mídia de uma mensagem da conversa, por um link assinado

O token carrega a loja e a mensagem, e pode ter prazo de validade. Um token adulterado, de outra loja ou vencido responde 404.

Parâmetros de caminho

tokenstringobrigatório
Token assinado do link, como veio na URL exportada.

Erros

StatusQuandoCorpo
404Token inválido, vencido, com assinatura errada ou de uma loja que não existe.Texto simples not found
404A mensagem não tem mídia disponível.{"error":"media not found"}
502Não foi possível baixar a mídia agora, ou ela veio vazia.{"error":"<texto>"} ou {"error":"empty media"}

Abrir pelo link compartilhável

GET/api/v1/storefront/wa-coex/media-share/{token}Pública

Devolve a mídia de uma mensagem por um link de compartilhamento assinado

Faz o mesmo que o link acima, com um token de outro formato. Aqui a loja é resolvida pelo endereço (host) da requisição, e o token precisa ser da mesma loja: um token da loja A usado no endereço da loja B é recusado.

Se a mídia já é um endereço público (http ou https), a resposta é um redirecionamento 302 para ele. Caso contrário, a plataforma busca o arquivo, guarda uma cópia e o devolve com o tipo registrado na mensagem (Content-Disposition: inline, Cache-Control: private, max-age=3600).

Parâmetros de caminho

tokenstringobrigatório
Token assinado do link.

Erros

StatusQuandoCorpo
302A mídia é um endereço público: segue para ele.Sem corpo
400A mensagem não tem mídia, ou o endereço da mídia não é de um tipo aceito.{"error":"message has no media"}, {"error":"unsupported media url scheme"} ou {"error":"missing media id"}
403Token inválido, vencido ou com assinatura errada.{"error":"invalid or expired media link"}
403O token é de outra loja, ou a requisição não resolve uma loja.{"error":"tenant mismatch"} ou {"error":"tenant context required"}
404A mensagem não existe.{"error":"message not found"}
500Falha ao consultar a mensagem.{"error":"media lookup failed"}
502Não foi possível baixar a mídia agora.{"error":"media fetch failed: <detalhe>"}
503A loja não tem o acesso à API do WhatsApp configurado.{"error":"whatsapp api token not configured"}

O que a resposta traz

As duas rotas devolvem o arquivo no corpo, não JSON.

No link da conversa (inbox-media), a mídia vem do cliente da loja e por isso é tratada como não confiável:

  • Só tipos seguros são exibidos no navegador (Content-Disposition: inline): imagens JPEG, PNG, WebP e GIF; áudio OGG, MP3, MP4, AAC, AMR e WebM; vídeo MP4, 3GPP e WebM; e PDF. Qualquer outro tipo, SVG inclusive, é devolvido como application/octet-stream para download (attachment).
  • Toda resposta leva X-Content-Type-Options: nosniff, Content-Security-Policy: default-src 'none'; sandbox e Cache-Control: private, no-store.
  • O arquivo é lido até 16 MB.
O link compartilhável não tem essas travas

O media-share devolve o arquivo com o tipo registrado na mensagem, sem a lista de tipos seguros e sem os cabeçalhos nosniff e sandbox do inbox-media. Não incorpore o resultado numa página sua como se fosse confiável: trate o arquivo como conteúdo de terceiros.

Exemplo de requisição

bash
curl -o midia.bin "$BASE_URL/api/v1/storefront/wa-coex/media-share/$SIGNED_TOKEN"
Para integrações, prefira o painel

Estes links existem para abrir mídia de uma planilha exportada. Quem integra o atendimento do WhatsApp usa as rotas do painel, não estas.

Veja também

  • Central de ajuda
  • Solicitações de suporte
  • Assistente da loja
Anterior
Assistente da loja
Próxima
Visão geral da Venddor Intelligence
Nesta página
  • Abrir pelo link da conversa
  • Erros
  • Abrir pelo link compartilhável
  • Erros
  • O que a resposta traz
  • Exemplo de requisição
  • Veja também