API Integration and Certification Guidelines
This document will guide you through implementing ETG API v3 and provide you with an action plan for upcoming months.
Integration Stages Overview
The integration consists of 4 stages:
- At the Pre-integration Stage, the ETG manager will send you a questionnaire that needs to be filled out.
- The Integration Stage is where you develop the integration independently. Before you start building, we recommend:
- reviewing this page for a summary of the key integration steps,
- read the ETG Best Practices for API to ensure efficient implementation, and
- explore the ETG API documentation for detailed endpoint descriptions and parameters. Please feel free to ask any questions about the API logic during this stage — we’re happy to help.
- The Certification Stage is where the API Launch team reviews the integration and, if necessary, requests that you make adjustments and changes. Before starting the certification, please fill in the Pre-certification Checklist that launch member sent to you.
- The Pre-Production Stage is where the API Launch team monitors the integration performance after certification and addresses the issues on prod at the initial stages. Please inform us when you are going live.
Below, you will find the recommended API workflow with endpoints to be integrated. Make sure to integrate all required endpoints.
Recommended Workflow
Please find the recommended workflow diagram with mandatory and required endpoints listed below:
sequenceDiagram autonumber actor Client participant System as "Your system" participant ETG as "ETG API" activate Client Note over Client,ETG: Search step Client->>System: Requests city search activate System System->>System: Convert city to ETG hotel ids,region or geo search System->>ETG: Search by Hotel IDs, Region or Geo request activate ETG ETG->>System: Search by Hotel IDs, Region or Geo response deactivate ETG System->>Client: Show city search results deactivate System Client->>Client: Chooses the hotel and moves to hotel page Client->>System: Opens the hotel page activate System System->>ETG: Retrieve hotelpage request activate ETG ETG->>System: Retrieve hotelpage response deactivate ETG System->>Client: Show hotelpage with room prices deactivate System Client->>Client: Chooses the rate Note over Client,ETG: Prebook step Client->>System: Start the Prebook activate System System->>ETG: Prebook request with `price_increase_percent` activate ETG ETG->>System: Prebook response deactivate ETG alt AVAILABLE System->>Client: Continue booking process by opening the booking form else AVAILABLE (Price changed) System->>Client: Show new price to client and ask - continue booking with new price (Y/N)? else NOT AVAILABLE (Error no_available_rates) System->>Client: Show that rate is not available and cannot be booked end deactivate System Note over Client,ETG: Booking step Client->>System: Opens the booking form activate System System->>ETG: Create booking process request activate ETG ETG->>System: Create booking process response deactivate ETG System->>Client: Show the booking form deactivate System Client->>Client: Fills all necessary data Client->>System: Starts the booking process activate System System->>ETG: Start booking process request activate ETG ETG->>System: Start booking process response deactivate ETG loop Every second, until the status is "ok" System->>ETG: Check booking process request activate ETG ETG->>System: Check booking process response end deactivate ETG System->>Client: Show the success page deactivate System deactivate Client
Each API method has request and response samples, field descriptions and corresponding error codes. You can find them in the documentation section corresponding to your API type: https://docs.emergingtravel.com/
1. Static Data Step
Hotel static data stands for all information about the hotels and includes full content like images and additional content data.
1.1 Retrieve hotel dump
Required
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/info/dump/
This tool should be used to download content and hotel mapping information. It is updated weekly.
1.2 Retrieve hotel content
Recommended
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/info/
It is used only in cases when an available hotel is not included in the downloaded hotel data dump. It can happen to new hotels in the ETG inventory.
1.3 Retrieve hotel incremental dump
Recommended
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/info/incremental_dump/
It is used to update the Retrieve hotel dump (B2B, Affiliate) static information with changes applied to hotels on the previous day. This is updated daily.
This method should be used daily to get the most up-to-date information. For example, if hotels make an important announcement, this method will provide updates.
2. Search
2.1 Search by Methods
One of the endpoints is required
Endpoints:
- https://api.worldota.net/api/b2b/v3/search/serp/region/ - calling this endpoint will return a list of all available hotels within the specified region.
- https://api.worldota.net/api/b2b/v3/search/serp/hotels/ - calling this endpoint will return a list of specific hotels (max 300 in one request; it is advisable to send 300 hotels in one SERP request).
- https://api.worldota.net/api/b2b/v3/search/serp/geo/ - calling this endpoint will return a list of all hotels within a specified radius of a particular longitude and latitude.
- https://api.worldota.net/api/b2b/v3/search/serp/region/ - calling this endpoint will return a list of all available hotels within the specified region ((B2B, Affiliate)).
Search by methods are used to search for hotels with available accommodations that match specified search conditions. However, allowing users to select rates at this stage is not advisable, as the rates may not align with those presented in the subsequent single hotel search
on the Retrieve hotelpage (B2B, Affiliate) and/or Prebook rate from hotelpage step (B2B, Affiliate) request.
During this first search step using Search by methods, we recommend displaying one or two of the lowest rates for each hotel. In the second step, when using Retrieve hotelpage (B2B, Affiliate) and/or Prebook rate from hotelpage step (B2B, Affiliate) for a single hotel search, all available rates for the selected hotel should be displayed.
2.2 Retrieve hotelpage
Required
Endpoint: https://api.worldota.net/api/b2b/v3/search/hp/
Retrieve hotelpage (B2B, Affiliate) should be used exclusively for hotels the end user has shown interest in. Requests should not be made for every hotel retrieved by region ID or hotel IDs; requests should only be made when the user selects a specific hotel.
The recommended storage duration for retrieved rates is up to 1 hour. The availability window for booking requests using this method may extend beyond this timeframe, varying based on internal factors.
This endpoint will provide detailed information on a particular hotel with all the prices for rates.
We do not recommend matching rates between one of the Search by methods and Retrieve hotelpage (B2B, Affiliate) responses. However, if your logic requires such matching, please let us know at [email protected], and we will advise you on how to implement it.
3. Prebook rate from hotelpage step
Required
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/prebook
Prebook rate from hotelpage step (B2B, Affiliate) updates the availability of the requested rate. This method attempts to find a comparable or similar rate if the original rate is unavailable. Implementing the Prebook rate from hotelpage step (B2B, Affiliate) method is mandatory, as it enhances the booking success ratio.
The price_increase_percent
(B2B, Affiliate) feature allows ETG to identify the best alternative rate within the price increase range. If this feature is implemented, your clients should be notified of any price changes before proceeding to the booking step.
Please note that you can specify price_increase_percent
and choose from 0 to 100. If that’s the case, you must notify the end user of the price change.
4. Booking step (all endpoints are required)
4.1. Create booking process
Required
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/order/booking/form/
This endpoint is called to create a booking on the ETG end and link that order with the order in your system.
4.2. Start booking process
Required
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/order/booking/finish/
This endpoint is called to start the booking process. During this step, we are sending the booking request to our suppliers and direct hotel partners to make a booking. Hence, the booking status will be in progress
. Consequently, you are required to implement the last endpoint to get the final booking status.
The last endpoint is either the Check booking process (B2B, Affiliate) or Receive booking status webhook (B2B, Affiliate). Please note that you can implement them both, but one of them is required.
4.3. Check booking process
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/order/booking/finish/status/
This endpoint is used to receive the final booking status. One should keep calling this endpoint until the status processing
changes either to ok
or final failure status.
Please note that the status ok
during the Check booking process (B2B, Affiliate) only indicates a successful booking.
4.4 Receive booking status webhook
If you decide to work with the Receive booking status webhook (B2B, Affiliate), ETG will send you the final booking status, and you will be only responsible for correctly responding to our webhooks.
If you would like to work with Receive booking status webhook (B2B, Affiliate), please provide us with a callback URL and indicate that you want to enable it at [email protected].
The detailed logic of how to work with webhooks can be found in Best Practices for API and API documentation.
The differences between “Check booking process” and “Receive booking status webhook” are:
“Check booking process” | “Receive booking status webhook” |
---|---|
To obtain the final status, the partner must perform a series of requests in accordance with Retry logic (B2B, Affiliate). The statuses will either indicate status ok , or include a list of final failure error codes. |
ETG will send the final status right after receiving the booking status from the supplier. These statuses will be either confirmed or failed. |
It will provide the reason for the booking failure. | No specific reason for booking failure will be provided. |
Please also find our Best Practices for API for the integration, which will give more exact recommendations and outline integration expectations.
5. Post-Booking
5.1 Retrieve bookings
Recommended
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/order/info/
This can be used to receive details about a successful booking. However, it should not be initiated immediately after booking completion.
Warning:
It is important to note that:
- This endpoint should not be used to check the final statuses of the bookings. For this purpose, please use: https://api.worldota.net/api/b2b/v3/hotel/order/booking/finish/status/
- We do not change rate details after bookings are made. The details you book are final and will not be subject to unexpected changes.
5.2 Cancel booking
Recommended
Endpoint: https://api.worldota.net/api/b2b/v3/hotel/order/cancel/
This should be used if a booking needs to be canceled.
Certification
Each product requires its independent certification, which can occur simultaneously or sequentially. Completing certification for one product doesn’t guarantee it for another. Each product is treated independently, allowing one product to be launched once certified, even if others are still undergoing the process.
The certification process usually takes 14 to 30 days. It is in written form to allow partners to make necessary changes. Please find the Pre-certification Checklist that will outline our expectations for every step of the integration:
Website Product Certification Requirements:
- Grant access to a test environment where ETG is set up as a supplier, with test hotels mapped, enabling our specialists to conduct searches and bookings.
- Cross-check the integration based on the Pre-certification Checklist and fill out the form.
- If necessary, we will initiate further discussions of separate points to find the best approach in the interest of both parties. As part of these discussions, we may request specific changes to be implemented based on feedback received.
API Product Certification Requirements:
- Provide the API documentation used by your clients for integration.
- Provide logs for bookings created based on your product’s logic, your API request and response, and our API request and response, preferably in JSON format.
- Cross-check the integration based on the Pre-certification Checklist and fill out the form.
- If necessary, we will initiate further discussions of separate points to find the best approach in the interest of both parties. As part of these discussions, we may request that certain changes be implemented based on feedback received.
Mobile Product Certification Requirements:
- Offer a detailed demo video and step-by-step screenshots covering the entire process from search to booking cancellation.
- Provide the installation file to test the website on our mobile devices.
- Cross-check the integration based on the Pre-certification Checklist and fill out the form.
- If necessary, we will initiate further discussions of separate points to find the best approach in the interest of both parties. As part of these discussions, we may request that certain changes be implemented based on feedback received.
Thank you! In case you have any questions or concerns, please feel free to contact us at [email protected].