- Customer pays in the provider’s UI: Stripe Embedded Checkout, or the Razorpay checkout modal or payment link
- The provider processes the payment
- The provider sends a signed webhook to Nozle. Stripe sends
payment_intent.succeeded,payment_intent.payment_failedorpayment_intent.canceled. Razorpay sendspayment.authorized,payment.captured,payment.failed,order.paidorpayment_link.paid. For a Razorpay order, your backend also calls verify with the handler’s signature - Nozle updates invoice payment status
- If the invoice belongs to a payment-gated plan checkout, Nozle activates or cancels the incomplete subscription
- Automatic dunning: configurable retry schedule. It is part of the Growth, Scale and Enterprise Nozle plans. The hourly run creates a payment request for each overdue invoice of a customer with a campaign, on the campaign’s schedule: it retries the payment with the customer’s payment provider, or emails the customer the payment link when there is none. A customer or billing entity can use only a dunning campaign of your own organization. For a customer who pays through Razorpay the payment link goes out by email, so the billing entity needs an email: without one, the payment request is refused with
billing_entity_email_missinginstead of being created for nobody. - Manual dunning: manually trigger retry