Rezervácie v systéme

 Url pre volanie API rozhrania

https://DOMENA-WEBU/api/stays/

Overenie spojenia

Pre overenie spojenia sa používa Base HTTP Autentifikácia. Parametre pre prihlásenie (meno a heslo) nastavuje používateľ systému Ellipse v administrácii. Pre produkčné prostredie je potrebné v administrácii povoliť IP adresu pre vzdialený dopyt. Podpora je dostupná na office@horecagroup.sk.

Dostupné izby - roompairs

Povinné parametre: type (roompairs)

https://demo.ellipsecloud.com/api/stays/?type=roompairs

Odpoveď

{
   "86": "201B",
   "44": "202",
   "32": "203",
   "41": "204"...
}

Pole kde kľúč je ID v systéme Ellipse a hodnota je názov izby.

Zoznam aktuálnych rezervácii

Povinné parametre: type (list), date (dátum pre zobrazenie stavu Y-m-d). Ak sa nepoužije date, je možné použiť idfrom(int) a / alebo idto(int). Parametre idfrom a idto predstavuju id rezervácie a umožnia vytváranie zoznamov od(vrátane) - do(vrátane). 
https://demo.ellipsecloud.com/api/stays/?type=list&idfrom=10&idto=20 - rezervacie 10, 11, 12... 20,
https://demo.ellipsecloud.com/api/stays/?type=list&idfrom=10 - rezervácie s id 10 a viac.

Nepovinné parametre:
acmd, 0 alebo nenastavené - vracia len rezervácie so stavom hostia na izbe, 1 - vracia všetky rezervácie bez ohľadu na stav ubytovania 
arrival, arrival=1 v kombinácii s date vráti len rezervácie s dnom príchodu rovným date
Ak v url existuje pri tomto volaní kľúč anonymized, vrátia sa anonimizované údaje bez nutnosti overenia prostredníctvom Basic Auth (...?type=list&date=2023-07-07&acmd=1&anonymized).

https://demo.ellipsecloud.com/api/stays/?type=list&date=2020-05-10

{
    "room": "9",
    "roomname": "209",
    "reservation": "2002407",
    "lang": "sk",
    "name": "Nico",
    "surname": "Wolff",
    "arrival": "2022-12-19",
    "departure": "2022-12-25",
    "a-time": "14:00:00",
    "d-time": "10:00:00",
    "pin": "2259"
}

 

Detail rezervácie – getreservation

GET - povinné parametre: type=(string)getreservation, resid=(integer) - id rezervácie, email=(string) alebo pin=(string). Parameter altid=(integer), pri jeho použití nie je nutné overenie pinom alebo emailom, slúži pre získanie detailu rezervácie aj podla id objednávky z chanel managera (?type=getreservation&altid=2033522577&persons=full).

GET - persons=full - vráti kompletné údaje hosťa
Pri overovaní podľa PIN sa vráti len rezervácia s odchodom dnes alebo v budúcnosti. V pripade ak pole GET obsahuje email aj pin, parameter email je pri overení ignorovaný.

https://demo.ellipsecloud.com/api/stays/?type=getreservation&resid=2000586&pin=2259&persons=full

Odpoveď je pole vo formáte JSON. Token slúži na overenie pri zápise volania roomstatus, persons, card, paybill

{
"resinfo":
   { "id": 2000586,
     "token": "ZTdocCttbHdiZSthTzFWT3RONnppUT09",
     "email": "mknizk.424010@guest.booking.com",
     "name": "Miro Knižka",
     "lang": "sk",
     "statusid": "1",
     "statusname": "Opcia" },
     "rooms":
       [{
          "idroom": "4748",
          "ext_stay_type_id": "46",
          "roomname": "314",
          "arrival": "2022-03-14",
          "departure": "2022-03-19",
          "checkin_time": "14:00",
          "checkout_time": "10:00",
          "clean": "true",          
          "roomstatus" : "waiting",
          "persons":
              [
               { "id": "3904",
                 "name": "Miro",
                 "surname": "Knižka",
                  "services":
                       [
                         { "uid": "5546",
                          "name": "masáž lávovými kameňmi",
                          "ext_id": "4445" },
                           { "uid": "5547",
                          "name": "masáž lávovými kameňmi",
                          "ext_id": "4445" }
                        ]
},
                 { "id": "3905",
                 "name": "Osoba",
                 "surname": "Druhá" ,
                  "services":
                       [
                         { "uid": "5546",
                          "name": "masáž lávovými kameňmi",
                          "ext_id": "4445" },
                           { "uid": "5547",
                          "name": "masáž lávovými kameňmi",
                          "ext_id": "4445" }
                        ]
}
              ]
}]
}

Dostupné stavy rezervácií:
0 => 'waiting' = pred príchodom na pobyt
1 => 'inhouse' = ubytovaný hosť, izba v stave "hostia na izbe"
2 => 'departured' = odubytovaná izba, kedy systém už neumožňuje napr. príjimanie platieb z externých pokladní na hotelový účet izby

Chybové hlášky

{"error":"Not valid email"} – nesprávny formát e-mailovej adresy, email nenájdený
{"error":"No reservation ID"} – nesprávne ID rezervácie
{"error":"No reservation found"} – rezervácia nebola nenájdená

