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

WhatsApp Platform

Como a plataforma compartilha uma única conta da Meta entre todas as lojas, e o mapa das rotas de credenciais, números, webhook, rotas de callback e Flows globais.

A Venddor atende o WhatsApp no modelo de Tech Provider (provedor de tecnologia da Meta): a plataforma tem uma única conta empresarial do WhatsApp (WABA), com um token de acesso permanente, e cada loja conecta o seu próprio número dentro dessa conta. A loja nunca preenche token nem segredo da Meta; ela herda o que o operador da plataforma configurou aqui.

Esta seção reúne as rotas do operador da plataforma (credenciais, números, webhook, roteamento de mensagens recebidas e Flows globais) e as duas rotas públicas do storefront que alimentam o mini-shop de WhatsApp (botão flutuante e telas).

Só para o operador da plataforma

Todas as rotas /api/v1/admin/whatsapp-platform/... exigem um usuário com o papel root_admin da loja operadora e o privilégio manage_whatsapp_platform. Um administrador comum de loja, mesmo com todos os privilégios, recebe 403 {"error":"insufficient permissions"} (verificado no ambiente de desenvolvimento). Sem token o retorno é 401 {"error":"missing authorization header"}.

Pontos-chave
  • Credenciais, rotas e Flows globais ficam no banco mestre da plataforma, não no banco de uma loja. Valem para todas as lojas que ativaram o módulo WhatsApp Commerce.
  • O token de acesso e o segredo do app nunca voltam nas respostas (só os indicadores api_token_set e app_secret_set). Já o token de verificação do webhook e a chave mestra de rotas voltam em texto puro: trate a resposta como sensível.
  • Conectar um número é um fluxo de 3 passos: cadastrar, pedir o código (SMS ou voz) e verificar. O operador pode fazer isso em nome de qualquer loja.
  • Uma rota liga um número de WhatsApp ao destino que processa as mensagens recebidas. Mover um número de destino é decisão do operador.
  • Falhas da Meta (token inválido, número recusado) voltam como 500 com a mensagem original, ou como 503 quando falta configurar as credenciais da plataforma.

Como funciona

Credenciais da plataforma→Webhook assinado na Meta→Número cadastrado→Código verificado→Rota ativa→Mensagens chegam à loja
  1. Configure as credenciais
    Grave a URL da Cloud API, o token permanente, o id da WABA, o token de verificação do webhook e o segredo do app em Credenciais da plataforma.
  2. Confira a saúde e assine o webhook
    Use Saúde, números e webhook para ver se a Meta responde e para assinar o app nos webhooks da WABA.
  3. Conecte o número de uma loja
    Percorra os 3 passos de Conectar um número. Ao verificar o número, a plataforma tenta criar a rota de callback sozinha.
  4. Ajuste as rotas
    Se precisar mover um número para outro destino, ou cadastrar um número externo, use Rotas de callback.
  5. Publique Flows globais
    Monte Flows (formulários nativos do WhatsApp) uma vez e disponibilize a todas as lojas com Flows globais.

Estados que você vai encontrar

CampoValoresSignificado
code_verification_status (número)VERIFIED e outros devolvidos pela MetaVERIFIED quer dizer que o código foi aceito; o registro na Cloud API ainda é um passo separado
quality_rating (número)GREEN, YELLOW, RED ou vazioQualidade do número segundo a Meta; vazio quando o número ainda não enviou mensagens
status (cadastro do número)pending_verificationDevolvido ao cadastrar o número, até o código ser verificado
status (Flow)draft, publishedSó Flows published são usados pela IA de atendimento
active (rota)true, falseRota inativa não encaminha mensagens

Conceitos importantes

WABA, número e phone_number_id

WABA (WhatsApp Business Account) é a conta empresarial da Meta que agrupa os números. Cada número tem um phone_number_id (texto numérico da Meta, não é o telefone). O telefone legível é display_phone_number ou business_phone (formato +5511999998888).

Loja, seller e store_id

Nas rotas de conexão de número, store_id identifica a loja que vai ser dona do número. Aceita o UUID do tenant ou o storefront_id numérico. O número fica ligado a um seller (lojista) dessa loja; se você não informar vendor_id, a plataforma usa o seller mais antigo da loja.

Token e segredo

O token de acesso e o segredo do app ficam criptografados. Em PUT /config, campo vazio significa "manter o valor atual": dá para salvar o formulário sem reenviar o segredo.

Rotas de callback

Uma rota associa um telefone (somente dígitos, com DDI) a uma URL de destino e a um token de verificação. O destino especial platform significa "processar dentro da plataforma Venddor"; uma URL comum encaminha a mensagem para um sistema externo (por exemplo, uma loja antiga ainda não migrada). Cada rota tem sua própria api_key de 64 caracteres.

Flows

