API Web Enviar Arquivos
Enviar uma mensagem com arquivo(s) de mídia (imagem, vídeo, áudio ou documento) para um visitante ativo no widget WebChat. Aceita um ou mais arquivos por requisição via multipart/form-data.
API: WebChat
Verifique aqui os Pré-Requisitos para utilizar APIs
Endpoint
https://{{BACKEND_URL}}/api/webchat/messages/send
Método
POST
Autenticação
Bearer {seutokenaqui}
Payload
array(
'sessionId' => 'session_1745772400000_abc123',
'body' => 'Segue o documento solicitado',
'medias[0]' => new CURLFile('/caminho/arquivo.pdf'),
'medias[1]' => new CURLFile('/caminho/imagem.png')
)
“sessionId”: Identificador único da sessão do visitante no widget. É gerado pelo widget e pode ser obtido via webhook, pela mensagem-marcador do ticket ou pela página /visitors-live.
“body”: Texto opcional. Quando informado, vira a legenda do primeiro arquivo. Os demais arquivos usam “Arquivo: <nome-original>” como legenda padrão.
“medias”: Arquivo(s) a serem enviados. Pode ser repetido para enviar vários arquivos na mesma requisição. Tamanho máximo de 20 MB por arquivo. O tipo (imagem, vídeo, áudio ou documento) é detectado automaticamente pelo mimetype.
Extensões permitidas: .jpg .png .gif .webp .mp4 .webm .mp3 .ogg .pdf .doc .docx .xls .xlsx .csv. MIME types aceitos: image/*, video/*, audio/*, application/pdf, application/msword, entre outros. API Utilize o código em requisições HTTPS com ferramentas como cURL ou bibliotecas de integração.
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://{{BACKEND_URL}}/api/webchat/messages/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'sessionId' => 'session_1745772400000_abc123',
'body' => 'Segue o documento solicitado',
'medias[0]' => new CURLFile('/caminho/arquivo.pdf'),
'medias[1]' => new CURLFile('/caminho/imagem.png')
),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer {seutokenaqui}' //Token cadastrado na conexão
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;