Pular para o conteúdo principal

Admin API

Esta API reúne ações administrativas. Ela nunca deve ser chamada pelo client-side.

Autenticação

Você deve chamar a API de autenticação, para que possa utilizar os demais endpoints de nossa API administrativa

Obtendo chaves de autenticação

Acesse o Dashboard e navegue até Configurações > Integrações. Em seguida, clique em API. Você encontrará:

  • Customer key: seu identificador de cliente, utilizado como parâmetro {customer} nas URLs dos endpoints
  • Client ID: identificador da sua aplicação para autenticação
  • Client Secret: chave secreta para autenticação

POST https://reviews-api.konfidency.com.br/oauth/token

Campos do corpo da requisição (JSON)

ParâmetroDescrição
audienceFixo: https://reviews-api.konfidency.com.br
grant_typeFixo: client_credentials
client_idClient ID — consulte Obtendo chaves de autenticação
client_secretClient Secret — consulte Obtendo chaves de autenticação

Exemplo de corpo da requisição

{
"audience": "https://reviews-api.konfidency.com.br",
"grant_type": "client_credentials",
"client_id": "eSRTjDtxTaprkd6Yb97DouqFORbTT1dV",
"client_secret": "cSrP6TF1ktSAH1IV1p24Vztd9Lc4AoLA62f0KIPU1vkymSjd7a5QzpTy0Tqo51PZ"
}
Exemplo de Resposta
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 86400,
"token_type": "Bearer"
}

Campos

campodescrição
access_tokentoken de acesso gerado
expires_intempo de validade do token
token_typetipo de token, sempre será Bearer

Permite obter o link de avaliação para um pedido

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
orderIdnúmero do pedido em sua plataforma

Exemplo de Resposta

{
"link": "https://www.kfy.app/rate/konfidency/62b266a92bbbb599f720bb22/123456-1"
}

Campos da resposta

campodescrição
linkURL única para avaliação do pedido

Criar Pedido

Integra um novo pedido na plataforma Konfidency Reviews

POST /{customer}/orders

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros do corpo da requisição

ParâmetroDescrição
orderIdNúmero do pedido, identificação única na plataforma do cliente
createdDateData de criação do pedido
userIdID do usuário na plataforma do cliente não utilizar dados sensíveis
statusStatus do produto, created, authorized, shipped ou delivered
estimatedDeliveryDateData de entrega prevista do pedido
deliveredDateData da entrega do pedido
nameNome do cliente
emailE-mail do cliente - obrigatório para notificações por e-mail
phoneCelular do cliente - obrigatório para notificações por SMS e WhatsApp
pointOfSaleOrigem do pedido (ex: "Loja Física", "E-commerce", "Marketplace")
deliveryMethodMétodo de entrega (ex: "Correios", "Transportadora", "Retirada")
optOutEmailIndica se o cliente realizou opt-out para receber e-mails
optOutSMSIndica se o cliente realizou opt-out para receber mensagens SMS
optOutWhatsAppIndica se o cliente realizou opt-out para receber mensagens via WhatsApp
items.skuSKU do produto

Exemplo de corpo da requisição

{
"orderId": "P123456-1",
"createdDate": "2022-06-01 12:34",
"userId": "12345",
"name": "João da Silva",
"email": "[email protected]",
"phone": "551191234-5678",
"status": "created",
"estimatedDeliveryDate": "2022-07-15",
"pointOfSale": "E-commerce",
"deliveryMethod": "Correios",
"optOutEmail": false,
"optOutWhatsApp": false,
"optOutSMS": true,
"items": [
{
"sku": "01001"
}
]
}

Resposta

Esta API não gera um JSON de resposta, um status 200 significa que os dados foram salvos corretamente

Criar Pedido (V2)

Versão otimizada da API de integração de pedidos com suporte a marketplace, dados expandidos de produtos e atualização de pedidos existentes.

POST /{customer}/orders

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros do corpo da requisição

ParâmetroDescrição
versionDeve ser 2 para usar esta versão da API
orderIdNúmero do pedido, identificação única na plataforma do cliente
userIdID do usuário na plataforma do cliente não utilizar dados sensíveis
createdDateData de criação do pedido
authorizedDateData de autorização/pagamento do pedido (opcional)
estimatedDeliveryDateData de entrega prevista do pedido (opcional)
deliveredDateData de entrega efetiva do pedido (opcional)
modifiedDateData de última modificação do pedido (opcional)
nameNome do cliente
emailE-mail do cliente - obrigatório para notificações por e-mail
phoneCelular do cliente - obrigatório para notificações por SMS e WhatsApp
pointOfSaleOrigem do pedido (ex: "Loja Física", "E-commerce", "Marketplace") (opcional)
deliveryMethodMétodo de entrega (ex: "Correios", "Transportadora", "Retirada") (opcional)
statusStatus do pedido, created, authorized, paid, invoiced, shipped, delivered ou cancelled
optOutEmailIndica se o cliente realizou opt-out para receber e-mails
optOutSMSIndica se o cliente realizou opt-out para receber mensagens SMS
optOutWhatsAppIndica se o cliente realizou opt-out para receber mensagens via WhatsApp
itemsArray de itens do pedido (veja estrutura abaixo)

