Platform
  • Welcome to the Nexudus Platform
  • Planning your Nexudus set-up
  • Training
    • Training modules
      • Introductory Session I
      • Introductory Session II
      • Inventory
      • Operations I
      • Operations II
      • Billing
      • CRM
      • Bookings (Set-up)
      • Bookings (Operations)
      • Contracts
      • Community
      • Billing Reports
      • KPI Reports
      • Integrations
        • PaperCut
        • Salto KS
    • Webinars
    • Training Module Videos
    • AMA (Ask Me Anything)
  • The Basics
    • Dashboard Home
    • CRM module
    • Community module
    • Operations module
    • Finance module
    • Inventory module
    • Settings module
    • Networks
  • Day-to-day
    • Inventory
      • Products
        • What is a product?
        • Recurrent products
        • Adding a product
        • Product details
        • Product benefits
        • Product advanced options
        • Deleting or archiving a product
      • Managing Plans
        • What is a plan?
        • Managing plans
        • Adding a plan
        • Plan details
        • Plan price
        • Plan benefits
          • Assigning credit to a plan
        • Plan limits
        • Plan deposits
        • Deleting or archiving a plan
        • Prorating a plan
        • Plan legal terms and conditions
        • Plan discounts
        • Plan components
      • Passes
        • What are passes?
        • Type of passes
        • Adding a pass
        • Editing a pass
        • Customers with multiple passes
        • Pay As You Go passes
      • Resources
        • What is a resource?
        • Adding a resource
        • Resource details
        • Resource features
        • Resource prices
        • Resource rules
        • Resource access rules
        • Linking resources to each other
        • Resource products
        • Deleting or archiving a resource
        • Displaying resources in NexBoard
        • Using resource types to group related resources
      • Floor plans, offices and desks
        • Managing floor plans, offices and desks
        • Adding or editing a floor plan
        • Adding or editing an office or desk
        • Associating a contract with a desk
        • Linking an office or desk to a member or contact
    • Operations
      • Members & Contacts
        • About customers
        • Signing up a member
        • Signing up a contact
        • Viewing different types of customers
        • Editing a member
        • Editing a contact
        • Allowing access to the customer portal
        • Suspending members and contacts
        • Deleting a member or contact
      • Teams and groups
        • About teams
        • Adding a team
        • Editing a team
        • Teams and invoicing
        • Setting up a team profile on the website
      • Visitors
        • Managing visitors
        • Viewing the visitor list
        • Visitor Terms and Conditions
        • Checking in visitors
        • Adding visitors to a booking
        • Adding visitors directly in the members portal or administrator panel
      • Check-in
        • About checking in
        • Viewing who's in right now
        • Checking in manually
        • Checking in using Wi-Fi
        • Checking in by using NexIO
        • Checking in by using RFID readers and cards
        • Enabling access control integration
        • Enabling Pay As You Go
      • Deliveries
        • About deliveries
        • Viewing deliveries in the member portal
        • Receiving a mail delivery
        • Notifying a team when a delivery arrives
    • Finance
      • Managing Invoices
        • Invoices
        • Automatically creating invoices
        • Manually creating an invoice
        • How to invoice a customer for specific products, bookings, charges or event tickets.
        • Issuing refunds
        • Partial refunds
        • Cancelling an invoice
        • Editing invoices
        • Viewing invoices
        • Deleting invoice lines
        • Deleting invoices
      • Customer Balances
        • Viewing a customer balance
        • Editing a balance, adding/deleting payments
        • Exporting a balance
      • Payments
        • Managing Payments
        • Payment types
        • Manual payments
        • Online payments
        • Credit
      • Taxes
        • About tax rates
        • Using different tax rates
        • Tax rate settings
      • Accounts
        • About accounts
        • Adding and editing accounts
        • Linking plans, resource prices, passes and products to accounts
        • Viewing accounts in reports
        • Finding an invoice line without an account and how to fix it
      • Contracts
        • About contracts
        • Adding a contract
        • Editing a contract
        • Contracts and billing cycles
        • Cancelling a contract
        • Prorating a contract
        • Setting a main contract for a member
        • Setting multiple contracts for a member
        • Contracts and proposals
        • Digital signatures on contracts
        • Contracts: the most common scenarios
      • Discounts
    • Sales
      • Selling Products
        • About selling products
        • Managing products from the dashboard
        • Including a product in a plan
        • Selling a product directly to a member or contact
        • Buying products from the members portal
      • Bookings
        • About bookings
        • Making a booking
        • Editing a booking
        • Setting up a repeat booking
        • Cancelling a booking
        • The difference between invoicing and charging a booking
        • Invoicing bookings
        • Assigning credit for bookings
        • Defining booking notifications
        • Bookings and integrations
    • CRM
      • Managing CRM
        • About CRM
        • Viewing a CRM board
        • Configuring a CRM board
        • Automating a CRM board
        • Adding an opportunity
        • Boards and processes
        • Reminders
        • Managing message macros
        • Sending message macros from a member/contact account
        • Managing email accounts
        • Tasks and task lists
          • Managing tasks
          • Managing task lists
        • CRM boards and task lists
        • Custom fields
        • Using custom fields for directory filtering
        • Document templates
          • Merge Fields
        • Generating documents from templates
      • Proposals
        • About proposals
        • Adding and sending a new proposal
        • Understanding Proposal Documents
        • Creating multi-contract proposals
        • Adding products to a proposal
      • Sign up Form Customization
    • Community
      • Managing Surveys
        • About surveys
        • Adding a survey
        • Viewing a survey
        • Editing a survey
        • Managing survey questions
          • Types of survey questions
          • Adding a survey question
          • Editing a survey question
          • Deleting a survey question
        • Viewing survey results
      • Managing Events
        • About events
        • Viewing events
        • Adding an event
        • Editing an event
        • Recurring events
        • Grouping events with categories
        • Cancelling an event
        • Selling event tickets
        • Checking in event attendees
      • Managing News Articles
        • About News Articles
        • Creating and managing news articles
        • Managing article categories
        • Moderating article comments
      • Managing Community Boards
        • About the Community Board
        • Viewing a community board
        • Community board elements
        • Managing conversations
        • Managing messages in conversations
        • Managing groups on the community board
      • Managing Newsletters
        • About Newsletters
        • Adding a newsletter
        • Sending a newsletter
        • Subscribers
          • About subscribers
          • Managing subscribers
          • Managing subscriber lists
          • Nexudus and Mailchimp
      • Help Desk
  • Settings
    • General Settings
      • Name & Logo
      • Contact & Location Details
      • Timezone
    • Billing and Accounting
      • Invoice Details
      • Notifications
      • Contents
      • Formatting
      • Locked Period
      • Tax
      • Accounts
    • Payments
      • Setting up automatic payments
      • Payment currency
      • Default payment method
      • Configuring payment gateways
        • PayPal
        • GoCardless
        • Stripe ACH
        • Forte ACH
        • Authorize.net
          • Setting up Forte ACH
        • Quickbooks (Payments)
      • Supported payment service providers
      • Making a Test Payment
      • Strong Customer Authentication
    • Website
      • Website Settings
      • General
      • Setting up your own domain on Nexudus
        • Configuring your own domain in Nexudus
        • Configuring your DNS settings
        • DNS Settings: Configuring your Cloudflare Account
      • Enabling and disabling website sections
      • Configuring access rights
      • Adding contact details
      • Viewing translations for website terms
      • Adding and editing language tokens
      • Adding a custom page
      • Editing your website templates
        • Editing common files
        • Dropbox
      • Integrating services with your website
    • Website modules
      • Customising your website
    • Bookings/Reservations
    • Check-in System
      • General
      • Pay As You Go (PAYG) settings
    • Integrations
      • About integrations
      • Access Control
        • Salto - Clay
        • Kisi
        • Brivo
      • Accounting
        • Quickbooks Online
          • Quickbooks: Cancelled and Refunded Invoices
        • Xero
        • Moloni
      • Printing
        • Managing printers in your space
          • Printers: Ezeep
            • Installing Ezeep
            • Setting up your Ezeep account
          • Printers: Papercut
      • Video Conferencing
        • Zoom
          • Zoom for Events
          • Zoom for Meeting Rooms
          • Zoom for Bookings
          • Zoom for Community Board Messages
        • Jitsi
          • Managing Virtual Rooms
      • WiFi-based check-in
        • About WiFi-based check-in
        • Setting up WiFi-based check-in using MikroTik
        • Setting up WiFi-based check-in using RADIUS servers
          • WiFi-based check-in: Aruba virtual controller
          • WiFi-based check-in: Cisco Meraki
          • WiFi-based check-in: Cisco WLC
          • WiFi-based check-in: Ruckus Cloud
          • WiFi-based check-in: SonicWall
          • WiFi-based check-in: Ubiquiti UniFi
      • Other Integrations
        • Square
        • Setting up Zapier
          • Sample Connection with Zapier: Mailchimp
          • Advanced Options with Zapier
        • Envoy
        • Space Dashboard
        • Calendar Integration
          • Calendar integration: Google (one-way)
          • Calendar integration: Google (two-way)
          • Calendar integration: Outlook (one-way)
        • Google BigQuery
        • Configuring reCAPTCHA
        • Configuring Google Maps
        • Google Analytics
      • Validation Rules
      • Webhooks
    • Imports
    • Notifications
    • Defining Email Templates
    • Email Server
    • Email Queue
    • Users
      • Managing Users
      • Managing standard and admin users
    • Security
      • Users and security
      • Security considerations
      • About user roles
      • Adding and assigning a role
      • Example user roles
    • How to access the Nexudus Spaces API
  • Bookmarks
  • Reports
    • About reports
    • Viewing reports
    • KPI reports
    • Occupancy reports
    • Checkins reports
    • Bookings reports
    • Events reports
    • Passes reports
    • Visitors reports
    • Desks reports
    • MRM reports
    • Members & Contacts reports
    • Survey reports
    • Tasks reports
    • Products (invoiced) reports
    • Finance reports
    • Deferred Revenue Reports
    • Deposits reports
    • Debtors reports
    • Invoicing reports
    • Revenue reports
    • Revenue Exchange reports
  • Website
    • Managing Your Website
    • Website directory
    • About the Member Portal
      • Your account
      • My Team
      • Managing payments
      • Your bookings
      • Changing to a different plan
      • Checking available credit
      • Buying additional products
  • FAQ
    • Untitled
    • FAQ: Nexudus subscription
    • FAQ: Account settings
    • FAQ: CRM
      • FAQ: How to customize the sign-up form
    • FAQ: Community
      • FAQ: Events
      • FAQ: Newsletters
      • FAQ: Message Boards
    • FAQ: Operations
      • FAQ: Members, contacts and users
      • FAQ: Bookings
    • FAQ: Finance
      • FAQ: Discounts
      • FAQ: Invoicing
      • FAQ: Currency
      • FAQ: Contracts
      • FAQ: Taxes
    • FAQ: Inventory
      • FAQ: Plans
      • FAQ: Products
      • FAQ: Passes and check-in
      • FAQ: Resources
      • FAQ: Floor plans, desks and offices
    • FAQ: Settings
      • FAQ: General settings
      • FAQ: Online payments and payment gateways
        • FAQ: Migrating from Quickbook Merchant Services (QBMS) to Quickbooks payments
      • FAQ: Users and User Roles
      • FAQ: Notifications
      • FAQ: Integrations
      • FAQ: Networked accounts
    • FAQ: Reports
    • FAQ: Members Portal
    • How to setup an iTunes Development Account for the Passport (White-label Mobile App)
  • What's New?
  • Privacy Policy
  • Terms and Conditions
  • GDPR and Nexudus
    • Data Processing Agreement
  • Reseller Partners Program
    • Managing your Reseller Account
    • Managing Customers
    • Reseller Agreement
  • Contact Us
  • Apps
    • Passport by Nexudus
      • iBeacon setup for Passport app
    • NexBoard
    • NexDelivery
    • NexEvents
    • NexIO
    • NexClicker
    • Companion Apps
  • Third Party Apps
    • Square (ePOS)
      • Before you start
      • Square ePOS App