Zmena stavu izby – roomstatus

GET - povinné parametre: type=(string)roomstatus
POST - povinné parametre resid - (integer) id rezervacie, idroom - (integer) id izby v rezervacii, roomstatus - (string) stav izby, hodnoty ('waiting', 'inhouse', 'departured'), token z volania getreservation

https://demo.ellipsecloud.com/api/stays/?type=roomstatus

Úspešný zápis

{ "status": "Success" }

Chybové hlášky:
{"error":"Reservation room not found"}
{"error":"Room status error"}
{"error":"Reservation ID is mandatory"}
{"error":"Room ID is mandatory"}

Aktuálne položky na hotelovom účte – card items

GET - povinné parametre: type=(string)card
POST - povinné parametre resid - (integer) id rezervacie, token z volania getreservation
Volanie vracia len nezúčtované položky. Pre vrátenie kompletného obsahu hoteloveho účtu použite POST ctype=all. 
{"resid": "2004146", "token": "dWVHM1hyVjNScmsxdkN3L2F6WC9BQT09", "ctype": "all"}

https://demo.ellipsecloud.com/api/stays/?type=card

Odpoveď:

{
  "card":
   [{
      "id": "7941",
      "idroom": "43",
      "name": "Ubytovanie",
      "price": 704.55,
      "pricevat": 775,
      "lot": "1"
},
{
      "id": "8196",
      "idroom": "0",
      "name": "Jóga pre pokročilých",
      "price": 41.67,
      "pricevat": 50,
      "lot": "20"
}],
"deposit": 100
}

card - polozky účtu pripravené na úhradu,
deposit - dostupná záloha, ktorá bola predplatená vopred a očakáva sa odpočet vo vyúčtovacom doklade

Chybové hlášky
{"error":"No reservation found"} – rezervácia nebola nenájdená

Vytvorenie fiškálneho dokladu - paybill

GET - povinné parametre: type=(string)paybill
POST - povinné parametre: resid (integer) ID rezervácie, token: (string) overenie z volania getreservation, carditems: (array) id poloziek card z volania card, deposit: (integer) suma pre odpočet záloh z volania card, totalamount: (integer) celkom uhradená suma, paymentid: (integer) identifikátor spôsobu platby 2 - karta, 3 - hotovosť, ekasaid: (string) identifikátor platby v systéme ekasa

Vzor POST volania

{
   "resid":"2000697",
   "token":"YjlGQ3lNdWRuTTdwSDVIY00wbUYwUT09",
   "carditems":[8216,8217],
   "deposit": 80,
   "totalamount": 328.90,
   "paymentid": 2,
   "ekasaid": "O-A51DAE2D046C42729DAEFF046C7-TEST"
}

Odpoveď

{ "status": "Success" }

Chybové hlášky

{"error":"Ekasa ID"} - chýba identifikátor platby z ekasa
{"error":"No reservation found"} - rezervácia sa nenašla
{"error":"One or more items do not match"} - nenašli sa položky hotel card
{"error":"Deposit"} - záloha nie je dostupna v zadanej hodnote
{"error":"Bill not created"} - nepodarilo sa vytvoriť účet v systéme Ellipse
{"error":"Payment not logged"} - nepodarilo sa zaznamenať úhradu účtu v systéme Ellipse

Rozšírenie hľadanie rezervácií s údajmi klientov

Vyhľadávanie v izbách a rezerváciách 1 - 1srchres

Povinné parametre: type (1srchres)

https://demo.ellipsecloud.com/api/stays/?type=1srchres

Dopyt bez POST parametrov vráti zoznam možných hodnôt pre filter

{ "requestparams":
{
"arrival": "Date string Y-m-d",
"departure": "Date string Y-m-d",
"resstatus": [{
  "id": "3",
  "storno": "0",
  "nonbinding": "0",
  "name": "Bez platby vopred" },
{
  "id": "1",
  "storno": "0",
  "nonbinding": "1",
  "name": "Opcia" },
{
  "id": "2",
  "storno": "0",
  "nonbinding": "0", "name": "Uhradené vopred" },
{
  "id": "4",
  "storno": "0",
  "nonbinding": "0",
  "name": "Stáli partneri" },
{
  "id": "5",
  "storno": "0",
  "nonbinding": "0",
  "name": "Virtuálna karta" },
{...},
 "roomstatus": [{
            "id": 0,
            "name": "Not accommodated"
        }, {
            "id": 1,
            "name": "Accomodated"
        }, {
            "id": 2,
            "name": "Checked out"
        }]
}

 

POST parametre: arrival - dátum príchodu (Y-m-d), departure - dátum odchodu (Y-m-d), resstatus - stav rezervácie (number), roomstatus - stav izby (number)

{ "filter":
{ "arrival": "2022-10-24",
"departure": "2022-10-30",
"resstatus": 1
},

"data":
[{
"resid": 1234,
"pin": 4587,
"email": "habakana@test.com",
"name": "Habakana Lumuntis",
"resstatus": "1",
"lang": "sk",
"room": "111",
"roomstatus": "0",
"rez_from": "2022-10-28",
"rez_to": "2022-10-30" },
{...