Estrutura de items (V2)

ParâmetroDescrição
items.productIdSKU/ID principal do produto
items.skuSKU da variante do produto (opcional)
items.skuNameNome/descrição da variante (ex: "Tamanho P - Cor Azul") (opcional)
items.statusStatus específico do item (opcional, usa status do pedido se omitido)
items.cancelledIndica se o item foi cancelado (boolean) (opcional)
items.sellerInfoInformações do seller/marketplace (opcional, veja estrutura abaixo)
items.productDataDados completos do produto (opcional, veja estrutura abaixo)

Estrutura de items.sellerInfo (Marketplace)

ParâmetroDescrição
items.sellerInfo.idID único do seller/vendedor
items.sellerInfo.nameNome do seller/vendedor

Estrutura de items.productData

ParâmetroDescrição
items.productData.nameNome do produto
items.productData.productNameNome do produto (alternativo)
items.productData.brandMarca do produto
items.productData.brandNameMarca do produto (alternativo)
items.productData.mpnManufacturer Part Number (opcional)
items.productData.eanCódigo EAN (opcional)
items.productData.gtinGlobal Trade Item Number (opcional)
items.productData.urlURL da página do produto (será normalizada com a URL da loja)
items.productData.imageURL da imagem principal do produto
items.productData.categoriesArray de categorias do produto
items.productData.categoryNameNome da categoria (alternativo, será convertido em array)

Exemplo de corpo da requisição (V2)

{
"version": 2,
"orderId": "P123456-1",
"userId": "12345",
"name": "João da Silva",
"email": "[email protected]",
"phone": "551191234-5678",
"createdDate": "2022-06-01 12:34",
"authorizedDate": "2022-06-01 13:00",
"estimatedDeliveryDate": "2022-06-15",
"deliveredDate": "2022-06-14",
"pointOfSale": "E-commerce",
"deliveryMethod": "Transportadora",
"status": "delivered",
"optOutEmail": false,
"optOutWhatsApp": false,
"optOutSMS": true,
"items": [
{
"productId": "CAM-001",
"sku": "CAM-001-P-AZUL",
"skuName": "Tamanho P - Cor Azul",
"status": "authorized",
"cancelled": false,
"sellerInfo": {
"id": "SELLER123",
"name": "Loja Parceira ABC"
},
"productData": {
"name": "Camiseta Básica",
"brand": "Konfidency Store",
"mpn": "CAM001",
"ean": "7891234567890",
"url": "/produtos/camiseta-basica",
"image": "https://example.com/camiseta.jpg",
"categories": ["Roupas", "Camisetas", "Masculino"]
}
}
]
}

Diferenças da V2

CaracterísticaV1V2
Atualização de pedidos existentesNão (retorna duplicate)Sim (atualiza dados)
Suporte a marketplace/sellersNãoSim
Dados expandidos de produtosNãoSim (productData)
Status por itemNãoSim
Cancelamento por itemNãoSim
Variantes de produtoLimitadoCompleto (sku + skuName)
Normalização de URL de produtosNãoSim

Resposta

{
"_id": "62b266a92bbbb599f720bb22",
"customer": "konfidency",
"orderId": "P123456-1",
"userId": "12345",
"name": "João S.",
"createdDate": "2022-06-01T15:34:00.000Z",
"authorizedDate": "2022-06-01T16:00:00.000Z",
"email": "[email protected]",
"phone": "551191234-5678",
"status": "authorized",
"optOutEmail": false,
"optOutSMS": true,
"optOutWhatsApp": false,
"__v": 0
}

Atualizar Pedido

Atualiza o status do pedido na plataforma Konfidency Reviews

PUT /{customer}/orders/{orderId}

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
orderIdNúmero do pedido, identificação única na plataforma do cliente

Parâmetros do corpo da requisição

ParâmetroDescrição
createdData de criação do pedido
statusStatus, created, authorized, shipped ou delivered
authorizedDateData de pagamento do pedido
deliveredDateData de entrega do pedido

Exemplo de corpo da requisição

{
"status": "authorized",
"authorizedDate": "2022-06-01 12:34"
}

Resposta

Esta API não gera um JSON de resposta, um status 200 significa que os dados foram salvos corretamente

Enviar catálogo de produtos

Cadastra ou atualiza produtos do seu catálogo em lote. Use este endpoint quando sua plataforma não expõe uma API ou feed de catálogo que possamos consumir.

