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:

ColumnDescription
URLEndpoint URL
EventsNumber of subscribed events
StatusActive, disabled, or failing
Success RatePercentage of successful deliveries
Last DeliveryMost recent delivery attempt

Creating a Webhook

  1. Click Add Endpoint
  2. Enter your endpoint URL (must be HTTPS)
  3. Select which events to receive:
    • All events, or
    • Specific event types
  4. Optionally set a description
  5. 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:

CategoryEvents
Paymentspayment.succeeded, payment.failed, payment.refunded
Invoicesinvoice.created, invoice.paid, invoice.payment_failed
Subscriptionssubscription.created, subscription.renewed, subscription.canceled
Customerscustomer.created, customer.updated
Checkoutscheckout.completed, checkout.abandoned
Disputeschargeback.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:

AttemptDelay
1st retry1 minute
2nd retry5 minutes
3rd retry30 minutes
4th retry2 hours
5th retry24 hours

After all retries fail, the webhook is marked as failed. You can manually retry from the dashboard.

Testing Webhooks

  1. Open the webhook endpoint
  2. Click Send Test Event
  3. Select an event type to test
  4. Click Send
  5. 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:

  1. Open the webhook
  2. Toggle Enabled off
  3. Events are queued but not delivered
  4. Re-enable to resume deliveries

Deleting

Permanently remove a webhook:

  1. Open the webhook
  2. Click Delete
  3. Confirm deletion

Related