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)

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

[{
   "room": "39",
   "reservation": "1311",
   "lang": "sk",
   "name": "Peter Sveter"
}]

Detail rezervácie – getreservation

GET - povinné parametre: type=(string)getreservation
POST - povinné parametre: resid=(integer) - id rezervácie, email=(string) email

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

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",
          "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" },
               { "id": "3905",
                 "name": "",
                 "surname": "" }
              ]
}]
}

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

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 sisté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