Powered by GitBook
On this page
  • What are webhooks?
  • Webhook Types
  • Verify a webhook created through the API
  • Failed Requests and retries.

Was this helpful?

  1. Settings
  2. Integrations

Webhooks

What are webhooks?

Nexudus can communicate with other systems and automatically push data on to those systems when specific actions take place. This information is transferred over the internet by means of webhooks. The receiving end of these webhooks is normally a system that understands this data and is able to process it.

The receiving end of a webhook will listen for incoming calls from Nexudus with specific data. For example, if you want to notify another system every time you make a change to a member or contact you could use the "Coworker Update" webhook which sends the data of the contact or member whose record you have updated.

Webhooks are created from the Settings > Integrations menu. We keep adding new webhooks as users require them for specific integrations but these are the ones we have available so far:

  • Coworker Update

  • Coworker Create

  • BlogPost Create

  • BlogPost Update

  • Booking Create

  • Booking Update

  • Booking Delete

  • Send Welcome Email

  • Coworker Contract Activate

  • Coworker Contract Cancel

  • Coworker Contract Renew

  • Coworker Contract Upgrade Downgrade

  • Coworker Contract Activate First

  • Coworker Invoice Create First

  • Coworker Invoice Create

  • Coworker Invoice Delete

  • Coworker Invoice Update

  • Coworker Invoice Refund

  • Coworker Invoice Credit Note

  • Coworker Invoice Paid

  • Coworker Invoice Failed Payment

  • Coworker Invoice Received Payment

  • Coworker Invoice Awaiting Payment

  • Team Create

  • Team Update

  • Team Delete

  • Calendar Event Create

  • Calendar Event Update

  • Calendar Event Attendee Delete

  • Calendar Event Attendee Create

  • Calendar Event Attendee Update

  • Global Chat Message Create

  • NewsLetter Subscriber Create

  • NewsLetter Subscriber Subscribed

  • NewsLetter Subscriber UnSubscribed

  • NewsLetter Subscriber Removed From Group

  • Coworker Checkout

  • Coworker Checkin

  • Coworker Checkin Failed

  • Visitor Notification

  • Community Board New Thread

  • Community Board New Reply

  • Visitor Checked in

  • Visitor Registered

  • Blog Post Delete

  • Calendar Event Delete

  • HelDesk Message Created

  • HelpDesk Comment Created

  • Checkin Created

  • Checkin Updated

  • Checkin Deleted

  • Coworker Delete

  • Coworker Message Create

  • Delivery Created

  • Delivery Assigned

  • Proposal Created

  • Proposal Updated

  • Proposal Deleted

