Notas internas
Lista, cria e apaga anotações da equipe dentro de uma conversa, que o cliente nunca vê.
Uma nota interna é um recado da equipe do seller preso a uma conversa: "cliente prefere falar de manhã", "já combinei desconto de 5%". O texto não é enviado ao WhatsApp do cliente. O autor é definido pelo servidor a partir do token (você não envia o nome), então ninguém consegue assinar uma nota como outra pessoa.
Listar as notas
/api/v1/vendor/whatsapp/inbox/threads/{id}/notesSellerLista as notas internas de uma conversa
As notas fixadas vêm primeiro; depois as demais, da mais nova para a mais antiga. Notas apagadas não aparecem. Conversa sem notas devolve lista vazia, não 404.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/vendor/whatsapp/inbox/threads/$THREAD_ID/notes" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"notes": [
{
"id": "0c8a6f3e-2b71-4a9d-9a55-6d1b0e7f2c40",
"thread_id": "9b1f3c52-6a0e-4d57-8a43-2f6c1d7e90ab",
"author_user_id": "d4613dde-ac7a-4319-9232-50d8cd6ad5fc",
"author_name": "Carla Mendes",
"body": "Prefere atendimento de manhã. Combinado 5% de desconto.",
"is_pinned": true,
"created_at": "2026-10-10T14:00:00Z",
"updated_at": "2026-10-10T14:00:00Z",
"edited": false
}
],
"total": 1
}Campos da resposta
notesarraynotes[].iduuidnotes[].thread_iduuidnotes[].author_user_iduuidnotes[].author_namestringnotes[].bodystringnotes[].is_pinnedbooleantrue para notas fixadas no topo.notes[].created_atstringnotes[].updated_atstringnotes[].editedbooleantrue se a nota foi alterada mais de 1 segundo depois de criada.totalintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Autenticação, módulo ou privilégio | veja Conversas |
| 404 | Conversa de outro seller ou inexistente | {"error":"thread not found"} |
| 500 | Falha ao ler | {"error":"Failed to list notes: ..."} |
Criar uma nota
/api/v1/vendor/whatsapp/inbox/threads/{id}/notesSellerCria uma nota interna na conversa
Retorna 201 com a nota criada.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
bodystringobrigatóriois_pinnedbooleanpadrão: falsetrue para fixar no topo da lista.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp/inbox/threads/$THREAD_ID/notes" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"body": "Prefere atendimento de manhã.", "is_pinned": true}'Resposta
{
"id": "0c8a6f3e-2b71-4a9d-9a55-6d1b0e7f2c40",
"thread_id": "9b1f3c52-6a0e-4d57-8a43-2f6c1d7e90ab",
"author_user_id": "d4613dde-ac7a-4319-9232-50d8cd6ad5fc",
"author_name": "Carla Mendes",
"body": "Prefere atendimento de manhã.",
"is_pinned": true,
"created_at": "2026-10-11T13:15:00Z",
"updated_at": "2026-10-11T13:15:00Z",
"edited": false
}Os campos são os de um item de notes na listagem.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido | {"error":"invalid request body"} |
| 400 | body vazio | {"error":"whatsapp thread note: body required"} |
| 401 / 403 | Autenticação, módulo ou privilégio | veja Conversas |
| 404 | Conversa de outro seller ou inexistente | {"error":"thread not found"} |
Apagar uma nota
/api/v1/vendor/whatsapp/inbox/threads/{id}/notes/{note_id}SellerApaga uma nota interna
Remove a nota da listagem (exclusão lógica: o registro não é destruído). Responde 204 sem corpo.
Parâmetros de caminho
iduuidobrigatórionote_iduuidobrigatórionotes[].id).Exemplo de requisição
curl -X DELETE "$BASE_URL/api/v1/vendor/whatsapp/inbox/threads/$THREAD_ID/notes/$NOTE_ID" \
-H "Authorization: Bearer $TOKEN"Resposta
HTTP/1.1 204 No ContentErros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Autenticação, módulo ou privilégio | veja Conversas |
| 404 | Conversa de outro seller ou inexistente | {"error":"thread not found"} |
| 404 | Nota inexistente ou já apagada | {"error":"note not found"} |