As integrações webook existem em diversas aplicações. Elas nada mais são que mensageiros que alertam o app, sistema ou ferramenta de que algo está acontecendo. Assim como as APIs, os webhooks permitem que diferentes sistemas se comuniquem entre si e compartilhem informações.
Por conta dessa característica, muitas pessoas costumam achar que APIs e webhooks têm o mesmo significado. Para você não cair no mesmo erro, neste artigo esclarecemos as diferenças entre eles. Além disso, explicamos o que são webhooks com mais detalhes e como criar um. Boa leitura!
O que é Webhook e qual sua importância para integração de sistemas?
Um webhook é um recurso que possibilita que um sistema, ferramenta ou aplicativo se comunique com outro sistema, ferramenta ou aplicativo e troque dados entre si. Essa troca ocorre em tempo real e sempre que um evento qualificado acontece.
Por exemplo, é possível automatizar sistemas de alerta nos quais o evento acionador é a loja virtual receber uma confirmação de pagamento sempre que um cliente concluir uma compra.
O termo surgiu em 2007 e foi criado por Jeff Lindsay, a partir de uma palavra usual na programação de computador: hook, que significa “gancho” em português.
Graças a essa tecnologia é que um usuário recebe notificações quando algo novo se passa em seu sistema. Por essa razão, webhooks são também conhecidos por “retorno de chamada web” (ou HTTP e, ainda, impulso API).
Os webhooks podem trazer vários benefícios, como informações em tempo real de que um evento ocorreu, sincronização dos dados e eficiência. À lista acrescentamos o fato de eles não utilizarem uma imensa quantidade de códigos complexos, o que torna a configuração mais rápida e simples.
Além disso, como eles normalmente utilizam HTTP, que já é um protocolo usado pela maioria dos sites, adicionar um webhook a um aplicativo não é algo que exija muito tempo e nem esforço.
Como funciona um Webhook? Exemplos e aplicações práticas
Um webhook reproduz automações pré-estabelecidas em sistemas ou ferramentas de chegadas. Sempre que ocorrer o gatilho que foi definido, a tecnologia notifica o usuário e executa a ação que foi também previamente programada.
Com relação aos dados, eles saem de um aplicativo X e vão para um aplicativo Y que os manipula. Vale destacar ainda que essa troca de informação acontece na web via um webhook URL.
Para melhor compreender, pense em um número de telefone. O aplicativo ou sistema receptor fornece o webhook URL, que seria como o número que o outro aplicativo ou sistema precisa ligar sempre que há um evento.
Também é importante entender que os dados fornecidos pelo webhook podem ter três formatos:
- JSON
- XML
- Dados de formulários (application / x-www-form-urlencoded ou multipart/form-data)
Para ficar mais claro, veja alguns exemplos reais de aplicação de webhook:
- Gateway de pagamento notificando lojas virtuais sobre um pagamento realizado;
- Uma campainha conectada configurada para piscar certas luzes dentro de uma casa enquanto toca;
- Notificação aos vendedores no chat quando um novo lead entra no funil.
Afinal, quando usar Webhooks?
Webhooks são especialmente úteis em casos como:
- Quando não se sabe exatamente quando os dados estarão disponíveis em outro sistema, evitando a necessidade de várias requisições API para checar as informações.
- Para minimizar chamadas excessivas à API, pois, ao invés de enviar múltiplas requisições para uma API em busca de dados, o webhook realiza apenas uma comunicação, economizando recursos e tempo, quando a informação necessária está disponível.
- Quando há necessidade de atualizações rápidas e quase em tempo real, como transações financeiras, onde a comunicação instantânea é crucial para a ação imediata do usuário.
- Quando não há uma API disponível ou ela não atende completamente as necessidades de integração.
Passo a passo: como criar um Webhook de forma eficiente
Para melhor ilustrar, mostraremos como criar webhook na Transfeera. Até o momento, só é possível ter uma URL inscrita por tipo de evento (campo object_types na API de registro de URLs de webhooks).
Todos os eventos são enviados através de uma requisição POST com o formato JSON no payload.
Seu endpoint precisa retornar um status code de sucesso na resposta, (2xx), assim, consideraremos como entregue. Caso contrário, tentamos entregar a notificação mais 2 vezes. Depois disso, não há mais tentativas de entregas da notificação deste evento.
Os eventos que podem ser criados são:
- Transfer: webhook contendo atualização de informações de uma transação de pagamento
- TransferRefund: webhook contendo atualização de informações sobre uma devolução de transação de pagamento
- CashIn: webhook contendo atualização de informações sobre um recebimento Pix
- CashInRefund: webhook contendo atualização de informações sobre uma devolução recebimento Pix
- PixKey: webhook contendo atualizações de status de chaves Pix
Para mais informações, consulte a documentação.
Como configurar Webhook em diferentes plataformas?
Configurar webhooks em diferentes plataformas varia de acordo com a interface e as opções específicas de cada serviço. Por exemplo, no WordPress é possível usar plugins como “WP Webhooks” para configurar webhooks personalizados. Veja os passos:
- Instale o plugin “WP Webhooks” em seu site WordPress.
- Vá para “Settings” (Configurações) e clique em “WP Webhooks”.
- Clique em “Add Webhook” para criar um novo webhook.
- Insira a URL de destino do webhook.
- Escolha os eventos a serem monitorados (como novos posts ou atualizações de usuário).
- Salve as configurações.
Já para enviar mensagens automáticas para canais do Slack, você pode configurar webhooks de entrada seguindo os passos:
- Acesse o site https://api.slack.com/apps.
- Crie um novo app em “Your Apps” (Seus aplicativos).
- Na seção “Features” (Recursos), ative “Incoming Webhooks”.
- Clique em “Add New Webhook to Workspace” (Adicionar novo webhook ao workspace).
- Selecione o canal de destino e clique em “Allow” (Permitir).
- Copie a URL gerada e use-a para enviar dados ao Slack.
Quais são as melhores práticas para implementar webhooks confiáveis?
As melhores práticas recomendadas para implementar webhooks confiáveis incluem:
- Ter uma validação dos dados recebidos para garantir que a proveniência seja de fonte esperada;
- Utilizar HTTPS para que os dados transitem com segurança;
- Validar a aplicação com testes no webhook e no sandbox de APIs;
- Manter o processamento de webhook no receptor eficiente para evitar timeouts e outros problemas;
- Verificar se o aplicativo, programa ou sistema está processando corretamente as informações dos eventos marcados no webhook. Eventos desnecessários devem ser desmarcados.
Adicionalmente, ao criar um webhook, leve em consideração fatores como:
- Segurança de dados: já que um webhook transmite dados de um ponto A ao B, é fundamental que esses mesmos dados sejam protegidos de invasores e hackers e que não se corrompam no caminho.
- Recebimento e armazenamento de dados: os webhooks devem ter um mecanismo de armazenamento de informações, o qual deve ser do tipo push. Também devem ter um mecanismo de recebimento de dados.
- Manipulação e escalabilidade: a tendência é que cada vez mais dados sejam agregados. Isso exige que webhooks sejam escaláveis, pois somente assim eles possibilitam a manipulação correta das informações.
Diferença entre Webhook e API: quando usar cada tecnologia
API é a sigla para Application Programming Interface que, em uma tradução para o português, significa “Interface de Programação de Aplicações”. Possui como objetivo permitir o intercâmbio de informações entre diferentes linguagens de programação e sistemas.
Assim como os webhooks, as APIs possibilitam a comunicação entre sistemas. No entanto, a diferença entre eles está na maneira pela qual recebem os dados. Explicando: para se manterem atualizadas, as APIs periodicamente necessitam extrair dados de um servidor e, para isso, é preciso haver uma solicitação.
Já com os webhooks não é assim que acontece. Para entender, eles são orientados a eventos (isto é, não dependem de uma solicitação). Além disso, são um endpoint HTTP, no qual o usuário recebe notificações em tempo real dos eventos que ocorrem em um servidor.
Ainda sobre as diferenças, entenda que uma API é o conjunto de regras e métodos com os quais podemos comunicar e usar esse serviço. Ou seja, é uma maneira de interagir com o webhook.
Em termos práticos, webhooks podem utilizar APIs do tipo REST, GraphQL, entre outras.
Como rastrear problemas em webhooks?
O principal ponto a se atentar é que, como os webhooks entregam dados para um aplicativo, ferramenta ou sistema, se houver algum erro nesses dados, eles poderão se perder. Além do mais, se o próprio app/ferramenta/sistema tiver erros, o webhook não trará as respostas esperadas.
Por essa razão, certifique-se sobre os dados e como o webhook reage às respostas que recebe.
Para rastrear os problemas em si, é importante manter registros detalhados de todas as notificações de webhook enviadas e recebidas, incluindo o código de resposta HTTP. Também faça o registro de erros, exceções ou problemas de processamento que possam ocorrer ao lidar com eles.
Vantagens e benefícios do uso de Webhooks
Uma das principais vantagens dos webhooks é a atualização de dados em tempo real, o que garante que o usuário seja notificado de maneira imediata sobre mudanças ou eventos importantes. O benefício disso se traduz na melhora na interação com o produto/sistema/serviço e no aumento da satisfação do cliente.
Essa característica faz com que os webhooks sejam especialmente indicados para sistemas de pagamentos, nos quais é necessário enviar alerta em tempo real a cada recebimento ou transferência de valores.
Outro benefício importante é a eliminação de comunicação desnecessária. Com os webhooks, a troca de dados só ocorre quando um evento relevante acontece. Além disso, eles podem ser usados para integrar diferentes plataformas que não possuem APIs compatíveis, facilitando a comunicação entre sistemas.
De uma perspectiva técnica, vale destacar que os webhooks são uma solução eficaz para sistemas em crescimento. O motivo é que eles podem ser facilmente escalados para suportar um aumento de volume de dados ou eventos.
Considerações de segurança ao lidar com webhooks
Como os webhooks utilizam uma URL fora do domínio SSL (ou seja, que é disponível publicamente), entre a mensagem enviada e a recebida não há criptografia. Isso explica a importância de garantir que a requisição venha de uma fonte segura e que o endpoint receba somente eventos legítimos.
Para isso, os tokens de autenticação são indicados, pois eles são verificados antes de processar o evento. Além disso, a autenticação básica, com login e senha, é igualmente essencial.
Falando ainda em autenticação como uma garantia a mais de segurança, o método mais popular usado em solicitações webhook é o código de autenticação de mensagem baseado em hash (HMAC). Nesse método, a origem e o destino dos dados compartilham a mesma chave secreta para assinar e validar solicitações de webhook.
Adicionalmente, como comentamos mais acima, para uma transmissão de dados segura, utilize o protocolo HTTPS.
Conclusão
Os webhooks são considerados ferramentas poderosas para o compartilhamento de informações. A Transfeera, uma fintech que fornece soluções de pagamentos para outras empresas, oferece o webhook para seus clientes.
Por exemplo, em uma transferência, o webhook é acionado assim que a ação é realizada. Ou seja, nossos clientes são notificados sempre que há uma entrada de dinheiro.
Sem uma webhook essa informação não aconteceria em tempo real. Seria necessário que alguém do financeiro consultasse o sistema da Transfeera para verificar quais foram os recebimentos e se uma determinada transferência já foi executada.
No entanto, com a webhook o cliente cadastra uma url na Transfeera e o sistema, por sua vez, manda uma mensagem para essa mesma url. Desse modo, o cliente ganha:
- Mais facilidade para fazer a conciliação;
- Mais agilidade no envio das informações;
- Mais rapidez nos processos que se seguem aos pagamentos de clientes, fornecedores etc.
A integração da plataforma da Transfeera é feita por meio de uma API. Para explorar as possibilidades das nossas APIs e ver como funciona a criação de webhooks no nosso sistema, convidamos você a acessar o Sandbox e:
- Realizar testes em nosso ambiente para validar as integrações com o seu sistema;
- Simular transações de pagamentos, validar dados bancários;
- Gerar QR Codes Pix;
- E muito mais.