O envio é idempotente: reenviar o mesmo produto atualiza o registro existente em vez de duplicá-lo. A identificação é feita pelo campo sku dentro do seu customer.

POST /{customer}/products/batch

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros do corpo da requisição

ParâmetroDescrição
productsArray de produtos. Mínimo de 1 e máximo de 200 itens por requisição

Estrutura de products

ParâmetroDescrição
products.skuObrigatório. Identificador único do produto na sua plataforma. É a chave de atualização
products.nameNome do produto. Obrigatório ao cadastrar um produto novo
products.categoriesArray de categorias do produto. Obrigatório ao cadastrar um produto novo
products.brandMarca do produto
products.urlURL da página do produto. Pode ser absoluta ou relativa à URL da sua loja
products.imageURL da imagem principal do produto
products.descriptionDescrição completa do produto. Usada pelas funcionalidades de IA (resumo de avaliações e respostas automáticas de perguntas)
products.descriptionShortDescrição resumida do produto
products.keywordsPalavras-chave do produto
products.eanCódigo EAN
products.gtinGlobal Trade Item Number
products.mpnManufacturer Part Number
products.referenceCódigo de referência do produto na sua plataforma
products.internalSkuSKU interno, quando diferente do sku
products.externalIdIdentificador do produto em um sistema externo
products.statusSituação do produto na sua loja (ex: active, inactive). Armazenado para consulta — não altera o comportamento da plataforma
products.variantsArray com os SKUs das variantes do produto (ex: tamanhos, cores)
products.specificationsArray de especificações técnicas (veja estrutura abaixo)

Estrutura de products.specifications

ParâmetroDescrição
products.specifications[].nameNome da especificação
products.specifications[].valueValor da especificação

Comportamento de atualização

  • Campos omitidos não são alterados. Se você enviar apenas sku e image, os demais campos do produto permanecem como estavam. Isso permite enviar atualizações parciais sem risco de apagar dados já cadastrados.
  • variants é acumulativo. As variantes enviadas são adicionadas às já existentes, sem remover as anteriores. Isso preserva as variantes que identificamos a partir dos pedidos integrados.
  • categories e specifications são substituídos integralmente pelo valor enviado.
  • SKUs repetidos no mesmo lote são consolidados em um único produto: os campos escalares assumem o valor da última ocorrência e as variantes são unidas.
  • Categorias e marcas informadas são cadastradas automaticamente e passam a ficar disponíveis como filtro no Dashboard.

Descontinuar um produto

Não há remoção de produtos pela API: excluir um produto deixaria as avaliações já coletadas sem referência. Para produtos fora de linha, use o Dashboard para bloquear o recebimento de novas avaliações e perguntas, ou envie status indicando a situação do item na sua loja.

Exemplo de corpo da requisição

{
"products": [
{
"sku": "CAM-001",
"name": "Camiseta Básica",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"url": "/produtos/camiseta-basica",
"image": "https://example.com/camiseta-basica.jpg",
"description": "Camiseta de algodão penteado, gola redonda, com acabamento reforçado nas costuras.",
"ean": "7891234567890",
"mpn": "CAM001",
"reference": "REF-CAM-001",
"status": "active",
"variants": ["CAM-001-P-AZUL", "CAM-001-M-AZUL", "CAM-001-G-AZUL"],
"specifications": [
{ "name": "Material", "value": "Algodão" },
{ "name": "Composição", "value": "100% algodão penteado" }
]
},
{
"sku": "CAN-014",
"name": "Caneca de Porcelana 300ml",
"categories": ["Casa", "Cozinha", "Canecas"],
"url": "/produtos/caneca-porcelana-300ml",
"image": "https://example.com/caneca-300ml.jpg"
}
]
}

Exemplo de resposta

{
"received": 2,
"processed": 2,
"created": 1,
"updated": 1,
"unchanged": 0,
"failed": 0,
"errors": []
}

Exemplo de resposta com falha parcial

Itens inválidos são rejeitados individualmente — os demais produtos do lote são gravados normalmente e a requisição retorna 200.

{
"received": 3,
"processed": 3,
"created": 1,
"updated": 1,
"unchanged": 0,
"failed": 1,
"errors": [
{
"index": 2,
"sku": "CAN-015",
"error": "name é obrigatório para produto novo"
}
]
}

Campos da resposta

campodescrição
receivedQuantidade de itens recebidos no array products
processedQuantidade de produtos processados, após consolidação de SKUs repetidos
createdQuantidade de produtos cadastrados pela primeira vez
updatedQuantidade de produtos existentes que foram atualizados
unchangedQuantidade de produtos cujo envio não alterou nenhum campo
failedQuantidade de produtos rejeitados por erro de validação
errorsLista dos produtos rejeitados
errors[].indexPosição do produto no array products que você enviou
errors[].skuSKU do produto rejeitado
errors[].errorMotivo da rejeição

Respostas de erro

