Por que usar webhooks?
Sem webhooks, sua aplicação teria que perguntar para a API a cada segundo se uma transação já foi confirmada. Isso é lento e ineficiente. Com webhooks, a Alpa avisa você imediatamente quando o pagamento é confirmado, entregando os dados do evento. Assim você pode atualizar o status de um pedido, liberar acesso a um produto, enviar e-mails de confirmação ou registrar movimentações financeiras — de forma automática.Ambientes (Desenvolvimento vs Produção)
Ambientes da Alpa
- Webhooks criados com chaves de Desenvolvimento recebem eventos simulados
- Webhooks criados com chaves de Produção recebem eventos reais
Formato do payload
Todos os eventos compartilham o mesmo envelope:type identifica o evento. O campo data carrega os dados do objeto afetado.
Exemplo: transaction.completed
Dados sensíveis: documentos (CPF/CNPJ) são mascarados nos payloads. Para cartão, apenas os últimos 4 dígitos e a bandeira são enviados.
Eventos suportados
Evento (type) | Quando é disparado |
|---|---|
transaction.created | Nova transação criada (status PENDING) |
transaction.updated | Status da transação alterado |
transaction.completed | Pagamento confirmado e saldo creditado (PAID) |
transaction.failed | Pagamento falhou (FAILED) |
transaction.refunded | Reembolso concluído |
payment_link.created | Novo link de pagamento criado |
payment_link.updated | Link de pagamento atualizado |
balance.updated | Saldo da carteira atualizado |
subscription.cancelled | Assinatura cancelada |
kyc.submitted / kyc.approved / kyc.rejected | Mudanças no status de KYC |
advance.created / advance.approved / advance.rejected | Antecipações |
withdrawal.requested / withdrawal.completed / withdrawal.failed | Saques |
Segurança: assinatura HMAC
Cada webhook enviado pela Alpa inclui uma assinatura no headerX-Webhook-Signature, gerada com HMAC-SHA256 sobre o corpo bruto da requisição e codificada em hexadecimal (prefixada por sha256=).
Seu backend deve recalcular a assinatura e comparar com a recebida usando comparação em tempo constante.
Usando um dos SDKs oficiais? Eles já trazem verifyWebhookSignature(payload, signature, secret) pronto.
Criando uma assinatura de webhook
Defina seu endpoint
Crie um endpoint HTTPS público que receberá as notificações.
Requisitos do endpoint
- Deve ser HTTPS (HTTP não é aceito)
- Deve responder 200 OK dentro de 10 segundos
- Deve aceitar requisições
POSTcom body JSON
Crie a assinatura via API
secret da assinatura apenas na criação — guarde-o com segurança.Boas práticas
Recomendações importantes
- Use HTTPS em todos os webhooks
- Valide a assinatura HMAC em cada requisição recebida
- Processe cada evento uma única vez (idempotência via campo
id) - Responda 200 OK somente após concluir o processamento
- Não valide o payload inteiro com schemas rígidos — novos campos podem ser adicionados sem aviso prévio
Precisa de ajuda?
Nossa equipe pode te ajudar. Contate-nos: suporte@usealpa.com

