As três setas
Os três mecanismos se diferenciam por uma única variável: quem inicia a comunicação.
- REST API: você inicia. Seu backend pede dados e recebe uma resposta. Pergunta → resposta, e a conexão morre.
- Webhooks: a plataforma inicia. Quando ocorre um evento, seu endpoint recebe um POST com os dados. Você não pergunta: recebes um empurrão.
- WebSockets: você inicia uma vez e o canal fica aberto. Ambas as partes enviam a qualquer momento, sem abrir conexão por mensagem.
Todo o resto — latência, complexidade, escalonamento — é consequência dessa diferença. Agora sim, caso por caso.
REST: para consultar, gerenciar e conciliar
REST é o mecanismo natural para tudo o que não depende de algo acontecer no momento: relatórios de ponto por intervalo de datas, auditoria de acessos, gestão de usuários e credenciais, estado dos terminais. É fácil de depurar (um curl e pronto), tolerante a falhas (você tenta de novo e segue) e não exige nada especial na sua infraestrutura.
Na API Connect, a API REST é também a fonte da verdade: mesmo que você consuma eventos em tempo real, sua conciliação de folha de pagamento e seus relatórios oficiais devem se apoiar nos relatórios REST com paginação — assim você não depende de um mecanismo ao vivo não ter falhado num instante.
Webhooks: para reagir ao que acontece
Quando a lógica do seu SaaS precisa agir no momento — notificar a portaria, marcar o ponto ao vivo, disparar um alerta por acesso fora do horário — consultar em loop é desperdício de chamadas de API e latência desnecessária. O webhook inverte a seta: a plataforma faz POST do evento na URL que você configura.
A API Connect permite configurar a URL do webhook (com token opcional para autenticar a entrega) e envia um POST JSON para cada evento:
// Tu endpoint recibe el evento de la plataforma
app.post('/api-connect/eventos', (req, res) => {
// Verifica el token de entrega antes de procesar
if (req.headers.authorization !== `Bearer ${process.env.WEBHOOK_TOKEN}`) {
return res.sendStatus(403);
}
const evento = req.body;
// Ejemplo de payload de marcación:
// { "Event Type": "Punch", "Event Description": "Access granted – door opened",
// "Serial number": "SN...", "Pin": "1234", "Date": "2026-09-14", "Time": "14:30:25" }
console.log(evento["Pin"], evento["Date"], evento["Time"]);
res.sendStatus(200); // responde rápido; procesa después
});
Três regras de ouro para webhooks: responda 2xx rápido e processe de forma assíncrona; trate o payload como informação a validar (não confie em nada sem verificar); e lembre-se de que seu endpoint é público — autentique cada entrega com o token configurado.
WebSockets: para UI ao vivo, não para o seu backend
O websocket brilha num caso muito específico: interface de usuário que precisa de streaming de alta frequência — um painel de acessos ao vivo que atualiza ao mesmo tempo em 50 telas. O canal persistente evita o custo de abrir conexões por mensagem e permite enviar a todos os assinantes de uma vez.
Mas cuidado com a armadilha clássica: manter uma conexão WebSocket por usuário é uma responsabilidade operacional séria (reconexões, balanceamento, fan-out). Em integrações de hardware, o padrão saudável é: o webhook ou stream chega ao seu backend, e seu backend decide como enviá-lo aos navegadores com seu próprio mecanismo de tempo real (que muitos SaaS já têm).
A tabela de decisão
| O que você precisa | Mecanismo | Na API Connect |
|---|---|---|
| Relatórios de ponto, auditoria, conciliação | REST | Relatórios por serial com intervalo de datas e paginação |
| Gerenciar usuários, credenciais, terminais | REST | Endpoints por número de série |
| Notificar/alertar no momento do evento | Webhook | URL + token configuráveis; POST JSON por evento |
| Disparar fluxos de negócio (cron, fechamentos, alertas) | Webhook | O evento chega sem você consultar |
| Painel ao vivo para seus usuários | Webhook → seu tempo real | Seu backend recebe e distribui para suas UIs |
| Backend que já consome pub/sub | Stream | Assinatura por canal do terminal (punch_{SERIAL}) |
A arquitetura recomendada em uma frase
Webhook para o urgente, REST para a verdade, e seu próprio tempo real para as telas. Com essa combinação, um acesso concedido às 14:30:25 gera o alerta em segundos (webhook), a folha de pagamento do fim do mês concilia com o relatório oficial (REST) e o painel do supervisor se preenche ao vivo (seu canal de distribuição).
Perguntas frequentes
O que uso para mostrar marcações ao vivo?
Receba o evento via webhook no seu backend e envie-o aos seus usuários pelo seu próprio canal. A distribuição para navegadores faz parte do seu produto, não da API.
Preciso dos três ao mesmo tempo?
A combinação típica usa duas: webhook para reagir e REST para conciliar. WebSocket direto apenas se sua UI exigir streaming próprio de alta frequência.
E se meu servidor não responder a um webhook?
A API Connect registra a entrega falha e o evento fica disponível nos relatórios REST. A conciliação não perde registros mesmo que uma entrega falhe.
Teste os dois mecanismos hoje
Configure seu webhook, consuma os relatórios REST e valide o fluxo completo com o sandbox. 14 dias grátis, sem cartão.