Fila de mídias
Lista a fila de moderação das mídias que clientes enviam pelo WhatsApp e lê um item.
Quando um cliente manda uma foto, um vídeo, um áudio ou um documento pelo WhatsApp, a plataforma guarda um item na fila de moderação. Estas duas rotas só leem a fila: uma lista com filtros e a outra abre um item.
Listar a fila
Devolve os itens da fila, os pendentes primeiro e, dentro de cada grupo, os mais recentes antes. Use os filtros para trabalhar só uma categoria por vez.
/api/v1/admin/whatsapp/media-moderationAdminLista a fila de moderação de mídias
Parâmetros de consulta
statusstringpendingapprovedrejectedflaggedescalatedFiltra por estado. Um valor desconhecido não gera erro: a lista volta vazia.
media_typestringimagevideoaudiodocumentFiltra pelo tipo de mídia.
vendor_iduuidFiltra por seller.
qstringBusca por trecho na classificação automática e nas observações do moderador.
fromstringInício do período de entrada na fila, em RFC 3339. Valor inválido é ignorado em silêncio.
tostringFim do período, em RFC 3339. Valor inválido é ignorado em silêncio.
limitintegerpadrão: 50Itens por página. Valores menores que 1 ou maiores que 200 voltam para 50.
offsetintegerpadrão: 0Quantos itens pular.
Exemplo de requisição (Listar a fila)
bash
curl "$BASE_URL/api/v1/admin/whatsapp/media-moderation?status=pending&media_type=image&limit=20" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar a fila)
200Fila devolvida
json
{
"rows": [
{
"id": "3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11",
"media_type": "image",
"status": "pending",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"thread_id": "5b1f0c7e-2a3d-4c88-9e41-0a7d6b3c9f22",
"message_id": 156,
"meta_media_id": "1234567890123456",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"auto_classification": "possível produto danificado (embalagem rasgada)",
"auto_classification_confidence": 0.87,
"moderation_tags": [],
"created_at": "2026-07-11T17:22:22.328404Z",
"updated_at": "2026-07-11T17:22:22.328404Z"
}
],
"total": 1
}Campos da resposta
rowsarrayItens da página.
iduuidIdentificador do item da fila.
media_typestringimagevideoaudiodocumentTipo da mídia recebida.
statusstringpendingapprovedrejectedflaggedescalatedEstado do item. Depende da loja: a maioria devolve a palavra (
pending), algumas guardam uma letra (P, A, R, F, E). Para filtrar, envie a palavra.vendor_iduuidSeller dono da conversa. Ausente quando não há.
thread_iduuidConversa de origem. Ausente quando não há.
message_idintegerId numérico da mensagem de WhatsApp que trouxe a mídia.
meta_media_idstringId da mídia na Meta.
sha256stringImpressão digital (SHA-256, hexadecimal) do arquivo. Ausente quando não calculada.
auto_classificationstringDescrição gerada automaticamente sobre o conteúdo da mídia. Ausente quando não houve análise.
auto_classification_confidencenumberConfiança da classificação automática, de 0 a 1.
moderator_user_iduuidQuem decidiu. Ausente enquanto
pending.moderator_notesstringObservação registrada na decisão.
moderation_tagsarrayEtiquetas registradas na decisão. Lista vazia quando não há.
moderated_atstringData da decisão (RFC 3339). Ausente enquanto
pending.created_atstringQuando a mídia entrou na fila (RFC 3339, UTC).
updated_atstringÚltima alteração do item (RFC 3339, UTC).
totalintegerTotal de itens que casam com os filtros, sem contar a paginação.
Erros (Listar a fila)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} (ou manage_orders) ou {"error":"admin access required"} |
| 500 | Falha ao consultar a fila. | {"error":"Failed to list media moderation rows: ..."} |
Ver um item
Devolve um item da fila pelo id. A resposta embrulha o item em row.
/api/v1/admin/whatsapp/media-moderation/{id}AdminLê um item da fila de moderação
Parâmetros de caminho
iduuidobrigatórioId do item da fila.
Exemplo de requisição (Ver um item)
bash
curl "$BASE_URL/api/v1/admin/whatsapp/media-moderation/3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11" \
-H "Authorization: Bearer $TOKEN"Resposta (Ver um item)
200Item devolvido
json
{
"row": {
"id": "3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11",
"media_type": "image",
"status": "pending",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"thread_id": "5b1f0c7e-2a3d-4c88-9e41-0a7d6b3c9f22",
"message_id": 156,
"meta_media_id": "1234567890123456",
"sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"auto_classification": "possível produto danificado (embalagem rasgada)",
"auto_classification_confidence": 0.87,
"moderation_tags": [],
"created_at": "2026-07-11T17:22:22.328404Z",
"updated_at": "2026-07-11T17:22:22.328404Z"
}
}Campos da resposta
rowobjectO item, com os mesmos campos da listagem.
iduuidIdentificador do item da fila.
media_typestringimagevideoaudiodocumentTipo da mídia recebida.
statusstringpendingapprovedrejectedflaggedescalatedEstado do item. Depende da loja: a maioria devolve a palavra (
pending), algumas guardam uma letra (P, A, R, F, E). Para filtrar, envie a palavra.vendor_iduuidSeller dono da conversa. Ausente quando não há.
thread_iduuidConversa de origem. Ausente quando não há.
message_idintegerId numérico da mensagem de WhatsApp que trouxe a mídia.
meta_media_idstringId da mídia na Meta.
sha256stringImpressão digital (SHA-256, hexadecimal) do arquivo. Ausente quando não calculada.
auto_classificationstringDescrição gerada automaticamente sobre o conteúdo da mídia. Ausente quando não houve análise.
auto_classification_confidencenumberConfiança da classificação automática, de 0 a 1.
moderator_user_iduuidQuem decidiu. Ausente enquanto
pending.moderator_notesstringObservação registrada na decisão.
moderation_tagsarrayEtiquetas registradas na decisão. Lista vazia quando não há.
moderated_atstringData da decisão (RFC 3339). Ausente enquanto
pending.created_atstringQuando a mídia entrou na fila (RFC 3339, UTC).
updated_atstringÚltima alteração do item (RFC 3339, UTC).
Erros (Ver um item)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} (ou manage_orders) ou {"error":"admin access required"} |
| 404 | Nenhum item com esse id. | {"error":"moderation row not found"} |
| 500 | O id não é um UUID válido (a plataforma devolve 500 em vez de 400). | {"error":"Failed to fetch moderation row: scan media moderation row: pq: invalid input syntax for type uuid: \"xyz\" (22P02)"} |