Webhook
"Webhook" allows your system to automatically receive notifications of events that occur within the reenio system. The reception of the event is realized by means of an HTTP request to the URL address of your system, according to the settings of own messages in the administration. Information about the event is sent in the body of the request. Thanks to the information sent in this way, your system can react immediately to the given event.
The reenio system implements webcams using custom messages.
What does an HTTP webhook request look like?
The data is sent in JSON format using the HTTP POST method (the data is located in the body of the request). Sample data in JSON format:
{
"triggerType": 1,
"customerId": 10,
"reservationId": 50
}
The server to which the HTTP request was sent must return a response with HTTP status code 200 (OK) and a "REENIO" response body (without quotation marks). If the server returns any other response, the webhook is considered undelivered and the system will try to deliver it again, see below. During the configuration (settings within the administration) of the webhook, an HTTP authentication request will be sent to the specified URL, which will contain an empty object in JSON format. So:
{}
The server must respond to this request as in the case of any other request (status code 200 and the text "REENIO"), otherwise the settings will not be saved.
Supported protocols for sending webhooks are HTTP and HTTPS.
The triggerType field can take the following values:
Value | Event |
---|---|
0 | Reservation creation |
1 | End of reservation |
2 | Reservation state change to: TOOK PLACE |
3 | Reservation state change to: CONFIRMED |
4 | Start of reserved event |
5 | Customer registration |
6 | Cancellation due to non-payment |
7 | Payment of reservation |
8 | Cancellation due to non-fulfillment of capacity |
9 | Reservation cancellation (except cancellation due to non-payment and cancellation of the event) |
10 | Reservation state change to: DID NOT TAKE PLACE |
11 | Reservation state change to: DID NOT COME |
Data format within the HTTP request
Data sent within the webhook is always in JSON format. All requests, except for the authentication (empty object), contain a "triggerType", which indicates the type of event that triggered this webhook. Other properties depend on the type of event. By default, the reservation ID ("reservationId") and the customer ID ("customerId") are always sent. Detailed information related to the submitted IDs can then be obtained from our API.
The set of sent data may expand or change in the future.
What if the URL for sending webhooks is unavailable?
If the URL returns a response other than status code 200 and the text "REENIO", the webhook will be considered undelivered and the system will try to deliver it again at intervals. The time interval gradually increases with the number of unsuccessful delivery attempts. We do not intentionally state the exact number of attempts and the time interval, as it may vary. However, the system will always try to deliver at least 3 times, with the last attempt being made at least 12 hours after the first attempt. This should cover a possible short-term outage of your system.
The webhook server should always respond as soon as possible. Avoid running long-running tasks as part of webhook calling and processing. If the reenio system does not receive a response to the sent webhook in a sufficiently short time, it will be marked as unsuccessful.