Webhooks Settings
Configure endpoints to receive real-time event notifications
Webhooks allow your systems to receive real-time notifications when events occur in RevKeen. Configure endpoints to sync data, trigger workflows, and keep your systems in sync.
Accessing Webhooks
Navigate to Settings → Webhooks to manage your endpoints.
Webhook Endpoints
View all configured webhooks with:
| Column | Description |
|---|---|
| URL | Endpoint URL |
| Events | Number of subscribed events |
| Status | Active, disabled, or failing |
| Success Rate | Percentage of successful deliveries |
| Last Delivery | Most recent delivery attempt |
Creating a Webhook
- Click Add Endpoint
- Enter your endpoint URL (must be HTTPS)
- Select which events to receive:
- All events, or
- Specific event types
- Optionally set a description
- Click Create Endpoint
RevKeen generates a unique signing secret for each endpoint. Use this to verify webhook authenticity.
Selecting Events
Choose which events trigger the webhook:
| Category | Events |
|---|---|
| Payments | payment.succeeded, payment.failed, payment.refunded |
| Invoices | invoice.created, invoice.paid, invoice.payment_failed |
| Subscriptions | subscription.created, subscription.renewed, subscription.canceled |
| Customers | customer.created, customer.updated |
| Checkouts | checkout.completed, checkout.abandoned |
| Disputes | chargeback.opened, chargeback.won, chargeback.lost |
Webhook Security
Verify webhooks using the signing secret:
import crypto from 'crypto';
function verifyWebhook(payload: string, signature: string, secret: string): boolean {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(`sha256=${expectedSignature}`)
);
}
// In your webhook handler
app.post('/webhooks/revkeen', (req, res) => {
const signature = req.headers['x-revkeen-signature'];
const isValid = verifyWebhook(
JSON.stringify(req.body),
signature,
process.env.WEBHOOK_SECRET
);
if (!isValid) {
return res.status(401).send('Invalid signature');
}
// Process the webhook
// ...
});Always verify webhook signatures to ensure requests are from RevKeen and haven't been tampered with.
Retry Behavior
If delivery fails, RevKeen retries with exponential backoff:
| Attempt | Delay |
|---|---|
| 1st retry | 1 minute |
| 2nd retry | 5 minutes |
| 3rd retry | 30 minutes |
| 4th retry | 2 hours |
| 5th retry | 24 hours |
After all retries fail, the webhook is marked as failed. You can manually retry from the dashboard.
Testing Webhooks
- Open the webhook endpoint
- Click Send Test Event
- Select an event type to test
- Click Send
- View the delivery result and response
Test events include sample data and won't affect your real data.
Viewing Delivery Logs
Click any webhook to view delivery history:
- Event type - What triggered the delivery
- Timestamp - When it was sent
- Status - Success (2xx) or failure
- Response code - HTTP status returned
- Response time - How long it took
- Request body - Payload that was sent
- Response body - What your endpoint returned
Managing Webhooks
Disabling
Temporarily stop deliveries without deleting:
- Open the webhook
- Toggle Enabled off
- Events are queued but not delivered
- Re-enable to resume deliveries
Deleting
Permanently remove a webhook:
- Open the webhook
- Click Delete
- Confirm deletion