Webhook requests created by our servers can be verified by calculating a digital signature using a shared secret you can type in Settings > Integrations.

Webhook Types

GET https://spaces.nexudus.com/api/utils/enums?name=eWebhookAction

Gets all the available webhook types

Query Parameters

Name
Type
Description

name

string

eWebhookAction

[ 
   { 
      "Name":"None",
      "Id":1
   },
   { 
      "Name":"CoworkerUpdate",
      "Id":2
   },
   { 
      "Name":"CoworkerCreate",
      "Id":3
   },
   { 
      "Name":"BlogPostCreate",
      "Id":4
   },
   { 
      "Name":"BlogPostUpdate",
      "Id":5
   },
   { 
      "Name":"BookingCreate",
      "Id":6
   },
   { 
      "Name":"BookingUpdate",
      "Id":7
   },
   { 
      "Name":"BookingDelete",
      "Id":8
   },
   { 
      "Name":"SendWelcomeEmail",
      "Id":9
   },
   { 
      "Name":"CoworkerContractActivate",
      "Id":10
   },
   { 
      "Name":"CoworkerContractCancel",
      "Id":11
   },
   { 
      "Name":"CoworkerContractRenew",
      "Id":12
   },
   { 
      "Name":"CoworkerContractUpgradeDowngrade",
      "Id":13
   },
   { 
      "Name":"CoworkerContractActivateFirst",
      "Id":14
   },
   { 
      "Name":"CoworkerInvoiceCreateFirst",
      "Id":15
   },
   { 
      "Name":"CoworkerInvoiceCreate",
      "Id":16
   },
   { 
      "Name":"CoworkerInvoiceDelete",
      "Id":17
   },
   { 
      "Name":"CoworkerInvoiceUpdate",
      "Id":18
   },
   { 
      "Name":"CoworkerInvoiceRefund",
      "Id":19
   },
   { 
      "Name":"CoworkerInvoiceCreditNote",
      "Id":20
   },
   { 
      "Name":"CoworkerInvoicePaid",
      "Id":21
   },
   { 
      "Name":"CoworkerInvoiceFailedPayment",
      "Id":22
   },
   { 
      "Name":"CoworkerInvoiceReceivedPayment",
      "Id":23
   },
   { 
      "Name":"CoworkerInvoiceAwaitingPayment",
      "Id":24
   },
   { 
      "Name":"CalendarEventCreate",
      "Id":25
   },
   { 
      "Name":"CalendarEventUpdate",
      "Id":26
   },
   { 
      "Name":"CalendarEventAttendeeDelete",
      "Id":27
   },
   { 
      "Name":"CalendarEventAttendeeCreate",
      "Id":28
   },
   { 
      "Name":"CalendarEventAttendeeUpdate",
      "Id":29
   },
   { 
      "Name":"GlobalChatMessageCreate",
      "Id":30
   },
   { 
      "Name":"NewsLetterSubscriberCreate",
      "Id":31
   },
   { 
      "Name":"NewsLetterSubscriberSubscribed",
      "Id":32
   },
   { 
      "Name":"NewsLetterSubscriberUnSubscribed",
      "Id":33
   },
   { 
      "Name":"NewsLetterSubscriberRemovedFromGroup",
      "Id":34
   },
   { 
      "Name":"CoworkerCheckout",
      "Id":35
   },
   { 
      "Name":"CoworkerCheckin",
      "Id":36
   },
   { 
      "Name":"CoworkerCheckinFailed",
      "Id":37
   },
   { 
      "Name":"VisitorNotification",
      "Id":38
   },
   { 
      "Name":"CommunityBoardNewThread",
      "Id":39
   },
   { 
      "Name":"CommunityBoardNewReply",
      "Id":40
   },
   { 
      "Name":"VisitorCheckedin",
      "Id":41
   },
   { 
      "Name":"VisitorRegistered",
      "Id":42
   },
   { 
      "Name":"BlogPostDelete",
      "Id":43
   },
   { 
      "Name":"CalendarEventDelete",
      "Id":44
   },
   { 
      "Name":"HelDeskMessageCreated",
      "Id":45
   },
   { 
      "Name":"HelpDeskCommentCreated",
      "Id":46
   },
   { 
      "Name":"CheckinCreated",
      "Id":47
   },
   { 
      "Name":"CheckinUpdated",
      "Id":48
   },
   { 
      "Name":"CheckinDeleted",
      "Id":49
   },
   { 
      "Name":"CoworkerDelete",
      "Id":50
   },
   { 
      "Name":"CoworkerMessageCreate",
      "Id":51
   },
   { 
      "Name":"DeliveryCreated",
      "Id":52
   },
   { 
      "Name":"DeliveryAssigned",
      "Id":53
   },
   { 
      "Name":"ProposalCreated",
      "Id":54
   },
   { 
      "Name":"ProposalUpdated",
      "Id":55
   },
   { 
      "Name":"ProposalDeleted",
      "Id":56
   },
   { 
      "Name":"TeamCreated",
      "Id":57
   },
   { 
      "Name":"TeamUpdated",
      "Id":58
   },
   { 
      "Name":"TeamDeleted",
      "Id":59
   },
   { 
      "Name":"CoworkerContractUpdate",
      "Id":60
   },
   { 
      "Name":"AccessControlUpdate",
      "Id":61
   },
   { 
      "Name":"CoworkerContractCreate",
      "Id":62
   }
]

