Polling vs. Webhooks

Por que é melhor usar Webhooks?

Digamos que um cliente entra no seu site/aplicação e realiza uma compra. O seu serviço de compras irá receber uma requisição, que irá enviar para o serviço de pagamentos, que irá chamar um gateway de pagamento do Asaas, correto?

Depois disso você tem duas formas de receber informações do Asaas:

Fazer polling

Após ter criado uma cobrança, a sua aplicação faz várias requisições no Asaas para verificar o status do pagamento, até que o Asaas retorne que ela foi paga.

Porém esta prática tem pontos negativos. Fazer polling implica em usar recursos tanto do lado da sua aplicação como no lado do Asaas. Podendo inclusive fazer sua chave de API ser bloqueada por quota limit.

Webhooks

Basicamente é um “me avise de volta em determinada URL quando você tem atualizações nesta cobrança”. Quando o Asaas finalizar o processamento de um pagamento, você receberá em sua URL configurada o status do mesmo.

Dessa forma o paradigma mudou e o seu serviço de pagamento não precisa gastar recursos para verificar o status de uma cobrança.

Algumas dicas interessantes na hora de usar Webhooks:

  • Você deve desenvolver uma API do seu lado responsável por receber as requisições do Webhook;
  • É interessante que você crie regras no seu endpoint por razões de segurança. O Asaas possibilita que você defina uma authToken para cada Webhook, por exemplo;
  • Caso algum problema aconteça na comunicação com sua API a sua fila é interrompida e você recebe um e-mail de aviso.

Além da economia de recursos, os Webhooks são uma garantia de que sua aplicação receberá um evento sempre que algo mudar no gateway. O polling pode funcionar para verificar se uma cobrança foi paga, porém não te avisará em caso de atraso no pagamento de um boleto ou quando o pagamento de um cartão de crédito efetivamente caiu na sua conta.

A utilização de Webhooks é a forma mais prática e segura de manter sua aplicação atualizada sobre tudo que acontece no gateway do Asaas.