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
Resource | Operations | Events | Description |
---|---|---|---|
Company | Created Updated Removed | company.created company.updated company.removed | Occurs when a company is created, updated, or removed. |
Company Payment Details | Created Removed | company.paymentdetails.created company.paymentdetails.removed | Occurs when payment details are added or removed for a company. |
Member | Created Updated Removed | member.created member.updated member.removed | Occurs when a member is created, updated, or removed. |
Member Payment Details | Created Removed | member.paymentdetails.created member.paymentdetails.removed | Occurs when payment details are added or removed for a member. |
Invoice | Created Updated Removed | invoice.created invoice.updated invoice.removed | Occurs when an Invoice, Credit Note, or Overpayment is created, updated, or removed. |
Invoice Charge | Created 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 Allocation | Created Removed | invoice.allocation.created invoice.allocation.removed | Occurs when an Invoice is allocated a credit or an allocation is manually removed. |
Fee | Created Updated Removed | fee.created fee.updated fee.removed | Occurs when a fee is created, updated, or removed. |
Membership | Created Updated Removed | membership.created membership.updated membership.removed | Occurs when a membership is created, updated, or removed. |
Booking | Created Updated Removed | booking.created booking.updated booking.removed | Occurs when a booking is created, updated, or removed. |
Contract | Created Updated Removed | contract.created contract.updated contract.removed | Occurs when a contract is created, updated, or removed. |
Ticket | Created Updated Removed | ticket.created ticket.updated ticket.removed | Occurs when an issue is created, updated, or removed. |
Integration | Removed | integration.removed | Occurs when an integration is disconnected from the OfficeRnD organisation. |
Pass | Created Updated | pass.created pass.updated | Occurs when a day pass is created or updated for a company/member. |
Occupancy Slot | Created Removed | occupancyslot.created occupancyslot.removed | Occurs when a booking is created to show its occurrences, useful for tracking recurring bookings. |
Updated 7 days ago