BlendFi
Webhooks

Visão geral

Como a BlendFi te avisa que algo aconteceu. Modelo mental, eventos disponíveis, decisão webhook vs polling, padrão de produção.

Webhooks são como a BlendFi te avisa que algo aconteceu: um Pix chegou, um KYC foi aprovado, um depósito de USDT confirmou on-chain. São mais baratos, mais rápidos e mais confiáveis que polling.

Quando a BlendFi faz POST para você

Toda mudança de estado na superfície visível ao parceiro dispara exatamente um evento de webhook. Os tipos de evento se agrupam em:

  • Ciclo de vida da conversão (7 eventos): conversion.created, conversion.standby, conversion.completed, conversion.failed, conversion.expired, conversion.canceled, conversion.abandoned.
  • Transação (etapa de liquidação) (3 eventos): transaction.sending_pix, transaction.completed, transaction.failed. Opcional, visibilidade mais granular da liquidação.
  • KYC do cliente final (4 eventos): user.kyc_pending, user.kyc_approved, user.kyc_rejected, user.kyc_expired.

A lista completa com exemplos de payload está no catálogo de eventos.

Webhooks vs polling

Polling é OK para reconciliação ocasional (GET /v1/conversions/:id é seguro contra rate limit dentro de limites razoáveis). Webhooks são a escolha certa quando:

  • Você precisa reagir em segundos, não em minutos (ex.: mostrar ao cliente final "pagamento recebido" no momento em que o Pix liquida).
  • Você está lidando com mais que um punhado de conversões por dia (custo do polling cresce linearmente).
  • Você tem um endpoint HTTPS sob seu controle.

Você não precisa escolher. A maioria das integrações em produção assina webhooks para reações rápidas e usa polling apenas como rede de segurança de reconciliação (cron diário que busca "qualquer conversão ainda em andamento" e valida contra o estado local).

O padrão de produção

Checklist para uma integração de parceiro pronta para produção:

  1. Endpoint HTTPS registrado via POST /v1/webhook_endpoints. Veja Gerenciamento de endpoints.
  2. Verificação de assinatura em toda entrega: HMAC-SHA256 sobre {t}.{raw_body}, comparação em tempo constante, janela de replay de 300 segundos. Veja Verificação de assinatura.
  3. Processamento idempotente: descarte duplicatas pelo X-Blendfi-Event-Id.
  4. Resposta rápida: retorne 2xx em menos de 500 ms; faça o trabalho real de forma assíncrona.
  5. Plano concreto de retentativas: aceite retentativas graciosamente; um 5xx do seu endpoint dispara nova tentativa em cerca de 30 segundos. Veja Retentativas e replay.
  6. Escopo de assinatura: assine apenas os eventos que você processa. Eventos novos são adicionados de forma aditiva; assinar todos não quebra quando novos chegam, mas minimiza ruído.
  7. Procedimento de rotação de segredo: rotacione via POST /v1/webhook_endpoints/{id}/rotate_secret antes de qualquer susto de comprometimento. Veja Gerenciamento de endpoints.
  8. Acesso ao histórico de entregas: GET /v1/webhook_endpoints/{id}/deliveries. Útil para diagnóstico: "a BlendFi tentou nos alcançar nesse horário?"
  9. Reentrega manual: POST /v1/webhook_deliveries/{id}/redeliver para reprocessar um evento específico depois de uma correção.
  10. Fluxo de teste local: acione endpoints test_helpers no sandbox para exercitar o ciclo de vida sem esperar pagamentos reais. Veja Testes no sandbox.

Não pule a verificação de assinatura

Um receptor de webhook não autenticado expõe uma superfície de execução remota de código (RCE) pela rede pública. Verifique assinaturas em todo request, falhe fechado e logue falhas de assinatura para detectar tentativas de ataque cedo.

Páginas desta seção

Nesta página