VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/WhatsApp Commerce: fluxos e experiência

Funcionalidades

Lista e liga ou desliga as funcionalidades do atendimento do seller, e aplica um modelo pronto como conjunto de interruptores.

Uma funcionalidade (capability, ou pack no campo pack) é um recurso do atendimento no WhatsApp que o seller pode ligar ou desligar: a base de conhecimento, a busca por foto, o atacado, as ligações de voz. As funcionalidades mudam os menus do painel e o que o assistente automático oferece ao cliente. Elas não alteram o desenho do fluxo.

Por padrão tudo vem ligado. Desligar é que gera um registro. As funcionalidades de base (core) estão sempre ligadas e não podem ser desligadas.

packNomeBaseDepende de
coreAtendimento basesim
catalogCatálogo e buscasim
cartCarrinho e checkoutsimcatalog
ordersPedidossim
kbBase de conhecimento (FAQ)não
aiAtendimento com IAsim
visual_searchBusca por fotonãocatalog
b2bAtacado e B2Bnão
multi_vendorMulti-vendedornão
walletCarteira e cashbacknão
wishlistLista de desejosnão
rfqCotação e ofertasnão
callsLigações (voz)não

Listar as funcionalidades

GET/api/v1/vendor/whatsapp/capabilitiesSeller

Lista as funcionalidades e o estado de cada uma para o seller

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/vendor/whatsapp/capabilities" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Funcionalidades do seller
json
{
  "capabilities": [
    {
      "pack": "kb",
      "name": "Base de Conhecimento (FAQ)",
      "description": "O bot responde dúvidas comuns da loja usando a sua base de conhecimento.",
      "icon": "BookOpen",
      "core": false,
      "enabled": true
    },
    {
      "pack": "visual_search",
      "name": "Busca por foto",
      "description": "O cliente manda uma foto e o bot acha o produto parecido no seu catálogo (precisa do Catálogo).",
      "icon": "Image",
      "depends_on": "catalog",
      "core": false,
      "enabled": false
    }
  ]
}

Campos da resposta

capabilitiesarray
As 13 funcionalidades, na ordem de exibição. O exemplo mostra duas.
capabilities[].packstring
Identificador, usado na rota de alteração.
capabilities[].namestring
Nome para exibir, em português.
capabilities[].descriptionstring
O que a funcionalidade faz, em português.
capabilities[].iconstring
Sugestão de ícone (nome de ícone da biblioteca Lucide).
capabilities[].depends_onstring
Funcionalidade de que esta depende. Ausente quando não depende de nenhuma.
capabilities[].coreboolean
true para as de base, que ficam sempre ligadas.
capabilities[].enabledboolean
Estado atual para este seller. Sempre true nas de base.

Erros

StatusQuandoCorpo
401Sem token{"error":"authentication required"}
403Token que não é de seller; módulo desligado; sem privilégioveja Fluxo
404Usuário sem cadastro de seller{"error":"vendor profile not found","code":"vendor_profile_not_found"}
500Falha ao ler{"error":"failed to load capabilities"}

Ligar ou desligar uma funcionalidade

PUT/api/v1/vendor/whatsapp/capabilities/{pack}Seller

Liga ou desliga uma funcionalidade do seller

Parâmetros de caminho

packstringobrigatório
Identificador da funcionalidade (capabilities[].pack).

Corpo da requisição

enabledbooleanobrigatório
true liga, false desliga.

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/vendor/whatsapp/capabilities/visual_search" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": false
}'

Resposta

200Funcionalidade atualizada
json
{ "success": true, "pack": "visual_search", "enabled": false }

Campos da resposta

successboolean
Sempre true quando a chamada não falhou.
packstring
O pack da URL, como enviado.
enabledboolean
O valor que você enviou, não o estado final.

Erros

StatusQuandoCorpo
401 / 403Autenticação, módulo ou privilégioveja Fluxo
404Usuário sem cadastro de seller{"error":"vendor profile not found","code":"vendor_profile_not_found"}
500Falha ao gravar{"error":"failed to update"}
Corpo ausente desliga a funcionalidade

Se o corpo vier vazio, sem enabled ou com JSON inválido, o servidor trata como enabled: false e desliga a funcionalidade, respondendo 200. Além disso, um pack desconhecido ou de base responde 200 success sem alterar nada, e o enabled devolvido é o enviado. Para saber o estado real, releia a lista.

Aplicar um modelo como conjunto

POST/api/v1/vendor/whatsapp/capabilities/presetSeller

Liga as funcionalidades de um modelo pronto e desliga as demais

Atalho para configurar vários interruptores de uma vez a partir de um modelo da lista de Modelos prontos. Liga as funcionalidades que o modelo usa e desliga todas as outras que não são de base. Não instala nem troca nenhum fluxo.

Corpo da requisição

slugstringobrigatório
Identificador do modelo (por exemplo universal.b2b).

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/vendor/whatsapp/capabilities/preset" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "slug": "universal.b2b"
}'

Resposta

200Conjunto aplicado
json
{
  "capabilities": [
    { "pack": "kb", "name": "Base de Conhecimento (FAQ)", "core": false, "enabled": true },
    { "pack": "b2b", "name": "Atacado / B2B", "core": false, "enabled": true },
    { "pack": "wallet", "name": "Carteira / Cashback", "core": false, "enabled": false }
  ],
  "applied": "universal.b2b"
}

Campos da resposta

capabilitiesarray
A lista completa, no formato da listagem, já com o novo estado. O exemplo está abreviado.
appliedstring
O modelo aplicado.

Erros

StatusQuandoCorpo
400Falta slug ou o corpo é inválido{"error":"slug obrigatório"}
400Modelo inexistente{"error":"playbook não encontrado: x"}
401 / 403Autenticação, módulo ou privilégioveja Fluxo
Desliga o que você tinha ligado

O conjunto é aplicado por inteiro: o que o modelo não usa é desligado, mesmo que o seller tivesse ligado antes. Guarde o estado anterior com GET se quiser poder desfazer.

Veja também

  • Modelos prontos
  • Fluxo
Anterior
Modelos prontos
Próxima
Fluxos nativos da Meta
Nesta página
  • Listar as funcionalidades
  • Exemplo de requisição
  • Resposta
  • Erros
  • Ligar ou desligar uma funcionalidade
  • Exemplo de requisição
  • Resposta
  • Erros
  • Aplicar um modelo como conjunto
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também