General Information

What are webhooks

Webhooks enable PerfectGym Next to push real-time notifications to your application. We use HTTPS to send these notifications to a URL you specify. You can then use these notifications to call specific endpoint on the PerfectGym Next Open API.

Use cases

You can use webhook event notifications to alert your app to certain events.

Use Case 1 - Customer Checkin Event

The customer check in event notifies your application once a customer has physically checked-in to a facility.

Use Case 2 - Customer Created Event

The customer created event notifies your application of any newly created customers within the PerfectGym Next for facilities that have activated a third party integration.

How to enable webhooks

Setting up your PerfectGym Next webhooks requires just a few steps:

Prerequisites

  • Join the PerfectGym Next Partner Program to start using PerfectGym Next Open API
  • The studio that you would like to interact with must have your integration activated
  • You have received a webhook API key as well as a PerfectGym Next Open API key for each studio individually

1. Serve webhook endpoint

Implement webhook endpoint according to our definition. Serve this endpoint so that it can be accessed by us without additional configuration and/or VPNs. Only HTTPS endpoints with valid SSL certificates are allowed. Timeout for requests to your endpoint is 5 seconds, after that requests will be treated as unsuccessful.

Information

For any unsuccessful webhook deliveries there is no retry.

2. Register webhook endpoint URL

Specify your webhook endpoint URL (e.g. https://your.domain.com/webhook) at @perfectgym.com. By default we will send all webhook events to the provided URL. You can limit the amount of events you receive by specifying a set of event types. It is also possible to have different URLs per event type.

3. Receive events

After we register your endpoint you will start receiving events. Validate webhook API key with the one provided during the PerfectGym Next Open API integrations partner setup.

Headers

The webhook request contains the following headers:

Header Description
x-api-key API key received by our team. Validate it and match with studio.

Delivery notifications

We expect that your Webhook endpoint will respond in max. 5000ms. After that time we will cancel our request and treat it as undelivered. In case of any error, Webhook request will be resend after 10 minutes. We will try to send that request for a total of
3 repeats.

How to work with our webhooks

The PerfectGym Next webhooks are setup as notifiers without explicit payload data and require you to access the respective endpoints on the PerfectGym Next Open API to get the most up to date information regarding the webhook event.

Sample JSON of a webhook call:

Copy
Copied
{
  "entityId": 7893459,
  "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  "payload": [
    {
      "timestamp": 1642779144176,
      "type": "CUSTOMER_CREATED"
    }
  ]
}

Every webhook request has an entityId field which corresponds to the type. Example: for the CUSTOMER_CHECKIN event, the entityId field will correspond to the customerId. You can find the details of every type and the corresponding entityId field under the section Event Types.

Important

Please ignore any unknown properties in request body, as we might add them in next versions

Sequence diagram for CUSTOMER_CREATED event:

PerfectGym Next OperatorPerfectGym NextThird PartyPerfectGym Next OpenAPIValidate Webhook API-KEY by matching it with studioProvide OpenAPI API-KEY that match studioopt[GET customer data]opt[Webhooks enabled]Create Customer in studio (customer data)Save CustomerHTTP 200 (OK)POST webhookProcess webhookHTTP 200 (OK)Get /customers/{id}Customer dataPerfectGym Next OperatorPerfectGym NextThird PartyPerfectGym Next OpenAPI
Important

As layed out in the diagram above, please do not make any requests to PerfectGym Next OpenAPI during processing of the webhook. Processing of webhooks must be asynchronous.