How Webhooks Work
- An event occurs in Rntor (booking created, customer updated, etc.)
- Rntor queues the event in the webhook outbox
- Svix delivers the payload to your endpoint
- Your app processes the event and responds with
200 OK
Delivery Infrastructure
Rntor uses Svix for reliable webhook delivery, providing:- Automatic retries with exponential backoff
- Signature verification for security
- Delivery logs for debugging
- Endpoint management through a self-service portal
Setting Up Webhooks
1. Access the Webhook Portal
Navigate to Settings → Developers → Webhooks in your Rntor dashboard. The Svix App Portal will load.2. Add an Endpoint
Click Add Endpoint and configure:| Field | Description |
|---|---|
| URL | Your HTTPS endpoint URL |
| Description | Optional description for this endpoint |
| Event Types | Which events to receive (or all) |
3. Select Events
Choose which events to subscribe to:Receiving Webhooks
Your endpoint receivesPOST requests with:
Headers
| Header | Description |
|---|---|
Content-Type | application/json |
svix-id | Unique message ID |
svix-timestamp | Unix timestamp of the delivery attempt |
svix-signature | Signature for verification |
Body
Responding to Webhooks
Your endpoint should:- Verify the signature (see Security)
- Process the event (update your database, trigger workflows)
- Respond with
200-299status code
Example Handler
Retry Policy
Failed deliveries are retried with exponential backoff:| Attempt | Delay |
|---|---|
| 1st retry | 5 seconds |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 8 hours |
| 6th retry | 1 day |
Testing Webhooks
Local Development
Use a tunneling service to expose your local server:ngrok
Test Events
The Svix portal allows you to send test events:- Go to your endpoint in the portal
- Click Send Test Event
- Select an event type
- Click Send
View Delivery Logs
Debug failed deliveries by viewing logs in the Svix portal:- Delivery timestamp
- Response status code
- Response body
- Retry attempts
Best Practices
Process asynchronously
Process asynchronously
Queue webhook events for background processing. Return
200 OK immediately, then process the event asynchronously to avoid timeouts.Handle duplicates
Handle duplicates
Webhooks may be delivered multiple times. Use the
event_id in _meta to deduplicate events you’ve already processed.Monitor endpoint health
Monitor endpoint health
Set up alerts for failed webhook deliveries. Check the Svix portal regularly for delivery issues.
Validate payloads
Validate payloads
Don’t trust webhook data blindly. Validate that referenced entities (bookings, customers) exist before processing.