Veřejné REST API restauračního systému Profirest. Smlouva 26.11.28 (13. 11. 2026), 217 operací v 25 oblastech. Adresa API: https://api.mujprofirest.cz/v2.
Profirest API v2 propojuje e-shopy, zařízení a partnerské systémy s restauracemi, které používají Profirest.
EET 2.0 eviduje Profirest – vaše aplikace tržby neeviduje. Každou tržbu, která jde přes Profirest (objednávku vaší aplikace, účtenku pokladny), zaeviduje do EET 2.0 (elektronická evidence tržeb od 1. 1. 2027) server Profirestu: podepíše ji certifikátem provozovny a odešle, když zákazník zaplatí na místě – hotově nebo kartou kurýrovi či při odběru, v okamžiku předání. Platby přes internet (online) se neevidují. Vaše aplikace finanční správě nic neposílá a certifikát nepotřebuje. Jen když tržbu už zaevidoval sám jiný systém provozovny (její vlastní pokladna nebo kiosek), pošlete…
Dál: co API umí (přehled) · návody krok za krokem · playground · katalog chyb · changelog · openapi.json · celá reference v Markdownu · žádost o přístup
lodging_desk:*, na zařízení přihlášený zaměstnanec s rolí reception): pokoje, plán obsazenosti, pobyty s hosty a jejich doklady. (27)Profirest-Staff-Token se zaměstnanec zapíše jako ten, kdo úkol udělal nebo závadu nahlásil.… (6)checkInDevice), chyby hlásí hned (reportDeviceError) a log si drží u… (8)Kořen API a aktuální připojení.
/ – Kořen APIVerze API a odkazy na související zdroje. Nepotřebuje token.
Přihlášení: bez přihlášení
/app-versions – Nejnovější verze aplikací ProfirestuNejnovější vydaná verze každé vlastní aplikace Profirestu, ostrá a beta zvlášť, s odkazem ke stažení a seznamem změn – aby aplikace mohla nabídnout aktualizaci, i když ještě není spárovaná. critical znamená, že starší verzi už nemá používat. Nepotřebuje token; smí se 5 minut držet v mezipaměti.
Přihlášení: bez přihlášení
/connection – Aktuální připojeníKe kterému účtu, provozovnám a oprávněním access token patří a jaká nastavení k němu zvolil majitel.
Přihlášení: oauth2
/devices/current/legacy-identity – Vyzvednout identitu API v1 zařízeníJen vlastní aplikace Profirestu pro pokladnu, kuchyňský displej a kurýra. Zařízení spárované rovnou na API v2 dostane záložní identitu API v1, aby se při vrácení provozovny (Profirest-Api-Target: v1, nebo když API v2 neodpovídá) vrátilo na API v1 bez nového párování. Zavolejte jednou po spárování, nebo při startu…
Přihlášení: oauth2
Připojení klienta k účtu („Připojit přes Profirest“).
/oauth/authorize – Zahájit připojení (v prohlížeči)Sem přesměrujte prohlížeč majitele restaurace. Majitel se přihlásí do Profirestu (včetně dvoufázového ověření), vybere provozovny a potvrdí oprávnění. Profirest pak přesměruje zpět na redirect_uri s parametry code, state a iss (RFC 9207), nebo s error, state a iss. Ověřte, že iss je…
Přihlášení: bez přihlášení
/oauth/device_authorization – Zahájit párování zařízeníPárování zařízení bez pohodlného prohlížeče podle RFC 8628: pokladna, kuchyňský displej, píchačka nebo telefon kurýra. Jen aplikace, kterým to Profirest povolil (naše vlastní aplikace).
Přihlášení: clientBasic nebo bez přihlášení
/oauth/token – Získat nebo obnovit tokenyVýměna autorizačního kódu za tokeny, nebo refresh tokenu za nové tokeny. Důvěrný klient se ověří přes HTTP Basic (client_secret_basic) nebo parametry client_id a client_secret v těle (client_secret_post). Veřejný klient pošle jen client_id a spoléhá na PKCE. Neznámé parametry se ignorují (RFC 6749).
Přihlášení: clientBasic nebo bez přihlášení
/oauth/revoke – Zneplatnit tokenZneplatní access nebo refresh token (RFC 7009). Zneplatnění refresh tokenu ukončí jeho řadu tokenů – všechny access a refresh tokeny, které pocházejí ze stejného povolení nebo ze stejného spárování zařízení; ostatní řady tokenů připojení fungují dál. Patří-li řada spárovanému zařízení, zařízení se navíc odpáruje a…
Přihlášení: clientBasic nebo bez přihlášení
/.well-known/oauth-authorization-server – Metadata OAuth serveruMetadata podle RFC 8414 pro OAuth knihovny, které si endpointy zjišťují samy.
Přihlášení: bez přihlášení
Provozovny připojení, jejich otevírací doba, příjem objednávek, rozvozové zóny a časy, na které lze objednat. Otevírací doba říká, kdy má provozovna otevřeno (ukazujte ji hostům); příjem objednávek, kdy se přijímají objednávky aplikací web (e-shopů) – rozvoz i osobní odběr. Výchozí je obojí stejné.
/restaurants – Provozovny připojeníProvozovny, ke kterým vám majitel povolil přístup.
Přihlášení: oauth2, oprávnění restaurants:read
/restaurants/{restaurant_id} – Detail provozovnyKontaktní údaje, časová zóna, měna a co provozovna právě teď přijímá. ordering se počítá v okamžiku požadavku; načtěte ho znovu v ordering.next_change_at nebo při restaurant.changed.
Přihlášení: oauth2, oprávnění restaurants:read
/restaurants/{restaurant_id}/opening-hours – Otevírací dobaSkutečná otevírací doba po dnech pro zadané období, spočítaná Profirestem, a k tomu týdenní šablona pro zobrazení. Používejte days, ne vlastní výpočet: budoucí výjimky (svátky) se tam objeví bez jakékoli změny na vaší straně.
Přihlášení: oauth2, oprávnění restaurants:read
/restaurants/{restaurant_id}/opening-hours – Nastavit týdenní otevírací dobuNahradí běžný týden provozovny – stejně jako uložení Nastavení → Otevírací doba v administraci. E-shop, aplikace (objednávání, časy) i administrace novou dobu použijí hned a přijde událost restaurant.changed. Pošlete všech 7 dní; den bez intervalů je zavřeno. Intervaly dne jdou po sobě bez překryvu (oba konce jsou…
Přihlášení: oauth2, oprávnění opening_hours:write
/restaurants/{restaurant_id}/order-hours – Příjem objednávekKdy provozovna přijímá objednávky aplikací web (e-shopů) – rozvoz i osobní odběr, „co nejdřív“ i na pozdější čas – po dnech pro zadané období, a k tomu týdenní šablona pro zobrazení. Provozovna je nastavuje v administraci (Nastavení → Otevírací doba); výchozí je stejně jako otevírací doba (same_as_opening_hours).…
Přihlášení: oauth2, oprávnění restaurants:read
/restaurants/{restaurant_id}/delivery-zones – Rozvozové zónyOblasti, kam provozovna rozváží, s cenou dopravy, minimální objednávkou a časy rozvozu. Jen pro zobrazení a našeptávání adres: zónu objednávky vždy určí Profirest v kalkulaci. Když adresa leží ve více zónách, vyhraje ta s nejnižší minimální objednávkou, potom ta s nejnižší cenou dopravy. Zóna si při uložení zón v…
Přihlášení: oauth2, oprávnění restaurants:read
/restaurants/{restaurant_id}/time-slots – Časy, na které lze objednatZda lze právě teď objednat „co nejdřív“ a které časy lze zvolit pro zadaný den. Počítá Profirest z příjmu objednávek (getOrderHours), časů rozvozu, předstihu a nástupu kurýrů. Objednávky na pozdější čas se přijímají jen v době, kdy provozovna přijímá objednávky. Nabízejte jen tyto časy; kalkulace je ověří znovu.
Přihlášení: oauth2, oprávnění restaurants:read
/restaurants/{restaurant_id}/accounting-export – Účetní export pro Pohodu nebo MoneyÚčetní soubor pro jednu provozovnu a nejvýš 31 dní: receipts (účtenky) nebo invoices (faktury) objednávek dokončených v období (bez smazaných; karta při převzetí se počítá jako karta), nebo summary (souhrny uzávěrek). Pohoda: XML podle aktuální POHODY, jen zaplacené účtenky (ne kuchyňské bony otevřených stolů)…
Přihlášení: oauth2, oprávnění accounting:read
/restaurants/{restaurant_id}/shift-closes – UzávěrkyUzávěrky provozovny ze všech zdrojů – pokladny na API v1 i v2, webový kuchyňský displej, kuchyňské displeje a kuchyně přes toto API – od nejnovější, se součty, jaké ukazuje detail uzávěrky v administraci. source podle objednávek uzávěrky říká, odkud přišla. Částky jsou v databázi uložené s omezenou přesností; tady…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/shift-closes/{close_id} – Jedna uzávěrkaJedna uzávěrka se součty. Administrace může objednávky uzavřené směny později změnit (platbu, storno), takže se součty mohou změnit také – poznáte to podle ETag.
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/reports/sales-summary – Souhrn tržebTržba, počet objednávek, průměrná objednávka a spropitné za zadané dny a k tomu jeden rozpad (group_by). Objednávky tak, jak je počítají Statistiky v administraci: nesmazané, uzavřené (finished) v zadaných dnech, bez bonů otevřených stolů; tržba je celková částka objednávky i s dopravou – stejná čísla, jaká…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/reports/product-sales – Prodej položekProdané kusy a tržba po produktech, kategoriích, sortimentech nebo výrobních stanovištích, jako „Výkonnost produktů“ ve Statistikách administrace. Objednávky tak, jak je počítají Statistiky v administraci: nesmazané, uzavřené (finished) v zadaných dnech, bez bonů otevřených stolů; tržba je celková částka objednávky…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/reports/tips – SpropitnéSpropitné za zadané dny podle způsobu platby, podle zaměstnance, který objednávku uzavřel, a podle kurýra, jako Statistiky → Spropitné v administraci. Objednávky tak, jak je počítají Statistiky v administraci: nesmazané, uzavřené (finished) v zadaných dnech, bez bonů otevřených stolů; tržba je celková částka…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/reports/charges – PoplatkyKolik objednávek mělo dopravu, doplatek do minimální objednávky a expresní doručení a kolik vynesly, jako poplatky ve Statistikách administrace – ze všech zdrojů (pokladny, e-shop, kuchyňský displej, aplikace). Objednávky tak, jak je počítají Statistiky v administraci: nesmazané, uzavřené (finished) v zadaných…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/reports/vat – Rozpis DPHDPH po sazbách za zadané dny jako daňový přehled ve Statistikách administrace, spočítané stejně jako kopie účtenky a účetní exporty: sleva na celý účet, doprava a úprava ceny se dělí do sazeb poměrem hrubých částek položek, zaokrouhlení do DPH nevstupuje. Objednávky tak, jak je počítají Statistiky v administraci…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/sales – Doklady prodejeDoklady prodeje provozovny ze všech zdrojů – pokladny na API v1 i v2, web, kuchyň a rozvozové platformy – od nejstaršího podle času uzavření, takže si je účetní nebo BI systém může stahovat den po dni. Stejné objednávky jako Statistiky v administraci (nesmazané, bez bonů otevřených stolů). Částky, rozpis DPH, slevy…
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/sales/{sale_id} – Jeden doklad prodejeJeden doklad. Administrace může doklad později změnit (způsob platby, storno, uzávěrka), takže se může změnit – poznáte to podle ETag.
Přihlášení: oauth2, oprávnění reports:read
/restaurants/{restaurant_id}/cash-book – Pokladní knihaPokladní kniha provozovny za zadané dny tak, jak ji ukazuje Statistiky → Pokladní kniha v administraci: hotovost na začátku a na konci každého dne i teď, hotovost za účtenky a dýško v hotovosti za den (počítá se z objednávek placených hotově – karta při převzetí ne, bon do kuchyně před zaplacením ne) a ručně zapsané…
Přihlášení: oauth2, oprávnění reports:read
Kategorie, produkty, ceny a dostupnost jedné provozovny.
/restaurants/{restaurant_id}/catalog – Sortiment provozovnyVše, co provozovna prodává online v okamžiku at: kategorie, produkty s cenami této provozovny, přílohy a doplňky, alergeny a denní menu toho dne. Ceny jsou konečné včetně DPH.
Přihlášení: oauth2, oprávnění catalog:read
/restaurants/{restaurant_id}/availability – Zbývající porceProdukty s omezeným počtem porcí a kolik jich teď zbývá. Produkty, které tu nejsou, omezené nejsou. Mění se často, proto je oddělená od sortimentu; načtěte ji znovu při availability.changed. Každá příloha nebo doplněk spotřebuje také jednu porci svého produktu. Aplikace personálu vidí porce i tehdy, když je…
Přihlášení: oauth2, oprávnění catalog:read
/restaurants/{restaurant_id}/availability/{product_id} – Nastavit zbývající porce produktuNastaví, kolik porcí produktu zbývá; 0 ho označí jako vyprodaný a null omezení zruší. Číslo se zapíše tam, odkud prodej porce bere: do dnešního denního menu, když v něm produkt je s omezenými porcemi, jinak do porcí produktu v provozovně – stejné číslo jako v administraci. null zruší omezení i v dnešním denním…
Přihlášení: oauth2, oprávnění availability:write
/restaurants/{restaurant_id}/promotions – Akce a slevové kódyAkce provozovny platné v okamžiku at pro objednávky z aplikací hostů – abyste je mohli ukázat zákazníkům (třeba „Doprava zdarma nad 500 Kč“). Nastavuje je provozovna v administraci. Akce bez kódu se v kalkulaci uplatní sama; u akce s requires_code zákazník zadá kód a vy ho pošlete v QuoteRequest.promo_codes.…
Přihlášení: oauth2, oprávnění catalog:read
/restaurants/{restaurant_id}/daily-menu – Denní menu na týdenDenní menu jednoho týdne, jak ho provozovna nastavila v administraci – třeba pro web restaurace. Pro každý den, kdy se podává, dostanete jeho položky s cenami menu; položky, ceny, alergeny i viditelnost jsou stejné jako v sortimentu toho dne v čase menu (GET …/catalog?at=). Dny bez menu chybí, enabled: false…
Přihlášení: oauth2, oprávnění catalog:read
Kalkulace a objednávky, které jdou do kuchyňského displeje.
/restaurants/{restaurant_id}/quotes – Spočítat košíkProfirest spočítá košík s cenami platnými v čase objednávky, najde rozvozovou zónu, přidá cenu dopravy, doplatek do minimální objednávky zóny a na přání expresní doručení (fulfillment.speed), uplatní akce provozovny a slevový kód (discounts), vouchery a ověří čas. Ceny jsou zaručené do expires_at (15 minut).…
Přihlášení: oauth2, oprávnění orders:write
/restaurants/{restaurant_id}/quotes/{quote_id} – Detail kalkulaceKalkulace vytvořená vaším připojením, i po vypršení (drží se 24 hodin).
Přihlášení: oauth2, oprávnění orders:write
/restaurants/{restaurant_id}/orders – Objednávky tohoto připojeníObjednávky, které vaše připojení vytvořilo na této provozovně, od nejnovější.
Přihlášení: oauth2, oprávnění orders:read
/restaurants/{restaurant_id}/orders – Vytvořit objednávkuVytvoří objednávku z platné kalkulace s jejími cenami. Porce a vouchery se rezervují ve stejné transakci; když něco došlo nebo voucher už nelze použít, dostanete chybu a nic nevznikne.
Přihlášení: oauth2, oprávnění orders:write
/restaurants/{restaurant_id}/orders/{order_id} – Detail objednávkyAktuální stav objednávky vytvořené vaším připojením.
Přihlášení: oauth2, oprávnění orders:read
/restaurants/{restaurant_id}/orders/{order_id}/confirm-payment – Potvrdit online platbuOznačí pending online platbu jako zaplacenou a pošle objednávku do kuchyně. Jen ve stavu awaiting_payment; po payment_deadline je objednávka už zrušená a dostanete 409 order_not_awaiting_payment, pak peníze zákazníkovi vraťte. Když platba neprošla, objednávku místo toho zrušte.
Přihlášení: oauth2, oprávnění orders:write
/restaurants/{restaurant_id}/orders/{order_id}/cancel – Zrušit objednávkuZruší objednávku ve stavu awaiting_payment nebo received (kuchyně ji nezačala připravovat; Profirest to v okamžiku rušení ověří znovu). Bon už může být vytištěný; z displeje kuchyně objednávka zmizí. Později vrátí 409 order_not_cancellable; pak ji může zrušit jen provozovna. Rezervované porce se uvolní a…
Přihlášení: oauth2, oprávnění orders:write
Propojení vašich zákazníků s databází klientů účtu a věrnostní body.
/customers – Zákazníci propojení tímto připojenímZákazníci, které vaše připojení propojilo (POST /customers), v pořadí, v jakém byli propojeni. Propojení jiných připojení účtu se nikdy neukážou, ani se stejným telefonním číslem – každé připojení vidí jen svá (všechna zařízení jedné aplikace na účtu sdílejí jedno připojení). Neověření zákazníci v seznamu jsou…
Přihlášení: oauth2, oprávnění customers:read
/customers – Propojit zákazníkaPropojí vašeho zákazníka s databází klientů účtu podle telefonního čísla, takže se jeho objednávky počítají stejnému člověku jako v restauraci. Odpověď nikdy neprozradí, zda už telefon známe, a Profirest nikdy nevrátí údaje, které o člověku má: vidíte jen to, co jste poslali. Věrnostní body uvidíte po ověření…
Přihlášení: oauth2, oprávnění customers:write
/customers/{customer_id} – Detail zákazníkaJedno propojení zákazníka vaším připojením s ETag pro PATCH. Obsahuje jen to, co vaše připojení poslalo (viz Customer). Propojení jiného připojení, propojení, které jste odebrali (DELETE), nebo smazané, protože provozovna toho zákazníka smazala v administraci, vrátí 404.
Přihlášení: oauth2, oprávnění customers:read
/customers/{customer_id} – Upravit zákazníkaZmění jen poslaná pole. V If-Match pošlete ETag, který jste načetli. Změna telefonu zákazníka znovu propojí a zruší ověření.
Přihlášení: oauth2, oprávnění customers:write
/customers/{customer_id} – Zrušit propojení a smazat zákazníkaOdstraní propojení a všechny údaje, které vaše připojení o zákazníkovi poslalo (například když zákazník chce být zapomenut). Vlastní záznam restaurace o klientovi a jeho dřívější objednávky zůstávají, protože patří restauraci.
Přihlášení: oauth2, oprávnění customers:write
/customers/{customer_id}/phone-verification – Poslat ověřovací kódProfirest pošle zákazníkovi SMS se šestimístným kódem. Kód platí 10 minut. Omezení: nový kód až po resend_after; nejvýš 5 kódů na telefonní číslo a připojení za den a 15 na číslo ze všech připojení; denní kvóta SMS na připojení; SMS jen do zemí, kam Profirest doručuje. SMS se platí z kreditu majitele restaurace.
Přihlášení: oauth2, oprávnění customers:write
/customers/{customer_id}/phone-verification/confirm – Potvrdit ověřovací kódKód ověří jen telefon, na který odešel; změna telefonu zákazníka ho zruší. Po 5 špatných pokusech kód přestane platit a je potřeba vyžádat nový.
Přihlášení: oauth2, oprávnění customers:write
/customers/{customer_id}/loyalty – Věrnostní bodyBody ověřeného zákazníka. Jsou společné pro všechny provozovny účtu. Objednávky přes API přičtou 1 bod za každou celou korunu ceny položek před vouchery – doprava ani doplatek do minima se nepočítají (stejně jako na pokladně).
Přihlášení: oauth2, oprávnění loyalty:read
Dárkové vouchery vydané účtem.
/restaurants/{restaurant_id}/vouchers/check – Ověřit dárkový voucherUkáže stav a zůstatek voucheru tohoto účtu, aniž by ho použil. Kód se posílá v těle, nikdy v URL, protože má hodnotu peněz. Vouchery jiných účtů a dosud neprodané vouchery – i zablokované – vypadají přesně jako neznámé kódy (422 voucher_invalid); stejně tak voucher v kalkulaci, v objednávce i v platbě účtenky.…
Přihlášení: oauth2, oprávnění vouchers:redeem
Rezervace stolů a služeb u pracovníků – volné časy, rezervace, změny, usazení a stav stolů v tuto chvíli.
/restaurants/{restaurant_id}/reservation-settings – Pravidla rezervacíJak provozovna přijímá rezervace: jak dlouho hosté sedí u stolu podle velikosti skupiny, krok nabízených časů, úklid stolu, poslední rezervace před zavřením, dny bez rezervací a pravidla pro hosty, kteří rezervují online. Provozovna je nastavuje v administraci (Rezervace › Nastavení). Použijte je k vysvětlení…
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/reservation-services – Služby k rezervaciSlužby, které si host rezervuje u pracovníka – střih, masáž, konzultace – s délkou, cenou a pracovníky, kteří je dělají. Prázdné, když licence provozovny má jen rezervace stolů (ReservationSettings.services_enabled). Služby, které se teď nenabízejí, chybí.
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/reservation-availability – Volné časy dneČasy jednoho dne, které provozovna nabízí, každý s available a u nedostupného s důvodem reason. U stolu pošlete party_size; u služby kind=service, service_id a případně employee_id (bez něj kdokoli volný). Stoly nebo pracovník u času jsou to, co by createReservation v tu chvíli vzal – čas se pro vás…
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/reservations – Seznam rezervacíRezervace se začátkem od from do to (místní dny včetně obou, nejvýš 31 dní; bez nich dnešek), podle začátku. Ze všech zdrojů – administrace, pokladny, hosté online i jiné aplikace. Dotazujte se s If-None-Match, nebo sledujte události reservation.*.
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/reservations – Založit rezervaciRezervace stolu (kind=table, party_size), nebo služby u pracovníka (kind=service, service_id, případně employee_id). Server zkontroluje kapacitu a stoly nebo pracovníka vybere sám (nejmenší vhodný stůl, jinak spojené stoly; nejméně vytížený pracovník); plný čas vrátí 409 reservation_unavailable, čas…
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id} – Detail rezervaceRezervace s kontakty hosta a ETag (verzí).
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/reservations/{reservation_id} – Změnit rezervaciPošlete jen to, co se mění. Nový čas, počet osob, stoly, služba nebo pracovník se znovu porovná s kapacitou (bez této rezervace); server ponechá stávající stoly nebo pracovníka, pokud pořád vyhovují, jinak vybere nové. Usazená rezervace mění jen stoly, počet osob a poznámky; ukončená se nemění…
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/confirm – Potvrdit rezervaciRezervace requested se stane confirmed (provozovna přijme rezervaci, která čekala na potvrzení). Rezervace v jiném stavu vrátí 409 reservation_state_conflict. If-Match je nepovinný: s ním se změna provede, jen když rezervaci od vašeho načtení nikdo nezměnil.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/reject – Odmítnout rezervaciRezervace requested se stane rejected a uvolní stoly nebo pracovníka. reason uvidí host. Rezervace v jiném stavu vrátí 409 reservation_state_conflict. If-Match je nepovinný: s ním se změna provede, jen když rezervaci od vašeho načtení nikdo nezměnil.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/cancel – Zrušit rezervaciRezervace requested nebo confirmed se stane cancelled a uvolní stoly nebo pracovníka. reason uvidí host. Rezervace v jiném stavu vrátí 409 reservation_state_conflict. If-Match je nepovinný: s ním se změna provede, jen když rezervaci od vašeho načtení nikdo nezměnil.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/seat – Usadit hostyHosté přišli: rezervace se stane seated. Pošlete tab_id, když jim vaše pokladna otevřela účet (putTab) – rezervace si vazbu ponechá. Rezervace v jiném stavu vrátí 409 reservation_state_conflict. If-Match je nepovinný: s ním se změna provede, jen když rezervaci od vašeho načtení nikdo nezměnil.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/complete – Hosté odešliRezervace seated se stane completed. Když hosté odejdou dřív, než bylo v plánu, stůl je volný hned (ends_at se posune na teď). Rezervace v jiném stavu vrátí 409 reservation_state_conflict. If-Match je nepovinný: s ním se změna provede, jen když rezervaci od vašeho načtení nikdo nezměnil.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/no-show – Hosté nepřišliRezervace requested nebo confirmed se stane no_show a uvolní stoly nebo pracovníka. Zaplacená záloha propadne. Rezervace v jiném stavu vrátí 409 reservation_state_conflict. If-Match je nepovinný: s ním se změna provede, jen když rezervaci od vašeho načtení nikdo nezměnil.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/payment-link – Poslat odkaz k zaplacení zálohyPro rezervaci requested nebo confirmed, jejíž záloha čeká na zaplacení (deposit.status pending) – třeba přijatou po telefonu. Vytvoří nový odkaz na stránku rezervace hosta, pošle ho na e-mail hosta (má-li ho) a vrátí ho, abyste ho mohli poslat i SMS. Starší odkaz přestane platit. Jiná rezervace vrátí…
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservations/{reservation_id}/waive-deposit – Odpustit zálohuZáloha čekající na zaplacení se odpustí (host zaplatí na místě, stálý host …): deposit.status bude none a rezervace, která čekala jen na zálohu, bude confirmed. Platba, která přijde potom, se vrátí sama. Rezervace bez čekající zálohy vrátí 409 reservation_state_conflict.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservation-guest – Historie hostaZnámý host podle telefonu nebo e-mailu – kolikrát přišel, nepřišel nebo zrušil, jeho budoucí rezervace, poslední návštěva a štítky dřívějších rezervací (alergie, VIP), napříč provozovnami účtu. Hodí se při přijímání rezervace po telefonu. Telefon se porovná s předvolbou +420 i bez ní. Pošlete aspoň jedno z phone…
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/waitlist – Čekací listina dneškaHosté bez stolu, kteří dnes čekají – nejdéle čekající první. Usazení a odešlí v seznamu nejsou.
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/waitlist – Zapsat hosta na čekací listinuHost bez volného stolu. Pošlete jméno nebo telefon (pro SMS, že je stůl připravený).
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/waitlist/{waitlist_id}/notify – Dát hostovi vědět, že je stůl připravenýPošle hostovi SMS, že je stůl připravený (jen na české mobilní číslo; platí se z kreditu jako ostatní SMS hostům). Host bez takového čísla vrátí 422 validation_failed – zavolejte mu. Host, který už nečeká, vrátí 409 reservation_state_conflict; SMS, která neodešla, 503 service_unavailable.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/waitlist/{waitlist_id}/close – Usadit hosta, nebo ho z listiny vyřaditseated s reservation_id rezervace, kterou jste hostovi založili (createReservation s channel=staff a walk_in: true), nebo left, když host nečekal.
Přihlášení: oauth2, oprávnění reservations:write
/restaurants/{restaurant_id}/reservation-feedback – Hodnocení hostůHodnocení po návštěvě (1–5 hvězdiček a komentář) rezervací začínajících v období, od nejnovějšího, nejvýš 500. Host hodnotí jednou, dvě hodiny po odchodu, když provozovna o hodnocení žádá.
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/reservation-stats – Přehled rezervacíČísla rezervací začínajících v období – stejná jako Rezervace › Kniha › Přehled v administraci: rezervace a hosté, kdo přišel a kdo ne, zrušené, odkud přišly, hosté podle dne a hodiny, zálohy, hodnocení, vracející se hosté, služby a pracovníci. table_turn je skutečná doba u stolu (od usazení do odchodu) podle…
Přihlášení: oauth2, oprávnění reservations:read
/restaurants/{restaurant_id}/table-status – Které stoly jsou teď volnéKaždý stůl z mapy provozovny se stavem v tuto chvíli: occupied – otevřený účet stolu (i hosté bez rezervace) nebo usazení hosté rezervace; reserved – rezervace začíná do 30 minut nebo běží a hosté ještě nejsou usazení; jinak free. next_reservation je další rezervace dne. Účty stolů nesou jen název stolu, s…
Přihlášení: oauth2, oprávnění reservations:read
Ubytování – kdo je právě ubytovaný a účet jeho pokoje, aby pokladna mohla útratu zapsat na pokoj.
/restaurants/{restaurant_id}/lodging/in-house – Kdo je právě ubytovanýPobyty, které jsou právě ubytované (checked_in), seřazené podle pokoje – aby pokladna mohla nabídnout „na pokoj“. balance je, co zbývá zaplatit na účtu pokoje. Hosté, kteří ještě nepřijeli nebo už odjeli, tu nejsou.
Přihlášení: oauth2, oprávnění lodging:read
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/folio – Účet pokojeÚčet pobytu: ubytování, poplatek z pobytu, služby a útraty (i z pokladen), platby a co zbývá zaplatit (balance, záporný při přeplatku). city_tax.estimate je true, dokud hosté nejsou zapsaní – poplatek se počítá z počtu osob.
Přihlášení: oauth2, oprávnění lodging:read
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/charges – Zapsat útratu na pokojPřidá útratu na účet pobytu, který je právě ubytovaný – účet z restaurace nebo baru, který host zaplatí při odjezdu. Pokladna na ni účtenku nevystaví: účet stolu uzavře bez dokladu a pošle sem celkovou částku, za každou sazbu DPH zvlášť. Tržbou se útrata stane na dokladu za pobyt, který ubytování vystaví při odjezdu…
Přihlášení: oauth2, oprávnění lodging:write
/restaurants/{restaurant_id}/lodging/packages – Pobytové balíčkyBalíčky, které provozovna teď nabízí – noci zdarma (pay_nights + free_nights, zdarma jsou nejlevnější noci), sleva, příplatek za pobyt a služby v ceně. online – nabízí se na stránce rezervace.
Přihlášení: oauth2, oprávnění lodging:read
/restaurants/{restaurant_id}/lodging/stats – Přehled ubytováníČísla za období – stejná jako Ubytování › Přehled v administraci. Prodané noci jsou noci pokojů potvrzených, ubytovaných a skončených pobytů (nezávazné zvlášť); cena pobytu se rozpočítá rovnoměrně na jeho noci, takže pobyt přes přelom měsíce se rozdělí. occupancy = prodané / (pokoje × dny), adr = tržba / prodané…
Přihlášení: oauth2, oprávnění lodging:read
/restaurants/{restaurant_id}/lodging/reviews – Recenze ubytováníHodnocení hostů po pobytu (source direct) a recenze z portálů, které provozovna přepsala, od nejnovější, s přehledem: průměr na stupnici 1–5, počty po zdrojích a hvězdičkách, dílčí hodnocení a kolik čeká na odpověď. Jména hostů jsou zkrácená (křestní jméno a iniciála).
Přihlášení: oauth2, oprávnění lodging:read
/restaurants/{restaurant_id}/lodging/reviews/{review_id}/reply – Odpovědět na recenziUloží odpověď (nová nahradí starou). Hodnocení hosta s send_to_guest odejde hostovi i e-mailem (když host e-mail má); na recenzi z portálu odpovězte i na portálu.
Přihlášení: oauth2, oprávnění lodging:write
Recepce hotelu – jen vlastní aplikace Profirestu (lodging_desk:*, na zařízení přihlášený zaměstnanec s rolí reception): pokoje, plán obsazenosti, pobyty s hosty a jejich doklady.
/restaurants/{restaurant_id}/lodging/rooms – Pokoje a typy pokojůTypy pokojů a pokoje provozovny v pořadí plánu obsazenosti (podle typu, pak podle pokoje) se stavem úklidu. Pokoj out_of_order nejde rezervovat. Ceny jsou základní cena noci; cenu pobytu počítá server (sezóny, balíčky, přistýlky).
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/availability – Volné pokoje a ceny pro pobytPro každý typ pokoje: pokoje volné od arrival do departure a cena pobytu pro počet hostů (sezóny, přistýlky, balíček package_id). unavailable říká, proč typ rezervovat nejde (no_room, too_many_guests, package_not_applicable). Recepci neváže nejkratší pobyt online rezervací. Při změně pobytu pošlete…
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/registration-lists – Číselníky pro zápis hostůHodnoty pro formulář zapsaného hosta: státy (nationality), druhy dokladů, účely pobytu pro cizineckou policii (Ubyport) a důvody, proč host neplatí poplatek z pobytu. Mění se zřídka – držte si je s ETag.
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/stays – Pobyty plánu obsazenostiPobyty, které zasahují do dnů from – to (oba včetně, nejvýš 62 dní; bez nich dnešek): pobyt, který v nich má noc, přijíždí nebo odjíždí. Podle příjezdu. Bez status se zrušené pobyty a nepřijetí vynechají.
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/stays – Založit pobytRezervace na recepci: pokoj (room_id) nebo typ pokoje (room_type_id – server vybere první volný pokoj), termín, hosté a kontakt hosta. Server zkontroluje, že je pokoj volný (409 lodging_room_unavailable) a že se hosté do pokoje vejdou (422), a cenu spočítá podle ceníku a balíčku, pokud nepošlete…
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id} – Detail pobytuPobyt se zapsanými hosty a jejich doklady, co zbývá zaplatit, doklad za pobyt a historie. ETag je verze (version) – při změně pobytu ji pošlete v If-Match.
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/stays/{stay_id} – Změnit pobytPošlete jen to, co se mění: kontakt hosta, počet hostů, poznámky, štítky, cenu nebo balíček. Víc hostů se porovná s pokojem (422); cena, která není zadaná ručně, se spočítá znovu. Termín a pokoj mění moveStay. Pobyt s vystaveným dokladem se nemění (409 stay_state_conflict). Pošlete If-Match s ETag z…
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/move – Přesunout nebo prodloužit pobytPobyt dostane pokoj a termín (i delší nebo kratší pobyt). Nový pokoj musí být v novém termínu volný (bez tohoto pobytu) a ne mimo provoz (409 lodging_room_unavailable). Hosté, služby po nocích a poplatek z pobytu se posunou s pobytem; cena, která není zadaná ručně, se spočítá znovu. Odjetý nebo zrušený pobyt se…
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/confirm – Potvrdit pobytPředběžný pobyt se stane potvrzeným.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/check-in – Ubytovat hostyOde dne příjezdu. Hosty zapište (addStayGuest) předem nebo potom – cizinci jdou do Ubyportu.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/check-out – Odhlásit hostyHosté odjíždějí: pokoj jde k úklidu. Dřívější odjezd ukončí pobyt dnes a cenu spočítá znovu. Z vyrovnaného účtu (balance 0) server vystaví doklad za pobyt (getStay.receipt); když zbývá doplatit, doklad vznikne po zaplacení.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/cancel – Zrušit pobytPřed příjezdem. Zaplacená záloha se hostovi vrátí, pokud nepošlete keep_deposit.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/no-show – Host nepřijelOde dne příjezdu; pokoj je zase volný a zaplacená záloha propadá.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guests – Zapsat hostaPřidá hosta do evidence pobytu. Cizinec čeká na Ubyport (ubyport.state pending) a server ho odešle ve lhůtě.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guests/{guest_id} – Změnit zapsaného hostaNahradí údaje hosta. Už nahlášený cizinec, kterému se změní jméno, narození, doklad nebo termín, jde do Ubyportu znovu.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guests/{guest_id} – Smazat zapsaného hostaOdebere hosta z evidence pobytu (omyl, host nepřijel).
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/services – Služby ceníkuSlužby, které recepce přidá na účet pokoje (addStayService): snídaně, strava, přistýlky, mazlíčci, wellness, parkování.
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/services – Přidat službu na účetSlužba z ceníku na účet pokoje. Množství podle jednotky služby: stay a item podle quantity; night noci od date_from do date_to (výchozí celý pobyt) × quantity; person_night noci × persons (výchozí všichni hosté). Účet s vystaveným dokladem se nemění (409 stay_state_conflict).
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/folio-lines – Přidat položku na účetPoložka mimo ceník (minibar, škoda, taxi) s vlastním názvem, cenou a sazbou DPH.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/folio-lines/{line_id} – Odebrat položku z účtuOdebere službu nebo položku (omyl). Účet s vystaveným dokladem se nemění (409 stay_state_conflict).
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/payments – Zapsat platbuPlatba hosta na účet pokoje (i záloha před příjezdem). Peníze drží recepce: hotovost a karta tady nejsou účtenka – doklad za pobyt vzniká při odjezdu z vyrovnaného účtu. Platba, která vyrovná účet hosta, který už odjel, doklad vystaví hned.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/payments/{payment_id} – Smazat platbuSmaže omylem zapsanou platbu. Ne po vystavení dokladu za pobyt (409 stay_state_conflict). Jen zaměstnanec s rolí reception_manager (od 26.11.23; ostatní 403 staff_role_missing).
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/receipt – Vystavit doklad za pobytPo odjezdu, když ho server nevystavil sám. Účet musí být vyrovnaný; platba fakturou vystaví fakturu pro firmu (dokončí se v administraci). Druhé volání vrátí už vystavený doklad.
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/receipt/cancel – Stornovat doklad za pobytVystaví protidoklad; účet pokoje jde zase měnit. Vrací protidoklad. Jen zaměstnanec s rolí reception_manager (od 26.11.23; ostatní 403 staff_role_missing).
Přihlášení: oauth2, oprávnění lodging_desk:write
/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guest-pass – QR kód hostaKód pro QR kód hosta (ukažte ho nebo vytiskněte) a co host smí podle účtu pokoje – čtečka u wellness, snídaní nebo parkoviště ho ověří přes checkGuestPass.
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/ubyport – Cizinci čekající na UbyportJestli je hlášení cizinecké policii (Ubyport) nastavené a cizinci, kteří na něj čekají nebo s chybou, se lhůtou (3 pracovní dny po příjezdu). Server je odesílá sám každou hodinu.
Přihlášení: oauth2, oprávnění lodging_desk:read
/restaurants/{restaurant_id}/lodging/ubyport/send – Odeslat do Ubyportu teďOdešle čekající cizince hned, bez čekání na hodinový běh. failure řekne, když služba policie neodpovídá.
Přihlášení: oauth2, oprávnění lodging_desk:write
Úklid pokojů a jejich závady – úkoly dne po pokojích, odškrtávání a hlášení závad. Bez údajů hostů. S Profirest-Staff-Token se zaměstnanec zapíše jako ten, kdo úkol udělal nebo závadu nahlásil. Vlastní aplikace Profirestu pro pokojské a recepci ho posílat musí, se zaměstnancem s rolí housekeeping nebo reception (od 26.11.23).
/restaurants/{restaurant_id}/housekeeping – Úkoly úklidu na denKaždý pokoj s úkoly na den, nejnaléhavější první: pokoj, kam dnes přijíždí host a ještě není uklizený, pak odjezdy, pak obsazené pokoje. Úkoly se počítají z pobytů a pravidel provozovny pokaždé znovu – po přesunu pobytu ho následují. waiting – úkol ještě nejde udělat (host neodjel, nebo pokoj před kontrolou není…
Přihlášení: oauth2, oprávnění housekeeping:read
/restaurants/{restaurant_id}/housekeeping/rooms/{room_id}/done – Odškrtnout úkolOznačí úkol pokoje a dne jako hotový. Úklid po odjezdu přepne pokoj na clean, kontrola na inspected. Opakované odškrtnutí nic nezmění. Úkol, který je waiting, vrátí 409 lodging_state_conflict; úkol pozdějšího dne 422 validation_failed. Se staff tokenem se zapíše zaměstnanec, který úkol udělal.
Přihlášení: oauth2, oprávnění housekeeping:write
/restaurants/{restaurant_id}/housekeeping/rooms/{room_id}/undo – Vrátit odškrtnutý úkolVrátí omylem odškrtnutý úkol. Úklid po odjezdu vrátí pokoj na dirty; dokud je hotová kontrola, vrátit nejde (409 lodging_state_conflict) – nejdřív vraťte kontrolu.
Přihlášení: oauth2, oprávnění housekeeping:write
/restaurants/{restaurant_id}/room-issues – Závady pokojůOtevřené závady a závady opravené za posledních 30 dní, otevřené první, od nejnovější, nejvýš 300.
Přihlášení: oauth2, oprávnění housekeeping:read
/restaurants/{restaurant_id}/room-issues – Nahlásit závaduZávada pokoje pro údržbu. S blocks_room je pokoj out_of_order a nejde prodat, dokud se závada neopraví; když má pokoj pobyty od dneška dál, warning řekne, ať se přesunou.
Přihlášení: oauth2, oprávnění housekeeping:write
/restaurants/{restaurant_id}/room-issues/{issue_id}/fix – Označit závadu jako opravenouZávada je opravená. Pokoj, který byl kvůli ní mimo provoz, se vrátí jako dirty (po opravě k úklidu), když ho neblokuje jiná otevřená závada. Opravená závada vrátí 409 lodging_state_conflict.
Přihlášení: oauth2, oprávnění housekeeping:write
QR kód ubytovaného hosta – čtečka u wellness, snídaní nebo parkoviště ověří, co host smí.
/restaurants/{restaurant_id}/guest-passes/check – Ověřit QR kód hostaČtečka u wellness, snídaní, polopenze nebo parkoviště pošle přečtený kód (PRU-…). Host smí, co má na účtu pokoje (služby z ceníku nebo v ceně balíčku), dokud je ubytovaný: neomezeně, tolik osob denně, nebo tolikrát za pobyt. result ok hosta pustí a vstup zapíše (s record: false jen ověří); denied řekne proč…
Přihlášení: oauth2, oprávnění guest_passes:check
/restaurants/{restaurant_id}/guest-passes/checks/{check_id}/undo – Vrátit vstupHost nakonec nešel – vstup se nepočítá. Jiné čtení vrátí 409 lodging_state_conflict.
Přihlášení: oauth2, oprávnění guest_passes:check
Vaše vlastní ID a metadata u provozoven, kategorií, produktů, objednávek a zákazníků.
/external-refs/{object_type} – Najít objekty podle vašeho IDVaše ID a metadata u objektů tohoto typu. Filtrem external_id převedete své ID na naše. Vyžaduje oprávnění ke čtení daného typu objektu (například orders:read u objednávek).
Přihlášení: oauth2
/external-refs/{object_type}/{object_id} – Vaše ID a metadata jednoho objektuVyžaduje oprávnění ke čtení daného typu objektu. Objekty, které vaše připojení nevidí, vrátí 404.
Přihlášení: oauth2
/external-refs/{object_type}/{object_id} – Nastavit vaše ID a metadataNastaví vaše external_id a nahradí vaše metadata u objektu, který vaše připojení vidí (například produktu ze sortimentu) – u provozovny, kategorie, produktu, objednávky nebo zákazníka; jiné objekty vazbu nést nemohou. Kategorie a produkty jsou vidět, když jsou na webu („W“), včetně příloh a produktů denního menu…
Přihlášení: oauth2
/external-refs/{object_type}/{object_id} – Odebrat vaše ID a metadataOdebere jen vaši vazbu. Samotného objektu se nedotkne. Oprávnění jako u nastavení.
Přihlášení: oauth2
Proud změn s kurzorem – po stránkách nebo živě přes Server-Sent Events. Webhooky doručují stejné události.
/events – Proud změnUdálosti vašeho připojení v pořadí zápisu (sequence), po zadaném kurzoru. Toto je zdroj pravdy: webhooky jen říkají, že je tu něco nového; streamEvents dává tytéž události živě, se stejným kurzorem a bez dotazování. Dostanete jen typy událostí, které vaše oprávnění dovolují: order.* vyžaduje orders:read…
Přihlášení: oauth2
/events/stream – Proud změn živě (Server-Sent Events)Tytéž události jako listEvents – stejné pořadí, stejná oprávnění a stejné zpoždění pár sekund po změně – posílané jednou dlouhou odpovědí text/event-stream místo dotazování. Hodí se všude, kde se čeká na změny: kuchyňské displeje, pokladny, integrace na serveru.
Přihlášení: oauth2
Zaměstnanci na vlastních zařízeních Profirestu – kdo v provozovně pracuje a přihlášení PINem nebo čipem.
/restaurants/{restaurant_id}/staff – Zaměstnanci provozovnyZaměstnanci přiřazení k provozovně a jejich role na zařízeních, podle jména. PINy a čísla čipů server nikdy nevydá: sign_in říká jen to, zda má zaměstnanec PIN nebo čip. Jen pro vlastní aplikace Profirestu.
Přihlášení: oauth2, oprávnění staff:read
/restaurants/{restaurant_id}/staff-sessions – Přihlásit zaměstnance na zařízeníOvěří PIN nebo čip zaměstnance na serveru a vrátí token zaměstnance pro toto zařízení. Posílejte ho v hlavičce Profirest-Staff-Token u operací, které dělá zaměstnanec; token zařízení zůstává v Authorization. Token zaměstnance platí jen na zařízení, které přihlásilo, a jen v této provozovně. Vyprší po…
Přihlášení: oauth2, oprávnění staff:authenticate
/restaurants/{restaurant_id}/staff-sessions/current – Odhlásit zaměstnanceHned ukončí relaci zaměstnance z hlavičky Profirest-Staff-Token. Už ukončená relace odpoví také 204. Bez hlavičky je odpověď 403 staff_session_required.
Přihlášení: oauth2, oprávnění staff:authenticate
/restaurants/{restaurant_id}/staff-sessions/current/pin – Změnit PIN přihlášeného zaměstnancePřihlášený zaměstnanec si mění vlastní PIN. Současný PIN se ověří znovu, se stejným zámkem po špatných PINech jako přihlášení (422 staff_credentials_invalid, 429 staff_locked). Nový PIN platí všude, kde ho zaměstnanec používá – na všech zařízeních, na docházkovém terminálu i při přihlášení zaměstnance do…
Přihlášení: oauth2, oprávnění staff:authenticate
Příchody, odchody a přestávky z docházkových terminálů Profirestu a to, co tam vidí přihlášený zaměstnanec: své naplánované směny a své žádosti o volno. Jen u provozovny, jejíž licence zahrnuje modul Docházka, stejně jako docházka v administraci; jinak 403 module_not_licensed.
/restaurants/{restaurant_id}/attendance/terminal – Nastavení docházkového termináluCo docházkový terminál této provozovny ukazuje a smí: jméno provozovny, vzhled, který si provozovna zvolila v administraci (logo, barva, světlá nebo tmavá obrazovka a uvítání – null znamená vzhled Profirestu), a jestli terminál smí zapisovat píchnutí bez sítě a jak stará smí při doručení být (starší server odmítne…
Přihlášení: oauth2, oprávnění attendance:read
/restaurants/{restaurant_id}/attendance/presence – Kdo je v práciZaměstnanci, kteří se na této provozovně vedou v docházce, a kde právě jsou: off, working nebo on_break, podle jména.
Přihlášení: oauth2, oprávnění attendance:read
/restaurants/{restaurant_id}/attendance/punches – Zapsat příchod, odchod nebo přestávkuJedno píchnutí zaměstnance na zařízení. Zaměstnance určí credential (PIN nebo čip zadaný na zařízení), nebo relace zaměstnance v Profirest-Staff-Token.
Přihlášení: oauth2, oprávnění attendance:punch
/restaurants/{restaurant_id}/attendance/punches/batch – Odeslat píchnutí pořízená offlineNejvýš 100 píchnutí v pořadí, v jakém se stala. Každé se zpracuje samostatně jako POST …/attendance/punches a má vlastní výsledek; odmítnuté píchnutí nezastaví ostatní. Každá položka nese svůj credential, protože relaci zaměstnance nejde bez sítě otevřít.
Přihlášení: oauth2, oprávnění attendance:punch
/restaurants/{restaurant_id}/attendance/my-schedule – Rozpis přihlášeného zaměstnanceSměny a volno zaměstnance z Profirest-Staff-Token naplánované na této provozovně, od dneška na days dní, v pořadí začátku: pracovní směny se sekcí a absence (dovolená, neplacené volno, nemoc) tak, jak je má rozpis směn v administraci. Patří sem i směna, která přes půlnoc zasahuje do dneška. Jen vlastní rozpis…
Přihlášení: oauth2, oprávnění attendance:read
/restaurants/{restaurant_id}/attendance/absence-requests – Žádosti o volno přihlášeného zaměstnanceŽádosti o volno zaměstnance z Profirest-Staff-Token na této provozovně: všechny čekající a ostatní, jejichž volno skončilo nejvýš před 60 dny, od nejnovější, nejvýš 50. Rozhoduje o nich vedoucí v administraci; schválená žádost se zapíše do rozpisu směn jako absence.
Přihlášení: oauth2, oprávnění attendance:read
/restaurants/{restaurant_id}/attendance/absence-requests – Požádat o volno za přihlášeného zaměstnanceZaměstnanec z Profirest-Staff-Token žádá o volno na celé dny. Pravidla určuje provozovna (AttendanceTerminal.absence_requests): o jaké volno se smí žádat, kolik dní předem (nemoc od dneška, bez předstihu), nejvýš kolik dní a jak daleko dopředu a kolik lidí z jedné sekce smí mít týž den volno. Žádost, která…
Přihlášení: oauth2, oprávnění attendance:punch
/restaurants/{restaurant_id}/attendance/absence-requests/{request_id} – Vzít zpět čekající žádost o volnoZaměstnanec z Profirest-Staff-Token bere zpět svou čekající žádost; odpovědí je žádost se status: cancelled. Už vzatá zpět odpoví stejně. Vyřízená žádost odpoví 409 absence_request_decided – schválené volno ruší vedoucí v administraci. Žádost jiného zaměstnance odpoví 404.
Přihlášení: oauth2, oprávnění attendance:punch
Kuchyňský displej – objednávky ze všech zdrojů (pokladna, e-shop, rozvozové platformy, aplikace).
/restaurants/{restaurant_id}/kitchen/tickets – Objednávky na tabuli kuchyněKuchyňské bony všech objednávek provozovny – z pokladny, e-shopu, rozvozových platforem i aplikací – stejné, jaké dnes ukazuje kuchyňský displej.
Přihlášení: oauth2, oprávnění kitchen:read
/restaurants/{restaurant_id}/kitchen/tickets – Poslat položky stolu do kuchyněKuchyňský bon z pokladny nebo mobilního číšníka před zaplacením – dnešní „bon“ otevřeného stolu. Ukáže se na kuchyňském displeji v oblasti bar a ve výrobě po stanovištích, bez cen: peníze jsou až na účtence (createReceipt), takže se tržba ani sklad nikdy nezapočítají dvakrát. Každé kolo položek je nový bon jako…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/kitchen/queue – Čísla objednávek pro obrazovku hostůPořadník u pultu stejně jako kuchyňský displej v režimu pořadníku: objednávky z pokladen (účtenky a bony otevřených stolů, přes toto API i API v1), osobní odběry objednané přes web – e-shop nebo aplikaci pro hosty (order_channel web) – a osobní odběry z kiosku (kiosk, v kterémkoli jeho režimu), kromě objednávek…
Přihlášení: oauth2, oprávnění queue:read
/restaurants/{restaurant_id}/kitchen/stations/{station_id}/tickets – Objednávky pro jedno výrobní stanovištěPro rozdělenou kuchyni (výrobní stanoviště v administraci). Objednávky na tabuli (jako view=active, otevřené stoly za posledních 7 dní), ve kterých je něco, co toto stanoviště dělá, s jeho položkami rozdělenými do chodů a kategorií – stejné segmenty, jaké dnes ukazuje obrazovka stanoviště – a s tím, zda na…
Přihlášení: oauth2, oprávnění kitchen:read
/restaurants/{restaurant_id}/kitchen/stations/{station_id}/tickets/{ticket_id}/working – Stanoviště začíná na objednávce pracovatOstatní stanoviště to vidí; objednávka se počítá jako připravovaná (order.status_changed s preparing).
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/stations/{station_id}/tickets/{ticket_id}/working – Stanoviště na objednávce přestává pracovatVezme zpět startStationWork: ostatní stanoviště už nevidí, že na objednávce toto stanoviště pracuje; hotové položky zůstanou hotové. Když objednávku jako připravovanou nic jiného neoznačuje (nepracuje na ní jiné stanoviště, nic není hotové ani vydané, kuchyně nenastavila preparing), objednávka aplikace se vrátí…
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/stations/{station_id}/tickets/{ticket_id}/complete – Odbavit segment stanovištěOdbaví otevřené položky tohoto stanoviště: celou objednávku (scope=order), jeden chod (course) nebo jednu kategorii v chodu (category s course a category_id). Akce se zapíše do historie stanoviště a jde vzít zpět. Když v segmentu nic otevřené není, odpověď je 409 nothing_to_complete – i když ho o chvilku…
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/stations/{station_id}/actions – Poslední akce stanovištěPosledních 12 akcí stanoviště za 12 hodin, nejnovější první, aby šla některá vzít zpět.
Přihlášení: oauth2, oprávnění kitchen:read
/restaurants/{restaurant_id}/kitchen/stations/{station_id}/actions/{action_id}/undo – Vzít akci stanoviště zpětPoložky té akce jsou znovu otevřené (jen ty, které přepnula, ne co mezitím udělala jiná obrazovka). Už vrácená akce odpoví 409 action_already_undone.
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id} – Jeden kuchyňský bonJeden kuchyňský bon provozovny podle ID, v jakémkoli stavu a odkudkoli objednávka přišla – i hotový nebo zrušený, nebo takový, který už na tabuli není (listKitchenTickets ukazuje jen aktuální pohledy). Slouží ke sledování bonu, který jste poslali (createKitchenTicket), nebo bonu z události…
Přihlášení: oauth2, oprávnění kitchen:read
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id}/status – Posunout objednávku v kuchynireceived – zpět do fronty, preparing – kuchyně začala, ready – hotovo a čeká na výdej nebo kurýra, delivered – vydáno. Zrušená objednávka zůstane zrušená (409 ticket_cancelled); rušení je POST …/cancel. Vydanou objednávku vrátí zpět jen přihlášený vedoucí kuchyně (403 staff_role_missing); objednávka…
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id}/cancel – Zrušit objednávku v kuchyniZruší objednávku protidokladem, stejně jako tlačítko storno na kuchyňském displeji: tržba i sklad se vrátí, zaplacený dárkový voucher se vrátí na voucher. Smí jen zaměstnanec s rolí kitchen_manager přihlášený na zařízení (403 staff_role_missing); zaměstnanec se zapíše. Zrušenou objednávku nejde vrátit…
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id}/printed – Potvrdit vytištění bonuDisplej bon vytiskl; ostatní displeje ho znovu tisknout nebudou. Opakování nevadí.
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id}/items – Přidat položky k objednávce v kuchyniTlačítko PŘIDAT POLOŽKY kuchyňského displeje: co zákazník přidá po telefonu, jde do stejné objednávky, ne do druhé. Ceny položek Profirest spočítá z katalogu kanálu channel (výchozí kitchen) přesně jako kalkulaci; zařízení žádné ceny neposílá. Jako dnes dostanou nové položky vlastní skupiny za stávajícími…
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id}/handover – Označit část objednávky jako vydanouVýdej (obrazovka výdeje kuchyňského displeje): personál odškrtne, co odnesl zákazníkovi – celou objednávku (scope=order), jeden chod nebo jednu kategorii v chodu – a objednávku tím neuzavře, takže polévka jde ven, zatímco se hlavní jídlo ještě vaří. Platí přes všechna stanoviště a stav výroby položek nemění (mění…
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/tickets/{ticket_id}/handover – Zrušit označení vydané částiVezme označení vydání segmentu zpět bez zápisu do historie – druhé klepnutí na výdeji. Opakování nevadí.
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/handover/actions – Poslední akce výdejePosledních 12 akcí výdeje za 12 hodin, nejnovější první, aby šla některá vzít zpět.
Přihlášení: oauth2, oprávnění kitchen:read
/restaurants/{restaurant_id}/kitchen/handover/actions/{action_id}/undo – Vzít akci výdeje zpětPoložky té akce už nejsou vydané; objednávka, kterou výdej uzavřel, se vrátí do fronty. Už vrácená akce odpoví 409 action_already_undone.
Přihlášení: oauth2, oprávnění kitchen:write
/restaurants/{restaurant_id}/kitchen/shift – Součty otevřené směny kuchyněCo by teď obsahovala uzávěrka: objednávky z webu a z kuchyně, které ještě nejsou uzavřené, tržba za hotové a vydané celkem i podle platby, co ještě čeká nebo se připravuje (zůstane do další směny), zrušené a totéž po kurýrech – hotovost kurýra, než ji odevzdá. S courier_id jen objednávky toho kurýra.
Přihlášení: oauth2, oprávnění kitchen:read
/restaurants/{restaurant_id}/kitchen/shift/close – Uzavřít směnu kuchyněUzávěrka kuchyňského displeje jako dnes: záznam v uzávěrkách administrace s tržbou podle platby a s tím, co ještě zaplacené není, přiřadí se do ní všechny objednávky, které opustily frontu (hotové, vydané, zrušené), a číslování kuchyně začne znovu od 1. S courier_id se uzavřou jen objednávky toho kurýra (kurýři se…
Přihlášení: oauth2, oprávnění kitchen:write
Kurýři na směně, rozvozové trasy plánované v kuchyni, označení doručených objednávek a živá poloha a jízda kurýrů.
/restaurants/{restaurant_id}/couriers – Kurýři provozovnyZaměstnanci, kteří mohou rozvážet – stejně jako dnes na kuchyňském displeji ti s rolí kuchyně v této provozovně – s přihlášením na směnu a počtem otevřených tras, podle jména.
Přihlášení: oauth2, oprávnění deliveries:read
/restaurants/{restaurant_id}/couriers/{employee_id}/shift – Přihlásit kurýra na směnuKurýr je k dispozici pro trasy. Na zařízení musí být přihlášený ten kurýr, nebo zaměstnanec s rolí kitchen_manager (403 staff_role_missing). Opakované přihlášení nechá původní čas. Není to píchnutí do docházky.
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/couriers/{employee_id}/shift – Odhlásit kurýra ze směnyStejná pravidla jako přihlášení. Trasy, na kterých kurýr je, zůstanou beze změny.
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/delivery-routes – Rozvozové trasystatus=open (výchozí) – trasy, které se ještě rozvážejí; status=completed – dokončené trasy. Oba výpisy obsahují jen trasy aktuální směny, stejně jako pokladna (API v1): trasy, které mají aspoň jednu objednávku, jež ještě není v uzavřené směně kuchyně. Uzávěrka kuchyně (celé směny nebo kurýra) zahrne i hotové…
Přihlášení: oauth2, oprávnění deliveries:read
/restaurants/{restaurant_id}/delivery-routes – Poslat objednávky s kurýremDá rozvozové objednávky na jednu trasu kurýra v zadaném pořadí, jako plánovač tras na kuchyňském displeji: objednávky se stanou hotovými (out_for_delivery) a kurýr je převezme. Každá objednávka musí být rozvozem této provozovny, nezrušená, nedoručená a ne na jiné otevřené trase; jinak na ni ukáže…
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/delivery-routes/{route_id} – Jedna rozvozová trasaTelefon kurýra (zařízení bez kitchen:read) potřebuje přihlášeného zaměstnance a na trasu jiného kurýra dostane 404, pokud zaměstnanec není kitchen_manager.
Přihlášení: oauth2, oprávnění deliveries:read
/restaurants/{restaurant_id}/delivery-routes/{route_id}/tickets/{ticket_id}/delivered – Označit objednávku trasy jako doručenouKurýr objednávku doručil. Když jsou doručené, zrušené nebo nepřevzaté všechny objednávky trasy, trasa se dokončí (i když poslední objednávku označí, stornuje nebo vrátí do fronty kuchyňský displej). Opakované označení nevadí. Jako doručenou jde označit i objednávku not_delivered, dokud není zrušená – zákazník si ji…
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/delivery-routes/{route_id}/tickets/{ticket_id}/handover-payment – Zapsat platbu, kterou kurýr vybral u dveříKurýr vybral platbu za objednávku trasy – kartou na platebním terminálu (method card, s gateway_payment_id terminálu) nebo hotově. Funguje oběma směry: hotovostní objednávka zaplacená kartou se stane card_at_handover, objednávka card_at_handover zaplacená hotově se stane cash a uzávěrka…
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/delivery-routes/{route_id}/tickets/{ticket_id}/not-delivered – Označit objednávku trasy jako nepřevzatou, s důvodemKurýr objednávku nemohl předat – zákazník nebyl doma, odmítl ji, nezaplatil, adresa neexistuje… Bon se stane not_delivered s not_delivered (důvod, poznámka, čas, kurýr, poloha a hovory jako doklad o pokusu), nezapíše se platba ani tržba a hotovost se za ni od kurýra nečeká (getKitchenShift ji ukazuje v…
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/couriers/{employee_id}/telemetry – Poslat polohu a jízdu kurýra během směnyTelefon kurýra posílá, co naměřil od minulé dávky: body trasy (samples – poloha, rychlost, směr, výška a špička přetížení), prudké manévry, které poznal (driving_events – prudké brzdění, prudké zrychlení a ostré zatáčky, v g), a stav telefonu (device – baterie, síť, oprávnění k poloze). Provozovna pak vidí své…
Přihlášení: oauth2, oprávnění deliveries:write
/restaurants/{restaurant_id}/courier-positions – Kde jsou kurýři na směněPoslední poloha každého kurýra na směně, jehož telefon ji posílá (postCourierTelemetry), podle jména: stav, rychlost a směr, otevřená trasa se zbývajícími objednávkami a stav telefonu. state je moving, stopped, at_restaurant (do 100 m od provozovny), nebo stale – od telefonu přes 3 minuty nic (bez…
Přihlášení: oauth2, oprávnění deliveries:read
/restaurants/{restaurant_id}/delivery-routes/{route_id}/track – Projetá stopa trasyKudy kurýr na trase jel, z bodů postCourierTelemetry: body aspoň 10 m od sebe (nejvýš 5 000), prudké manévry a souhrn – vzdálenost, čas v jízdě, nejvyšší a průměrná rychlost za jízdy a počet prudkých manévrů. Body a manévry se drží 14 dní, pak je points_expired true a zůstane jen souhrn. summary je null…
Přihlášení: oauth2, oprávnění deliveries:read
/restaurants/{restaurant_id}/address-suggestions – Našeptat doručovací adresyHledání adresy pro objednávku přijatou po telefonu přes mapovou službu, kterou používá administrace (Mapy.cz). Vrátí jen adresy uvnitř rozvozové zóny provozovny, každou se zónou, kterou použije kalkulace – pro aplikace personálu jakoukoli aktivní zónu bez ohledu na časy rozvozu (jako v jejich kalkulacích), pro…
Přihlášení: oauth2, oprávnění deliveries:read
Pokladna a mobilní číšník: účtenky spočítané serverem, storno vedoucím, směna zařízení a EET 2.0, které odesílá server. Jen pro vlastní zařízení Profirestu.
/restaurants/{restaurant_id}/receipts/preview – Spočítat účtenku před placenímSpočítá položky přesně jako createReceipt: sortiment pokladny v issued_at (bez něj teď), cenu půlky a pro zaměstnance, slevy, DPH a částku k placení v hotovosti zaokrouhlenou na celé koruny. Nic se neukládá. Volejte ho online před přijetím platby; účtenku pak pošlete se stejnými cenami.
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/receipts – Seznam účtenekÚčtenky a storno doklady, které pokladny provozovny vystavily přes toto API, naposledy přijaté první (offline účtenka poslaná později přijde před staršími). Bez filtru jen účtenky volajícího zařízení. Tržby zapsané jinde – pokladnami na API v1 nebo v administraci – tu nejsou.
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/receipts – Vystavit účtenkuZaplacená účtenka. Server ji spočítá, uloží stejně jako dnešní pokladna – jako objednávku v administraci, takže ji ukážou přehledy, uzávěrky i exporty –, odečte porce a sklad, prodá a uplatní vouchery, připíše věrnostní body a zaeviduje tržbu do EET 2.0.
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/receipts/{receipt_id} – Detail účtenkyJedna účtenka nebo storno doklad, které kterákoli pokladna provozovny vystavila přes toto API, s aktuálním stavem EET. Účtenky pokladen na API v1 vrátí 404.
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/receipts/{receipt_id}/storno – Stornovat účtenkuStorno doklad se zápornými částkami jako na dnešní pokladně: tržba se v přehledech odečte, vouchery, kterými se platilo, se vrátí na vouchery, prodané vouchery jsou znovu k prodeji (jen když se z nich nic nepoužilo), věrnostní body se odečtou a s restock (výchozí) se vrátí sklad i porce. EET 2.0 zaeviduje zápornou…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/receipts/{receipt_id}/payment-change – Změnit platbu účtenkyZmění, jak se vydaná účtenka zaplatila, bez storna a nové účtenky – třeba když obsluha zvolila hotovost, ale zákazník platil kartou. Účtenka si nechá id, číslo, položky, celkovou částku i zaokrouhlení; mění se jen payments a hned se přizpůsobí součty směny, pokladní kniha, administrace i přehledy. Odpověď je…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/pos-shift – Otevřená směna tohoto zařízeníSoučty účtenek a storno dokladů, které toto zařízení vystavilo přes toto API od své poslední uzávěrky, spočítané serverem, a pohyby hotovosti, které zapsalo (cash_movements). S devices souhrn pokryje otevřené směny víc zařízení provozovny – třeba telefonu číšníka, než je vedoucí uzavře spolu (device_ids…
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/pos-shift/close – Uzávěrka tohoto zařízeníUzavře otevřenou směnu tohoto zařízení se součty spočítanými serverem a uloží ji jako uzávěrku v administraci. S counted_cash odpověď ukáže rozdíl proti očekávané hotovosti (platby hotově, dýško v hotovosti a pohyby hotovosti zařízení). S device_ids jedna uzávěrka pokryje otevřené směny víc zařízení provozovny…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/pos-shifts – Seznam uzavřených směnUzávěrky provozovny přesně tak, jak je vrátil closePosShift – co server sečetl, i s doklady z API v1 převzatými přes legacy_receipt_ids – naposledy uzavřené první. Bez filtru jen uzávěrky provedené na volajícím zařízení; device=all všech zařízení. Účtenky jedné uzávěrky jsou v listReceipts?shift_id=. Od…
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/pos-shifts/{shift_id} – Uzavřená směnaJedna uzávěrka provozovny, provedená na kterémkoli jejím zařízení, přesně tak, jak ji vrátil closePosShift. Od 26.11.26.
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/cash-movements – Zapsat vklad, výběr nebo výdaj hotovostiZapíše peníze, které přišly do kasy nebo z ní odešly mimo účtenky, do pokladní knihy provozovny – téže, kterou vede administrace (Statistiky → Pokladní kniha) a exportuje do agendy Pokladna v Pohodě: deposit (vklad – drobné na směnu, doplnění), income (jiný příjem hotovosti), withdrawal (výběr – odvod do banky…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/tabs – Otevřené účty stolů provozovnyVšechny otevřené účty stolů provozovny ze všech pokladen a číšníků, takže stůl může převzít kterékoli zařízení. Ptejte se s If-None-Match (nezměněný seznam skoro nic nestojí), nebo sledujte události tab.updated a tab.closed.
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/tabs/{tab_id} – Detail účtu stoluOtevřený nebo uzavřený účet stolu s ETag (verzí).
Přihlášení: oauth2, oprávnění receipts:read
/restaurants/{restaurant_id}/tabs/{tab_id} – Otevřít nebo změnit účet stoluPošle celý stav účtu: stůl a všechny položky. Bez If-Match se otevře nový účet (201). Při změně otevřeného účtu pošlete If-Match s načteným ETag (bez něj 428 precondition_required); když ho mezitím změnilo jiné zařízení, dostanete 412 precondition_failed – načtěte ho znovu, sloučte a pošlete znovu.…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/tabs/{tab_id} – Uzavřít účet stolu bez účtenkyUzavře účet, který se platit nebude – zrušený stůl. Řádky, které na účtu zůstaly, se počítají jako zrušené: ty, které už šly do kuchyně, se zapíšou jako storna položek stejně jako při odebrání přes putTab a log stolů v administraci zapíše uzavření s nepovinným reason. Položky na jiný účet nejdřív přesuňte přes…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/tabs/{tab_id}/moves – Přesunout položky na jiný účetPřesune řádky nebo jejich část z tohoto účtu na jiný v jednom kroku – hosté se přesadí k jinému stolu, nebo se účet dělí (placenou část přesuňte na nový účet a zaplaťte ji přes createReceipt). Přesunuté kusy si nesou cenu, přílohy, poznámku, chod, sent_to_kitchen i ordered_at; nic se znovu neoceňuje, takže se…
Přihlášení: oauth2, oprávnění receipts:write
/restaurants/{restaurant_id}/pos-activity – Poslat deník akcí pokladnyAkce na pokladně, které nejsou doklady – otevření zásuvky, tisk kopie, přihlášení, přesun položek mezi stoly… – jako text pro Časovou osu akcí (bar) v administraci, stejně jako z dnešní pokladny. Jen zapíše text a nic nemění: přesun položek mezi stoly se třeba dělá dvěma voláními putTab – cílový účet s položkami…
Přihlášení: oauth2, oprávnění receipts:write
Inventura na vlastních zařízeních Profirestu – položky k přepočítání a výsledek, který nastaví stav skladu, jako v administraci (Sklad → Inventury). Jen pro vlastní zařízení Profirestu.
/restaurants/{restaurant_id}/stock-taking/items – Položky k inventuřeSkladové položky, které má administrace označené k inventuře na baru (na pokladnách) nebo v kuchyni, s množstvím, které teď očekává sklad – seznam pro inventuru na zařízení. Položky skryté pro tuto provozovnu chybí.
Přihlášení: oauth2, oprávnění stock:read
/restaurants/{restaurant_id}/stock-takings – Zapsat inventuruNapočítaná množství dokončené inventury v jednom požadavku. Server je porovná se stavem skladu, zapíše inventuru do administrace (Sklad → Inventury) na přihlášeného zaměstnance a nastaví sklad na napočítaná množství; rozdíly zapíše do pohybů skladu jako inventuru – pokud provozovna nemá zapnuté *Nenastavovat sklad…
Přihlášení: oauth2, oprávnění stock:write
/restaurants/{restaurant_id}/stock-takings/{stock_taking_id} – Detail inventuryJedna inventura zapsaná přes API s očekávaným a napočítaným množstvím.
Přihlášení: oauth2, oprávnění stock:read
Zálohy místní databáze pokladny – ZIP, který pokladna nahrává (pravidelně, na požádání, po uzávěrce) a stáhne při obnově, třeba na novém zařízení. Společné s pokladnami na API v1. Jen pro vlastní zařízení Profirestu.
/restaurants/{restaurant_id}/backups – Seznam zálohZálohy pokladen provozovny od nejnovější – i ty, které nahrály pokladny na API v1 (legacy: true). V seznamu jsou jen zálohy, které server umí vydat: záloha, jejíž soubor nenajde, se vynechá (getBackup i downloadBackup pro ni vrátí 404). U záloh nahraných přes toto API server drží posledních 64 automatických…
Přihlášení: oauth2, oprávnění backups:read
/restaurants/{restaurant_id}/backups – Nahrát zálohuNahraje archiv ZIP s místní databází pokladny: tělem je samotný soubor (Content-Type: application/zip), nejvýš 50 MB. Server ho uloží k provozovně a nejstarší zálohy stejného typu nad limit smaže (viz listBackups).
Přihlášení: oauth2, oprávnění backups:write
/restaurants/{restaurant_id}/backups/{backup_id} – Detail zálohyÚdaje o jedné záloze provozovny; samotný archiv je na …/content.
Přihlášení: oauth2, oprávnění backups:read
/restaurants/{restaurant_id}/backups/{backup_id}/content – Stáhnout zálohuArchiv ZIP zálohy tak, jak ho pokladna nahrála. Záloha, jejíž soubor už není uložený, vrátí 404 not_found. Archiv obsahuje data provozovny – mimo zařízení ho neuchovávejte.
Přihlášení: oauth2, oprávnění backups:read
Stav, chyby a logy vlastních zařízení Profirestu pro provozovnu a podporu Profirestu. Zařízení každou minutu přihlásí stav (checkInDevice), chyby hlásí hned (reportDeviceError) a log si drží u sebe; celý log nahraje jen na vyžádání (příkaz upload_logs, putLogUploadPart). Hlášení chyb od uživatelů (createBugReport) jdou podpoře e-mailem.
/restaurants/{restaurant_id}/device-logs – Poslat logy zařízeníZastaralé (26.10.6): záznamy logu už nejdou do databáze po řádcích. Log nechte na zařízení, chyby hlaste hned přes reportDeviceError a celý log nahrajte jen na vyžádání (checkInDevice, putLogUploadPart). Operace starším aplikacím dál funguje a později se odstraní.
Přihlášení: oauth2, oprávnění diagnostics:write
/restaurants/{restaurant_id}/bug-reports – Nahlásit chybuHlášení chyby od uživatele zařízení pro podporu Profirestu s nedávnými záznamy logu, které zařízení přiloží. Hlášení jde podpoře e-mailem spolu s tím, co zařízení za poslední hodinu poslalo do device-logs.
Přihlášení: oauth2, oprávnění diagnostics:write
/restaurants/{restaurant_id}/device-checkin – Přihlásit stav zařízeníZařízení říká, že žije a v jakém je stavu, a vyzvedne si příkazy – asi 500 bajtů každých 60 sekund z kasy, každých 5 minut z telefonu číšníka s vlastním tokenem a internetem. Tělo je stav zařízení teď: verze, síť, fronty čekající na odeslání (účtenky, platby, tisk), poslední záloha, zařízení k němu připojená (peers…
Přihlášení: oauth2, oprávnění diagnostics:write
/restaurants/{restaurant_id}/device-errors – Nahlásit chybu hnedJedna chyba (v živém režimu i varování) z logu zařízení hned, jak se stane, s řádky logu před ní (context, asi 30 řádků, od nejstaršího) – kolem 3 kB. Server ji drží jako soubor 90 dní a ukazuje v administraci (Zařízení → Chyby) a podpoře Profirestu; kasa hlásí i chyby svých číšníků (peer_key). Z jedné chyby…
Přihlášení: oauth2, oprávnění diagnostics:write
/log-uploads/{upload_id} – Stav nahrávání loguJak je na tom jeden cíl příkazu upload_logs: které části server má (parts_received) a jestli je nahrávání ještě otevřené. Po přerušení ho přečtěte a pošlete jen chybějící části. Token cíle (pfl_… z příkazu) je Authorization: Bearer – žádný token zařízení, takže nahrává i telefon číšníka bez vlastního tokenu.
Přihlášení: logUpload
/log-uploads/{upload_id}/parts/{part} – Nahrát část loguJedna část souboru logu: tělem je gzip (Content-Type: application/gzip), nejvýš 4 MB, s celými řádky NDJSON – server části po pořadí spojí do jednoho souboru gzip bez rozbalení (členy gzipu se dají zřetězit), takže každá část je sama o sobě úplný proud gzip. Části po 1–2 MB projdou i pomalou linkou; přerušené…
Přihlášení: logUpload
/log-uploads/{upload_id}/complete – Dokončit nahrávání loguVšechny části jsou tam: parts říká kolik, server je spojí a nahrávání uzavře (status done). Chybějící část odpoví 422 upload_incomplete s čísly v detail – pošlete je a dokončete znovu. lines, from a to popisují, co soubor nese (ukáže se podpoře). Dokončení už hotového nahrávání jen odpoví jeho stav.
Přihlášení: logUpload
/log-uploads/{upload_id}/abort – Vzdát nahrávání loguZařízení tento cíl obsloužit nemůže: reason unsupported (aplikace úložiště logů nemá), no_data (za období nic není – úložiště je kratší, zařízení bylo vypnuté), failed (chyba, přes kterou se zařízení nedostane, co přesně řekne message) nebo declined. Nahrávání se uzavře s tím stavem a podpora vidí proč.…
Přihlášení: logUpload
Co vlastní zařízení Profirestu potřebují k práci – údaje firmy, tiskové šablony, tiskárny, stoly, licence.
/restaurants/{restaurant_id}/device-settings – Nastavení pro zařízení provozovnyVše nastavené v administraci, co potřebuje pokladna, kuchyňský displej nebo jiné zařízení provozovny: provozovna a firma na účtenkách (IČO, DIČ, plátce DPH), tiskové šablony (Tiskové sestavy), předdefinované poznámky, tiskárny a výrobní stanoviště rozdělené kuchyně, místnosti se stoly (když licence obsahuje mapu…
Přihlášení: oauth2, oprávnění settings:read
Zákazníci celého účtu pro objednávky, které personál bere po telefonu – hledání podle telefonu nebo jména s jejich adresami a příchozí hovory. Jen pro vlastní zařízení Profirestu.
/restaurants/{restaurant_id}/customer-directory – Najít zákazníky podle telefonu nebo jménaPro objednávku přijatou po telefonu. Zákazníci celého účtu – titíž, které administrace ukazuje v Zákaznících –, jejichž telefon začíná na phone nebo jejichž jméno obsahuje name, každý s jednou ze svých doručovacích adres: jeden výsledek na zákazníka a adresu, nejvýš 10. Napřed adresy s polohou, pak registrovaní…
Přihlášení: oauth2, oprávnění directory:read
/restaurants/{restaurant_id}/calls – Nahlásit příchozí hovorTelefon provozovny hlásí hovor. Odpověď řekne, kdo volá – zákazníka, počet jeho objednávek a adresu posledního rozvozu z této provozovny – a kuchyňské displeje provozovny dostanou událost call.received. Číslo, které účet ještě nezná, se jako dnes přidá mezi zákazníky, aby ho ukázaly i obrazovky, které hovory čtou…
Přihlášení: oauth2, oprávnění calls:write
/restaurants/{restaurant_id}/calls/latest – Hovor posledních 45 sekundPoslední hovor nahlášený za posledních 45 sekund, jak ho dnes kuchyňský displej ukazuje u nové objednávky; call: null, když žádný není. Jako dnes zahrnuje hovory celého účtu včetně těch, které nahlásily starší aplikace. Hovory nahlášené přes POST …/calls přicházejí zařízením jejich provozovny i jako…
Přihlášení: oauth2, oprávnění directory:read
Hosté objednávají od stolu a volají obsluhu ze svého telefonu. O všem rozhoduje hlavní kasa podniku a hosty na Wi-Fi podniku obsluhuje sama (její místní API); tyto operace jsou záložní cesta přes internet pro telefony, které se k ní nedostanou (/table/…, s tokenem telefonu u stolu), a spojení hlavní kasy s cloudem (schránka žádostí, zrcadlo stavů, heartbeat). Jen pro vlastní aplikace Profirestu.
/table/sessions – Připojit se ke stolu kódem z QRZáložní cesta objednávání od stolu pro telefon, který se k hlavní kase podniku nedostane přes jeho Wi-Fi. Aplikace hosta pošle kód stolu z QR kódu (table_code) a dostane token tohoto telefonu u tohoto stolu. O všem rozhoduje hlavní kasa: požadavky k ní jdou přes cloud, proto je ordering.blocked_reason…
Přihlášení: bez přihlášení nebo tableGuest
/table/session – Stůl, jak ho vidí tento telefonProvozovna a stůl, návštěva stolu (null, dokud si telefon nepřevezme hlavní kasa), tento telefon, jestli a jak teď jde objednat (ordering), kód pro kamarády u stolu (jen ověřenému telefonu) a otevřená volání tohoto telefonu. Čtěte znovu po každé akci a každých 10 sekund, dokud je aplikace otevřená…
Přihlášení: tableGuest
/table/session/join – Přidat se ke skupině kódem od kamarádaČtyři číslice, které ukazuje ověřený telefon u stolu (TableSession.join.code). Kód ověří hlavní kasa a odpoví přes cloud: odpověď je 202 se žádostí; čtěte ji přes getTableRequest, dokud status není done (telefon je ověřený – vidí účet a jeho objednávky nemusí čekat na obsluhu) nebo failed (error.code…
Přihlášení: tableGuest
/table/requests/{request_id} – Odpověď hlavní kasy na žádost tohoto telefonuŽádost, kterou tento telefon poslal přes cloud (joinTable, cancelTableOrder, cancelTableCall). queued – hlavní kasa ještě nerozhodla; čtěte znovu za 2 sekundy. done nebo failed je konečné.
Přihlášení: tableGuest
/table/menu – Co si host může objednat od stoluProdukty kategorií, které podnik pro objednávky od stolu povolil, s cenami pokladny. available: false – teď vyprodané; ukažte ho, ale nedovolte ho přidat. age_restricted – věk kontroluje obsluha při podání. Čtěte s If-None-Match; mění se, když podnik změní sortiment.
Přihlášení: tableGuest
/table/orders – Objednávky tohoto telefonuObjednávky, které tento telefon u tohoto stolu poslal, od nejnovější (nejvýš 50), se stavem, jak ho hlásí hlavní kasa. Objednávky jiných telefonů tu nejsou; ověřený telefon vidí celý účet v getTableTab.
Přihlášení: tableGuest
/table/orders – Poslat objednávku na stůlid je UUID, které aplikace vytvoří, když host klepne na „objednat“; při opakování ho zachovejte (i přes druhou cestu – hlavní kasa ho zná). Stejné id se stejným tělem vrátí objednávku s 200; s jiným tělem 422 idempotency_key_mismatch.
Přihlášení: tableGuest
/table/orders/{order_id}/cancel – Požádat o zrušení objednávky, která ještě čeká na obsluhuJen objednávka ve stavu submitted nebo pending_confirmation (jinak order_not_cancellable). Rozhodne hlavní kasa: odpověď čtěte přes getTableRequest – done (objednávka je cancelled) nebo failed s order_not_cancellable (obsluha ji mezitím přijala).
Přihlášení: tableGuest
/table/calls – Zavolat obsluhu ke stoluwaiter – přijďte ke stolu; bill – host chce platit (u obsluhy, platba mobilem sem nepatří). Funguje i při pozastavených objednávkách. Dokud je volání stejného druhu z tohoto telefonu otevřené, dostanete místo druhého to první s 200. Volání dojde na displej baru přes hlavní kasu: submitted, dokud si ho kasa…
Přihlášení: tableGuest
/table/calls/{call_id}/cancel – Požádat o zrušení voláníVolání zruší hlavní kasa; odpověď čtěte přes getTableRequest.
Přihlášení: tableGuest
/table/tab – Účet stoluVšechno na účtu stolu, i to, co namarkovala obsluha a co objednaly jiné telefony – jen pro ověřený telefon (jinak device_not_verified). Tak, jak ho naposledy poslala hlavní kasa; 404, dokud stůl účet nemá.
Přihlášení: tableGuest
/table/events – Upozornění na změny pro telefon u stolu (Server-Sent Events)Stejné jako události místního API hlavní kasy: dlouhá odpověď text/event-stream, jejíž zprávy říkají jen, co se změnilo (TableGuestEvent – typ a ID), nikdy jak; stav si aplikace pak načte GETem (getTableSession, listTableOrders, getTableTab). Typy: session (změnil se telefon, návštěva nebo objednávání…
Přihlášení: tableGuest
/restaurants/{restaurant_id}/table/heartbeat – Hlavní kasa žijeJen hlavní kasa provozovny (zařízení, které obsluhuje objednávky od stolu po Wi-Fi podniku). Posílejte ho každých 30 sekund, dokud je objednávání od stolu zapnuté, a hned při změně pauzy. 90 sekund po posledním bere cloud kasu jako online (online_seconds); potom hosté na záložní cestě dostanou restaurant_offline.…
Přihlášení: oauth2, oprávnění table:sync
/restaurants/{restaurant_id}/table/inbox – Žádosti hostů ze záložní cestyŽádosti hostů, které se místo ke kase dostaly do cloudu, od nejstarší (nejvýš 100). Každou zpracujte stejným kódem jako stejný požadavek na místním API a výsledek pošlete přes completeTableInboxItem; do té doby tu položka zůstane. kind a payload:
Přihlášení: oauth2, oprávnění table:sync
/restaurants/{restaurant_id}/table/inbox/{item_id} – Výsledek žádosti hostadone s result, nebo failed s error (kód a věta pro hosta, viz listTableInbox). Host ho uvidí hned a podle něj se změní objednávka, volání nebo telefon v cloudu; co z výsledku nejde poznat (pozdější stavy, účet), pošlete přes putTableState. Stejný výsledek poslat znovu je v pořádku (ztracená odpověď); jiný…
Přihlášení: oauth2, oprávnění table:sync
/restaurants/{restaurant_id}/table/state – Zrcadlo stavu stolů z hlavní kasyZdrojem pravdy je hlavní kasa. Po každé změně pošlete změněné návštěvy, telefony, objednávky a volání – i z místní cesty, aby je cloud ukázal hostům na záložní cestě, na webovém kuchyňském displeji a v administraci. Každý objekt nese svou version (číslo, které na kase roste s každou změnou): cloud si nechá vyšší a…
Přihlášení: oauth2, oprávnění table:sync
/restaurants/{restaurant_id}/table/orders/{order_id}/apply – Zapsat přijatou objednávku od stolu na účet a do kuchyněKdyž hlavní kasa přijme objednávku od stolu (obsluha na kase nebo na displeji baru, nebo podle pravidel podniku bez obsluhy), přidá její řádky na účet stolu touto operací, ne přes putTab – na kase nemusí být přihlášený zaměstnanec a řádky se jen přidávají, takže není potřeba If-Match. tab_id je účet návštěvy…
Přihlášení: oauth2, oprávnění table:sync