Webhook Integration
Introduction
BEAMhotspot can be integrated into your own systems (e.g. CRM, mailing, accounting, automation platforms, etc) using our Webhook integration function. Please note that this feature requires basic knowledge of Web technologies.
To set up a Webhook, we will need your Location ID, the event type (listed below) and the Callback URL to which we send the data. We will then issue you with an API key. Note that an API key is not required to receive the Webhook requests – it is provide so that you can authenticate whether the requests are coming from us (see below).
Webhook callbacks are triggered by events listed below. When the event is fired, it makes an HTTP POST request to the Callback URL with a JSON body and a special HTTP header field to ensure that it was us that made the request. The header’s name is HTTP_X_HOTSPOTSYSTEM_HMAC_SHA256 and it is signed with API key given to you.
Your script should return HTTP status code 200 in the response header which tells us that your Callback URL is working correctly, otherwise our servers will try to re-send to you the same payload at the next execution.
Webhooks are not triggered right away as the events occur. Our servers process the event entries every minute or so, and they will retry failed requests 20 times.
Event Types
Event | Triggers when |
---|---|
customer.create | A new customer has been registered. |
subscriber.create | A new client has been subscribed to the newsletter. |
transaction.paid.create | A new paid transaction has been recorded. |
transaction.voucher.create | A new voucher transaction has been recorded. |
transaction.mac.create | A new mac transaction has been recorded. |
transaction.social.create | A new social transaction has been recorded. |
Payload Data
Event: customer.create
Example payload POSTed to your Callback URL:
{ "id": "59243583", "UserName": "BE-72-B3-40-F9-BE", "name": null, "email": "myname@gmail.com", "company_name": null, "address": null, "city": null, "state": null, "zip": null, "country_code": "AR", "phone": "+54", "fb_id": null, "fb_username": null, "fb_link": null, "fb_gender": null, "registered_at": "2022-08-27 13:35:53" }
The UserName field is the MAC address of the device being used. Fields that have not been configured on your registration page will send “null” as the value.