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"
}
Overenie rezervácie – deň a telefón
GET - povinné parametre: type=(string)resbyphone, date=(Y-m-d) - dátum, phone=(string).
https://demo.ellipsecloud.com/api/stays/?type=resbyphone&date=2024-05-05&phone=+123456789
Odpoveď je pole vo formáte JSON. reservation vráti počet nájdených rezervácií v daný deň podla zhody s phone, persons je počet osôb s použitým phone v rezerváciach aktualnych pre date.
{ "2024-06-05": { "reservation": 1, "persons": null } }
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", "carregnum": "PP123AA",
"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á" , "carregnum": "PP123AA",
"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=1srchresDopyt 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" },
{...