Responder na thread
Envia uma mensagem de texto, com anexos opcionais, em uma conversa existente.
Use esta rota para o cliente escrever dentro de uma thread já aberta. A mensagem fica gravada com o papel do token (customer), a prévia da thread é atualizada e a plataforma avisa a outra parte em tempo real. A plataforma também emite um evento interno de mensagem criada, que a loja pode usar para notificar por e-mail.
/api/v1/storefront/messages/threads/{id}/replyClienteEnviar uma mensagem na thread
Parâmetros de caminho
iduuidobrigatórioId da thread.
Corpo da requisição
bodystringTexto da mensagem. Obrigatório quando não há anexos.
attachmentsarrayAnexos já hospedados. Obrigatório quando não há
body.Anexo (cada item de attachments)
urlstringURL do arquivo.
filenamestringNome do arquivo para exibir.
content_typestringTipo MIME, por exemplo
application/pdf.sizeintegerTamanho em bytes.
Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/storefront/messages/threads/$THREAD_ID/reply" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"body": "Segue o comprovante.",
"attachments": [
{"url": "https://minhaloja.io.venddor.com.br/uploads/comprovante.pdf", "filename": "comprovante.pdf", "content_type": "application/pdf", "size": 48213}
]
}'Resposta
201Mensagem criada
json
{
"id": "9e8d7c6b-5a49-4382-b1a0-9f8e7d6c5b4a",
"thread_id": "3f0d6c0e-2a8b-4a40-9f69-4a0f7d1e6a77",
"sender_id": "f12f30a9-cbec-40ba-98f1-b7fa8f2e8e10",
"sender_type": "customer",
"body": "Segue o comprovante.",
"attachments": [
{
"url": "https://minhaloja.io.venddor.com.br/uploads/comprovante.pdf",
"filename": "comprovante.pdf",
"content_type": "application/pdf",
"size": 48213
}
],
"is_read": false,
"created_at": "2026-10-11T19:05:00Z"
}Campos da resposta
iduuidId da mensagem.
thread_iduuidThread da mensagem.
sender_iduuidUsuário que escreveu (o dono do token).
sender_typestringPapel de quem escreveu. Para o cliente,
customer.bodystringTexto já limpo.
attachmentsarrayAnexos recebidos.
[] quando não há.is_readbooleanSempre
false na criação.created_atstringQuando foi gravada (RFC 3339).
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | id não é UUID. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 400 | JSON inválido. | {"error":"invalid request body","detail":"..."} |
| 400 | Sem body e sem attachments. | {"error":"body or attachments required"} |
| 401 | Sem token, ou token inválido. | {"error":"missing authorization header"} |
| 403 | A thread não é do cliente (ou não existe). | {"error":"you are not a participant of this thread"} |
| 500 | Falha ao gravar. | {"error":"failed to send message","detail":"..."} |