Integrar

Saiba na hora quando o Pix é pago.

Cadastre a URL do seu servidor e receba o evento de pagamento, com assinatura para validar a origem, reenvio automático e um painel de entregas.

  • Evento transaction.paid
  • Até 5 tentativas
  • Assinatura HMAC

Em resumo

O que é
Webhooks são avisos que a Quibly Pay envia ao seu servidor quando um pagamento é confirmado (evento transaction.paid), com assinatura HMAC, até 5 tentativas de entrega e reenvio pelo painel.
Para quem é
Desenvolvedores e quem liga a Quibly Pay a um sistema próprio, CRM ou automação.
Quanto custa
Sem mensalidade: você paga só quando vende, R$ 1,00 por Pix pago e 4,99% da venda no cartão de crédito à vista.
Tela de webhooks no painel da Quibly Pay, com a lista de entregas e as opções de reenvio.
Histórico de webhooks no painel Quibly Pay. Dados de exemplo.

Como funciona

  1. Cadastre o webhook

    Em Desenvolvedor > Webhooks, informe a URL pública em HTTPS, escolha os eventos e defina um segredo.

  2. Receba o evento

    Quando um pagamento é confirmado, a Quibly Pay faz um POST na sua URL com o corpo do evento e cabeçalhos de segurança.

  3. Valide a origem

    Compare o segredo do cabeçalho ou, se preferir, confira a assinatura HMAC-SHA256 do corpo cru.

  4. Responda e acompanhe

    Responda com qualquer status 2xx. Se não houver resposta, a entrega é refeita, e você acompanha e reenvia pelo painel.

Veja no código

Corpo do evento transaction.paidjson
{
  "event": "transaction.paid",
  "transactionId": "TRANSACTION_ID",
  "externalRef": "PROVIDER_REFERENCE",
  "amount": 25,
  "netAmount": 24,
  "tax": 1,
  "status": "PAID",
  "type": "DEPOSIT",
  "confirmed_date": "2026-10-04 12:00:00"
}

Trecho da documentação (Payload). A tarifa do exemplo é ilustrativa, não uma promessa de preço.

Verificação da assinatura (Node.js)js
import { createHmac, timingSafeEqual } from 'node:crypto';
export function verifyQuibly(rawBody, timestamp, signature, secret) {
  // rawBody deve ser o Buffer original, sem usar JSON.stringify(parsedBody).
  if (!/^\d+$/.test(timestamp ?? '') || !/^sha256=[a-f0-9]{64}$/.test(signature ?? ''))
    return false;
  const seconds = Number(timestamp);
  if (!Number.isSafeInteger(seconds) || Math.abs(Date.now() / 1000 - seconds) > 300) return false;
  const expected = createHmac('sha256', secret)
    .update(timestamp + '.')
    .update(rawBody)
    .digest();
  const received = Buffer.from(signature.slice(7), 'hex');
  return received.length === expected.length && timingSafeEqual(expected, received);
}

Trecho da documentação (Verificação HMAC). Use o corpo cru da chamada e a chave de assinatura do webhook.

O que você tem

  • Evento de pagamento

    transaction.paid, com o identificador da transação, valor, valor líquido, tarifa, status e data de confirmação.

  • Assinatura HMAC-SHA256

    Cada webhook tem a própria chave de assinatura, revelada com o segundo fator e que pode ser trocada.

  • Segredo no cabeçalho

    O X-Quibly-Secret traz o segredo do webhook, só para o endereço cadastrado.

  • Até 5 tentativas

    Imediata e depois após 1, 5, 15 e 60 minutos. Cada entrega espera até 15 segundos pela sua resposta.

  • Identificador estável

    O X-Quibly-Event-Id é o mesmo em todas as tentativas, para você ignorar repetições.

  • Painel de entregas

    Veja cada entrega, busque, reenvie uma delas agora ou reenvie todas as que falharam.

  • Teste de envio

    Dispare um evento de teste para a sua URL antes de ligar tudo.

  • Aviso por cobrança

    Marque um webhook para as notificações por cobrança, usadas pelo urlnoty da API Pix.

Para quem é

  • Quem libera o pedido por código

    Receba o aviso de pagamento e libere o acesso, o produto ou a entrega.

  • Quem integra a API Pix

    Complemente a consulta de status com o aviso em tempo real.

  • Quem precisa de segurança na entrada

    Valide a origem pelo segredo ou pela assinatura antes de processar.

Perguntas frequentes

Quais eventos existem?

Hoje o evento de transação é transaction.paid, para depósitos e saques pagos. Não há eventos de estorno, chargeback ou Pix expirado.

Como valido que a chamada veio da Quibly Pay?

Compare o cabeçalho X-Quibly-Secret com o segredo do webhook ou, em outra origem, confira a assinatura HMAC-SHA256 do corpo cru com a chave de assinatura.

E se o meu servidor estiver fora do ar?

A Quibly Pay tenta até 5 vezes, com espera crescente. Depois disso, você pode reenviar a entrega pelo painel. Como pode haver repetição, ignore eventos com o mesmo X-Quibly-Event-Id.

Posso cadastrar vários webhooks?

Sim, até o limite de endpoints da sua conta. Cada webhook escolhe os eventos que recebe.

O webhook avisa vendas do ambiente de teste?

Os webhooks cadastrados recebem eventos de produção. No teste, o aviso vai para a URL informada na cobrança ou na credencial.

Comece grátis, sem mensalidade.

Crie a conta e configure o seu primeiro produto. Você só paga quando vende.