Um Flow é um formulário nativo do WhatsApp (telas com campos, listas e botões) descrito por um JSON no formato da Meta. A Venddor guarda o JSON, valida e publica na Meta. Flows globais ficam no banco mestre e valem para todas as lojas; uma loja pode ter um Flow próprio com a mesma flow_key, que prevalece sobre o global.

Endpoints

MétodoCaminhoPara que serveAuth
GET/api/v1/admin/whatsapp-platform/configLer as credenciais (segredos mascarados)admin (root)
PUT/api/v1/admin/whatsapp-platform/configGravar as credenciaisadmin (root)
GET/api/v1/admin/whatsapp-platform/healthSaúde da integraçãoadmin (root)
GET/api/v1/admin/whatsapp-platform/numbersNúmeros da WABAadmin (root)
GET/api/v1/admin/whatsapp-platform/webhookEstado do webhookadmin (root)
POST/api/v1/admin/whatsapp-platform/webhook/subscribeAssinar o app na WABAadmin (root)
POST/api/v1/admin/whatsapp-platform/setup/registerCadastrar o númeroadmin (root)
POST/api/v1/admin/whatsapp-platform/setup/request-codePedir o códigoadmin (root)
POST/api/v1/admin/whatsapp-platform/setup/verifyVerificar o códigoadmin (root)
GET/api/v1/admin/whatsapp-platform/setup/statusConsultar o númeroadmin (root)
GET/api/v1/admin/whatsapp-platform/routesListar rotasadmin (root)
POST/api/v1/admin/whatsapp-platform/routesCriar ou atualizar rotaadmin (root)
DELETE/api/v1/admin/whatsapp-platform/routes/{id}Apagar rotaadmin (root)
POST/api/v1/admin/whatsapp-platform/routes/{id}/toggleLigar ou desligar rotaadmin (root)
GET/api/v1/admin/whatsapp-platform/routes/configChave mestra e URL padrãoadmin (root)
PUT/api/v1/admin/whatsapp-platform/routes/configSalvar a URL padrãoadmin (root)
POST/api/v1/admin/whatsapp-platform/routes/master-key/regenerateGerar nova chave mestraadmin (root)
GET/api/v1/admin/whatsapp-platform/flowsListar Flows globaisadmin (root)
POST/api/v1/admin/whatsapp-platform/flowsCriar Flow globaladmin (root)
GET/api/v1/admin/whatsapp-platform/flows/{id}Consultar Flowadmin (root)
PUT/api/v1/admin/whatsapp-platform/flows/{id}Atualizar Flowadmin (root)
DELETE/api/v1/admin/whatsapp-platform/flows/{id}Apagar Flowadmin (root)
POST/api/v1/admin/whatsapp-platform/flows/{id}/publishPublicar na Metaadmin (root)
GET/api/v1/admin/whatsapp-platform/flows/{id}/previewPré-visualizaradmin (root)
POST/api/v1/admin/whatsapp-platform/flows/generateGerar Flow com IAadmin (root)
POST/api/v1/admin/whatsapp-platform/flows/decideTestar a escolha de Flowadmin (root)
GET/api/v1/storefront/whatsapp/settingsConfiguração pública do botãonenhuma
GET/api/v1/storefront/wa-page-layoutsTelas do mini-shopnenhuma

Erros comuns

  • Esperar 200 num erro de validação de número. Campos faltando no cadastro do número (phone_number, display_name) voltam como 500, não 400. Valide antes de chamar.
  • Chamar com o token de um administrador comum. Só root_admin passa; o retorno é 403 insufficient permissions.
  • Achar que o GET /routes/config só lê. Na primeira leitura ele gera e grava a chave mestra.
  • Salvar um Flow sem reenviar o status. O PUT do Flow volta o status para draft quando o campo vem vazio, mesmo que o Flow estivesse publicado.
  • Pedir o código de verificação várias vezes seguidas. Há espera mínima de 60 segundos entre pedidos do mesmo método, que dobra a cada bloqueio imposto pela Meta, até 15 minutos.
  • Usar um telefone estrangeiro nas rotas. O número ganha o prefixo 55 quando não começa com 55, então um telefone de outro país é gravado errado.

Próximos passos

Credenciais da plataforma
O primeiro passo: gravar token, WABA e segredo.
Conectar um número
Cadastro, código e verificação do número de uma loja.
Flows globais
Formulários nativos do WhatsApp para todas as lojas.
Anterior
Decisões em lote
Próxima
Credenciais da plataforma
Nesta página
  • Como funciona
  • Estados que você vai encontrar
  • Conceitos importantes
  • WABA, número e phonenumberid
  • Loja, seller e storeid
  • Token e segredo
  • Rotas de callback
  • Flows
  • Endpoints
  • Erros comuns
  • Próximos passos