Getting Started

Start using the Alpinebits-Gateway API


  • Created: 5. February, 2024
  • Updated: 5. May, 2026

Authentication

In order to use the API-Endpoint, an authentication is required:

A basic username:password authentication method is implemented throughout the endpoint. The credentials need to be provided for every HTTP-Request in form of a Base64-encoded Authorization-Header.
Please note, that your username has access to one single property.

If you require credentials, feel free to contact our support: [email protected]


Endpoint

Following the endpoint where you can send all your requests to:

https://alpinebits-gateway.ando.cloud/api/v1
The current API-Version is v1.


Request structure

Requests can be sent with the methods GET and POST. Based on the method and the function, some parameters could be additionally sent with the request.

  • In case of a GET request, these parameters have to be sent as query parameters with the url
  • In case of a POST request, the parameters need to be sent in the request-body and in the JSON-Format. In this case the Content-Type Header needs to be set to application/json

Any mandatory or optional parameters are specified in the single function details below.


Response structure

Successful response

Responses are always returned in the JSON-Format.
By default, all successful responses include a JSON-Object payload a success and a data value. The success value determines the result of the response, while the data value represents the actual response-data.
The data value could be either an object or an array, depending on the requested function. Please find more information in the single function below. The HTTP-Code is 200.
This is how a successful response looks like:

{
  "success": true,
  "data": [...]
}


Unsuccessful response

In case of an unsuccessful response, value of the success variable will be false while the data variable will be replaced by the error variable. This value rappresents a short description of the error. Moreover, the response HTTP-Code will be returned accordingly (400, 401, ...).
This is how an unsuccessful response looks like:

{
  "success": false,
  "error": '...'
}
Different error messages are returned according to the requested function. All possible error messages are described below.


Functions

Interact with the Alpinebits-Gateway API


syncRoomCapacity GET

This request returns the current inventory (number of rooms) for every roomcategory in the system.

Parameter Mandatory / Optional Description Format
from optional The start date to apply the filter on (included) YYYY-MM-DD
until optional The end date (included) to apply the filter on YYYY-MM-DD
categories optional A comma separated list of categorycodes to be included in the query String,String,...

Succesful request example

GET https://alpinebits-gateway.ando.cloud/api/v1/syncRoomCapacity?from=2024-02-01&until=2024-02-10&categories=EZ,DZ

HTTP/1.1 200
Content-Type: "application-json; charset=utf-8"
{
  "success": true,
  "data": [
    {
      "day": "2024-02-01",
      "asa_roomcat_code": "EZ",
      "effective_capacity": "3",
      "category_roomcount": "1",
      "category_occupancyrate": "0.00",
      "total_occupancyrate": "50.00"
    },
    {
      "day": "2024-02-01",
      "asa_roomcat_code": "DZ",
      "effective_capacity": "1",
      "category_roomcount": "3",
      "category_occupancyrate": "66.67",
      "total_occupancyrate": "50.00"
    },
    ...
  ]
}

If no start or until date is provided, the default timespan is 30 days starting from today.
Please also note, that for every single combination of day and asa_roomcat_code, a single row will be returned.


syncRate GET

This request returns the roomprices for every category and rateplan in the system.

Parameter Mandatory / Optional Description Format
from optional The start date to apply the filter on (included) YYYY-MM-DD
until optional The end date (included) to apply the filter on YYYY-MM-DD
categories optional A comma separated list of categorycodes to be included in the query String,String,...
rateplans optional A comma separated list of rateplans to be included in the query String,String,...

Succesful request example

GET https://alpinebits-gateway.ando.cloud/api/v1/syncRate?from=2024-02-01&until=2024-02-10&categories=EZ,DZ&rateplans=STD_BB
	
HTTP/1.1 200
Content-Type: "application-json; charset=utf-8"
{
  "success": true,
  "data": [
    {
      "day": "2024-02-01",
      "rate": 80,
      "asa_roomcat_code": "EZ",
      "asa_rate_code": "STD_BB",
      "room_type": "EZ",
      "change_datetime": "2024-01-28T10:28:02.048Z"
    },
    {
      "day": "2024-02-01",
      "rate": 110,
      "asa_roomcat_code": "DZ",
      "asa_rate_code": "STD_BB",
      "room_type": "EZ",
      "change_datetime": "2024-01-28T10:28:02.029Z"
    },
    ...
  ]
}

