Correções de marca
Dicionário de grafias erradas e apelidos que o assistente corrige antes de buscar produtos.
Clientes escrevem "mengao", "camiza", "adidaz". O dicionário de correções liga cada grafia ao nome certo para a busca de produtos achar o que o cliente quer. Estas rotas mantêm o dicionário e testam o resultado. Além do privilégio comum, exigem manage_whatsapp.
Listar correções
Devolve o dicionário de correções da loja, com filtros e paginação.
/api/v1/admin/whatsapp/brand-correctionsAdminLista as correções de marca
Parâmetros de consulta
vendor_iduuidsourcestringmanualauto-learnedsearchstringlimitintegerpadrão: 50offsetintegerpadrão: 0Exemplo de requisição (Listar correções)
curl "$BASE_URL/api/v1/admin/whatsapp/brand-corrections?source=manual" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar correções)
{
"entries": [
{
"id": "2c8d4e7a-91b3-4a05-b6f2-7e3a9d1c5b48",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"misspelling": "mengao",
"canonical": "Flamengo",
"weight": 100,
"source": "manual",
"use_count": 0,
"created_at": "2026-10-11T14:20:00.000000Z",
"updated_at": "2026-10-11T14:20:00.000000Z"
}
],
"total": 1,
"limit": 50,
"offset": 0
}Campos da resposta
entriesarrayCorreções da página.
iduuidvendor_iduuidmisspellingstringcanonicalstringweightintegersourcestringmanualauto-learnedmanual (cadastrada por pessoa) ou auto-learned (aprendida pela plataforma).last_used_atstringuse_countintegercreated_atstringupdated_atstringtotalintegerlimitintegeroffsetintegerErros (Listar correções)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 500 | Falha ao consultar. | {"error":"Failed to list brand corrections: ..."} |
Criar ou atualizar uma correção
Ensina a plataforma que uma grafia (por exemplo mengao) significa um nome certo (Flamengo). Se a mesma grafia já existir para o mesmo seller, a correção existente é atualizada no lugar, sem erro.
/api/v1/admin/whatsapp/brand-correctionsAdminCria (ou atualiza) uma correção de marca
Corpo da requisição
misspellingstringobrigatóriocanonicalstringobrigatórioweightintegerpadrão: 100vendor_iduuidExemplo de requisição (Criar uma correção)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/brand-corrections" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"misspelling": "mengao",
"canonical": "Flamengo",
"weight": 100
}'Resposta (Criar uma correção)
{
"id": "2c8d4e7a-91b3-4a05-b6f2-7e3a9d1c5b48",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"misspelling": "mengao",
"canonical": "Flamengo",
"weight": 100,
"source": "manual",
"use_count": 0,
"created_at": "2026-10-11T14:20:00.000000Z",
"updated_at": "2026-10-11T14:20:00.000000Z"
}Campos da resposta
iduuidvendor_iduuidmisspellingstringcanonicalstringweightintegersourcestringmanualauto-learnedmanual (cadastrada por pessoa) ou auto-learned (aprendida pela plataforma).last_used_atstringuse_countintegercreated_atstringupdated_atstringErros (Criar uma correção)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, ou grafia ou nome vazios. | {"error":"whatsapp brand_correction: misspelling required"} ou {"error":"whatsapp brand_correction: canonical required"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
Alterar uma correção
Muda o nome correto e/ou o peso. A grafia errada não muda: para renomeá-la, apague e crie de novo.
/api/v1/admin/whatsapp/brand-corrections/{id}AdminAltera uma correção de marca
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
canonicalstringweightintegerExemplo de requisição (Alterar uma correção)
curl -X PATCH "$BASE_URL/api/v1/admin/whatsapp/brand-corrections/2c8d4e7a-91b3-4a05-b6f2-7e3a9d1c5b48" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"canonical": "Flamengo",
"weight": 150
}'Resposta (Alterar uma correção)
{
"status": "updated",
"id": "2c8d4e7a-91b3-4a05-b6f2-7e3a9d1c5b48"
}Campos da resposta
statusstringupdatedupdated.iduuidErros (Alterar uma correção)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, ou canonical vazio. | {"error":"whatsapp brand_correction: canonical cannot be empty"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 404 | Correção não encontrada. | {"error":"Brand correction not found"} |
Apagar uma correção
Remove a correção do dicionário (remoção lógica).
/api/v1/admin/whatsapp/brand-corrections/{id}AdminApaga uma correção de marca
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Apagar uma correção)
curl -X DELETE "$BASE_URL/api/v1/admin/whatsapp/brand-corrections/2c8d4e7a-91b3-4a05-b6f2-7e3a9d1c5b48" \
-H "Authorization: Bearer $TOKEN"Resposta (Apagar uma correção)
{
"status": "deleted",
"id": "2c8d4e7a-91b3-4a05-b6f2-7e3a9d1c5b48"
}Campos da resposta
statusstringdeleteddeleted.iduuidErros (Apagar uma correção)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |
| 404 | Correção não encontrada. | {"error":"Brand correction not found"} |
| 500 | O id não é um UUID válido, ou falha ao apagar. | {"error":"Failed to delete brand correction: ..."} |
Testar uma frase
Roda a busca de produtos do assistente com uma frase de cliente e mostra o que ela entendeu: a frase corrigida, a intenção e os produtos encontrados. Não envia nada a ninguém.
/api/v1/admin/whatsapp/brand-corrections/testAdminTesta a busca inteligente com uma frase
Corpo da requisição
textstringobrigatórioquero uma camiza do mengao.vendor_iduuidExemplo de requisição (Testar uma frase)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/brand-corrections/test" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "quero uma camiza do mengao"
}'Resposta (Testar uma frase)
{
"original_query": "quero uma camiza do mengao",
"corrected_query": "quero uma camiza do mengao",
"intent": {
"intent": "product_lookup",
"confidence": 0.95,
"brand": "Flamengo",
"category": "camisa",
"keywords": [
"camisa"
]
},
"products": [
{
"id": "22fbd12a-1b6e-41ea-a84f-4d9cf06c8766",
"name": "Camisa do Flamengo Masculina I 26",
"sku": "FLA-I-26",
"slug": "camisa-flamengo-masculina-i-26",
"price": 30000,
"list_price": 44990,
"quantity": 38,
"category_name": "Camisetas",
"image_url": "/uploads/produtos/flamengo-i-26.png"
}
],
"duration_ms": 794,
"search_intent_id": "8b5267f1-33c9-4fd2-a1f2-25f9104cf516"
}Campos da resposta
original_querystringcorrected_querystringcorrectionsarray{from, to}. Ausente quando nenhuma correção cadastrada casou.intentobjectO que o cliente quer.
intentstringproduct_lookupprice_quoteorder_statusgeneralunknownconfidencenumberbrandstringmodelstringcategorystringkeywordsarrayproductsarrayProdutos encontrados. Preços em centavos inteiros (30000 = R$ 300,00).
iduuidnamestringskustringslugstringpriceintegerlist_priceintegerquantityintegervendor_iduuidcategory_iduuidcategory_namestringimage_urlstringduration_msintegersearch_intent_iduuidErros (Testar uma frase)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON ou falha na busca. | {"error":"Invalid JSON body"} |
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O módulo WhatsApp Commerce está desligado na loja, o usuário não é administrador ou não tem o privilégio exigido. | {"error":"module_disabled","module":"whatsapp-commerce"} ou {"error":"insufficient privileges","required":"manage_settings"} ou {"error":"admin access required"} |