Documentação da API
A API do CRPRO Hub envia e recebe mensagens do WhatsApp Business Platform por número, com webhooks assinados, chaves de API escopadas e isolamento completo por organização.
O que dá para fazer
- Canais — cria, conecta e gerencia os números do WhatsApp da organização.
- Mensagens — envia mensagens e consulta o histórico de cada canal.
- Mídia — faz upload e baixa arquivos anexados a mensagens.
- Templates — cadastra e consulta os templates aprovados pela Meta.
- Webhooks — registra endpoints e testa a entrega de eventos.
- Chaves de API — cria, lista e revoga chaves
hub_pk_...escopadas. - Assinatura — consulta o plano contratado e os limites em vigor.
- Uso — consulta o consumo de mensagens e mídia do período.
- Logs — consulta o histórico de requisições e eventos da organização.
- Conexão pública — permite ao cliente final autorizar o próprio número, sem credencial do painel.
Como a API se comporta
Toda resposta de sucesso vem envelopada em {"data": ...}, e todo erro em {"error": {...}} — nunca os dois ao mesmo tempo, e nunca o recurso solto na raiz do corpo.
Toda resposta traz um header x-request-id, útil para correlacionar uma chamada com os logs da organização, e cache-control: no-store, porque nenhuma resposta desta API é segura para guardar em cache no seu lado.
O envio de mensagem responde 202: significa que a mensagem foi aceita e enfileirada para a Meta, não que já foi entregue. O estado final chega depois, pelo webhook e pelo histórico do canal.
Onde começar
- Quickstart — cria uma chave e envia a primeira mensagem, do zero.
- Autenticação — as três formas de se identificar: sessão, chave de API e token de canal.
O contrato em OpenAPI
O contrato desta API está publicado como OpenAPI 3.1, aberto e sem autenticação, em /openapi.json.
No Postman ou no Insomnia, importar por URL cria a coleção de uma vez, e o mesmo arquivo alimenta geradores de cliente, se você preferir uma biblioteca tipada. Quando o arquivo e a referência desta documentação divergirem, vale a referência.
Para o Postman há também uma coleção pronta, gerada do mesmo catálogo desta referência: uma pasta por recurso, a chave em {{apiKey}}, o canal em {{channelId}} e a Idempotency-Key já no envio. Ficam de fora só as rotas que exigem a sessão do painel. Para o n8n, o guia de n8n tem um fluxo de resposta automática para importar.