If no start or until date is provided, the default timespan is 30 days starting from today.
Please also note, that for every single combination of day, asa_roomcat_code, asa_rate_code and room_type, a single row will be returned.

It is very important to notice, that the value 0 has to be interpreted as not available. The value 0 does not mean that the cost is free.


syncAvailability GET

This request returns the status of a single roomcategory for every single day.

Parameter Mandatory / Optional Description Format
from optional The start date to apply the filter on (included) YYYY-MM-DD
until optional The end date (included) to apply the filter on YYYY-MM-DD
categories optional A comma separated list of categorycodes to be included in the query String,String,...
rateplans optional A comma separated list of rateplans to be included in the query String,String,...

Succesful request example

GET https://alpinebits-gateway.ando.cloud/api/v1/syncAvailability?from=2024-02-01&until=2024-02-10&categories=EZ,DZ&rateplans=STD_BB
	
HTTP/1.1 200
Content-Type: "application-json; charset=utf-8"
{
  "success": true,
  "data": [
    {
      "day": "2024-02-01",
      "asa_roomcat_code": "DZ",
      "asa_rate_code": "2TAGE",
      "availability_id": 1,
      "change_datetime": "2024-02-06T10:23:29.886Z"
    },
    {
      "day": "2024-02-01",
      "asa_roomcat_code": "DZ",
      "asa_rate_code": "STD_BB",
      "availability_id": 1,
      "change_datetime": "2024-02-06T10:23:29.717Z"
    },
    {
      "day": "2024-02-01",
      "asa_roomcat_code": "EZ",
      "asa_rate_code": "2TAGE",
      "availability_id": 1,
      "change_datetime": "2024-02-06T10:23:29.871Z"
    },
    {
      "day": "2024-02-01",
      "asa_roomcat_code": "EZ",
      "asa_rate_code": "STD_BB",
      "availability_id": 1,
      "change_datetime": "2024-02-06T10:23:29.693Z"
    },
    ...
  ]
}

If no start or until date is provided, the default timespan is 30 days starting from today.
Please also note, that for every single combination of day, asa_roomcat_code and asa_rate_code, a single row will be returned.


sendReservation POST

Use this request to send a new reservation through the system.

Parameter Mandatory / Optional Description Format
status mandatory The current status / type of the reservation (request or reservation) Either 'reservation' or 'request'
externalid optional The own id to be attached to this request / reservation. If not provided, an internal id will be used instead. [^A-Za-z0-9] - All other characters will be removed
from mandatory The start (checkin) date for the reservation YYYY-MM-DD
until mandatory The end (checkout) date for the reservation YYYY-MM-DD
guest mandatory An object containing primary guest's information Object {}
- language optional The guest's main language Valid ISO 639 2-letter language code ("de", "en", "it", ...)
- title optional The guest's salutation (Anrede). Example: Mr. / Ms., Family, ... String
- nametitle optional The guest's title (Titel). Example: Dr. String
- firstname optional The guest's first name String
- lastname mandatory The guest's last name String
- gender optional The guest's gender (if specified) String("m", "f")
- birthdate optional The guest's birthdate YYYY-MM-DD
- address optional The guest's address String
- city optional The guest's city String
- zipcode optional The guest's city String
- country optional The guest's country Valid ISO 3166 2-letter country code ("de", "gb", "fr", ...)
- telephone optional The guest's main telephone number String
- email optional The guest's main email address contact String
- newsletter optional Indicates weather the guest would like to subscribe to the newsletter. This value is parsed only if an email address is provided as well (see email above). Boolean
rooms mandatory Array containing the booked / requested rooms Array [Object, Object, ...]
- category optional / mandatory The selected categorycode for the room. Optional if status is request. Mandatory if status is reservation String
- rateplan optional The selected rateplan for the room String
- total optional The total only for the selected room and for the entire stay, including fees and taxes. Decimals separated by a dot (.). This value is will be considered only if the rateplan is sent too. Float
- occupants mandatory Object containing information about the occupants Object
adults optional / mandatory The number of adults in the room (aged 18+). Can be 0 if children > 0 Integer
children optional / mandatory Array containing the ages of the children in the room (can be empty if adults > 0) Array [Integer, Integer, ...]
comment optional Comment attached to the reservation String
deposits optional Array of objects containing deposits, that can be used to indicate weather a specific (partial or full) amount has been already paid upfront by the guest. Array [Object, Object, ...]
- type mandatory The type of the paid deposit. Values can be either card (for online or card payments) or banktransfer (for payments over bank wire) String("card", "banktransfer")
- amount mandatory The amount that has been paid. Value must be positive (> 0). Decimals separated by a dot (.) Float
services optional Array of services, which are booked together with the rooms Array [Object, Object, ...]
- type mandatory The type of the service. Value can be one of the following:

