VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Ferramentas do catálogo do seller

Perguntas de clientes

Lista as perguntas que clientes fizeram nos produtos do seller e publica a resposta.

Na página do produto o cliente pode perguntar ("serve em 110v?"). A pergunta chega ao seller, que responde; a resposta fica pública ao lado do produto e ajuda as próximas vendas. Quem responde pode ser o seller ou o administrador.

Listar perguntas

GET/api/v1/vendor/product-questionsSeller

Listar perguntas dos seus produtos

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).

Parâmetros de consulta

statusstring
pendingansweredrejectedarchived
Filtra pela situação. Omitido, traz todas. Um valor fora da lista devolve lista vazia.
pageintegerpadrão: 1
Página, a partir de 1. Cada página tem 50 itens (fixo).

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/vendor/product-questions?status=pending" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Perguntas
json
{
  "questions": [
    {
      "id": "8d3b6a1e-4f20-4c97-b5a8-9e0f1a2b3c4d",
      "product_id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6",
      "question_text": "Serve em tensão 110v?",
      "status": "pending",
      "ai_draft": "Este modelo é bivolt (110v e 220v).",
      "ai_draft_shown": false,
      "created_at": "2026-10-11T15:02:11Z",
      "product_name": "Cafeteira Moderno Branco"
    }
  ]
}

Campos da resposta

questionsarray
Perguntas da página (até 50), da mais nova para a mais antiga.
questions[].iduuid
Id da pergunta.
questions[].product_iduuid
Produto perguntado.
questions[].product_namestring
Nome do produto.
questions[].question_textstring
Texto da pergunta (5 a 500 caracteres).
questions[].statusstring
pendingansweredrejectedarchived
Situação da pergunta.
questions[].ai_draftstring
Rascunho de resposta sugerido automaticamente. Ausente se não houver. Revise antes de usar: ele não é publicado sozinho.
questions[].ai_draft_shownboolean
Se o rascunho foi mostrado ao cliente como resposta provisória.
questions[].answer_textstring
Resposta. Ausente enquanto não respondida.
questions[].answered_bystring
Quem respondeu: vendor ou admin. Ausente se não respondida.
questions[].answered_atstring
RFC 3339. Ausente se não respondida.
questions[].created_atstring
RFC 3339.

Erros

StatusQuandoCorpo
401Sem token ou token inválido/expirado.{"error":"missing authorization header"} / {"error":"invalid or expired token"}
403O token é de cliente, ou de um administrador/usuário que não está ligado a um seller.{"error":"insufficient permissions"} / {"error":"not a vendor account"}
Sem total

A resposta não traz total nem número de páginas. Continue pedindo a próxima page até vir uma lista com menos de 50 itens.

Responder uma pergunta

Grava a resposta e publica a pergunta. Só vale para pergunta de produto seu. A resposta é pública, então escreva como se fosse para o cliente.

PUT/api/v1/vendor/product-questions/{id}/answerSeller

Responder uma pergunta

Cabeçalhos

Authorizationstringobrigatório
Bearer $TOKEN. Token de acesso de um usuário do painel do seller (lojista), obtido no login (veja Tokens).
Content-Typestringobrigatório
application/json.

Parâmetros de caminho

iduuidobrigatório
Id da pergunta.

Corpo da requisição

answer_textstringobrigatório
Texto da resposta. Espaços nas pontas são removidos; vazio é recusado.

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/vendor/product-questions/$QUESTION_ID/answer" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "answer_text": "Sim, o modelo é bivolt: funciona em 110v e 220v."
}'

Resposta

200Pergunta respondida
json
{
  "id": "8d3b6a1e-4f20-4c97-b5a8-9e0f1a2b3c4d",
  "product_id": "d8a6c5e7-8e44-4055-a0e2-49014f5d17f6",
  "question_text": "Serve em tensão 110v?",
  "status": "answered",
  "ai_draft": "Este modelo é bivolt (110v e 220v).",
  "ai_draft_shown": false,
  "created_at": "2026-10-11T15:02:11Z",
  "product_name": "Cafeteira Moderno Branco",
  "answer_text": "Sim, o modelo é bivolt: funciona em 110v e 220v.",
  "answered_by": "vendor",
  "answered_at": "2026-10-11T16:40:00Z",
  "guest_name": "Carlos"
}

Campos da resposta (a pergunta)

questions[].iduuid
Id da pergunta.
questions[].product_iduuid
Produto perguntado.
questions[].product_namestring
Nome do produto.
questions[].question_textstring
Texto da pergunta (5 a 500 caracteres).
questions[].statusstring
pendingansweredrejectedarchived
Situação da pergunta.
questions[].ai_draftstring
Rascunho de resposta sugerido automaticamente. Ausente se não houver. Revise antes de usar: ele não é publicado sozinho.
questions[].ai_draft_shownboolean
Se o rascunho foi mostrado ao cliente como resposta provisória.
questions[].answer_textstring
Resposta. Ausente enquanto não respondida.
questions[].answered_bystring
Quem respondeu: vendor ou admin. Ausente se não respondida.
questions[].answered_atstring
RFC 3339. Ausente se não respondida.
questions[].created_atstring
RFC 3339.
user_iduuid
Cliente logado que perguntou. Ausente se foi visitante.
guest_namestring
Nome informado por visitante. Ausente se não houver.
guest_emailstring
E-mail informado por visitante. Ausente se não houver. Dado pessoal: não publique.

Erros

StatusQuandoCorpo
401Sem token ou token inválido/expirado.{"error":"missing authorization header"} / {"error":"invalid or expired token"}
400answer_text vazio ou corpo que não é JSON.{"error":"answer required"} / {"error":"invalid request body"}
403A pergunta é de produto de outro seller (ou não existe), ou a conta não é de seller.{"error":"not your product"} / {"error":"not a vendor account"}
500id que não é UUID, ou falha ao gravar.{"error":"failed to answer","detail":"..."}
Cadastro em análise

Estas duas rotas não passam pelo bloqueio de seller em análise: só exigem token de seller e um seller ligado ao usuário. Não há privilégio de equipe específico.

Não sobrescreve

Só uma pergunta pending (ou archived) aceita resposta. Se já estiver answered ou rejected, a chamada devolve 200 com a pergunta como está, sem trocar o texto. Para corrigir uma resposta, peça ao administrador.

Pergunta inexistente

Uma pergunta que não existe responde 403 not your product, igual a uma pergunta de outro seller.

Anterior
Campos do importador
Próxima
Tarefas em lote
Nesta página
  • Listar perguntas
  • Exemplo de requisição
  • Resposta
  • Erros
  • Responder uma pergunta
  • Exemplo de requisição
  • Resposta
  • Erros