meeva
Docs

Webhooks

Receive real-time notifications when events occur in your Meeva account.

Real-time updates
HMAC verified
Automatic retries

Quick Setup

Meeva pushes JSON payloads to your endpoint via HTTP POST. Here's how to set up webhook handling in 3 easy steps.

1

Create an Endpoint

Set up an HTTP POST endpoint in your application to receive webhook events.

Endpoint Requirements:

  • Accept POST requests
  • Return 200 OK within 30 seconds
  • Use HTTPS in production (required)
  • Verify the meeva-signature header
const express = require('express');
const crypto = require('crypto');

const app = express();

// Use raw body for signature verification
app.post('/webhooks/meeva', 
  express.raw({ type: 'application/json' }), 
  (req, res) => {
    // 1. Get signature from headers
    const signature = req.headers['meeva-signature'];
    
    // 2. Verify signature (see Security docs)
    const isValid = verifySignature(req.body, signature);
    if (!isValid) {
      return res.status(401).send('Invalid signature');
    }
    
    // 3. Parse and handle the event
    const event = JSON.parse(req.body);
    console.log('Received event:', event.type);
    
    switch (event.type) {
      case 'booking.created':
        handleNewBooking(event.data);
        break;
      case 'booking.cancelled':
        handleCancellation(event.data);
        break;
    }
    
    // 4. Return 200 to acknowledge receipt
    res.status(200).send('OK');
  }
);
2

Register Your Endpoint URL

Add your webhook URL in the Meeva dashboard to start receiving events.

Dashboard Steps:

1Navigate to Settings → Webhooks
2Click Add Endpoint
3Enter your endpoint URL (e.g., https://yourapp.com/webhooks/meeva)
4Select the events you want to receive
5Copy your signing secret for signature verification
3

Test Your Webhook

Use the "Send Test Event" button in your dashboard to verify your endpoint is working correctly.

🎉 You're all set!
Once your webhook is verified, you'll receive real-time events for all selected event types. Check the Event Reference for a complete list of events.

Retry Policy

If your endpoint doesn't return 2xx within 30 seconds, Meeva will retry:

1 min

1st retry

5 min

2nd retry

30 min

3rd retry

After 3 failed attempts, the webhook is marked as failed. You can view failed webhooks and manually retry them from your dashboard.