Skip to main content
Enviar imagem, áudio, vídeo ou documento é um processo de três passos. O arquivo não sobe junto com a mensagem: você pede uma URL assinada, envia o arquivo direto para o storage e só então referencia o arquivo no envio.
1

Peça a URL assinada

GET /file/signature devolve a URL de upload e o identificador do arquivo.
2

Envie o arquivo

PUT na URL assinada, com o conteúdo binário. Esta requisição vai para o storage, não para a API do Hust, e não leva o seu token.
3

Envie a mensagem

POST /message/send com o uuid e o filePath recebidos no primeiro passo.

1. Obter a URL assinada

Com tempFile: true, o arquivo é apagado 48 horas depois do upload. Se a sua integração agenda envios ou guarda uuid para reutilizar depois, esse prazo precisa entrar na conta.

2. Enviar o arquivo

Faça um PUT na signedUrl com o conteúdo binário. Os dois cabeçalhos abaixo são obrigatórios, e o Content-Type precisa ser exatamente o mesmo que você informou no passo anterior.
O nome do arquivo no Content-Disposition deve ir codificado para URL, para suportar acentos e espaços.
Esta requisição não leva o cabeçalho Authorization. A autorização já está embutida na assinatura da URL.

3. Enviar a mensagem

Use a mesma rota do envio de texto, trocando type pelo tipo da mídia e incluindo o objeto file. Os demais campos seguem as regras de Enviar mensagem: connection e contact obrigatórios, e department obrigatório salvo quando called é "without" ou traz um id.
Exemplo
O envio não verifica se o upload do passo 2 foi concluído. Se você informar um uuid cujo arquivo nunca chegou ao storage, a rota responde 200 e a falha só aparece depois, no processamento da fila. Confirme que o PUT retornou sucesso antes de chamar o envio.

Fluxo completo

Os três passos encadeados, do pedido da assinatura até a mensagem enviada:
Neste exemplo o envio usa called: "without", então não precisa de department. Se quiser abrir atendimento, troque por department: { id: ... } — veja Modos de envio.