Entradas da base
Cria, lista, lê, altera e apaga os textos da base de conhecimento que o assistente de WhatsApp consulta.
A base de conhecimento é um conjunto de textos curtos (políticas, horários, respostas a dúvidas frequentes). O assistente de WhatsApp os consulta antes de responder o cliente. Estas rotas fazem o cadastro dessas entradas.
Listar entradas
Devolve as entradas da base, com filtros e paginação.
/api/v1/admin/whatsapp/kbAdminLista as entradas da base de conhecimento
Parâmetros de consulta
vendor_iduuidstatusstringactivedraftarchivedARDactive.searchstringlimitintegerpadrão: 50offsetintegerpadrão: 0Exemplo de requisição (Listar entradas)
curl "$BASE_URL/api/v1/admin/whatsapp/kb?status=active&limit=20" \
-H "Authorization: Bearer $TOKEN"Resposta (Listar entradas)
{
"entries": [
{
"id": "6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"title": "Política de troca",
"content_text": "Aceitamos troca em até 7 dias corridos após o recebimento, com a etiqueta original e sem sinais de uso.",
"embedding_model": "text-embedding-3-small",
"has_embedding": true,
"tags": [
"troca",
"pós-venda"
],
"status": "A",
"created_at": "2026-10-11T14:02:10.114233Z",
"updated_at": "2026-10-11T14:02:10.114233Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}Campos da resposta
entriesarrayEntradas da página.
iduuidvendor_iduuidtitlestringcontent_textstringembedding_modelstringhas_embeddingbooleantrue quando a entrada já tem índice de busca por significado.tagsarraystatusstringARDA (ativa), R (rascunho) ou D (arquivada). Na entrada você pode enviar a palavra ou a letra.created_atstringupdated_atstringtotalintegerlimitintegeroffsetintegerErros (Listar entradas)
| 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 knowledge base entries: ..."} |
Criar uma entrada
Cadastra um texto que o assistente pode usar para responder perguntas dos clientes (política de troca, horário, formas de pagamento). A plataforma tenta gerar o índice de busca por significado na hora; se não conseguir, a entrada é criada mesmo assim.
/api/v1/admin/whatsapp/kbAdminCria uma entrada na base de conhecimento
Corpo da requisição
titlestringobrigatóriocontent_textstringobrigatóriovendor_iduuidtagsarraystatusstringpadrão: activeactivedraftarchivedARDExemplo de requisição (Criar uma entrada)
curl -X POST "$BASE_URL/api/v1/admin/whatsapp/kb" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Política de troca",
"content_text": "Aceitamos troca em até 7 dias corridos após o recebimento, com a etiqueta original e sem sinais de uso.",
"tags": [
"troca",
"pós-venda"
]
}'Resposta (Criar uma entrada)
{
"id": "6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"title": "Política de troca",
"content_text": "Aceitamos troca em até 7 dias corridos após o recebimento, com a etiqueta original e sem sinais de uso.",
"embedding_model": "text-embedding-3-small",
"has_embedding": true,
"tags": [
"troca",
"pós-venda"
],
"status": "A",
"created_at": "2026-10-11T14:02:10.114233Z",
"updated_at": "2026-10-11T14:02:10.114233Z"
}Campos da resposta
iduuidvendor_iduuidtitlestringcontent_textstringembedding_modelstringhas_embeddingbooleantrue quando a entrada já tem índice de busca por significado.tagsarraystatusstringARDA (ativa), R (rascunho) ou D (arquivada). Na entrada você pode enviar a palavra ou a letra.created_atstringupdated_atstringErros (Criar uma entrada)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON, título ou texto vazio, ou estado inválido. | {"error":"whatsapp kb: title required"} ou {"error":"whatsapp kb: content_text required"} ou {"error":"whatsapp kb: invalid status \"x\""} |
| 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"} |
Ver uma entrada
Devolve uma entrada pelo id.
/api/v1/admin/whatsapp/kb/{id}AdminLê uma entrada da base de conhecimento
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Ver uma entrada)
curl "$BASE_URL/api/v1/admin/whatsapp/kb/6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07" \
-H "Authorization: Bearer $TOKEN"Resposta (Ver uma entrada)
{
"id": "6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"title": "Política de troca",
"content_text": "Aceitamos troca em até 7 dias corridos após o recebimento, com a etiqueta original e sem sinais de uso.",
"embedding_model": "text-embedding-3-small",
"has_embedding": true,
"tags": [
"troca",
"pós-venda"
],
"status": "A",
"created_at": "2026-10-11T14:02:10.114233Z",
"updated_at": "2026-10-11T14:02:10.114233Z"
}Campos da resposta
iduuidvendor_iduuidtitlestringcontent_textstringembedding_modelstringhas_embeddingbooleantrue quando a entrada já tem índice de busca por significado.tagsarraystatusstringARDA (ativa), R (rascunho) ou D (arquivada). Na entrada você pode enviar a palavra ou a letra.created_atstringupdated_atstringErros (Ver uma entrada)
| 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 | Entrada não encontrada. | {"error":"Knowledge base entry not found"} |
| 500 | O id não é um UUID válido (a plataforma devolve 500 em vez de 400). | {"error":"Failed to load knowledge base entry: whatsapp kb: get: pq: invalid input syntax for type uuid: \"xyz\" (22P02)"} |
Alterar uma entrada
Altera só os campos enviados. Quando o content_text muda, o índice de busca por significado é refeito.
/api/v1/admin/whatsapp/kb/{id}AdminAltera uma entrada da base de conhecimento
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
titlestringcontent_textstringtagsarray[] para limpar. Omita para manter.statusstringactivedraftarchivedARDExemplo de requisição (Alterar uma entrada)
curl -X PATCH "$BASE_URL/api/v1/admin/whatsapp/kb/6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "draft",
"tags": [
"troca",
"pós-venda"
]
}'Resposta (Alterar uma entrada)
{
"id": "6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07",
"vendor_id": "9d9d9d56-eb43-4719-889d-055632f7c7da",
"title": "Política de troca",
"content_text": "Aceitamos troca em até 7 dias corridos após o recebimento, com a etiqueta original e sem sinais de uso.",
"embedding_model": "text-embedding-3-small",
"has_embedding": true,
"tags": [
"troca",
"pós-venda"
],
"status": "R",
"created_at": "2026-10-11T14:02:10.114233Z",
"updated_at": "2026-10-11T14:02:10.114233Z"
}Campos da resposta
iduuidvendor_iduuidtitlestringcontent_textstringembedding_modelstringhas_embeddingbooleantrue quando a entrada já tem índice de busca por significado.tagsarraystatusstringARDA (ativa), R (rascunho) ou D (arquivada). Na entrada você pode enviar a palavra ou a letra.created_atstringupdated_atstringErros (Alterar uma entrada)
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON ou estado inválido. | {"error":"Invalid JSON body"} ou {"error":"whatsapp kb: invalid status \"x\""} |
| 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 | Entrada não encontrada. | {"error":"Knowledge base entry not found"} |
| 500 | O id não é um UUID válido (a plataforma devolve 500 em vez de 400). | {"error":"Failed to load knowledge base entry: whatsapp kb: get: pq: invalid input syntax for type uuid: \"xyz\" (22P02)"} |
Apagar uma entrada
Apaga a entrada: ela some das listagens e da busca. É uma remoção lógica, o registro não é destruído.
/api/v1/admin/whatsapp/kb/{id}AdminApaga uma entrada da base de conhecimento
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição (Apagar uma entrada)
curl -X DELETE "$BASE_URL/api/v1/admin/whatsapp/kb/6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07" \
-H "Authorization: Bearer $TOKEN"Resposta (Apagar uma entrada)
{
"status": "deleted",
"id": "6e1b7a54-0c3d-4f29-b8a6-2d9c5e4f1a07"
}Campos da resposta
statusstringdeleteddeleted.iduuidErros (Apagar uma entrada)
| 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 | Entrada não encontrada. | {"error":"Knowledge base entry not found"} |
| 500 | O id não é um UUID válido, ou falha ao apagar. | {"error":"Failed to delete entry: ..."} |