StatusSituação
400Corpo inválido: products ausente, vazio, não é um array ou excede 200 itens
401Token ausente, expirado ou inválido
403Token sem permissão para o customer informado
413Corpo da requisição acima do limite de 10 MB
{
"error": "Invalid payload",
"message": "O campo products deve ser um array com 1 a 200 itens"
}

Recomendações de envio

  • Envie lotes de até 200 produtos por requisição. Catálogos maiores devem ser paginados em requisições sequenciais.
  • Para a carga inicial, envie o catálogo completo. Nas sincronizações seguintes, envie apenas os produtos alterados.
  • Em caso de erro 5xx, a requisição pode ser reenviada com segurança: a operação é idempotente.

Atualizar produto

Cadastra ou atualiza um único produto. Equivale a enviar um lote com um item e segue exatamente as mesmas regras de atualização descritas em Enviar catálogo de produtos.

PUT /{customer}/products/{sku}

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
skuSKU do produto a ser cadastrado ou atualizado

Parâmetros do corpo da requisição

Os mesmos campos de products[] descritos em Enviar catálogo de produtos, sem o campo sku (que vem pela URL).

Exemplo de corpo da requisição

{
"name": "Camiseta Básica",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"url": "/produtos/camiseta-basica",
"image": "https://example.com/camiseta-basica.jpg"
}

Exemplo de resposta

Diferente do envio em lote, este endpoint retorna o produto gravado.

{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-001",
"name": "Camiseta Básica",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"url": "https://www.sualoja.com.br/produtos/camiseta-basica",
"image": "https://example.com/camiseta-basica.jpg",
"variants": ["CAM-001-P-AZUL", "CAM-001-M-AZUL"],
"modified": "2026-08-14T18:22:31.204Z"
}

Respostas de erro

StatusSituação
400Corpo inválido, ou campo obrigatório ausente (name e categories em produto novo)
401Token ausente, expirado ou inválido
403Token sem permissão para o customer informado
{
"error": "Invalid product",
"message": "name é obrigatório para produto novo"
}

Obter avaliações

Obtém as avaliações de acordo com os critérios de busca

GET /{customer}/reviews/all

POST /{customer}/reviews/all

O método POST permite filtros adicionais através do corpo da requisição (ver seção abaixo).

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros de Query (todos opcionais)

ParâmetroTipoDescrição
skustringSKU do produto que deseja buscar
statusstringStatus das avaliações a serem buscadas (consulte tabela abaixo)
orderstringOrdenação dos resultados (consulte tabela abaixo)
ratingintegerFiltrar por nota específica (1 a 5)
skipintegerQuantidade de registros a serem omitidos (paginação)
tagsstringFiltrar por tags de moderação
topicsstringFiltrar por tópicos
fromstringData inicial em formato YYYY-MM-DD
tostringData final em formato YYYY-MM-DD
hasTextbooleanFiltrar avaliações que possuem texto
hasPicturebooleanFiltrar avaliações que possuem fotos
hasVideobooleanFiltrar avaliações que possuem vídeos
hasReplybooleanFiltrar avaliações que possuem resposta do lojista
completebooleanFiltrar avaliações completas
autoModeratedbooleanFiltrar por avaliações moderadas automaticamente
includeOrderDatabooleanIncluir dados do pedido e seller (orderId, sellerInfo, orderName, orderEmail, orderPhone, variantSku, variantName)

Status de avaliações

StatusDescrição
Omitir este campo ou enviar uma string vazia trará avaliações em qualquer status
publishedAvaliações publicadas
removedAvaliações reprovadas/removidas
filteredAvaliações filtradas pelo filtro de palavras proibidas
pendingAvaliações na fila de moderação

Ordenação de resultados

A ordenação segue o padrão campo,ordem. A ordem pode ser 1 para ascendente ou -1 para descendente.

CampoDescrição
createdData de envio da avaliação
moderatedAtData de moderação da avaliação
skuSKU do produto
ratingNota da avaliação (1 a 5)
helpfulMais marcadas como úteis
unhelpfulMais marcadas como não úteis

Parâmetros adicionais do método POST (corpo da requisição)

ParâmetroTipoDescrição
categoriesarrayArray de categorias de produtos para filtrar
sentimentstringFiltrar por sentimento da avaliação (positive, negative, neutral)

Exemplo de chamada GET com filtros

GET /konfidency/reviews/all?status=published&rating=5&hasPicture=true&from=2024-01-01&to=2024-12-31&skip=0

Exemplo de chamada GET com dados de pedido e seller

GET /konfidency/reviews/all?status=published&includeOrderData=true

Exemplo de corpo da requisição POST

{
"categories": ["Camisetas", "Masculino"],
"sentiment": "positive"
}

Os parâmetros de query permanecem os mesmos para o método POST e podem ser combinados com o corpo da requisição.

Resposta

