.. meta:: :description: Alien Plugin Wubook :keywords: wubook fount, channel manager Alien Plugin ************ .. toctree:: :maxdepth: 1 The Alien Plugin allows you to create new reservations on the WooDoo systems and change the status of the existing ones. .. warning:: To use this feature, you need to subscribe to WooDoo Online Reception or to WooDoo Whitelabel Standard package How to create a new reservation =============================== We give you the opportunity to interact with WooDoo reservations by simple JSON POST calls. In order to create a new reservation, you're going to have to specify the following *mandatory* parameters. .. warning:: All the POST calls operations are managed via SERVER to SERVER technology: it means that you *have to be under Wubook domain* in order for them to work. - **alien_code**: Ask the Wubook property to give you this code in order for you to manage the Alien Interface (i.e. 994862c403d2111cd586d9ed8c49f4bf). - **dfrom**: Arrival date - **dto**: Departure date - **lcode**: The lodging code given to you by the property. - **rooms**: a data that include {room_id: [room_quantity, board]}. Board can be: *nb* (no board), *bb* (breakfast), *hb* (half board), *fb* (full board) and finally *""* (no board). - **customer**: data containing customer information: *lname* is the last name, *fname* is the first name, email, city, phone, street, country, lang, arrival_hour and notes. The country and lang parameter are the 2-digit country abbreviation, for instance: IT,UK etc, lang defines the voucher translation (eventually sent to customer). - **ccard**: credit card information can be optional, depending on the preferences of the structure. The fields are cc_exp_year, cc_exp_month, cc_type, cc_cvv, cc_owner and cc_number, while CVC code can be optional. To know more about credit cart types, please click `here `_ . - **amount**: The final price of the whole reservation. - **ancillary_data**: optional information you wish to pass along. On the following sentence, you'll find an **example** of the insertion of an Alien reservation: .. note:: This is just an example: it won't work if you try it; please, implement your own server2server call! .. tabs:: .. code-tab:: javascript curl curl 'https://wubook.net/wbkd/alien' -H 'sec-fetch-mode: cors' -H 'sec-fetch-site: cross-site' --data-raw $'{"dfrom":"27/08/2023","dto":"28/08/2023","rooms":{"18":[1,"fb"]},"customer":{"lname":"Blissett","email":"my@email.com","fname":"Luther","city":"Fano","street":"via giammaria 33","country":"IT","lang":"IT","phone":"+3964329779","arrival_hour":"14:00","notes":"some notes\u0021\u0021\u0021"},"ancillary_data":{"Smoking":"Yes","Paid":"60 Euro"},"origin":"My service name","ccard":{"cc_exp_year":"2030","cc_exp_month":"06","cc_type":"2","cc_owner":"WuBook srl","cc_number":"432948329543211","cc_cvv":"321"},"alien_code":"994862c403d2111cd586d9ed7c49f4bf","lcode":1213394817,"amount":"500.00"}' .. code-tab:: javascript fetch('https://wubook.net/wbkd/alien', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', }, body: '{"dfrom":"27/08/2023","dto":"28/08/2023","rooms":{"18":[1,"fb"]},"customer":{"lname":"Blissett","email":"my@email.com","fname":"Luther","city":"Fano","street":"via giammaria 33","country":"IT","lang":"IT","phone":"+3964329779","arrival_hour":"14:00","notes":"some notes!!!"},"ancillary_data":{"Smoking":"Yes","Paid":"60 Euro"},"origin":"My service name","ccard":{"cc_exp_year":"2030","cc_exp_month":"06","cc_type":"2","cc_owner":"WuBook srl","cc_number":"432948329543211","cc_cvv":"321"},"alien_code":"994862c403d2111cd586d9ed7c49f4bf","lcode":1213394817,"amount":"500.00"}' }); .. code-tab:: py import requests headers = { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'x-requested-with': 'XMLHttpRequest', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', } json_data = { 'dfrom': '27/08/2023', 'dto': '28/08/2023', 'rooms': {'18': [1, 'fb']}, 'customer': { 'lname': 'Blissett', 'email': 'my@email.com', 'fname': 'Luther', 'city': 'Fano', 'street': 'via giammaria 33', 'country': 'IT', 'lang': 'IT', 'phone': '+3964329779', 'arrival_hour': '14:00', 'notes': 'some notes!!!'}, 'ancillary_data': { 'Smoking': 'Yes', 'Paid': '60 Euro' }, 'origin': 'My service name', 'ccard': { 'cc_exp_year': '2030', 'cc_exp_month': '06', 'cc_type': '2', 'cc_owner': 'WuBook srl', 'cc_number': '432948329543211', 'cc_cvv': '321' }, 'alien_code': '994862c403d2111cd586d9ed7c49f4bf', 'lcode': 1213394817, 'amount': '500.00' } response = requests.post('https://wubook.net/wbkd/alien', headers=headers, json=json_data) .. code-block:: javascript /*RESPONSE*/ {'rcode': 1649858269, 'error': ''} How to cancel a reservation =========================== .. warning:: Again, all the POST calls operations are managed via SERVER to SERVER technology: it means that you *have to be under Wubook domain* in order for them to work properly. In order to cancel a reservation, you need to specify the following **mandatory** parameters: - **lcode**: the property code given to you by the property. - **alien_code**: Ask the property to give you the code. - **reservation_id**: Wubook reservation identificator. - **origin**: your signature, so that the property knows that the reservation was made by you. - **reason**: an options string containing the reason of cancellation. On the following sentence, you'll find an **example** of the cancellation of an Alien reservation: .. note:: This is just an example: it won't work if you try it; please, implement your own server2server call! .. tabs:: .. code-tab:: javascript curl curl 'https://wubook.net/wbkd/alien' -H 'sec-fetch-mode: cors' -H 'sec-fetch-site: cross-site' --data-raw '{"reservation_id":1649858269,"alien_code":"b4b0292b2d4fe2069eff1c44ab44fa6b","lcode":1213394817,"origin":"My service name","reason":"unknown"}' .. code-tab:: javascript fetch('https://wubook.net/wbkd/alien', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', }, body: '{"reservation_id":1649858269,"alien_code":"b4b0292b2d4fe2069eff1c44ab44fa6b","lcode":1213394817,"origin":"My service name","reason":"unknown"}' }); .. code-tab:: py import requests headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'cross-site', } json_data = {"reservation_id":1649858269, "alien_code":"b4b0292b2d4fe2069eff1c44ab44fa6b", "lcode":1213394817, "origin":"My service name", "reason":"unknown" } response = requests.post('https://wubook.net/wbkd/alien', headers=headers, json=json_data) .. code-block:: javascript /*RESPONSE*/ {'rcode': 1439890642, 'error': ''}