VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/WhatsApp: moderação de mídia

Decidir um item

Aprova, rejeita, sinaliza ou escala um item da fila de moderação de mídias.

Cada decisão é uma rota POST própria, com o mesmo corpo opcional (notes e tags). A resposta confirma o id e o novo estado.

Aprovar

Marca o item como approved. Use quando a mídia foi conferida e está tudo certo.

POST/api/v1/admin/whatsapp/media-moderation/{id}/approveAdmin

Marca a mídia como aprovada

Parâmetros de caminho

iduuidobrigatório
Id do item da fila.

Corpo da requisição

notesstring
Observação livre sobre a decisão. Opcional.
tagsarray
Lista de etiquetas de texto, por exemplo ["resolvido"]. Opcional.

Exemplo de requisição (Aprovar um item)

bash
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/media-moderation/3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11/approve" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notes": "Conferido com o cliente.",
    "tags": [
      "conferido"
    ]
  }'

Resposta (Aprovar um item)

200Decisão registrada
json
{
  "id": "3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11",
  "status": "approved"
}

Campos da resposta

iduuid
O mesmo id da URL.
statusstring
approved
Novo estado do item: sempre approved.

Erros (Aprovar um item)

StatusQuandoCorpo
400Corpo presente que não é um JSON válido.{"error":"invalid request body"}
401Sem token, token inválido ou expirado.{"error":"missing authorization header"}
403O 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"}
404Nenhum item com esse id.{"error":"moderation row not found"}
500O id não é um UUID válido, ou falha ao gravar.{"error":"Failed to record decision: ..."}
Corpo opcional

Você pode chamar sem corpo nenhum. notes e tags só servem para deixar rastro de quem decidiu o quê.

Rejeitar

Marca o item como rejected. Use quando a mídia não deve ser aceita, por exemplo conteúdo impróprio ou sem relação com o pedido.

POST/api/v1/admin/whatsapp/media-moderation/{id}/rejectAdmin

Marca a mídia como rejeitada

Parâmetros de caminho

iduuidobrigatório
Id do item da fila.

Corpo da requisição

notesstring
Observação livre sobre a decisão. Opcional.
tagsarray
Lista de etiquetas de texto, por exemplo ["resolvido"]. Opcional.

Exemplo de requisição (Rejeitar um item)

bash
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/media-moderation/3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11/reject" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notes": "Não confere com o pedido.",
    "tags": [
      "conferido"
    ]
  }'

Resposta (Rejeitar um item)

200Decisão registrada
json
{
  "id": "3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11",
  "status": "rejected"
}

Campos da resposta

iduuid
O mesmo id da URL.
statusstring
rejected
Novo estado do item: sempre rejected.

Erros (Rejeitar um item)

StatusQuandoCorpo
400Corpo presente que não é um JSON válido.{"error":"invalid request body"}
401Sem token, token inválido ou expirado.{"error":"missing authorization header"}
403O 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"}
404Nenhum item com esse id.{"error":"moderation row not found"}
500O id não é um UUID válido, ou falha ao gravar.{"error":"Failed to record decision: ..."}
Só registra

A decisão fica gravada no item (quem, quando, observação e etiquetas). A API não apaga o arquivo nem altera a conversa.

Sinalizar

Marca o item como flagged. Serve para chamar a atenção de outra equipe (jurídico, antifraude) sem encerrar a moderação.

POST/api/v1/admin/whatsapp/media-moderation/{id}/flagAdmin

Marca a mídia como sinalizada

Parâmetros de caminho

iduuidobrigatório
Id do item da fila.

Corpo da requisição

notesstring
Observação livre sobre a decisão. Opcional.
tagsarray
Lista de etiquetas de texto, por exemplo ["resolvido"]. Opcional.

Exemplo de requisição (Sinalizar um item)

bash
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/media-moderation/3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11/flag" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notes": "Precisa de análise jurídica.",
    "tags": [
      "conferido"
    ]
  }'

Resposta (Sinalizar um item)

200Decisão registrada
json
{
  "id": "3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11",
  "status": "flagged"
}

Campos da resposta

iduuid
O mesmo id da URL.
statusstring
flagged
Novo estado do item: sempre flagged.

Erros (Sinalizar um item)

StatusQuandoCorpo
400Corpo presente que não é um JSON válido.{"error":"invalid request body"}
401Sem token, token inválido ou expirado.{"error":"missing authorization header"}
403O 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"}
404Nenhum item com esse id.{"error":"moderation row not found"}
500O id não é um UUID válido, ou falha ao gravar.{"error":"Failed to record decision: ..."}
Qualquer estado vira qualquer estado

A API não impõe ordem entre os estados: um item rejected pode voltar a approved, e uma nova decisão sobrescreve moderador, observação e etiquetas da anterior.

Escalar

Marca o item como escalated. Use quando quem moderou não consegue decidir e precisa de um superior.

POST/api/v1/admin/whatsapp/media-moderation/{id}/escalateAdmin

Marca a mídia como escalada

Parâmetros de caminho

iduuidobrigatório
Id do item da fila.

Corpo da requisição

notesstring
Observação livre sobre a decisão. Opcional.
tagsarray
Lista de etiquetas de texto, por exemplo ["resolvido"]. Opcional.

Exemplo de requisição (Escalar um item)

bash
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/media-moderation/3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11/escalate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notes": "Não consegui decidir, preciso de um gerente.",
    "tags": [
      "conferido"
    ]
  }'

Resposta (Escalar um item)

200Decisão registrada
json
{
  "id": "3f6c1d2a-8b44-4e0a-9c1e-5d7a2b9f0e11",
  "status": "escalated"
}

Campos da resposta

iduuid
O mesmo id da URL.
statusstring
escalated
Novo estado do item: sempre escalated.

Erros (Escalar um item)

StatusQuandoCorpo
400Corpo presente que não é um JSON válido.{"error":"invalid request body"}
401Sem token, token inválido ou expirado.{"error":"missing authorization header"}
403O 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"}
404Nenhum item com esse id.{"error":"moderation row not found"}
500O id não é um UUID válido, ou falha ao gravar.{"error":"Failed to record decision: ..."}
Mesmo corpo das outras decisões

approve, reject, flag e escalate aceitam o mesmo corpo e respondem do mesmo jeito. Só muda o estado final.

Veja também

  • Fila de mídias
  • Decisões em lote
Anterior
Fila de mídias
Próxima
Decisões em lote
Nesta página
  • Aprovar
  • Exemplo de requisição (Aprovar um item)
  • Resposta (Aprovar um item)
  • Erros (Aprovar um item)
  • Rejeitar
  • Exemplo de requisição (Rejeitar um item)
  • Resposta (Rejeitar um item)
  • Erros (Rejeitar um item)
  • Sinalizar
  • Exemplo de requisição (Sinalizar um item)
  • Resposta (Sinalizar um item)
  • Erros (Sinalizar um item)
  • Escalar
  • Exemplo de requisição (Escalar um item)
  • Resposta (Escalar um item)
  • Erros (Escalar um item)
  • Veja também