{
"results": [
{
"_id": "630adeb56a21590014e4e200",
"helpful": 0,
"unhelpful": 0,
"verified": true,
"moderationTags": [],
"status": "published",
"created": "2022-08-28T03:19:17.374Z",
"pictures": [
{
"_id": "629f79d569ede80012ca7172",
"url": "https://uploads.konfidency.com.br/a98cd120-abe9-436f-b4de-78e8a0b52071"
}
],
"customer": "konfidency",
"userId": "a6c42ec0-ed92-4464-8dfc-fd7593472767",
"name": "Dominic T",
"sku": "307645",
"text": "Produto diferenciado. Do forno direto para a mesa. Lindíssimo. Não há quem não elogie à mesa.\nA comida servida nesta travessa fica até mais saborosa.😍",
"recommended": true,
"rating": 5,
"source": "sdk",
"__v": 1,
"attributes": [
{
"_id": "61f7162480088014770d11af",
"title": "Custo/benefício",
"type": "stars",
"scaleMin": 0,
"scaleMax": 5,
"value": 5
},
{
"_id": "627da5f10d1b0c410a99a1eb",
"title": "Qualidade",
"type": "stars",
"scaleMin": 0,
"scaleMax": 5,
"value": 5
}
],
"product": {
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"sku": "307645",
"name": "FOLHA TRAVESSA OVAL 33 CM X 23 CM",
"categories": [
"Ambientes",
"Sala de Jantar",
"Cozinha",
"Acessórios para Servir",
"Louças",
"Louças",
"Porcelana e cerâmica",
"Acessórios",
"Mesa",
"Travessas para Servir",
"Louças e Utensílios para Servir"
],
"url": "https://www.site.com.br/travessa-oval-33-cm-x-23-cm-verde-folha",
"image": "https://images.site.com.br/arquivos/ids/1857460-200-200/Travessa-Oval-33-Cm-X-23-Cm-Verde-Folha.jpg?v=637020162237200000",
"brand": "Marca Exemplo",
"mpn": "TRAV-33X23",
"gtin": "7891234567890",
"specifications": [
{ "name": "Material", "value": "Cerâmica" },
{ "name": "Cor", "value": "Verde" }
]
}
}
],
"total": 30958
}

Campos de resposta

campodescrição
results._idID da avaliação
results._idID único da avaliação
results.skuSKU do produto
results.namenome do cliente que avaliou
results.ratingnota atribuída pelo cliente
results.texttexto de avaliação do cliente
results.helpfulquantidade de pessoas que consideraram a avaliação útil
results.unhelpfulquantidade de pessoas que não consideraram a avaliação útil
results.verifiedindica se o cliente é um comprador verificado
results.createddata de envio da avaliação
results.recommendedindica se o cliente avaliou o produto positivamente
results.picturesfotos enviadas com a avaliação
results.pictures._idID único da foto
results.pictures.urlURL da foto
results.productdados do produto associado à avaliação
results.product.namenome do produto
results.product.skuSKU do produto
results.product.urlURL da página do produto
results.product.imageURL da imagem do produto
results.product.brandmarca do produto
results.product.mpnManufacturer Part Number
results.product.gtinGlobal Trade Item Number
results.product.categoriesarray de categorias do produto
results.product.specificationsarray de especificações do produto
results.product.specifications[].namenome da especificação
results.product.specifications[].valuevalor da especificação
results.orderIdnúmero do pedido (apenas quando includeOrderData=true)
results.sellerInfoinformações do seller/marketplace (apenas quando includeOrderData=true)
results.sellerInfo.idID do seller (apenas quando includeOrderData=true)
results.sellerInfo.namenome do seller (apenas quando includeOrderData=true)
results.orderNamenome do cliente no pedido (apenas quando includeOrderData=true)
results.orderEmaile-mail do cliente no pedido (apenas quando includeOrderData=true)
results.orderPhonetelefone do cliente no pedido (apenas quando includeOrderData=true)
results.variantSkuSKU da variante comprada (apenas quando includeOrderData=true)
results.variantNamenome da variante comprada (apenas quando includeOrderData=true)
totaltotal de avaliações obtidas com os critérios de busca

Obter perguntas

Obtém as perguntas de acordo com os critérios de busca

GET {customer}/questions/all

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
skuSKU do produto que deseja buscar
statusStatus das avaliações a serem buscadas (consulte tabela abaixo)
orderOrdenação dos resultados (consulte tabela abaixo)
skipQuantidade de registros a serem omitidos (paginação)

Status de perguntas

StatusDescrição
Omitir este campo ou enviar uma string vazia trará perguntas publicadas
allPerguntas em qualquer status
publishedPerguntas publicadas
removedPerguntas reprovadas/removidas
filteredPerguntas filtradas pelo filtro de palavras proibidas
sentPerguntas na fila de moderação

Resposta

