Event Types

These are the webhook event types Happa delivers today. All payloads use the same top-level envelope: id, type, timestamp, and data.

Delivered events

Event Meaning
test.pingManual developer-portal connectivity test.
event.createdA public event was published.
rsvp.createdA user joined an event.
rsvp.cancelledA user left an event.
join_request.createdA join request was submitted.
join_request.approvedA join request was approved.
join_request.rejectedA join request was rejected.
ticket.soldA paid ticket purchase was confirmed.

test.ping

{
  "id": "evt_test_1749254400",
  "type": "test.ping",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "message": "This is a test webhook from Happa. Your plugin is connected correctly.",
    "pluginId": "plg_123"
  }
}

event.created

{
  "id": "evt_...",
  "type": "event.created",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "eventId": "abc123",
    "title": "Summer Block Party",
    "eventDate": "2026-08-15T18:00:00.000Z",
    "location": "123 Main St, Austin TX"
  }
}

rsvp.created

{
  "id": "evt_...",
  "type": "rsvp.created",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "eventId": "abc123",
    "eventTitle": "Summer Block Party",
    "userId": "user456",
    "joinMode": "open"
  }
}

rsvp.cancelled

{
  "id": "evt_...",
  "type": "rsvp.cancelled",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "eventId": "abc123",
    "eventTitle": "Summer Block Party",
    "userId": "user456"
  }
}

join_request.created

{
  "id": "evt_...",
  "type": "join_request.created",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "requestId": "req789",
    "eventId": "abc123",
    "eventTitle": "Exclusive Networking Dinner",
    "organizerId": "org999"
  }
}

join_request.approved and join_request.rejected

{
  "id": "evt_...",
  "type": "join_request.approved",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "requestId": "req789",
    "eventId": "abc123",
    "eventTitle": "Exclusive Networking Dinner"
  }
}

ticket.sold

{
  "id": "evt_...",
  "type": "ticket.sold",
  "timestamp": "2026-06-07T14:30:00.000Z",
  "data": {
    "eventId": "abc123",
    "ticketSaleId": "sale_001",
    "amount": 2500,
    "currency": "TZS",
    "buyerId": "user456"
  }
}

Reserved event: event.updated exists in the internal type definition, but it is not emitted by the current production triggers yet. Build against the events listed above.