The purpose of this documentation is intended for a software developer who wants to integrate their system with the ResRequest application programming interface (hereafter API). The ResRequest central API allows availability and booking functionality to be accessed by a third party.
Background
There are two basic functions which the API performs. The first is to allow for availability, rates, contact and other related information to be retrieved and the second is to allow bookings to be placed.
Availability
The availability returned is based on the access control and relationship of the login used when making an API call. All property access control, availability limits and allocations are applied as if the user was logged into ResRequest.
If any external entity such as a web portal requires use of the API, it should be added as an agent and have allocations applied.
There are two ways in which a client may elect to set up the availability for any given sales channel, namely:
- Use agent allocations. This is already available in the system and will allow for the channel to have exclusive access to a certain number of rooms.
- Use calendar limits. This is already available in the system and will allow for the risk of overbooking to be limited and availability to be shared between multiple channels but will not allow rooms to be locked for internal use.
Rates
The rates types accessible are based on the access control and relationship of the login used when making an API call.
Contacts
Contacts can be retrieved using search filters on “id”, “last name”, “first name” and “email address”. Additionally the agent role flag or guest role flag can be specified if additional role information is required. It is also possible to filter by guest trip related fields: accommodation type and travel dates. This function is not available to “external” users (an external user is a user setup in the principal system with an Agent relationship).
Bookings
Booking requests are made in a single call. This means that all 3 steps of the wizard are condensed into a single booking request call. The reply to this call will include the reservation number and financial information.
The status of booking requests will be subject to review in the requests received module. Any valid reservation status may be requested. It must also be possible for the status of any requests from a specific channel to either be locked to a specific status or for the status to be limited to a specific list. This requires a change to the agent role popup where two status related settings are to be added. The first is a list of all available statuses where access to each status may be set. Second is a setting to control the default status if none is specified or to lock the status.
Payments
Payments can be made through the API via the default payment gateway setup on the client. It is therefore a requirement that this default payment gateway has been set up correctly prior to making a payment.
Internal / External users
Some functionality is only available to users set up in the principal system with a “Staff relationship”. Agents connecting to the principal will almost always be set up in the principal system with an “Agent relationship”. Some practical examples of what this means are:
- Staff users can look up all bookings linked to all agents; whereas an Agent user can only look up bookings linked to the Agent they are related to in the principal system.
- Staff users can be permitted to edit reservations; whereas Agent users cannot edit reservations.
A user’s relationship and permissions are determined by the principal. User permissions available via the API are replicated with the user’s manual login to the principal’s ResRequest system.
Amendments and Cancellation
The ResRequest API does not support amending or cancelling reservations. You will need to email a request with amendments or cancellations to the Reservation Office. The contact details (name and email address) of the Reservation Office and Principal can be returned with the “ac_get_default” call.
Developers can also make use of our API cancel email functions: rv_request_cancel and rv_request_cancel_itinerary to send an email to the principal requesting a cancellation. No actual cancellation is made electronically.