{
"results": [
{
"_id": "669daa280a3d4e00135eb618",
"status": "published",
"created": "2024-07-22T00:39:04.246Z",
"customer": "demoshakers",
"sku": "9311078449466",
"name": "Tony S.",
"text": "esse produto tem em qual cor?",
"email": "[email protected]",
"__v": 1,
"reply": {
"unhelpful": 0,
"helpful": 0,
"created": "2024-11-05T12:22:48.259Z",
"text": "Tem azul, vermelha e amarela"
},
"product": {
"_id": "669cfc8d64e4456616dd9a6d",
"sku": "9311078449466",
"customer": "demoshakers",
"brand": "Bonne Soirée",
"categories": [
"Blazer e Jaqueta"
],
"image": "https://cdn.shopify.com/s/files/1/0875/0976/2362/files/BONNE_SOIREE-329.jpg?v=1716429969",
"isKit": false,
"modified": "2024-07-29T19:38:57-04:00",
"name": "Blazer Jeans Isabelle",
"url": "https://demo-shakers-pro.myshopify.com/products/blazer-jeans-isabelle-1",
"variants": [
"85259071",
"85259072",
"85259073",
"85259074"
],
"status": "active",
"sumRatings": 234,
"totalReviews": 51
}
}
],
"total": 1
}

Obter respostas pesquisa NPS

Obtém as respostas à pesquisa NPS

GET {customer}/nps/responses

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
skuSKU do produto que deseja buscar
typeClassificação de resposta (consulte tabela abaixo)
sortOrdenação dos resultados (consulte tabela abaixo)
skipQuantidade de registros a serem omitidos (paginação)
fromData inicial em formato YYYY-MM-DD (opcional)
toData final em formato YYYY-MM-DD (opcional)

Classificação de respostas NPS

StatusDescrição
allTodas as respostas
promotersPromotores (9 e 10)
neutralNeutros (7 e 8)
detractorsDetratores (0 a 6)

Ordenação de resultados

A ordenação segue o padrão campo,ordem. A ordem pode ser 1 para ascendente ou -1 para descendente.

CampoDescrição
createdData de envio da avaliação
ratingNota da avaliação (1 a 5)

Resposta

{
"result": [
{
"_id": "674dad491dceb80011018301",
"customer": "stanley",
"surveyId": "663d4588fe42f52137cfd3a2",
"requestId": "6709e7cef1a3f86303b6242",
"name": "Antony S.",
"phone": "11912345678",
"orderId": "12345678",
"rating": 10,
"comment": "",
"partial": true,
"created": "2024-12-02T12:51:21.037Z",
"__v": 0
},
{
"_id": "674d96411dceb80011005121",
"customer": "stanley",
"surveyId": "663d4588fe42f52137cfd3a2",
"requestId": "6709e7cef1a3f86303b6241",
"name": "Bruce B.",
"phone": "11987654321",
"orderId": "12345679",
"rating": 10,
"comment": "Entrega rápida. ",
"partial": false,
"created": "2024-12-02T11:13:05.762Z",
"__v": 0,
"sendDate": "2024-12-02T11:13:17.390Z"
}
],
"total": 12740
}

Campos de resposta

campodescrição
results._idID da resposta
results.namenome do cliente que respondeu
results.phonetelefone do cliente que respondeu
results.orderIdNúmero do pedido que gerou a pesquisa
results.partialIndica se a resposta foi submetida ou se é parcial (gravada automaticamente)
results.ratingnota atribuída pelo cliente
results.commenttexto de comentário do cliente
results.createddata de primeiro envio da resposta
results.sendDatedata submissão da resposta final
totaltotal de respostas obtidas com os critérios de busca

Relatório de produtos

Retorna uma lista paginada de produtos com seus respectivos dados de avaliações, permitindo análise de desempenho por produto.

GET /{customer}/products/report

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros de query (todos opcionais)

ParâmetroTipoDescrição
orderstringOrdenação dos resultados (consulte tabela abaixo)
limitintegerQuantidade máxima de registros a retornar (padrão: 100)
skipintegerQuantidade de registros a omitir para paginação (padrão: 0)
skustringFiltrar pelo SKU específico de um produto
categorystringFiltrar por categoria de produto (pode ser repetido para múltiplas categorias)
dateFromstringData de início do período em formato YYYY-MM-DD
dateTostringData de fim do período em formato YYYY-MM-DD
onlyPublishedbooleanQuando true, considera apenas avaliações com status published (padrão: false)

Opções de ordenação (order)

ValorDescrição
MoreReviewsProdutos com mais avaliações primeiro
LessReviewsProdutos com menos avaliações primeiro
MostPositiveProdutos com melhor nota média primeiro
MostNegativeProdutos com pior nota média primeiro
PositiveMoreReviewsMelhores avaliados com mais avaliações primeiro
PositiveLessReviewsMelhores avaliados com menos avaliações primeiro
NegativeMoreReviewsPiores avaliados com mais avaliações primeiro
NegativeLessReviewsPiores avaliados com menos avaliações primeiro

