Como funcionam
Os webhooks são enviados automaticamente via POST para as URLs que você configurar sempre que eventos relevantes ocorrem em sua conta. Isso elimina a necessidade de fazer polling constante na API.Vantagens
Tempo real
Receba notificações instantâneas sobre mudanças importantes
Confiabilidade
Sistema de retry automático para garantir entrega
Segurança
Verificação de assinatura HMAC-SHA256 para autenticidade
Flexibilidade
Configure diferentes endpoints para diferentes tipos de evento
Eventos disponíveis
Eventos de transação (PIX IN)
Eventos de transferência (PIX OUT)
Estrutura de payloads
Webhook de Transação (PIX IN)
Webhook de Transferência (PIX OUT)
Verificação de assinatura
Toda notificação que enviamos para o seu endpoint é assinada. Fazemos isso incluindo um header com o nomeQuantum-Pay-Signature em cada evento que enviamos. Isso permite verificar e garantir que o evento foi enviado pelo Quantum Pay e não por um terceiro.
Formato do Header Quantum-Pay-Signature
O headerQuantum-Pay-Signature contém um timestamp e uma ou mais assinaturas. O timestamp é prefixado por t= e cada assinatura é prefixada por um schema. Schemas começam com v seguido de um integer. Atualmente existe apenas um schema de assinatura que é o v1.
Exemplo do Header Quantum-Pay-Signature:
v1.
Como Validar a Assinatura
Passo 1: Extrair o timestamp e assinatura do Header
Faça um split no header usando o caractere, como separador para pegar a lista de elementos. Feito isso, faça outro split usando o caractere = como separador, para pegar o prefixo e o valor.
O valor obtido no prefixo t corresponde ao timestamp e o v1 corresponde à assinatura. Você pode descartar outros valores.
Passo 2: Preparar a string para comparar as assinaturas
Você deve concatenar essas informações:- O timestamp (como string)
- O caractere
. - O payload JSON raw (corpo da requisição, em formato de string)
signatureSecret recebido na hora da criação do webhook e use a string signed_payload como mensagem.
Passo 3: Comparar as assinaturas
Compare a assinatura enviada pelo Quantum Pay no header com a assinatura que você gerou no Passo 2.Exemplo Completo em Node.js
Exemplo Completo em Python
Exemplo Completo em PHP
⚠️ Importante sobre o Payload
Exemplo de Extração de Valores
Validação de Timestamp (Opcional)
Certificados mTLS para webhooks
Entendendo o padrão mTLS
Para garantir a segurança na comunicação, será necessário inserir a chave pública do Quantum Pay em seu servidor para que a comunicação obedeça o padrão mTLS. No domínio que representa seu servidor, você deverá configurar a exigência da chave pública (mTLS) que estamos disponibilizando, para que ocorra a autenticação mútua.Como funciona a validação
O Quantum Pay fará 2 requisições para seu domínio (servidor):- Primeira Requisição: Vamos certificar que seu servidor esteja exigindo uma chave pública do Quantum Pay. Para isso, enviaremos uma requisição sem certificado e seu servidor não deverá aceitar a requisição. Caso seu servidor responda com recusa, enviaremos a 2ª requisição.
- Segunda Requisição: Seu servidor, que deve conter a chave pública disponibilizada, deverá realizar o “Hand-Shake” para que a comunicação seja estabelecida.
Requisitos Técnicos
- Versão mínima do TLS: 1.2
- Resposta padrão: Configure uma rota ‘POST’ com uma resposta padrão como string “200”
- Certificado: Inclua nosso certificado de produção ou homologação em seu servidor
Certificados Disponíveis
Certificado de produção
URL:
http://api.quantumpay.com.br/caPara uso em ambiente de produçãoCertificado de homologação
URL:
http://api.quantumpay.com.br/caPara uso em ambiente de desenvolvimento/testeExemplo de Configuração do Servidor
Nginx
Apache
Instalação do Certificado
1. Baixar o Certificado
2. Instalar no Servidor
Servidores Dedicados
Skip-mTLS (Hospedagem Compartilhada)
Para hospedagem em servidores compartilhados, onde pode haver restrições para inserir certificados de outras entidades, disponibilizamos a opção skip-mTLS.Como funciona
- Permite cadastro de webhook sem validação mTLS
- Você fica responsável por validar nosso certificado
- Sempre enviamos o certificado nos webhooks
- Implementação de medidas de segurança adicionais é obrigatória
Medidas de Segurança Recomendadas
Verificação de IP
Verificação de IP
Restrinja a comunicação para aceitar apenas do IP da Quantum Pay:
Hash na URL
Hash na URL
Adicione um HMAC à URL para validação:Exemplo de URL:
O termo
ignorar= serve para tratar a adição automática de /pix no final da URL pelo sistema.Validação de Certificados (Skip-mTLS)
Teste de Configuração
Implementação recomendada
1. Endpoint Webhook Robusto
2. Processamento por Tipo de Evento
Sistema de retry
Se seu endpoint não responder com status 200, implementamos um sistema de retry automático:- 1ª tentativa: Imediatamente
- 2ª tentativa: Após 1 minuto
- 3ª tentativa: Após 5 minutos
- 4ª tentativa: Após 15 minutos
- 5ª tentativa: Após 1 hora
Monitoramento
Dashboard de Webhooks
No seu dashboard você pode:- Ver histórico de webhooks enviados
- Verificar status de entrega
- Reenviar webhooks falhados
- Visualizar logs detalhados
Logs Úteis
Solução de problemas
Problemas Comuns
Webhook não está sendo recebido
Webhook não está sendo recebido
- Verifique se a URL está acessível publicamente
- Confirme se está respondendo com status 200
- Teste com ferramentas como ngrok para desenvolvimento local
- Verifique se não há firewall bloqueando
Erro de verificação de assinatura
Erro de verificação de assinatura
- Confirme se está usando o
signatureSecretcorreto - Verifique se o payload não foi modificado
- Use o body raw da requisição para verificação
- Certifique-se de usar UTF-8 encoding
Webhooks duplicados
Webhooks duplicados
- Implemente processamento idempotente
- Use o
iddo evento para deduplicação - Armazene IDs processados em cache/banco
- Sempre responda 200 para eventos já processados
Suporte
Para configurar webhooks ou resolver problemas: Email: contato@quantumhubpay.comWhatsApp: +55 62 9631-7464
Documentação: Gerenciar Webhooks
Dica: Use ferramentas como webhook.site para testar e debuggar seus webhooks durante o desenvolvimento.