- You connect a Stripe account to a Nozle organization.
- Nozle registers a Stripe webhook endpoint for that Stripe account.
- Stripe sends payment events to your public Nozle API URL.
- Nozle verifies the
Stripe-Signatureheader using the webhook secret returned by Stripe. It subscribes to the eight events below only, and it does not de-duplicate Stripe events by event ID: replays are safe because handlers act on the current state. - Nozle updates invoice payment status and resolves any payment-gated subscription activation.
Setup:
Nozle registers the Stripe webhook automatically in a background job right after you connect Stripe. The target is:
payment_provider.error webhook with Stripe’s message. Check your Stripe dashboard for the endpoint to confirm registration. See the Stripe integration for the events, recovery and limits.
Razorpay
Nozle does not register the Razorpay webhook. You add it in the Razorpay dashboard, with the webhook secret you entered on the Nozle connection. The target is the Webhook URL shown on the connection:X-Razorpay-Signature header, an HMAC-SHA256 of the raw request body with the webhook secret, and de-duplicates on the X-Razorpay-Event-Id header. A valid request returns 200. A request returns 400 when the provider ID is unknown or not a UUID, the signature is not lowercase hexadecimal or does not match, the event ID is missing or longer than 255 bytes, the body is not valid JSON, or an event ID that Nozle already received arrives with a different body (webhook_event_payload_conflict).
See the Razorpay integration for setup and the checkout flow.