Type Type in ASA
food "Extra"
beverage
activity
transport
other
board "Leistung" (Service)
touristtax
supplement
spa "Spa-Anwendung" (Spa-Treatment)
String("activity", "spa", "food", "beverage", "board", "supplement", "touristtax", "transport", "other")
Please note the following remarks
  • In order for the service to be booked in the PMS ASA, the corresponding code for "Extra", "Leistung" or "Spa-Anwendung" needs to exist
  • When combining an "Extra"-Service with pricing "per_night" or "per_person_per_night" and the number of nights corresponds with the quantity, then ASA charges the costs "per day"
- code mandatory The reference code of the item booked on the PMS String
- pricing mandatory Indicates how a service is priced in relation to the quantity. Value can be one of the following:
  • per_stay
  • per_person
  • per_night
  • per_person_per_night
  • per_use
String("per_stay", "per_person", "per_night", "per_person_per_night", "per_use")
- quantity mandatory Indicates the quantity of the booked services. Also serves as the number of persons/nights when pricing is set per person or per person per night. Value must be >= 1 Integer
- inclusive mandatory Indicates weather the service is already included in the room rate Boolean
- total mandatory This value represents the total cost for the service (already multiplied by quantity). Value must be >= 0. Decimals separated by a dot (.) Float
- description mandatory The description for this servicebooking String
utm_source optional Code that specifies the source of the request/reservation (ex. google.com, newsletter, ...). ASA equivalent: Werbepartner String
utm_medium optional Code that specifies the used medium for booking (ex. cpc, email, referral). ASA equivalent: Werbemedium String
utm_campaign optional Code that specifies the Marketing Campaign (es. Newsletter April German Guests). ASA equivalent: Werbekampagne String
total optional The grand total of the reservation, including fees, taxes and supplements. Decimals separated by a dot (.) Float
forceavailability optional If true, the verification of room and rate availability will be entirely skipped and the booking will be forced regardless. Be careful, as this could lead to overbookings. If false, the booking will be accepted only if room and rate availability is given. Boolean (default false)

Succesful request example

POST https://alpinebits-gateway.ando.cloud/api/v1/sendReservation
Content-Type: "application-json; charset=utf-8"

Body:
{
  "status": "reservation",
  "externalid": "BOOK2413",
  "from": "2024-02-01",
  "until": "2024-02-03",
  "guest": {
    "language": "de",
    "firstname": "Max",
    "lastname": "Mustermann",
    "gender": "m",
    "birthdate": "1980-06-15",
    "address": "Landesstraße 14",
    "city": "München",
    "zipcode": "80538",
    "country": "de",
    "telephone": "+390123444555",
    "email": "[email protected]"
  },
  "rooms": [{
    "category": "SUITE",
    "rateplan": "STD_BB",
    "occupants": {
      "adults": 2,
      "children": [7]
    },
    "total": 580.00
  }],
  "comment": "A room with a nice view please.",
  "deposits": [{
    "type": "card",
    "amount": 120.00
  }],
  "services": [{
    "type": "beverage",
    "code": "COLA",
    "pricing": "per_use",
    "quantity": 1,
    "inclusive": false,
    "total": "3.50",
    "description": "Coca Cola"
  }],
  "utm_source": "google.com",
  "utm_medium": "referral",
  "utm_campaign": "Newsletter April",
  "total": 580.00,
	"forceavailability": "false"
}


HTTP/1.1 200
Content-Type: "application-json; charset=utf-8"
{
  "success": true,
  "data": {
    "id": "114",
    "externalid": "BOOK2413"
  }
}

In case of successful response, the (internal) id and the external id of the reservation (if provided) are returned.


sendRequestForm POST

