Acoes de Mensagem
Marcar como lida, upload e download de midia via Meta Cloud API v25.0
Acoes de Mensagem
Endpoints para acoes sobre mensagens e gerenciamento de midia.
Autenticacao
Todas as requisicoes exigem o header:
Authorization: Bearer <API_KEY>POST /message/markread
Marca uma mensagem recebida como lida (double blue check). A Meta envia o status read para o remetente.
Request Body:
{
"instance_id": "uuid-da-instancia",
"message_id": "wamid.HBgNNTUxMTk..."
}Curl:
curl -X POST http://localhost:8200/message/markread \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"instance_id": "uuid-da-instancia",
"message_id": "wamid.HBgNNTUxMTk..."
}'Resposta (200 OK):
{
"success": true
}| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
instance_id | string | Sim | UUID da instancia |
message_id | string | Sim | WhatsApp Message ID (wamid.*) recebido no webhook |
Nota: O
message_ide o campoidque vem dentro deentry[].changes[].value.messages[]no payload do webhook.
POST /media/upload
Faz upload de um arquivo de midia para a Meta. Retorna um media_id que pode ser usado para enviar a midia em mensagens.
Request: multipart/form-data
| Campo | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
instance_id | string | Sim | UUID da instancia |
file | file | Sim | Arquivo de midia |
type | string | Nao | MIME type (detectado automaticamente se omitido) |
Tipos suportados:
| Tipo | Formatos | Tamanho Max |
|---|---|---|
| Imagem | JPEG, PNG | 5 MB |
| Audio | AAC, MP3, MP4, AMR, OGG | 16 MB |
| Video | MP4, 3GPP | 16 MB |
| Documento | PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT | 100 MB |
| Sticker | WEBP | 500 KB (static) / 1 MB (animated) |
Curl:
curl -X POST http://localhost:8200/media/upload \
-H "Authorization: Bearer <API_KEY>" \
-F "instance_id=uuid-da-instancia" \
-F "file=@/caminho/para/arquivo.pdf"Resposta (200 OK):
{
"media_id": "1234567890"
}Nota: O
media_idretornado e valido por 30 dias na Meta. Use-o nos endpoints de envio de midia (/send/image,/send/document, etc.) passando o campomedia_idao inves deurl.
POST /message/download
Baixa uma midia recebida em mensagem do WhatsApp. O media_id vem dentro do payload do webhook quando o usuario envia imagem, audio, video ou documento.
Request Body:
{
"instance_id": "uuid-da-instancia",
"media_id": "1234567890"
}Curl:
curl -X POST http://localhost:8200/message/download \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"instance_id": "uuid-da-instancia",
"media_id": "1234567890"
}'Resposta (200 OK):
{
"url": "https://lookaside.fbsbx.com/whatsapp_business/attachments/...",
"mime_type": "image/jpeg",
"sha256": "abc123...",
"file_size": 34567
}| Campo | Tipo | Descricao |
|---|---|---|
url | string | URL temporaria para download (expira em ~5 minutos) |
mime_type | string | Tipo MIME do arquivo |
sha256 | string | Hash SHA-256 do arquivo |
file_size | number | Tamanho em bytes |
Importante: A URL retornada e temporaria. Para armazenamento permanente, faca download da URL e salve em seu proprio storage (S3, etc.).