API de WhatsApp para software house e SaaS
Você está embutindo WhatsApp num produto que outras empresas usam. O problema não é enviar mensagem — é conectar dezenas de números que não são seus, isolar um cliente do outro e não virar o intermediário financeiro da Meta.
O problema que não é enviar mensagem
Enviar uma mensagem pela Cloud API é uma requisição HTTP. Qualquer pessoa resolve isso numa tarde. O que consome trimestre é o resto:
- Conectar o número de cada cliente sem que ele precise entender a Meta.
- Garantir que o cliente A nunca alcance o canal do cliente B, nem por engano, nem por id adivinhado.
- Receber eventos com assinatura verificável, retentativa e replay — porque o seu endpoint vai cair um dia.
- Não ficar no meio da conta da Meta, que é por mensagem e varia com o volume que o seu cliente faz, não com o que você cobra dele.
- Ter registro auditável de quem fez o quê em qual número, quando um cliente perguntar.
Multitenancy que não foi improvisada
Organização é a unidade de isolamento, não um campo tenant_id filtrado na consulta. Chaves de API são escopadas por organização e por permissão, com papéis de owner a viewer. Um recurso de outra organização responde 404, e não 403 — a diferença não é estética: 403 confirmaria que o recurso existe.
Cada canal tem um token próprio (hub_ch_...) que autentica envio só por aquele canal. É a credencial certa para entregar a um serviço seu que cuida de um cliente só, sem dar a ele a chave da organização inteira.
O cliente conecta sozinho
Você chama POST /api/v1/channels/{id}/connect-link, recebe uma URL e a entrega ao cliente — por e-mail, dentro do seu produto, onde fizer sentido. Ele abre, percorre o Embedded Signup da Meta e autoriza o próprio número. Não precisa de conta no Hub, não vê o seu painel e não sabe que o Hub existe, se você não quiser.
Quem paga o quê
| Quem cobra | De quem | Pelo quê |
|---|---|---|
| Meta | Do seu cliente final | Cada mensagem entregue, na conta dele |
| CRPRO Hub | De você | Assinatura mensal por pacote de números |
| Você | Do seu cliente | O que o seu produto vale — sem repassar mensagem |
Esse desenho tira você de uma operação que não é o seu produto: medir consumo de mensagem por cliente, adiantar custo e cobrar depois. Por que ele é assim, e o que muda quando não é, está em Tech Provider ou BSP.
O que você integra
- Envio com
Idempotency-Keyobrigatório — retentativa depois de timeout não duplica mensagem. - Webhooks assinados com HMAC SHA-256, com retentativa, pausa automática e replay de entrega perdida.
- Contrato OpenAPI 3.1 em /openapi.json, que gera cliente tipado e coleção do Postman.
- Log de auditoria por organização, com
x-request-idem toda resposta para correlacionar.
Perguntas frequentes
Dá para conectar o WhatsApp de vários clientes na mesma conta?
Sim — é para isso que o produto existe. Cada cliente é uma organização, com chaves de API escopadas, webhooks próprios e isolamento completo. Pedir um recurso de outra organização responde 404, não 403: a API não confirma nem que o recurso existe.
Quem é o dono da conta do WhatsApp: eu ou o meu cliente?
O seu cliente. A conta WhatsApp Business, o número, os templates e o histórico de qualidade são dele, e a Meta cobra as mensagens diretamente dele. Você não entra nessa cobrança, o que significa que não precisa medir, ratear nem repassar custo de mensagem.
O meu cliente precisa acessar o painel do Hub?
Não. Você gera um link de conexão e envia para ele. Ele autoriza o próprio número pelo Embedded Signup da Meta, sem credencial do painel e sem ver a sua operação. Você recebe a chave e o webhook do lado de cá.
Como faço para o meu produto escalar sem virar operação manual?
Tudo que o painel faz tem endpoint: criar canal, gerar link de conexão, registrar webhook, criar chave escopada, consultar uso e ler o log de auditoria. O painel é conveniência, não o caminho obrigatório.
E se eu quiser sair do CRPRO Hub depois?
A conta WhatsApp Business é do seu cliente, então ela não vai embora com o Hub. O número, os templates e o histórico de qualidade continuam com ele. Isso é uma consequência do modelo Tech Provider, não uma política nossa.