Webhooks

🎣 Configuração de Webhooks

Endpoints de Webhook

POST /webhooks/stripe
POST /webhooks/paypal  
POST /webhooks/mercadopago

Configuração no Dashboard

  1. Acesse o painel administrativo

  2. Vá para "Configurações" > "Webhooks"

  3. Adicione a URL: https://api.paymentgateway.com/webhooks/{provider}

  4. Configure os eventos desejados

📡 Eventos Suportados

Stripe

Evento
Descrição

payment_intent.succeeded

Pagamento bem-sucedido

payment_intent.payment_failed

Pagamento falhou

charge.dispute.created

Chargeback criado

invoice.payment_succeeded

Fatura paga

PayPal

Evento
Descrição

PAYMENT.CAPTURE.COMPLETED

Pagamento capturado

PAYMENT.CAPTURE.DENIED

Pagamento negado

BILLING.SUBSCRIPTION.ACTIVATED

Assinatura ativada

MercadoPago

Evento
Descrição

payment

Status de pagamento alterado

plan

Plano de assinatura alterado

subscription

Assinatura alterada

🔐 Validação de Assinatura

Stripe

PayPal

MercadoPago

📝 Estrutura de Payload

Formato Padronizado

Exemplo Stripe

🔄 Retry Logic

Política de Retry

  • Tentativas: 5 tentativas máximas

  • Backoff: Exponencial (1s, 2s, 4s, 8s, 16s)

  • Timeout: 30 segundos por tentativa

Status de Webhook

Status
Descrição

pending

Aguardando processamento

processing

Em processamento

processed

Processado com sucesso

failed

Falha no processamento

ignored

Ignorado (evento não suportado)

📊 Monitoramento

Logs de Webhook

Métricas

  • Taxa de sucesso por provedor

  • Tempo médio de processamento

  • Número de retries por evento

  • Eventos mais frequentes

🧪 Testes de Webhook

Webhook de Teste

Simulação de Eventos

Use as ferramentas de cada provedor:

  • Stripe: Stripe CLI stripe listen --forward-to localhost:3000/webhooks/stripe

  • PayPal: PayPal Developer Dashboard > Webhooks Simulator

  • MercadoPago: MercadoPago Developer Tools

⚠️ Troubleshooting

Problemas Comuns

  1. Signature Validation Failed

    • Verificar secret do webhook

    • Confirmar que está usando raw body

    • Validar timezone/timestamp

  2. Webhook Not Received

    • Verificar firewall/proxy

    • Confirmar URL está acessível publicamente

    • Verificar logs do provedor

  3. Duplicate Processing

    • Implementar idempotência

    • Verificar se webhook está configurado múltiplas vezes


Documentação atualizada: December 2024

Last updated

Was this helpful?