Briefing diário do seller
Lista e lê as edições do briefing diário (Dicas do Dia) do seu seller e marca o que o usuário já leu.
O briefing diário é uma mensagem por dia que resume o que importa no seu seller: vendas, estoque crítico, notícias do segmento e, às vezes, uma promoção sugerida e banners. Nas rotas ele se chama venddor-pulse; no painel, "Dicas do Dia". Cada seller recebe no máximo uma edição por data civil, e só enxerga as próprias edições. O estado de leitura é por usuário: ler não afeta os outros usuários do seller. O seller só lê: gerar edições novas é uma ação do administrador da loja.
Listar
Devolve as edições do seu seller, da data mais recente para a mais antiga, com is_read calculado para o usuário do token. A lista inclui edições em andamento e as que falharam.
/api/v1/vendor/intelligence/venddor-pulseSellerListar o briefing diário
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um seller (veja Tokens).Parâmetros de consulta
limitintegerpadrão: 20offsetintegerpadrão: 0Exemplo de requisição
curl "$BASE_URL/api/v1/vendor/intelligence/venddor-pulse?limit=7" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"display_title": "",
"insights": [
{
"id": "5f68c2d5-ee3d-439c-a0f9-1b7737878ce4",
"analysis_date": "2026-10-11",
"audience": "vendor",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"day_type": "weekend",
"day_type_label": "Mensagem de Fim de Semana",
"topics_covered": [
"revenue_week",
"products_stock_critical"
],
"greeting": "**Oi! Uma passadinha rápida no fim de semana**",
"formatted_message": "Sua loja vendeu 2 unidades da Camisa Azul esta semana. Dois produtos estão com estoque crítico.",
"supporting_facts": [
"Receita dos últimos 7 dias: R$ 585,87."
],
"generation_status": "completed",
"is_backfill": false,
"created_at": "2026-10-11T07:00:12Z",
"is_read": false
}
],
"total": 1
}Campos da resposta
insightsarrayinsights[].iduuidinsights[].analysis_datestringAAAA-MM-DD (São Paulo) a que a edição se refere.insights[].audiencestringvendor.insights[].vendor_iduuidinsights[].day_typestringmonth_startmonth_endmon_plantue_market_intelmidweek_followupthu_hidden_opportunitiesfri_wrapweekendinsights[].day_type_labelstringinsights[].topics_coveredarrayinsights[].mentioned_product_idsarrayinsights[].mentioned_category_idsarrayinsights[].greetingstringinsights[].formatted_messagestringinsights[].supporting_factsarrayinsights[].assumptionsarrayinsights[].decision_rationalearrayinsights[].news_refsarraytitle e url. Pode faltar.insights[].suggested_promotionobjectid, name, discount_label, valid_from, valid_until, status. Pode faltar.insights[].bannersarraygenerated_image_id e image_url. Pode faltar.insights[].generation_statusstringpendingcollectinggeneratingcompletedfailedpending.insights[].error_messagestringfailed.insights[].is_backfillbooleantrue para edições geradas retroativamente.insights[].created_atstringinsights[].is_readbooleantotalintegerdisplay_titlestringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} ou {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | A conta tem papel de seller mas nenhum seller vinculado. | {"error":"no vendor scope on this account"} |
Ler uma edição
Devolve uma edição do seu seller. Não marca como lida: use a rota seguinte.
/api/v1/vendor/intelligence/venddor-pulse/{id}SellerLer uma edição
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um seller (veja Tokens).Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/vendor/intelligence/venddor-pulse/$ID" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "5f68c2d5-ee3d-439c-a0f9-1b7737878ce4",
"analysis_date": "2026-10-11",
"audience": "vendor",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"day_type": "weekend",
"day_type_label": "Mensagem de Fim de Semana",
"topics_covered": [
"revenue_week",
"products_stock_critical"
],
"greeting": "**Oi! Uma passadinha rápida no fim de semana**",
"formatted_message": "Sua loja vendeu 2 unidades da Camisa Azul esta semana. Dois produtos estão com estoque crítico.",
"supporting_facts": [
"Receita dos últimos 7 dias: R$ 585,87."
],
"generation_status": "completed",
"is_backfill": false,
"created_at": "2026-10-11T07:00:12Z",
"is_read": false
}Os campos são os mesmos de cada item da lista.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} ou {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | A conta tem papel de seller mas nenhum seller vinculado. | {"error":"no vendor scope on this account"} |
| 404 | A edição não existe ou não é do seu seller. | {"error":"insight not found"} (ou {"error":"venddor pulse: insight <id> not found"} para um id que não existe) |
Marcar como lida
Marca a edição como lida para o usuário do token. É idempotente: marcar de novo devolve o mesmo 200. Não existe rota para marcar como não lida nem para contar as não lidas; conte pelo is_read da lista.
/api/v1/vendor/intelligence/venddor-pulse/{id}/readSellerMarcar como lida
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso de um seller (veja Tokens).Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X POST "$BASE_URL/api/v1/vendor/intelligence/venddor-pulse/$ID/read" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"ok": true
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido/expirado. | {"error":"missing authorization header"} ou {"error":"invalid or expired token"} |
| 403 | O token não é de um usuário seller (por exemplo, é de um administrador da loja). | {"error":"insufficient permissions"} |
| 403 | A conta tem papel de seller mas nenhum seller vinculado. | {"error":"no vendor scope on this account"} |
| 404 | A edição não existe ou não é do seu seller. | {"error":"insight not found"} (ou {"error":"venddor pulse: insight <id> not found"} para um id que não existe) |