Use this request to send a new booking request through a HTML Form on your website. Please note that no authentication is required for this request.
The expected Content-Type for this request can be either application/json or application/x-www-form-urlencoded (ideal for direct embedding in own website).

Parameter Mandatory / Optional Description Format
propertykey mandatory The propertykey provided by us. This value must be present. String
externalid optional The own id to be attached to this request / reservation. If not provided, an internal id will be used instead. [^A-Za-z0-9] - All other characters will be removed
from mandatory The start (checkin) date for the reservation YYYY-MM-DD
until mandatory The end (checkout) date for the reservation YYYY-MM-DD
guest_language optional The guest's main language Valid ISO 639 2-letter language code ("de", "en", "it", ...)
guest_title optional The guest's salutation (Anrede). Example: Mr. / Ms., Family, ... String
guest_nametitle optional The guest's title (Titel). Example: Dr. String
guest_firstname optional The guest's first name String
guest_lastname mandatory The guest's last name String
guest_gender optional The guest's gender (if specified) String("m", "f")
guest_birthdate optional The guest's birthdate YYYY-MM-DD
guest_address optional The guest's address String
guest_city optional The guest's city String
guest_zipcode optional The guest's city String
guest_country optional The guest's country Valid ISO 3166 2-letter country code ("de", "gb", "fr", ...)
guest_telephone optional The guest's main telephone number String
guest_email optional The guest's main email address contact String
guest_newsletter optional Indicates weather the guest would like to subscribe to the newsletter. This value is parsed only if an email address is provided as well (see guest_email above). Boolean

The following fields can be dynamically added based on how many rooms the guest is requesting. The variable R represents the number of room in the request and the variable C the number of the child in the room R. Replace R and C with the number of rooms and children in your form.

room_R_category optional The selected categorycode for the room String
room_R_rateplan optional The selected rateplan for the room R String
room_R_mealplan optional The selected mealplan (treatment) for the room R. If a rateplan is provided, this value will be ignored and the associated mealplancode of the rateplan will be used instead. One of the following:
  • RO - Room only
  • BB - Bed and Breakfast
  • HB - Halfboard
  • FB - Fullboard
  • AI - All inclusive
room_R_total optional The total only for the selected room R and for the entire stay, including fees and taxes. Decimals separated by a dot (.). This value is will be considered only if the rateplan is sent too. Float
room_R_adults optional / mandatory The number of adults in the room R (aged 18+). Can be 0 if children > 0 Integer
room_R_child_C_age optional / mandatory The age of the child C in room R (can be empty if adults > 0) Integer

Please note that the number of rooms (R) and the number of children (C) in each room must always start at 1. There is no max. limit for rooms and children as long as they are counted incrementally.

comment optional Comment attached to the reservation String
utm_source optional Code that specifies the source of the request/reservation (ex. google.com, newsletter, ...). ASA equivalent: Werbepartner String
utm_medium optional Code that specifies the used medium for booking (ex. cpc, email, referral). ASA equivalent: Werbemedium String
utm_campaign optional Code that specifies the Marketing Campaign (es. Newsletter April German Guests). ASA equivalent: Werbekampagne String
total optional The grand total of the reservation, including fees, taxes and supplements. Decimals separated by a dot (.) Float

Succesful request example

POST https://alpinebits-gateway.ando.cloud/api/v1/sendRequestForm
Content-Type: "application/x-www-form-urlencoded; charset=utf-8"

Form data:
"propertykey": "abc123"
"externalid": "BOOK2413"
"from": "2024-02-01"
"until": "2024-02-03"
"guest_language": "de"
"guest_firstname": "Max"
"guest_lastname": "Mustermann"
"guest_gender": "m"
"guest_birthdate": "1980-06-15"
"guest_address": "Landesstraße 14"
"guest_city": "München"
"guest_zipcode": "80538"
"guest_country": "de"
"guest_telephone": "+390123444555"
"guest_email": "[email protected]"
"room_1_category": "SUITE"
"room_1_rateplan": "STD_BB"
"room_1_total": 580.00
"room_1_adults": 2
"room_1_child_1_age": 7
"room_1_child_2_age": 4
"comment": "A room with a nice view please."
"utm_source": "google.com"
"utm_medium": "referral"
"utm_campaign": "Newsletter April"
"total": 580.00


