Processes normalized webhook events from payment providers.
This module handles the business logic for webhook events after they've been verified and normalized by the provider modules. It ensures:
- Idempotency: Events are tracked by event_id to prevent double-processing
- Error handling: Failed events are logged with retry counts
- Business logic: Invoices are marked paid, receipts generated, etc.
Event Types
checkout.completed- Checkout session completed (payment succeeded)checkout.expired- Checkout session expiredpayment.succeeded- Direct payment succeeded (for saved cards)payment.failed- Payment failedrefund.created- Refund was processedsetup.completed- Setup session completed (card saved)
Usage
# Called by BillingWebhookController
WebhookProcessor.process(normalized_event)
Summary
Functions
Processes a normalized webhook event.