Getting started with webhooks

Learn how to use OfficeRnD Webhooks infrastructure and APIs.

Webhook Event Handling

Express.js Webhook Callback Example

const app = require('express')();
const bodyParser = require('body-parser');

app.use(bodyParser.raw({ type: 'application/json' }));
app.post('/webhooks/callback', (req, res) => {
  const { body, rawBody, headers } = req;

  const { eventType, data } = body;
  switch (eventType) {
    case 'company.paymentdetails.removed':
      // Handle company payment details removal
      break;
    case 'member.paymentdetails.removed':
      // Handle member payment details removal
      break;
    case 'member.removed':
    case 'company.removed':
      // Handle member or company removal
      break;
    default:
      // Unhandled event
      console.log(`Event ${eventType} was not handled.`);
  }
});

app.listen(3000, () => console.log('Listening on 3000'));

Example Webhook Payloads

Company Payment Details Removed Event

{
  "event": "5f8d6c9747120500116899e4",
  "eventType": "company.paymentdetails.removed",
  "data": {
    "object": {
      "_id": "5f86de9c1e74e400d416467c",
      "card": {
        "id": "card_<redacted>",
        "name": "E Corp.",
        "brand": "Visa",
        "funding": "credit",
        "exp_month": 11,
        "exp_year": 2022,
        "country": "US",
        "cvc_check": "pass",
        "last4": "1111"
      },
      "provider": "stripe",
      "providerId": "<redacted>",
      "sourceId": "card_<redacted>",
      "authorization": {
        "authProviderId": "seti_<redacted>",
        "status": "not_required"
      },
      "createdAt": "2020-10-14T11:18:52.130Z",
      "createdBy": "5e131db18edb280010c8d4ef"
    },
    "company": "5e1d8bd37f8759001051b0e8"
  },
  "createdAt": "2020-10-19T10:38:15.127Z"
}

Member Removed Event

{
  "event": "5f8715ca1e74e400d4164ea6",
  "eventType": "member.removed",
  "data": {
    "object": {
      "_id": "5e8c9df14d46c7001064c3ef",
      "status": "active",
      "calculatedStatus": "drop-in",
      "team": "5e8c9eb94d46c7001064c427",
      "office": "5e1d8bd37f8759001051b0e2",
      "name": "Jonathan Brown",
      "description": "",
      "image": null,
      "organization": "5e1d8bd37f8759001051b0ca",
      "email": "[email protected]"
    }
  },
  "createdAt": "2020-10-14T15:14:18.042Z"
}

System Events Overview

ResourceOperationsEventsDescription
CompanyCreated
Updated
Removed
company.created
company.updated
company.removed
Occurs when a company is created, updated, or removed.
Company Payment DetailsCreated
Removed
company.paymentdetails.created
company.paymentdetails.removed
Occurs when payment details are added or removed for a company.
MemberCreated
Updated
Removed
member.created
member.updated
member.removed
Occurs when a member is created, updated, or removed.
Member Payment DetailsCreated
Removed
member.paymentdetails.created
member.paymentdetails.removed
Occurs when payment details are added or removed for a member.
InvoiceCreated
Updated
Removed
invoice.created
invoice.updated
invoice.removed
Occurs when an Invoice, Credit Note, or Overpayment is created, updated, or removed.
Invoice ChargeCreated
Updated
Removed
invoice.charge.created
invoice.charge.updated
invoice.charge.removed
Occurs when an Invoice receives a payment, payment status is updated, or payment is manually removed.
Invoice AllocationCreated
Removed
invoice.allocation.created
invoice.allocation.removed
Occurs when an Invoice is allocated a credit or an allocation is manually removed.
FeeCreated
Updated
Removed
fee.created
fee.updated
fee.removed
Occurs when a fee is created, updated, or removed.
MembershipCreated
Updated
Removed
membership.created
membership.updated
membership.removed
Occurs when a membership is created, updated, or removed.
BookingCreated
Updated
Removed
booking.created
booking.updated
booking.removed
Occurs when a booking is created, updated, or removed.
ContractCreated
Updated
Removed
contract.created
contract.updated
contract.removed
Occurs when a contract is created, updated, or removed.
TicketCreated
Updated
Removed
ticket.created
ticket.updated
ticket.removed
Occurs when an issue is created, updated, or removed.
IntegrationRemovedintegration.removedOccurs when an integration is disconnected from the OfficeRnD organisation.
PassCreated
Updated
pass.created
pass.updated
Occurs when a day pass is created or updated for a company/member.
Occupancy SlotCreated
Removed
occupancyslot.created
occupancyslot.removed
Occurs when a booking is created to show its occurrences, useful for tracking recurring bookings.