Comportamento por período

Quando dateFrom e dateTo são fornecidos, o relatório é calculado dinamicamente a partir das avaliações no intervalo de datas indicado. Quando omitidos, os dados são obtidos dos agregados pré-computados, representando o histórico completo do produto.

Exemplo de chamada

GET /konfidency/products/report?order=PositiveMoreReviews&limit=50&skip=0&dateFrom=2024-01-01&dateTo=2024-12-31&onlyPublished=true

Exemplo de resposta

{
"result": [
{
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"name": "Camiseta Masculina Azul",
"categories": ["Roupas", "Camisetas", "Masculino"],
"url": "https://example.com/camiseta-masculina-azul",
"image": "https://example.com/camiseta-masculina-azul.jpg",
"reviews": {
"reviewCount": 120,
"aggregateRating": 4.2,
"publishedCount": 95,
"publishedAggregateRating": 4.4,
"withPictures": 30,
"withVideo": 5,
"withText": 80
}
}
],
"total": 150
}

Campos de resposta

campodescrição
result.customerIdentificador do cliente
result.skuSKU do produto
result.nameNome do produto
result.categoriesCategorias do produto
result.urlURL da página do produto
result.imageURL da imagem principal do produto
result.reviews.reviewCountQuantidade total de avaliações no período ou no histórico completo
result.reviews.aggregateRatingNota média geral das avaliações
result.reviews.publishedCountQuantidade de avaliações com status published
result.reviews.publishedAggregateRatingNota média das avaliações publicadas (null se não houver nenhuma publicada)
result.reviews.withPicturesQuantidade de avaliações com fotos
result.reviews.withVideoQuantidade de avaliações com vídeo
result.reviews.withTextQuantidade de avaliações com texto
totalTotal de produtos encontrados com os critérios de busca

Moderação de Avaliações

Permite aprovar ou reprovar uma avaliação.

PUT /{customer}/reviews/{id}/moderate

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
idID da avaliação a ser moderada

Parâmetros do corpo da requisição

ParâmetroDescrição
approvedValor booleano: true para aprovar, false para reprovar

Exemplo de corpo da requisição

{
"approved": true
}

Resposta

Esta API não gera um JSON de resposta. Um status 200 significa que a moderação foi registrada com sucesso.


Listar grupos de produtos

Obtém todos os grupos de produtos cadastrados.

GET /{customer}/products/groups/all

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros de query (opcionais)

ParâmetroDescrição
skipQuantidade de registros a serem omitidos (paginação)
limitQuantidade máxima de registros a serem retornados

Exemplo de resposta

{
"result": [
{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
},
{
"_id": "6284033fb0b7371985a42201",
"customer": "konfidency",
"name": "Camiseta Feminina",
"skus": ["CAM-F-ROSA", "CAM-F-BRANCA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42302",
"customer": "konfidency",
"sku": "CAM-F-ROSA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Feminino"],
"image": "https://example.com/camiseta-feminina-rosa.jpg",
"name": "Camiseta Feminina Rosa",
"url": "https://example.com/camiseta-feminina-rosa",
"variants": ["CAM-F-ROSA-P", "CAM-F-ROSA-M", "CAM-F-ROSA-G"]
},
{
"_id": "6284033fb0b7371985a42303",
"customer": "konfidency",
"sku": "CAM-F-BRANCA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Feminino"],
"image": "https://example.com/camiseta-feminina-branca.jpg",
"name": "Camiseta Feminina Branca",
"url": "https://example.com/camiseta-feminina-branca",
"variants": ["CAM-F-BRANCA-P", "CAM-F-BRANCA-M", "CAM-F-BRANCA-G"]
}
]
}
],
"total": 2
}

Campos de resposta

campodescrição
result._idID único do grupo
result.customerCliente ao qual o grupo pertence
result.nameNome do grupo de produtos
result.skusArray com os SKUs dos produtos do grupo
result.__vVersão do documento
result.productsArray com dados completos dos produtos do grupo
result.products._idID único do produto
result.products.skuSKU do produto
result.products.nameNome do produto
result.products.brandMarca do produto
result.products.categoriesCategorias do produto
result.products.imageURL da imagem principal do produto
result.products.urlURL da página do produto
result.products.variantsVariantes/SKUs filhos do produto
totalTotal de grupos cadastrados

Obter grupo de produtos

Obtém os detalhes de um grupo de produtos específico.

GET /{customer}/products/groups/{id}

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
idID do grupo de produtos

Exemplo de resposta

{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
}

Campos de resposta

