Skip to main content
Webhooks permitem que a Liquera notifique o seu servidor automaticamente quando um pagamento é recebido, um saque é concluído ou qualquer outro evento relevante ocorre — sem que você precise fazer polling na API.

Como funcionam

Quando um evento ocorre, a Liquera envia uma requisição POST para a URL que você cadastrou, com um payload JSON descrevendo o evento. Se o seu servidor não retornar 2xx dentro do timeout (5 segundos), a Liquera fará até 3 tentativas com backoff exponencial (1 min, 2 min, 4 min…) antes de marcar a entrega como falha.

Estrutura do payload

Todo evento entregue pelo webhook segue o mesmo envelope:

Verificação do secret

Cada requisição de webhook inclui dois headers de segurança: Para validar que a requisição veio da Liquera, compare o x-webhook-secret com o secret que você salvou ao criar o webhook.

Exemplo em Node.js

Nunca compare strings de secrets diretamente com ===. Use sempre crypto.timingSafeEqual() para evitar ataques de timing que exploram diferenças de tempo na comparação byte a byte.

Eventos disponíveis

Cobranças

Payload do charge.paid:
Payload do charge.refunded:

Saques

Payload do withdraw.completed:
Payload do withdraw.failed:

Chave PIX

Payload:

Infrações


Wildcards

Se você criar um webhook sem especificar eventos, ele receberá todos os eventos automaticamente. Útil para logging geral ou durante desenvolvimento.

Logs de entrega

Você pode consultar os logs das últimas 20 entregas de cada webhook via GET /v1/webhooks/merchant. Cada log inclui:
  • O payload enviado
  • O status HTTP retornado pelo seu servidor
  • O número de tentativas realizadas
  • Se a entrega foi bem-sucedida
Use os logs para debugar problemas de integração sem precisar do suporte.

Boas práticas

  • Retorne 200 rapidamente: Processe o evento de forma assíncrona e retorne 200 OK imediatamente. Operações lentas dentro do handler fazem o webhook atingir o timeout e ser reentregue.
  • Seja idempotente: É possível receber o mesmo evento mais de uma vez (retries). Use o deliveryId para evitar processamento duplicado — salve-o no banco antes de processar.
  • Valide sempre o secret: Nunca processe um evento sem verificar o header x-webhook-secret.
  • Monitore os logs: Consulte periodicamente os logs de entrega para garantir que todos os eventos estão sendo processados com sucesso.