ibelsaDocumentation
ibelsaAPI
External UI Integrations
---
title: External UI Integrations
author: Florian Klein
created: 2024-04-24T15:51
updated: 2024-05-06T08:12
---
# External UI Integrations (EUIIs)
## Info
**External UI Integrations (EUIIs)** allow API partners to place their own interfaces within the ibelsa application. This is done via iframes.
## Register an EUII
![EUII Register](/bundles/ibelsaroomswhole/images/doc/euii_register.png)
EUIIs are registered per hotel.
Registration takes place via the endpoint [Register EUII](/api/doc#post--api-euii-register).
### Important Parameters
#### location
The location specifies where the external ui integration should be rendered in the ibelsa application.\
Some locations are related to a data record (e.g. reservation, contact). For such locations, the ID associated with the data record is supplied in the payload when the iframe_url is fetched.
##### Currently available locations
| location | description |
| --------------- | ------------------------------------------------------------- |
| **revenue_tab** | New tab under the revenue menu item of the ibelsa application |
If your use case does not fit any of this locations message us at api@ibelsa.com and we will see if we can add a new fitting location.
#### fetch_url
A **fetch_url** is transferred by the API partner during registration. ibelsa uses this fetch_url to fetch the iframe_url via post request if required.
For the expected response structure see [Expected response structure](#expected-response-structure)
**Attention:** As EUIIs are registered per hotel, the fetch_url must also be unique for the hotel (for example by including an hotel identifier as parameter).
#### payload_info
Using the **payload_info** parameter, the API partner decides which information should be sent to the partner via POST parameters when ibelsa calls the fetch_url.
##### Possible payload_info values
| value | description |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LANGUAGE | Current language of the ibelsa application. **Note:** This parameter is always transmitted, even if it is not requested in the payload_info. |
| USER | Mail of the currently logged in user. If a user with this email also exists in your system, you can load the user's preferences for the returning iframe_url, for example. |
| THEME | Current theme of the ibelsa application. Possible values: ["light", "dark"] |
| ACCENT_COLOR | Current accent color of the ibelsa application. Format: hex color with trailing '#' |
#### translations
The translations Parameter needs to be a valid JSON with the following structure:
```JSON
"translations": {
"en": {
"title": "Test UI",
"description": "blablabla"
}
}
```
Here you can enter texts for the External UI Intergation in different languages, which are then displayed in the ibelsa application.
'en' is mandatory! All other languages are optional and will fallback to 'en' if not provided. Language codes need to be in ISO 639 language code format.
These keys are currently supported and mandatory: 'title', 'description'.
#### Other parameters
To see all mandatory parameters take a look at the Endpoint Documentation: [Register EUII](/api/doc#post--api-euii-register)
## Fetching the iframe
![EUII Fetching](/bundles/ibelsaroomswhole/images/doc/euii_fetching.png)
When required, ibelsa retrieves the **iframe_url** from the **fetch_url** via **POST request**.\
In this request, ibelsa also transmits all **requested payload parameters as POST parameters**.
### Expected response structure
The expected response structure of the fetch request is a **JSON** with the **values**: '**iframe_url**' and '**valid_until**'.
Example:
```JSON
{
"iframe_url": "https://linkto.api.partner/iframe123/IDENTIFIER_TOKEN",
"valid_until": "2024-04-15T18:19:21+00:00"
}
```
**iframe_url:** must contain the url we can use in the iframe.\
_Note: Be sure to include a token or another identifier in this url to identify the hotel._
**valid_until:** must contain an **ISO 8601 timestamp** on which the iframe_url expires. ibelsa will then fetch a new iframe_url via the fetch_url if required.\
Important: This timestamp needs to be in the future.
## Related Endpoints
You can also list all your registered EUIIs for a hotel or remove one.
Take a look at the Endpoint Documentation:
* [List EUIIs](/api/doc#get--api-euii-list)
* [Register EUII](/api/doc#post--api-euii-register)
* [Remove EUII](/api/doc#post--api-euii-remove)
Author:
Created:
Updated:
This page was generated from a Markdown file.
Would you like to view the content in your favourite Markdown reader? Raw Markdown
Would you like to view the content in your favourite Markdown reader? Raw Markdown