HTTP/1.1 200
Content-Type: "application-json; charset=utf-8"
{
  "success": true,
  "data": {
    "id": "114",
    "externalid": "BOOK2413"
  }
}

In case of successful response, the (internal) id and the external id of the reservation (if provided) are returned.


getAvailability GET

Use this request to retreive availability and rates for specific dates.

Query parameters

Parameter Mandatory / Optional Description Format
room_R_from mandatory The start (checkin) date for the requested stay for the room R YYYY-MM-DD
room_R_until mandatory The end (checkout) date for the requested stay for the room R YYYY-MM-DD
room_R_adults optional The number of adults in the room R (aged 18+) Integer
room_R_child_C_age optional The age of the child C in room R (aged 0-17; can be empty if adults > 0) Integer

Response

Object Description Format
requestedrooms Array containing the requested rooms Array of objects
- roomid The id of the requested room Integer
- from The checkin date for the requested room YYYY-MM-DD
- until The checkout date for the requested room YYYY-MM-DD
- adults The amount of adults in the requested room Integer
- children Array containing the ages of the children in the requested room Array of integers
# categories Array containing all the available categories in the requested timespan Array of objects
- categorycode The code of the category String
- minoccupancy The minimum occupancy of the room Integer
- maxoccupancy The maximum occupancy of the room Integer
# availablebycount Object containing availabilities based on the free-rooms-by-category method Object
- availablecount The amount of free rooms without considering room changes Integer
# availablerateplans The available rateplans for this category Array
- rateplancode The rateplancode String
- mealplancode The mealplancode One of the following:
  • RO - Room only
  • BB - Bed and Breakfast
  • HB - Halfboard
  • FB - Fullboard
  • AI - All inclusive
- total The total computed cost for this room for all occupants Float
# dailyrates A daily breakdown of the rates String
- date The date YYYY-MM-DD
- rate The applied rate for the date Float
# availablethroughout Object containing availabilities based on the throughout-available-rooms method Object
# availablerooms Array containing the single roomcodes available throughout the requested stay Array
- roomcode The roomcode of the specific room String
# availablerateplans The available rateplans for this category Array
- rateplancode The rateplancode String
- mealplancode The mealplancode One of the following:
  • RO - Room only
  • BB - Bed and Breakfast
  • HB - Halfboard
  • FB - Fullboard
  • AI - All inclusive
- total The total computed cost for this room for all occupants Float
# dailyrates A daily breakdown of the rates String
- date The date YYYY-MM-DD
- rate The applied rate for the date Float

Succesful request example

GET https://alpinebits-gateway.ando.cloud/api/v1/getAvailability?room_1_from=2024-05-10&room_1_until=2024-05-12&room_1_adults=2

HTTP/1.1 200
Content-Type: "application-json; charset=utf-8"
{
  "success": true,
  "data": {
    "requestedrooms": [{
      "roomid": 1,
      "from": "2024-05-10",
      "until": "2024-05-12",
      "adults": 2,
      "children": [],
      "categories": [{
        "categorycode": "DZ",
        "categorytitle_de": "Doppelzimmer",
        "categorytitle_it": "Camera doppia",
        "categorytitle_en": "Double Room",
        "minoccupancy": 1,
        "maxoccupancy": 3,
        "availablebycount": {
          "availablecount": 2,
          "availablerateplans": [{
            "rateplancode": "STD_BB",
            "rateplantitle_de": "Standard Rate",
            "rateplantitle_en": "Standard Rate",
            "rateplantitle_it": "Standard Rate",
            "mealplancode": "BB",
            "total": 220,
            "dailyrates": [{
              "date": "2024-05-10",
              "rate": 110
            }, {
              "date": "2024-05-11",
              "rate": 110
            }]
          }]
        },
        "availablethroughout": {
          "availablerooms": [{
            "roomcode": "208"
          }],
          "availablerateplans": [{
            "rateplancode": "STD_BB",
            "rateplantitle_de": "Standard Rate",
            "rateplantitle_en": "Standard Rate",
            "rateplantitle_it": "Standard Rate",
            "mealplancode": "BB",
            "total": 220,
            "dailyrates": [{
              "date": "2024-05-10",
              "rate": 110
            }, {
              "date": "2024-05-11",
              "rate": 110
            }]
          }]
        }
      }]
    }]
  }
}

Please note that all returned rates include taxes; The city tax is not included.