Ler thread e contexto
Lê uma conversa com suas mensagens, com ou sem paginação, e o resumo do pedido, produto, seller ou usuário ligado a ela.
Abra a thread para mostrar a conversa. A leitura traz os dados da thread e as mensagens. O contexto é um cartão com o resumo do objeto da conversa (por exemplo, número, status e total do pedido), útil para exibir ao lado do chat.
/api/v1/storefront/messages/threads/{id}ClienteLer uma thread com as mensagens
Parâmetros de caminho
iduuidobrigatórioParâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/messages/threads/$THREAD_ID?page=1&per_page=50" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "3f0d6c0e-2a8b-4a40-9f69-4a0f7d1e6a77",
"subject": "Dúvida sobre o pedido PEDIDO-20261010-0004",
"status": "A",
"object_type": "order",
"object_id": "a8a3c7a3-5f15-45a8-a385-4f20fbf8b722",
"object_name": "PEDIDO-20261010-0004",
"customer_user_id": "f12f30a9-cbec-40ba-98f1-b7fa8f2e8e10",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"vendor_name": "Casa do Café",
"customer_name": "Maria Souza",
"last_message_preview": "Seu pedido sai amanhã.",
"last_message_at": "2026-10-11T18:30:00Z",
"created_at": "2026-10-11T17:00:00Z",
"updated_at": "2026-10-11T18:30:00Z",
"messages": [
{
"id": "8a7b6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d",
"thread_id": "3f0d6c0e-2a8b-4a40-9f69-4a0f7d1e6a77",
"sender_id": "c2c9a7d4-3b1e-4f55-9a66-0f2d6b1a9e42",
"sender_type": "vendor",
"body": "Seu pedido sai amanhã.",
"attachments": [],
"is_read": false,
"delivered_at": "2026-10-11T18:31:00Z",
"created_at": "2026-10-11T18:30:00Z"
}
],
"page": 1,
"per_page": 50,
"total": 2,
"total_pages": 1
}Campos da resposta
iduuidsubjectstringstatusstringARCA aberta, R resolvida, C arquivada.object_typestringnull.object_iduuidnull.object_namestringnull.customer_user_iduuidvendor_iduuidnull em thread da loja.vendor_namestringnull em thread da loja.customer_namestringlast_message_previewstringlast_message_atstringmessagesarraymessages[].iduuidmessages[].thread_iduuidmessages[].sender_iduuidmessages[].sender_typestringcustomervendoradminmessages[].bodystringmessages[].attachmentsarrayurl, filename, content_type e size (bytes). [] quando não há.messages[].is_readbooleanmessages[].delivered_atstringmessages[].read_atstringmessages[].created_atstringpageintegerper_pageintegertotalintegertotal_pagesintegerCampos sem valor (object_type, object_id, object_name, vendor_id, vendor_name) saem null na leitura paginada e ficam ausentes na leitura sem paginação. A leitura sem paginação ainda inclui unread_count (sempre 0) e não traz page, per_page, total nem total_pages.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | id não é UUID. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 401 | Sem token, ou token inválido. | {"error":"missing authorization header"} |
| 403 | A thread não é do cliente. | {"error":"you are not a participant of this thread"} |
| 404 | A thread sumiu entre a checagem e a leitura. | {"error":"thread not found"} |
/api/v1/storefront/messages/threads/{id}/contextClienteLer o contexto do objeto ligado
Parâmetros de caminho
iduuidobrigatóriocurl "$BASE_URL/api/v1/storefront/messages/threads/$THREAD_ID/context" \
-H "Authorization: Bearer $TOKEN"{
"object_type": "order",
"object_id": "a8a3c7a3-5f15-45a8-a385-4f20fbf8b722",
"data": {
"order_number": "PEDIDO-20261010-0004",
"status": "P",
"total": 22500,
"customer_name": "Maria Souza"
}
}Campos da resposta
object_typestringorderproductvendoruserobject_iduuiddataobjectdata (order)objectorder_number (string), status (letra do status do pedido), total (inteiro em centavos) e customer_name.data (product)objectname, sku, price (inteiro em centavos) e image_url.data (vendor)objectcompany_name, status e email.data (user)objectname, email e role.Quando a thread não tem objeto, o tipo não é um dos quatro acima ou o objeto não foi achado, a resposta é {"context": null}.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | id não é UUID. | {"error":"invalid id","detail":"id must be a valid UUID"} |
| 401 | Sem token, ou token inválido. | {"error":"missing authorization header"} |
| 403 | A thread não é do cliente. | {"error":"you are not a participant of this thread"} |