Verify a webhook created through the API

If a shared secret is available, each Webhook request includes a X-Nexudus-Hook-Signature header which is generated using the app's shared secret along with the data sent in the request.

The following code is used to generate the hash header:

var wr = GetWebRequest();
var dataString = JsonConvert.SerializeObject(new[] { dto });

//Calculate signature hash
var sharedSecret = GetSharedSecret();
if (!string.IsNullOrEmpty(sharedSecret))
{
    var encoding = new System.Text.ASCIIEncoding();
    var keyBytes = encoding.GetBytes(sharedSecret);
    var hmacsha256 = new HMACSHA256(keyBytes);
    var messageBytes = encoding.GetBytes(dataString);
    var hashBytes = hmacsha256.ComputeHash(messageBytes);
    var hash = ByteToString(hashBytes);
    wr.Headers.Add("X-Nexudus-Hook-Signature", hash);
}

string ByteToString(byte[] buff)
{
    string sbinary = "";
    for (int i = 0; i < buff.Length; i++)
        sbinary += buff[i].ToString("X2"); // hex format
        
    return sbinary;
}

To verify that the request came from Nexudus, compute the HMAC 256 digest and compare it with the value in the X-Nexudus-Hook-Signature header. If they match, you can be sure that the Webhook was sent from Nexudus and the data has not been compromised.

Failed Requests and retries.

If your server fails to process a webhook request, Nexudus will reattempt to call the webhook URL at different delayed intervals up to 10 times.

If your server fails to process a request 10 consecutive times, the failing webhook will be automatically disabled.

PreviousValidation RulesNextImports

Last updated 5 years ago

Was this helpful?