campodescrição
_idID único do grupo
customerCliente ao qual o grupo pertence
nameNome do grupo de produtos
skusArray com os SKUs dos produtos do grupo
__vVersão do documento
productsArray com dados completos dos produtos do grupo
products._idID único do produto
products.skuSKU do produto
products.nameNome do produto
products.brandMarca do produto
products.categoriesCategorias do produto
products.imageURL da imagem principal do produto
products.urlURL da página do produto
products.variantsVariantes/SKUs filhos do produto (ex: tamanhos)

Criar grupo de produtos

Cria um novo grupo de produtos.

POST /{customer}/products/groups

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação

Parâmetros do corpo da requisição

ParâmetroDescrição
nameNome do grupo de produtos
skusArray com os SKUs dos produtos a serem agrupados

Exemplo de corpo da requisição

{
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"]
}

Exemplo de resposta

{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
}
]
}

Resposta de erro (409 - Conflito)

Caso algum SKU já pertença a outro grupo, a API retornará status 409 com os SKUs conflitantes:

{
"message": "Alguns SKUs já pertencem a outros grupos",
"conflictingSkus": ["CAM-M-AZUL"]
}

Campos de resposta

campodescrição
_idID único do grupo criado
customerCliente ao qual o grupo pertence
nameNome do grupo de produtos
skusArray com os SKUs dos produtos do grupo
__vVersão do documento
productsArray com dados completos dos produtos do grupo
products._idID único do produto
products.skuSKU do produto
products.nameNome do produto
products.brandMarca do produto
products.categoriesCategorias do produto
products.imageURL da imagem principal do produto
products.urlURL da página do produto
products.variantsVariantes/SKUs filhos do produto (ex: tamanhos)

Atualizar grupo de produtos

Atualiza um grupo de produtos existente.

PUT /{customer}/products/groups/{id}

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
idID do grupo de produtos a ser atualizado

Parâmetros do corpo da requisição

ParâmetroDescrição
nameNome do grupo de produtos
skusArray com os SKUs dos produtos a serem agrupados

Exemplo de corpo da requisição

{
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA", "CAM-M-VERDE"]
}

Exemplo de resposta

{
"_id": "6284033fb0b7371985a42200",
"customer": "konfidency",
"name": "Camiseta Masculina",
"skus": ["CAM-M-AZUL", "CAM-M-PRETA", "CAM-M-VERDE"],
"__v": 0,
"products": [
{
"_id": "6284033fb0b7371985a42300",
"customer": "konfidency",
"sku": "CAM-M-AZUL",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-azul.jpg",
"name": "Camiseta Masculina Azul",
"url": "https://example.com/camiseta-masculina-azul",
"variants": ["CAM-M-AZUL-P", "CAM-M-AZUL-M", "CAM-M-AZUL-G", "CAM-M-AZUL-GG"]
},
{
"_id": "6284033fb0b7371985a42301",
"customer": "konfidency",
"sku": "CAM-M-PRETA",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-preta.jpg",
"name": "Camiseta Masculina Preta",
"url": "https://example.com/camiseta-masculina-preta",
"variants": ["CAM-M-PRETA-P", "CAM-M-PRETA-M", "CAM-M-PRETA-G", "CAM-M-PRETA-GG"]
},
{
"_id": "6284033fb0b7371985a42305",
"customer": "konfidency",
"sku": "CAM-M-VERDE",
"brand": "Konfidency Store",
"categories": ["Roupas", "Camisetas", "Masculino"],
"image": "https://example.com/camiseta-masculina-verde.jpg",
"name": "Camiseta Masculina Verde",
"url": "https://example.com/camiseta-masculina-verde",
"variants": ["CAM-M-VERDE-P", "CAM-M-VERDE-M", "CAM-M-VERDE-G", "CAM-M-VERDE-GG"]
}
]
}

Resposta de erro (409 - Conflito)

Caso algum SKU já pertença a outro grupo, a API retornará status 409 com os SKUs conflitantes:

{
"message": "Alguns SKUs já pertencem a outros grupos",
"conflictingSkus": ["CAM-M-VERDE"]
}

Campos de resposta

campodescrição
_idID único do grupo
customerCliente ao qual o grupo pertence
nameNome atualizado do grupo de produtos
skusArray atualizado com os SKUs do grupo
__vVersão do documento
productsArray com dados completos dos produtos do grupo
products._idID único do produto
products.skuSKU do produto
products.nameNome do produto
products.brandMarca do produto
products.categoriesCategorias do produto
products.imageURL da imagem principal do produto
products.urlURL da página do produto
products.variantsVariantes/SKUs filhos do produto (ex: tamanhos)

Deletar grupo de produtos

Remove um grupo de produtos.

DELETE /{customer}/products/groups/{id}

Parâmetros de URL

ParâmetroDescrição
customerSeu Customer key — consulte Obtendo chaves de autenticação
idID do grupo de produtos a ser deletado

Resposta

Esta API não gera um JSON de resposta. Um status 200 significa que o grupo foi deletado com sucesso.