API v2
Changelog
Co se ve smlouvě API v2 měnilo, verze po verzi – shrnutí, co musí vaše integrace udělat, a přesný výčet nových operací, polí, hodnot a kódů chyb.
How the API v2 contract changed, version by version – a summary, what your integration needs to do, and the exact list of new operations, fields, values and error codes.
- Aktuální verzeCurrent version
- 26.11.28
- VydánaReleased
- 13. 11. 202613 November 2026
- Verzí od vydání v2Versions since v2
- 37
- Nekompatibilní změnyIncompatible changes
- 6
Jak číslujeme verzeHow versions are numbered
Verze smlouvy má tvar ROK.MĚSÍC.N stejně jako aplikace ProfiREST: 26.10.7 je sedmé
vydání v říjnu 2026, nový měsíc začíná zase od 1. Číslo říká, kdy vydání vyšlo. Jestli je kompatibilní, říká
v2 v adrese – v jejím rámci se nic neodebírá ani nepřejmenovává
(slib stability), takže v2 platí, ať vydání přibude kolik chce. Server vždy
běží v nejnovější verzi; starší verze se nevolí – přepínač verzí v liště mění jen dokumentaci, aby bylo vidět, co znala
integrace napsaná podle starší verze.
The contract version has the form YEAR.MONTH.N, like ProfiREST's apps: 26.10.7 is the
seventh release in October 2026, and a new month starts from 1 again. The number says when a release came out.
Whether it is compatible is said by v2 in the URL – within it nothing is removed or renamed
(stability promise), so v2 holds however many releases come. The server
always runs the newest version; older versions cannot be chosen – the version switcher in the top bar changes only the
documentation, so you can see what an integration written for an older version knew.
| Štítek verzeVersion label | Co přinášíWhat it brings | Co musíte udělatWhat you need to do |
|---|---|---|
| Nové funkceNew features | Operace, nepovinná vstupní pole, pole v odpovědích, hodnoty výčtů, typy událostí, kódy chyb, oprávnění.Operations, optional request fields, response fields, enum values, event types, error codes, scopes. | Nic, pokud dodržujete pravidla pro každého klienta: neznámá pole ignorovat, neznámou hodnotu výčtu brát jako „jiné“.Nothing if you follow the rules for every client: ignore unknown fields, treat an unknown enum value as “other”. |
| Opravy a dokumentaceFixes and documentation | Texty, příklady a chování srovnané se smlouvou; tvar API se nemění.Texts, examples and behaviour aligned with the contract; the shape of the API does not change. | Nic; upřesnění chování popisuje karta verze.Nothing; the version card describes any clarified behaviour. |
| v2 → v3 | Nekompatibilní změnu přinese až další hlavní verze.Only the next major version brings an incompatible change. | Konec v2 oznámí hlavička Sunset nejméně 12 měsíců předem.The end of v2 is announced with the Sunset header at least 12 months ahead. |
Zastaralé operace a pole mají v openapi.json
deprecated: true a v kartě verze skupinu Zastaralé s tím, co je nahrazuje; fungují dál až do konce v2.
Verzi, kterou server dodržuje, vrací GET /v2/ v poli version (a openapi.json
v info.version). Verze porovnávejte číselně po částech – jako text by 26.10.1 vyšla menší
než 26.9.12.
Deprecated operations and fields have deprecated: true in
openapi.json and a Deprecated group in the version card saying what replaces them;
they keep working until the end of v2. The version the server follows is in version of
GET /v2/ (and in info.version of openapi.json). Compare versions part by part as
numbers – as text 26.10.1 would come out smaller than 26.9.12.
Do 30. 10. 2026 se verze číslovaly 2.0.5 až 2.5.0. Karta každé verze uvádí staré
číslo jako „dříve“ a staré odkazy (?v=2.4.0) vedou na stejnou verzi.
Until 30 October 2026 versions were numbered 2.0.5 to 2.5.0. Each version card shows
the old number as “formerly”, and old links (?v=2.4.0) lead to the same version.
Porovnat dvě verzeCompare two versions
Vyberte verzi, podle které je vaše integrace napsaná, a uvidíte všechno, co od ní přibylo – i co případně musíte udělat.
Pick the version your integration was written for and see everything added since – and anything you need to do.
26.11.28
Nové funkceNew featuresZpětně kompatibilníBackward compatibleaktuálnícurrentZměna platby účtenky bez stornaChanging the payment of a receipt without a cancellation
Pokladna může změnit, jak se vydaná účtenka zaplatila – třeba hotově místo kartou – bez storna a nové účtenky (changeReceiptPayment). Účtenka si nechá číslo, položky i celkovou částku, mění se jen platby; součty směny, pokladní kniha a administrace se přizpůsobí hned. Mění se platby hotově, stravenkami, na firemní účet a fakturou, do uzávěrky směny. Platby kartou a dárkovým voucherem zůstávají. Když se změní evidovaná tržba EET 2.0, server pošle opravu sám.
A register can change how an issued receipt was paid – for example by card instead of cash – without a cancellation and a new receipt (changeReceiptPayment). The receipt keeps its number, items and total, only the payments change; the shift totals, the cash book and the administration follow at once. Cash, meal voucher, company account and invoice payments change, until the shift close. Card and gift voucher payments stay. When the recorded EET 2.0 sale changes, the server sends the correction itself.
Co musíte udělatNic. Pokladny, které platbu dosud měnily stornem a novou účtenkou, ať použijí changeReceiptPayment – nevznikají dva doklady navíc a vouchery, body ani sklad se nevracejí. Klienti událostí mají počítat s novým typem receipt.updated (výčet je rozšiřitelný).
What you need to doNothing. Registers that changed a payment by a cancellation and a new receipt should use changeReceiptPayment – no two extra documents, and vouchers, points and the stock are not returned. Event clients should expect the new type receipt.updated (the list is extensible).
PřidánoAdded
changeReceiptPayment(POST …/receipts/{receipt_id}/payment-change) – změna platby vydané účtenky, kdo smí podlepos.receipt_cancel_byjako u storna.changeReceiptPayment(POST …/receipts/{receipt_id}/payment-change) – changing the payment of an issued receipt, who may as for a cancellation bypos.receipt_cancel_by.- Kódy chyb
receipt_payment_not_changeable(409) apos_shift_closed(409).The error codesreceipt_payment_not_changeable(409) andpos_shift_closed(409). - Událost
receipt.updated– pokladna změnila platbu účtenky.The eventreceipt.updated– a register changed the payment of a receipt.
ZměněnoChanged
listBackupsvynechá zálohy, jejichž soubor server nenajde (getBackupadownloadBackuppro ně vrátí404) – v seznamu je jen to, co jde stáhnout.listBackupsleaves out backups whose file the server cannot find (getBackupanddownloadBackupanswer404for them) – the list holds only what can be downloaded.
DokumentaceDocumentation
- Přechod z API v1:
changePaymentmá v API v2 vlastní operaci, už ne storno a novou účtenku.Moving from API v1:changePaymenthas its own operation in API v2, no longer a cancellation and a new receipt.
Přesný výčet změn ve smlouvěExact list of contract changes 5
Nové operaceNew operations 1
- POST/v2/restaurants/{restaurant_id}/receipts/{receipt_id}/payment-change Změnit platbu účtenkyChange the payment of a receipt
Nové typy událostíNew event types 1
receipt.updated
Nové kódy chybNew error codes 2
pos_shift_closedSměna účtenky je už uzavřenáThe shift of the receipt is already closedreceipt_payment_not_changeablePlatbu této účtenky změnit nejdeThe payment of this receipt cannot change
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 1
ReceiptPaymentChange
Reference ve verzi 26.11.28Reference at version 26.11.28 · Porovnat s 26.11.27Compare with 26.11.27
26.11.27
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePropadlá licence a offline účtenky obsluhyAn expired licence and offline receipts of the staff
Zařízení provozovny s propadlou licencí dostanou 403 license_expired, jako kód 700 v API v1. Nastavení zařízení, zálohy, diagnostika a offline účtenky z doby licence fungují dál. Offline účtenka s ruční slevou nebo vlastní položkou bez vedoucího se přijme a Časová osa ji označí. Vystavitel offline účtenky smí být mezitím smazaný zaměstnanec. Relace pokladny a mobilního číšníka vydrží celou směnu.
Devices of a restaurant with an expired licence get 403 license_expired, like code 700 in API v1. The device settings, backups, diagnostics and offline receipts from the time of the licence keep working. An offline receipt with a manual discount or an open item and no manager is accepted and the action timeline marks it. The issuer of an offline receipt may be an employee deleted meanwhile. Sessions of the register and the waiter app last the whole shift.
Co musíte udělatPokladny a další zařízení Profirestu: na license_expired se zamkněte jako po konci paid_until. Pokladna nemá u offline slevy posílat approved_by_id vedoucího, který nic neschválil.
What you need to doRegisters and other Profirest devices: lock on license_expired as after the end of paid_until. A register should not send approved_by_id of a manager who approved nothing for an offline discount.
PřidánoAdded
- Kód chyby
license_expired(403) – licence provozovny vypršela a z kreditu ji obnovit nešlo.The error codelicense_expired(403) – the licence of the restaurant expired and could not be renewed from the credit.
ZměněnoChanged
createReceiptsoffline: truepřijme ruční slevu a vlastní položku i bez vedoucího (dřív403 manager_approval_required) a zapíše ji do Časové osy.createReceiptwithoffline: trueaccepts a manual discount and an open item also without a manager (before403 manager_approval_required) and notes it in the timeline.issued_by_idoffline účtenky smí být zaměstnanec účtu smazaný nebo odebraný z provozovny.issued_by_idof an offline receipt may be an employee of the account deleted or removed from the restaurant.- Relace aplikace
profirest-posnekončí po 5 minutách nečinnosti, ale až smax_expires_at(idle_timeout_seconds43 200).A session of theprofirest-posapp does not end after 5 minutes without use but atmax_expires_at(idle_timeout_seconds43,200).
Přesný výčet změn ve smlouvěExact list of contract changes 1
Nové kódy chybNew error codes 1
license_expiredLicence provozovny vypršelaThe licence of the restaurant has expired
Reference ve verzi 26.11.27Reference at version 26.11.27 · Porovnat s 26.11.26Compare with 26.11.26
26.11.26
Nové funkceNew featuresZpětně kompatibilníBackward compatibleUzavřené směny, prodej voucheru a přihlášení offlineClosed shifts, selling a voucher and signing in offline
Pokladna může zpětně přečíst uzavřené směny (listPosShifts, getPosShiftClose) i účtenky jedné uzávěrky (listReceipts?shift_id=). Spárovaná pokladna v checkVoucher uvidí i dosud neprodaný voucher s jeho hodnotou a prodá ho bez zadávání ceny. Pro přihlášení obsluhy bez spojení dostane pokladna v listStaff kontrolu PINu každého zaměstnance s rolí na pokladně (offline_sign_in).
A register can read closed shifts back (listPosShifts, getPosShiftClose) and the receipts of one close (listReceipts?shift_id=). A paired register sees in checkVoucher also a voucher not sold yet with its value and sells it without typing the price. For signing employees in without connection a register gets in listStaff a PIN check of every employee with a register role (offline_sign_in).
Co musíte udělatNic. Klienti, kteří Voucher.status porovnávají s pevným výčtem, mají počítat s novou hodnotou for_sale (výčet je rozšiřitelný).
What you need to doNothing. Clients comparing Voucher.status with a fixed list should expect the new value for_sale (the list is extensible).
PřidánoAdded
listPosShiftsagetPosShiftClose– uzavřené směny provozovny tak, jak je vrátilclosePosShift.listPosShiftsandgetPosShiftClose– closed shifts of the restaurant asclosePosShiftreturned them.- Parametr
shift_idvlistReceipts– účtenky jedné uzávěrky, i převzaté doklady z API v1.Theshift_idparameter oflistReceipts– the receipts of one close, also API v1 documents taken over. for_salevVoucher.status– neprodaný voucher, jen pro spárovanou pokladnu.for_saleinVoucher.status– a voucher not sold yet, for a paired register only.offline_sign_invStaffMember– kontrola PINu pro přihlášení bez spojení, stejné hodnoty jakooffline_approval.offline_sign_ininStaffMember– a PIN check for signing in without connection, the same values asoffline_approval.
ZměněnoChanged
unit_priceřádkuvoucher_saleje nepovinná – bez ní se voucher prodá za svou hodnotu.unit_priceof avoucher_saleline is optional – without it the voucher sells at its value.
Přesný výčet změn ve smlouvěExact list of contract changes 6
Nové operaceNew operations 2
- GET/v2/restaurants/{restaurant_id}/pos-shifts Seznam uzavřených směnList closed shifts
- GET/v2/restaurants/{restaurant_id}/pos-shifts/{shift_id} Uzavřená směnaA closed shift
Nová poleNew fields 1
StaffMember.offline_sign_in
Nové hodnoty výčtůNew enum values 1
Voucher.status:for_sale
Nové parametryNew parameters 1
listReceipts: queryshift_id
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 1
PosShiftClosePage
Reference ve verzi 26.11.26Reference at version 26.11.26 · Porovnat s 26.11.25Compare with 26.11.25
26.11.25
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePříjem objednávek zvlášť od otevírací dobyOrder hours apart from the opening hours
Provozovna může přijímat objednávky z e-shopů kratší dobu, než má otevřeno – třeba „Otevřeno do 22:00 · Objednávky do 21:30“. Nová operace getOrderHours vrací příjem objednávek (výchozí je stejně jako otevírací doba) a ordering.venue_open_now říká, jestli má provozovna podle otevírací doby otevřeno. Aplikace web se řídí příjmem objednávek: ordering.open_now, listTimeSlots i kalkulace.
A restaurant may accept orders from e-shops for a shorter time than it is open – for example „Open until 22:00 · Orders until 21:30“. The new operation getOrderHours returns the order hours (by default the same as the opening hours) and ordering.venue_open_now says whether the restaurant is open by its opening hours. web applications follow the order hours: ordering.open_now, listTimeSlots and the quote.
Co musíte udělatNic, dokud provozovna nenastaví vlastní příjem objednávek. Aplikace pro hosty, které ukazují „Otevřeno / Zavřeno“ podle open_now, ho mají brát z venue_open_now a čas objednávek ukazovat z getOrderHours.
What you need to doNothing until a restaurant sets its own order hours. Guest applications showing „Open / Closed“ by open_now should take it from venue_open_now and show the ordering times from getOrderHours.
PřidánoAdded
getOrderHours– příjem objednávek aplikacíwebpo dnech a týdenní šablona,same_as_opening_hours.getOrderHours– the order hours ofwebapplications per day and the weekly template,same_as_opening_hours.venue_open_nowvRestaurant.ordering– otevřeno podle otevírací doby, jen pro zobrazení.venue_open_nowinRestaurant.ordering– open by the opening hours, for display only.
ZměněnoChanged
- U aplikací
webseopen_now,next_change_at,listTimeSlots, kalkulace a rozvozové zóny bez vlastních časů řídí příjmem objednávek místo otevírací doby. Bez vlastního příjmu objednávek se nic nemění.Forwebapplicationsopen_now,next_change_at,listTimeSlots, the quote and delivery zones without own times follow the order hours instead of the opening hours. Without own order hours nothing changes.
Přesný výčet změn ve smlouvěExact list of contract changes 3
Nové operaceNew operations 1
- GET/v2/restaurants/{restaurant_id}/order-hours Příjem objednávekOrder hours
Nová poleNew fields 1
RestaurantOrdering.venue_open_now
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 1
OrderHours
Reference ve verzi 26.11.25Reference at version 26.11.25 · Porovnat s 26.11.24Compare with 26.11.24
26.11.24
Nové funkceNew featuresZpětně kompatibilníBackward compatibleRežim Kalkulačka na pokladněThe Calculator mode of the register
Pokladna umí prodávat bez sortimentu: obsluha napíše počet a cenu a klepne na tlačítko skupiny, třeba „Pečivo 12 %“. Tlačítka (název, sazba DPH, barva) nastavuje provozovna a pokladna je dostane v nastavení zařízení. Řádek z tlačítka je položka s vlastní cenou, kterou smí prodat kdokoli s rolí pos bez PINu vedoucího.
The register can sell without a catalog: the cashier types a quantity and a price and taps a key of a group, for example „Bakery 12 %“. The restaurant sets the keys (name, VAT rate, colour) and the register gets them in the device settings. A line of a key is an open item any employee with the pos role may sell, no manager's PIN.
Co musíte udělatPartnerské aplikace nic. Pokladna, která režim nabízí, čte pos.calculator v getDeviceSettings a u řádků z tlačítek posílá calculator_key_id.
What you need to doPartner applications nothing. A register offering the mode reads pos.calculator in getDeviceSettings and sends calculator_key_id with the lines of the keys.
PřidánoAdded
pos.calculatorvgetDeviceSettings– zda je režim zapnutý a tlačítka skupin (id,name,vat_rate,color,position).pos.calculatoringetDeviceSettings– whether the mode is on and the keys of the groups (id,name,vat_rate,color,position).calculator_key_idu položkyopen_itemvcreateReceiptapreviewReceipt– řádek obsluhy bez vedoucího, v účtenceprice_sourcecalculator.calculator_key_idon anopen_itemincreateReceiptandpreviewReceipt– a line of a cashier without a manager,price_sourcecalculatoron the receipt.- Kód pole
calculator_key_mismatch– sazba řádku není sazba tlačítka.The field codecalculator_key_mismatch– the rate of the line is not the rate of the key.
Přesný výčet změn ve smlouvěExact list of contract changes 5
Nová poleNew fields 2
DeviceSettings.pos.calculatorReceiptItemInput.calculator_key_id
Nové hodnoty výčtůNew enum values 1
ReceiptLine.price_source:calculator
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 2
PosCalculatorPosCalculatorKey
Reference ve verzi 26.11.24Reference at version 26.11.24 · Porovnat s 26.11.23Compare with 26.11.23
26.11.23
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePráva recepce a pokojské, úklid s přihlášeným zaměstnancemReception and maid permissions, housekeeping with a signed-in employee
Recepce a pokojská mají vlastní práva zaměstnance pro zařízení jako pokladna a kuchyň: role reception, nová reception_manager a housekeeping plynou z nich, ne z oprávnění webové administrace. Storno dokladu za pobyt a mazání plateb smí jen správce recepce. Operace úklidu nově přijímají token zaměstnance a zapíšou, kdo úkol udělal nebo závadu nahlásil.
The reception and maids have their own employee permissions for devices like the register and the kitchen: the roles reception, the new reception_manager and housekeeping come from them, not from permissions of the web administration. Only a reception manager may cancel the receipt for a stay and remove payments. Housekeeping operations now accept the staff token and record who did the task or reported the fault.
Co musíte udělatPartnerské aplikace nic. Kdo posílá u úklidu Profirest-Staff-Token, uvidí v úkolech a závadách zaměstnance, který je udělal.
What you need to doPartner applications nothing. Those who send Profirest-Staff-Token with housekeeping operations see the employee who did tasks and reported faults.
PřidánoAdded
- Role
reception_managervStaffMember.roles– storno dokladu (cancelStayReceipt) a mazání plateb (deleteStayPayment), ostatní recepční dostanou403 staff_role_missing.The rolereception_managerinStaffMember.roles– cancelling the receipt (cancelStayReceipt) and removing payments (deleteStayPayment); other receptionists get403 staff_role_missing. Profirest-Staff-Tokenu operací úklidu (getHousekeepingDay…fixRoomIssue).Profirest-Staff-Tokenwith housekeeping operations (getHousekeepingDay…fixRoomIssue).
ZměněnoChanged
- Role
receptionahousekeepingplynou z vlastních práv zaměstnance Recepce a Pokojská, ne z oprávnění webové administrace Ubytování, plného přístupu a Pokojská.The rolesreceptionandhousekeepingcome from the employee permissions Reception and Maid, not from the web administration permissions Accommodation, full access and Maid.
OpravenoFixed
- Úkol úklidu a závada zapsané s tokenem zaměstnance teď nesou zaměstnance (
done_by_employee_id,created_by_employee_id).A housekeeping task and a fault recorded with a staff token now carry the employee (done_by_employee_id,created_by_employee_id).
Přesný výčet změn ve smlouvěExact list of contract changes 7
Nové hodnoty výčtůNew enum values 1
StaffMember.roles[]:reception_manager
Nové parametryNew parameters 6
completeHousekeepingTask: headerProfirest-Staff-TokenfixRoomIssue: headerProfirest-Staff-TokengetHousekeepingDay: headerProfirest-Staff-TokenlistRoomIssues: headerProfirest-Staff-TokenreportRoomIssue: headerProfirest-Staff-TokenundoHousekeepingTask: headerProfirest-Staff-Token
Reference ve verzi 26.11.23Reference at version 26.11.23 · Porovnat s 26.11.22Compare with 26.11.22
26.11.22
Nové funkceNew featuresNekompatibilní změnaIncompatible changeRecepce hotelu – účet pokoje a vyúčtováníHotel reception – the account of the room and the bill
Aplikace recepce vyúčtuje pobyt sama: přidá služby z ceníku a vlastní položky, zapíše platby hosta, vystaví nebo stornuje doklad za pobyt, ukáže QR kód hosta s tím, co smí, a pohlídá cizince čekající na hlášení do Ubyportu (i s odesláním hned). Seznam pobytů nově ukazuje zůstatek účtu.
The reception application settles a stay itself: it adds services of the price list and own items, records the guest's payments, issues or cancels the receipt for the stay, shows the guest's QR code with what the guest may use, and watches foreigners waiting for the report to Ubyport (also sending it now). The list of stays now shows the balance of the account.
Co musíte udělatNic – vše je nové. LodgingStay má nové pole balance a doklad za pobyt v getStay pole kind.
What you need to doNothing – everything is new. LodgingStay has the new field balance and the receipt in getStay the field kind.
PřidánoAdded
listLodgingServices,addStayService,addStayChargearemoveStayFolioLine– služby a položky na účtu pokoje.listLodgingServices,addStayService,addStayChargeandremoveStayFolioLine– services and items on the account of the room.addStayPaymentadeleteStayPayment– platby hosta; doplatek po odjezdu vystaví doklad za pobyt.addStayPaymentanddeleteStayPayment– the guest's payments; settling after the departure issues the receipt for the stay.issueStayReceiptacancelStayReceipt– doklad za pobyt a protidoklad (LodgingReceipt).issueStayReceiptandcancelStayReceipt– the receipt for the stay and the cancelling receipt (LodgingReceipt).getStayGuestPass– obsah QR kódu hosta a co host smí (wellness, snídaně, parkoviště).getStayGuestPass– the content of the guest's QR code and what the guest may use (wellness, breakfast, car park).getUbyportStatusasendUbyport– cizinci čekající na hlášení policii se lhůtou a odeslání hned.getUbyportStatusandsendUbyport– foreigners waiting for the report to the police with the deadline, and sending now.LodgingStay.balance– zůstatek účtu i v seznamu pobytů.LodgingStay.balance– the balance of the account also in the list of stays.
Přesný výčet změn ve smlouvěExact list of contract changes 32
Nové operaceNew operations 11
- GET/v2/restaurants/{restaurant_id}/lodging/services Služby ceníkuServices of the price list
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/services Přidat službu na účetAdd a service to the account
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/folio-lines Přidat položku na účetAdd an item to the account
- DELETE/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/folio-lines/{line_id} Odebrat položku z účtuRemove an item from the account
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/payments Zapsat platbuRecord a payment
- DELETE/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/payments/{payment_id} Smazat platbuRemove a payment
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/receipt Vystavit doklad za pobytIssue the receipt for the stay
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/receipt/cancel Stornovat doklad za pobytCancel the receipt for the stay
- GET/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guest-pass QR kód hostaThe QR code of the guest
- GET/v2/restaurants/{restaurant_id}/lodging/ubyport Cizinci čekající na UbyportForeigners waiting for Ubyport
- POST/v2/restaurants/{restaurant_id}/lodging/ubyport/send Odeslat do Ubyportu teďSend to Ubyport now
Nová poleNew fields 1
LodgingStay.balance
Už nejsou povinnéNo longer required 6
LodgingStayDetail.receipt.eetLodgingStayDetail.receipt.idLodgingStayDetail.receipt.invoiceLodgingStayDetail.receipt.issued_atLodgingStayDetail.receipt.numberLodgingStayDetail.receipt.total
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 8
LodgingReceiptLodgingServiceListStayGuestPassStayPaymentInputStayReceiptCancelStayServiceInputUbyportSendResultUbyportStatus
Odebráno – nekompatibilníRemoved – incompatible 6
field:LodgingStayDetail.receipt.eetfield:LodgingStayDetail.receipt.idfield:LodgingStayDetail.receipt.invoicefield:LodgingStayDetail.receipt.issued_atfield:LodgingStayDetail.receipt.numberfield:LodgingStayDetail.receipt.total
Reference ve verzi 26.11.22Reference at version 26.11.22 · Porovnat s 26.11.21Compare with 26.11.21
26.11.21
Nové funkceNew featuresZpětně kompatibilníBackward compatibleRecepce hotelu – plán obsazenosti, pobyty a hostéHotel reception – the occupancy plan, stays and guests
Základ pro aplikaci recepce Profirestu: pokoje a typy pokojů se stavem úklidu, pobyty plánu obsazenosti za období (i dnešní příjezdy, odjezdy a ubytovaní jedním dotazem) a detail pobytu se zapsanými hosty, jejich doklady, zůstatkem účtu, dokladem za pobyt a historií. Recepce najde volné pokoje s cenou, založí, změní a přesune pobyt, potvrdí ho, ubytuje a odhlásí hosty nebo pobyt zruší a zapíše hosty s doklady pro domovní knihu a cizineckou policii. Server u každého pobytu říká, které kroky teď dovolí. Operace jsou jen pro vlastní aplikace Profirestu a potřebují přihlášeného zaměstnance s rolí recepce.
The base for Profirest's reception application: rooms and room types with the state of cleaning, stays of the occupancy plan for a period (also today's arrivals, departures and guests staying now in one call) and the detail of a stay with the registered guests, their documents, the balance of the account, the receipt for the stay and the history. The reception finds free rooms with prices, creates, changes and moves a stay, confirms it, checks guests in and out or cancels the stay, and registers guests with their documents for the guest book and the foreign police. For every stay the server says which steps it allows now. The operations are only for Profirest's own applications and need a signed-in employee with the reception role.
Co musíte udělatNic – vše je nové. StaffMember.roles může nově obsahovat reception a housekeeping; role, které neznáte, ignorujte.
What you need to doNothing – everything is new. StaffMember.roles can now contain reception and housekeeping; ignore roles you do not know.
PřidánoAdded
listLodgingRooms– typy pokojů a pokoje v pořadí plánu obsazenosti se stavem úklidu a počtem neopravených závad.listLodgingRooms– room types and rooms in the order of the occupancy plan with the state of cleaning and the number of faults not fixed.listStays– pobyty, které zasahují do období (nejvýš 62 dní), s povolenými krokyactionsa verzíversion.listStays– stays touching a period (at most 62 days) with the allowed stepsactionsand theversion.getStay– pobyt se zapsanými hosty a doklady, zůstatkem účtu, dokladem za pobyt a historií;ETagje verze pobytu.getStay– a stay with the registered guests and their documents, the balance, the receipt for the stay and the history; theETagis the version of the stay.getLodgingAvailability– volné pokoje každého typu a cena pobytu podle ceníku, přistýlek a balíčku;getLodgingRegistrationLists– státy, doklady a účely pobytu pro zápis hostů.getLodgingAvailability– free rooms of every type and the price of the stay by the price list, extra beds and the package;getLodgingRegistrationLists– countries, documents and purposes of stay for registering guests.createStay,updateStayamoveStay– založení, změna a přesun nebo prodloužení pobytu; změny sIf-Match.createStay,updateStayandmoveStay– creating, changing and moving or extending a stay; changes withIf-Match.confirmStay,checkInStay,checkOutStay,cancelStayamarkStayNoShow– kroky pobytu; odhlášení z vyrovnaného účtu vystaví doklad za pobyt.confirmStay,checkInStay,checkOutStay,cancelStayandmarkStayNoShow– the steps of a stay; checking out of a settled account issues the receipt for the stay.addStayGuest,updateStayGuestadeleteStayGuest– zapsaní hosté s doklady; cizinci jdou do Ubyportu.addStayGuest,updateStayGuestanddeleteStayGuest– registered guests with documents; foreigners go to Ubyport.- Chyby
stay_state_conflictalodging_room_unavailable(409).The errorsstay_state_conflictandlodging_room_unavailable(409). - Oprávnění
lodging_desk:readalodging_desk:writejen pro vlastní aplikace Profirestu.The scopeslodging_desk:readandlodging_desk:write, only for Profirest's own applications. - Role zaměstnance
reception(recepce) ahousekeeping(pokojská) vStaffMember.roles.The employee rolesreceptionandhousekeepinginStaffMember.roles.
Přesný výčet změn ve smlouvěExact list of contract changes 37
Nové operaceNew operations 16
- GET/v2/restaurants/{restaurant_id}/lodging/rooms Pokoje a typy pokojůRooms and room types
- GET/v2/restaurants/{restaurant_id}/lodging/availability Volné pokoje a ceny pro pobytFree rooms and prices for a stay
- GET/v2/restaurants/{restaurant_id}/lodging/registration-lists Číselníky pro zápis hostůLists for registering guests
- GET/v2/restaurants/{restaurant_id}/lodging/stays Pobyty plánu obsazenostiStays of the occupancy plan
- POST/v2/restaurants/{restaurant_id}/lodging/stays Založit pobytCreate a stay
- GET/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id} Detail pobytuGet a stay
- PATCH/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id} Změnit pobytChange a stay
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/move Přesunout nebo prodloužit pobytMove or extend a stay
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/confirm Potvrdit pobytConfirm a stay
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/check-in Ubytovat hostyCheck guests in
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/check-out Odhlásit hostyCheck guests out
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/cancel Zrušit pobytCancel a stay
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/no-show Host nepřijelMark a no-show
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guests Zapsat hostaRegister a guest
- PUT/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guests/{guest_id} Změnit zapsaného hostaChange a registered guest
- DELETE/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/guests/{guest_id} Smazat zapsaného hostaRemove a registered guest
Nové hodnoty výčtůNew enum values 1
StaffMember.roles[]:housekeeping,reception
Nové kódy chybNew error codes 2
lodging_room_unavailablePokoj v tomto termínu není volnýThe room is not free in these datesstay_state_conflictPobyt tento krok teď nedovolíThe stay does not allow this step now
Nová oprávněníNew scopes 2
lodging_desk:read– Recepce hotelu: vidět pokoje, plán obsazenosti a každý pobyt s kontakty hostů, jejich doklady totožnosti a historií pobytu.The reception of a hotel: see the rooms, the occupancy plan and every stay with the guests' contacts, their identity documents and the history of the stay.lodging_desk:write– Recepce hotelu: zakládat, měnit, přesouvat, ubytovávat, odhlašovat a rušit pobyty, zapisovat hosty a vyúčtovat účet pokoje.The reception of a hotel: create, change, move, check in, check out and cancel stays, register guests and settle the account of the room.
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 16
LodgingAvailabilityLodgingGuestLodgingGuestInputLodgingQuoteLodgingRegistrationListsLodgingRoomLodgingRoomTypeLodgingRoomsLodgingStayLodgingStayCancelLodgingStayCreateLodgingStayDetailLodgingStayGuestInputLodgingStayListLodgingStayMoveLodgingStayUpdate
Reference ve verzi 26.11.21Reference at version 26.11.21 · Porovnat s 26.11.20Compare with 26.11.20
26.11.20
Nové funkceNew featuresZpětně kompatibilníBackward compatibleŽivá poloha a jízda kurýrůLive location and driving of couriers
Telefon kurýra během směny posílá polohu, rychlost, směr a prudké manévry (brzdění, zrychlení, zatáčky v g). Kuchyňské displeje, dispečink a partnerské aplikace vidí kurýry živě – seznamem i událostmi v proudu – a u každé trasy projetou stopu se souhrnem (vzdálenost, čas v jízdě, nejvyšší rychlost). Poloha se zapisuje jen během směny a jen v provozovnách, které sledování kurýrů zapnuly.
During the shift the courier's phone sends the location, speed, heading and harsh manoeuvres (braking, acceleration, turns in g). Kitchen displays, dispatchers and partner applications see the couriers live – as a list and as events in the stream – and the driven track of every route with its summary (distance, time moving, top speed). The location is recorded only during the shift and only in restaurants that turned courier tracking on.
Co musíte udělatNic – vše je nové. Kdo čte proud událostí s deliveries:read, začne dostávat courier.position a courier.shift_changed; typy, které nezná, má ignorovat. Webhooky courier.position nedostávají.
What you need to doNothing – everything is new. Readers of the event feed with deliveries:read start getting courier.position and courier.shift_changed; they should ignore types they do not know. Webhooks do not get courier.position.
PřidánoAdded
postCourierTelemetry– telefon kurýra posílá dávky bodů, prudkých manévrů a stavu telefonu; odpověď říká, jak často posílat (mode,send_every_s).postCourierTelemetry– the courier's phone sends batches of points, harsh manoeuvres and the state of the phone; the answer says how often to send (mode,send_every_s).listCourierPositions– kde jsou kurýři na směně: stav, rychlost, otevřená trasa a zbývající objednávky, baterie a oprávnění telefonu.listCourierPositions– where the couriers on shift are: the state, speed, the open route and the orders left, the battery and the permission of the phone.getDeliveryRouteTrack– projetá stopa trasy s prudkými manévry a souhrnem; body se drží 14 dní, souhrn zůstává.getDeliveryRouteTrack– the driven track of a route with harsh manoeuvres and the summary; points are kept for 14 days, the summary stays.- Události
courier.position(jen proud alistEvents, drží se 24 hodin) acourier.shift_changedpoddeliveries:read.The eventscourier.position(only the feed andlistEvents, kept for 24 hours) andcourier.shift_changedunderdeliveries:read.
Přesný výčet změn ve smlouvěExact list of contract changes 27
Nové operaceNew operations 3
- POST/v2/restaurants/{restaurant_id}/couriers/{employee_id}/telemetry Poslat polohu a jízdu kurýra během směnySend the courier's location and driving during the shift
- GET/v2/restaurants/{restaurant_id}/courier-positions Kde jsou kurýři na směněWhere the couriers on shift are
- GET/v2/restaurants/{restaurant_id}/delivery-routes/{route_id}/track Projetá stopa trasyThe driven track of a route
Nové typy událostíNew event types 2
courier.positioncourier.shift_changed
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 22
CourierActivityCourierDeviceStateCourierDeviceStateInputCourierLocationCourierLocationInputCourierNetworkCourierPositionCourierPositionListCourierPositionStateCourierTelemetryBatchCourierTelemetryResultCourierTelemetrySampleCourierTrackingModeCourierTrackingOffReasonDeliveryRouteTrackDeliveryRouteTrackSummaryDrivingEventDrivingEventInputDrivingEventTypeDrivingThresholdsLocationPermissionTrackPoint
Reference ve verzi 26.11.20Reference at version 26.11.20 · Porovnat s 26.11.19Compare with 26.11.19
26.11.19
Nové funkceNew featuresZpětně kompatibilníBackward compatibleGastro, ubytování a vstupenky v přehledech tržebFood, accommodation and tickets in the revenue reports
Provozovna, která kromě jídla a pití prodává i ubytování nebo vstupenky, si přehledy tržeb omezí na jeden druh tržby nebo je rozdělí – stejně jako Statistiky a Měsíční přehledy v administraci. Průměrná objednávka gastra tak není zkreslená doklady za pobyt a nákupy vstupenek.
A restaurant that also sells accommodation or tickets besides food and drinks can limit the revenue reports to one kind of revenue or split them – like the Statistics and the Monthly reports of the administration. The average order of the food is then not skewed by documents of stays and ticket purchases.
Co musíte udělatNic – parametr i nová pole jsou nepovinné, bez parametru vrací přehledy totéž co dřív.
What you need to doNothing – the parameter and the new fields are optional; without the parameter the reports return the same as before.
PřidánoAdded
- Parametr
segment(food,lodging,tickets) ugetSalesSummaryagetProductSales.Thesegmentparameter (food,lodging,tickets) ofgetSalesSummaryandgetProductSales. getSalesSummarysgroup_by=segment– tržba a počet objednávek za gastro, ubytování a vstupenky.getSalesSummarywithgroup_by=segment– revenue and orders of food, accommodation and tickets.- Pole
segmentv odpovědigetSalesSummaryagetProductSales(null= všechno).Thesegmentfield in the answer ofgetSalesSummaryandgetProductSales(null= all).
Přesný výčet změn ve smlouvěExact list of contract changes 8
Nová poleNew fields 2
ProductSales.segmentSalesSummary.segment
Nové hodnoty výčtůNew enum values 4
SalesSummary.group_by:segmentgetProductSales:segment:food,lodging,ticketsgetSalesSummary:group_by:segmentgetSalesSummary:segment:food,lodging,tickets
Nové parametryNew parameters 2
getProductSales: querysegmentgetSalesSummary: querysegment
Reference ve verzi 26.11.19Reference at version 26.11.19 · Porovnat s 26.11.18Compare with 26.11.18
26.11.18
Opravy a dokumentaceFixes and documentationZpětně kompatibilníBackward compatibleÚtrata na pokoj bez účtenky z pokladnyCharge to a room without a receipt from the register
Ubytování vystavuje při odjezdu hosta doklad za celý pobyt – s ubytováním, službami i útratou z restaurace a baru zapsanou na pokoj. Pokladna proto na útratu zapsanou na pokoj účtenku nevystavuje.
The accommodation issues a document for the whole stay at the guest's departure – with the accommodation, services and the bill of the restaurant or the bar charged to the room. The register therefore issues no receipt for a charge to a room.
Co musíte udělatPokladna, která zapisuje útratu na pokoj (chargeToStay): účet stolu uzavřete bez účtenky a útratu pošlete za každou sazbu DPH zvlášť. Tvar API se nemění.
What you need to doA register that charges bills to rooms (chargeToStay): close the tab without a receipt and send the charge per VAT rate. The shape of the API does not change.
DokumentaceDocumentation
chargeToStay– pokladna účtenku nevystaví, tržbou je útrata na dokladu za pobyt při odjezdu.chargeToStay– the register issues no receipt; the charge is revenue on the document of the stay at departure.
Tvar API se nezměnil – jen texty, příklady a chování podle smlouvy.The shape of the API did not change – texts, examples and behaviour by the contract only.
Reference ve verzi 26.11.18Reference at version 26.11.18 · Porovnat s 26.11.17Compare with 26.11.17
26.11.17
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePřehled ubytováníAccommodation statistics
Čísla ubytování za období pro majitele a BI: obsazenost, průměrná cena za noc, tržba na dostupný pokoj, tržby, hosté podle zemí a věku, zdroje rezervací, délka a předstih pobytů, storna, služby, balíčky a srovnání s loňskem.
Accommodation numbers of a period for the owner and BI: occupancy, ADR, RevPAR, revenue, guests by country and age, booking sources, length and lead time of stays, cancellations, services, packages and a comparison with last year.
Co musíte udělatNic. Jen nová operace (lodging:read).
What you need to doNothing. Only a new operation (lodging:read).
PřidánoAdded
getLodgingStats– přehled za období po dnech, typech pokojů, zdrojích, zemích a věku hostů, spreviousza stejné období loni.getLodgingStats– statistics of a period by day, room type, source, country and age of guests, withpreviousfor the same period last year.
Přesný výčet změn ve smlouvěExact list of contract changes 3
Nové operaceNew operations 1
- GET/v2/restaurants/{restaurant_id}/lodging/stats Přehled ubytováníAccommodation statistics
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 2
LodgingStatsLodgingStatsKpi
Reference ve verzi 26.11.17Reference at version 26.11.17 · Porovnat s 26.11.16Compare with 26.11.16
26.11.16
Nové funkceNew featuresZpětně kompatibilníBackward compatibleRecenze ubytováníAccommodation reviews
Hodnocení hostů po pobytu i recenze z portálů na jednom místě s přehledem (průměr, zdroje, hvězdičky, dílčí hodnocení) a odpovídání – u hodnocení hosta i e-mailem.
Ratings of guests after their stay and reviews from portals in one place with an overview (average, sources, stars, sub-ratings) and replies – for a guest's rating also by e-mail.
Co musíte udělatNic. Čtení s lodging:read, odpovídání s lodging:write.
What you need to doNothing. Reading with lodging:read, replying with lodging:write.
PřidánoAdded
listLodgingReviews– recenze s filtrem (bez odpovědi, nízké, zveřejněné) a přehledem.listLodgingReviews– reviews with a filter (unanswered, low, public) and an overview.replyToLodgingReview– odpověď na recenzi, ssend_to_guesti e-mailem hostovi.replyToLodgingReview– a reply to a review, withsend_to_guestalso by e-mail to the guest.
Přesný výčet změn ve smlouvěExact list of contract changes 5
Nové operaceNew operations 2
- GET/v2/restaurants/{restaurant_id}/lodging/reviews Recenze ubytováníReviews of the accommodation
- POST/v2/restaurants/{restaurant_id}/lodging/reviews/{review_id}/reply Odpovědět na recenziReply to a review
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 3
LodgingReviewLodgingReviewListLodgingReviewReplyInput
Reference ve verzi 26.11.16Reference at version 26.11.16 · Porovnat s 26.11.15Compare with 26.11.15
26.11.15
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePobytové balíčky a QR kód hostaStay packages and guest passes
Seznam pobytových balíčků (noci zdarma, sleva, příplatek, služby v ceně) a čtečka QR kódu hosta pro turnikety wellness, snídaně a parkoviště: server řekne, jestli host smí dovnitř, a vstup zapíše. Bez jmen hostů.
The list of stay packages (free nights, discount, surcharge, included services) and a reader of the guest's QR code for wellness gates, breakfast and the car park: the server says whether the guest may go in and records the entry. Without guests' names.
Co musíte udělatNic. Čtečka potřebuje oprávnění guest_passes:check, seznam balíčků lodging:read.
What you need to doNothing. A reader needs the scope guest_passes:check, the list of packages lodging:read.
PřidánoAdded
listLodgingPackages– balíčky, které provozovna nabízí, s pravidly ceny a službami v ceně.listLodgingPackages– the packages the restaurant offers with their price rules and included services.checkGuestPassaundoGuestPassCheck– ověření QR kódu hosta na místě (wellness, snídaně, polopenze, parkoviště) a vrácení vstupu.checkGuestPassandundoGuestPassCheck– checking the guest's QR code at a place (wellness, breakfast, half board, car park) and undoing an entry.InHouseStay.packageaStayFolio.package– balíček pobytu.InHouseStay.packageandStayFolio.package– the package of the stay.- Oprávnění
guest_passes:check.Scopeguest_passes:check.
Přesný výčet změn ve smlouvěExact list of contract changes 10
Nové operaceNew operations 3
- GET/v2/restaurants/{restaurant_id}/lodging/packages Pobytové balíčkyStay packages
- POST/v2/restaurants/{restaurant_id}/guest-passes/check Ověřit QR kód hostaCheck a guest's QR code
- POST/v2/restaurants/{restaurant_id}/guest-passes/checks/{check_id}/undo Vrátit vstupUndo an entry
Nová poleNew fields 2
InHouseStay.packageStayFolio.package
Nová oprávněníNew scopes 1
guest_passes:check– Ověřovat QR kódy ubytovaných hostů u wellness, snídaní nebo parkoviště a zapisovat jejich vstupy – pokoj a co host smí, bez jmen.Check QR codes of staying guests at the wellness, breakfast or car park and record their entries – room and what the guest may use, no names.
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 4
GuestPassCheckGuestPassCheckInputLodgingPackageLodgingPackageList
Reference ve verzi 26.11.15Reference at version 26.11.15 · Porovnat s 26.11.14Compare with 26.11.14
26.11.14
Nové funkceNew featuresZpětně kompatibilníBackward compatibleÚklid pokojů a závadyRoom cleaning and faults
Aplikace pro pokojské a údržbu: úkoly úklidu na den po pokojích (po odjezdu, obsazené pokoje, přistýlky pro příjezdy, výměna ručníků a povlečení podle pravidel provozovny), odškrtávání a hlášení závad, které můžou pokoj vyřadit z prodeje. Bez jmen a údajů hostů.
Applications for housekeepers and maintenance: the cleaning tasks of the day by room (after departure, occupied rooms, extra beds for arrivals, towels and linen by the rules of the restaurant), ticking them off and reporting faults that can take a room out of sale. Without guests' names and data.
Co musíte udělatNic. Kdo chce úklid, požádá v autorizaci o housekeeping:read a housekeeping:write. Provozovna musí mít Ubytování v licenci.
What you need to doNothing. To use housekeeping ask for housekeeping:read and housekeeping:write in the authorization. The restaurant needs Accommodation in its licence.
PřidánoAdded
getHousekeepingDay– pokoje s úkoly na den, nejnaléhavější první (příjezd do neuklizeného pokoje), stav pokoje, příjezd, odjezd a otevřené závady.getHousekeepingDay– rooms with the tasks of the day, the most urgent first (an arrival to a room not cleaned yet), the state of the room, arrival, departure and open faults.completeHousekeepingTaskaundoHousekeepingTask– odškrtnutí a vrácení úkolu; úklid po odjezdu přepne pokoj naclean, kontrola nainspected.completeHousekeepingTaskandundoHousekeepingTask– tick a task off and back; cleaning after departure makes the roomclean, the inspectioninspected.listRoomIssues,reportRoomIssueafixRoomIssue– závady pokojů; sblocks_roomje pokoj mimo provoz, dokud se závada neopraví.listRoomIssues,reportRoomIssueandfixRoomIssue– faults of rooms; withblocks_roomthe room is out of order until the fault is fixed.- Oprávnění
housekeeping:readahousekeeping:write.Scopeshousekeeping:readandhousekeeping:write.
Přesný výčet změn ve smlouvěExact list of contract changes 17
Nové operaceNew operations 6
- GET/v2/restaurants/{restaurant_id}/housekeeping Úkoly úklidu na denCleaning tasks of a day
- POST/v2/restaurants/{restaurant_id}/housekeeping/rooms/{room_id}/done Odškrtnout úkolTick a task off
- POST/v2/restaurants/{restaurant_id}/housekeeping/rooms/{room_id}/undo Vrátit odškrtnutý úkolUndo a ticked task
- GET/v2/restaurants/{restaurant_id}/room-issues Závady pokojůFaults of rooms
- POST/v2/restaurants/{restaurant_id}/room-issues Nahlásit závaduReport a fault
- POST/v2/restaurants/{restaurant_id}/room-issues/{issue_id}/fix Označit závadu jako opravenouMark a fault fixed
Nová oprávněníNew scopes 2
housekeeping:read– Vidět úkoly úklidu pokojů a jejich závady – bez údajů hostů.See the cleaning tasks of rooms and their faults – without guest data.housekeeping:write– Odškrtávat úkoly úklidu a hlásit a opravovat závady pokojů.Tick cleaning tasks off and report and fix faults of rooms.
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 9
HousekeepingDayHousekeepingRoomHousekeepingTaskHousekeepingTaskInputRoomIssueRoomIssueFixInputRoomIssueInputRoomIssueListRoomIssueReported
Reference ve verzi 26.11.14Reference at version 26.11.14 · Porovnat s 26.11.13Compare with 26.11.13
26.11.13
Nové funkceNew featuresZpětně kompatibilníBackward compatibleÚtrata na pokojCharging bills to a room
Pokladna restaurace nebo baru hotelu zapíše útratu ubytovaného hosta na účet jeho pokoje a host ji zaplatí při odjezdu. Seznam právě ubytovaných hostů, účet pokoje s platbami a zůstatkem a zápis útraty, který se při opakování nezdvojí.
The register of a hotel restaurant or bar charges the bill of a staying guest to the account of the room and the guest pays it at departure. The list of guests staying now, the account of the room with payments and balance, and a charge that is never written twice when repeated.
Co musíte udělatNic. Kdo chce útratu na pokoj, požádá v autorizaci o lodging:read a lodging:write. Provozovna musí mít Ubytování v licenci.
What you need to doNothing. To charge bills to rooms ask for lodging:read and lodging:write in the authorization. The restaurant needs Accommodation in its licence.
PřidánoAdded
listInHouseStays– kdo je právě ubytovaný: pokoj, jméno, termín, počet osob a co zbývá zaplatit.listInHouseStays– guests staying now: room, name, dates, number of guests and what is left to pay.getStayFolio– účet pokoje: ubytování, poplatek z pobytu, služby a útraty, platby a zůstatek.getStayFolio– the account of the room: accommodation, city tax, services and charges, payments and balance.chargeToStay– útrata na pokoj s vašíreference, která se nikdy nezapíše dvakrát; jen u právě ubytovaného hosta, jinaklodging_state_conflict.chargeToStay– a charge to the room with yourreferencethat is never written twice; only for a guest staying now, otherwiselodging_state_conflict.- Oprávnění
lodging:readalodging:write;DeviceSettings.features.lodgingříká pokladně, že může nabízet „na pokoj“.Scopeslodging:readandlodging:write;DeviceSettings.features.lodgingtells the register it may offer „to the room“.
DokumentaceDocumentation
DeviceSettings.features.reservationsuž neříká, že je vyhrazené – Rezervační systém Profirest má.DeviceSettings.features.reservationsno longer says it is reserved – Profirest has the Reservation system.
Přesný výčet změn ve smlouvěExact list of contract changes 13
Nové operaceNew operations 3
- GET/v2/restaurants/{restaurant_id}/lodging/in-house Kdo je právě ubytovanýGuests staying now
- GET/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/folio Účet pokojeAccount of the room
- POST/v2/restaurants/{restaurant_id}/lodging/stays/{stay_id}/charges Zapsat útratu na pokojCharge a bill to the room
Nová poleNew fields 1
DeviceSettings.features.lodging
Nové kódy chybNew error codes 1
lodging_state_conflictHost teď není ubytovanýThe guest is not staying now
Nová oprávněníNew scopes 2
lodging:read– Vidět právě ubytované hosty (pokoj, jméno, termín) a účty jejich pokojů.See the guests staying now (room, name, dates) and the accounts of their rooms.lodging:write– Zapisovat útraty na účet pokoje.Charge bills to the account of a room.
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 6
FolioLineFolioPaymentInHouseStayInHouseStaysStayChargeInputStayFolio
Reference ve verzi 26.11.13Reference at version 26.11.13 · Porovnat s 26.11.12Compare with 26.11.12
26.11.12
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePřehled rezervací a pravidla zálohReservation statistics and deposit rules
Přehled rezervací za období se stejnými čísly jako v administraci, včetně skutečné doby u stolu s návrhem lepšího nastavení. Pravidla rezervací nově říkají, kdy a kolik zálohy provozovna chce, připomínky a hodnocení.
Reservation statistics for a period with the same numbers as the administration, including how long guests really sit with a suggestion for better rules. The reservation rules now tell when and how much deposit the restaurant wants, the reminders and the ratings.
Co musíte udělatNic. Jen nová operace a nová pole.
What you need to doNothing. Only a new operation and new fields.
PřidánoAdded
getReservationStats– rezervace, hosté, nepřišlí, zdroje, dny a hodiny, zálohy, hodnocení atable_turn(skutečná doba u stolu a návrhy).getReservationStats– reservations, guests, no-shows, sources, weekdays and hours, deposits, ratings andtable_turn(real table time and suggestions).getReservationSettings:deposit(režim, částky, lhůty,no_show_guests– záloha od hostů, kteří už nepřišli),reminders,feedback_enabled,guest_max_moves.getReservationSettings:deposit(mode, amounts, time limits,no_show_guests– a deposit from guests who did not come before),reminders,feedback_enabled,guest_max_moves.
Přesný výčet změn ve smlouvěExact list of contract changes 6
Nové operaceNew operations 1
- GET/v2/restaurants/{restaurant_id}/reservation-stats Přehled rezervacíReservation statistics
Nová poleNew fields 4
ReservationSettings.depositReservationSettings.feedback_enabledReservationSettings.guest_max_movesReservationSettings.reminders
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 1
ReservationStats
Reference ve verzi 26.11.12Reference at version 26.11.12 · Porovnat s 26.11.11Compare with 26.11.11
26.11.11
Nové funkceNew featuresZpětně kompatibilníBackward compatibleČekací listina a hodnocení hostůWaiting list and guest ratings
Aplikace obsluhy vede čekací listinu hostů bez stolu – zapíše je, pošle jim SMS, že je stůl připravený, a usadí je. Hodnocení po návštěvě (1–5 hvězdiček a komentář) si vezmete za období i s průměrem.
An application of the staff keeps the waiting list of guests without a table – adds them, sends them an SMS that the table is ready and seats them. Ratings after the visit (1–5 stars and a comment) for a period, with the average.
Co musíte udělatNic. Jen nové operace.
What you need to doNothing. Only new operations.
PřidánoAdded
listWaitlist,addToWaitlist,notifyWaitlistEntry(SMS, že je stůl připravený),closeWaitlistEntry(usazen / odešel).listWaitlist,addToWaitlist,notifyWaitlistEntry(an SMS that the table is ready),closeWaitlistEntry(seated / left).listReservationFeedback– hodnocení hostů po návštěvě za období a jejich průměr.listReservationFeedback– guest ratings after the visit for a period and their average.
Přesný výčet změn ve smlouvěExact list of contract changes 11
Nové operaceNew operations 5
- GET/v2/restaurants/{restaurant_id}/waitlist Čekací listina dneškaWaiting list of today
- POST/v2/restaurants/{restaurant_id}/waitlist Zapsat hosta na čekací listinuAdd a guest to the waiting list
- POST/v2/restaurants/{restaurant_id}/waitlist/{waitlist_id}/notify Dát hostovi vědět, že je stůl připravenýTell the guest the table is ready
- POST/v2/restaurants/{restaurant_id}/waitlist/{waitlist_id}/close Usadit hosta, nebo ho z listiny vyřaditSeat the guest or remove them from the list
- GET/v2/restaurants/{restaurant_id}/reservation-feedback Hodnocení hostůGuest ratings
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 6
ReservationFeedbackReservationFeedbackListWaitlistCloseWaitlistEntryWaitlistEntryCreateWaitlistList
Reference ve verzi 26.11.11Reference at version 26.11.11 · Porovnat s 26.11.10Compare with 26.11.10
26.11.10
Nové funkceNew featuresZpětně kompatibilníBackward compatibleRezervace pro obsluhu – zálohy, délka, hosté bez rezervace a historie hostaReservations for the staff – deposits, length, walk-ins and guest history
Aplikace obsluhy pošle hostovi odkaz k zaplacení zálohy (i rezervace přijaté po telefonu), zálohu odpustí, zadá vlastní délku rezervace stolu, usadí hosty bez rezervace a při telefonu uvidí, kolikrát host přišel, nepřišel nebo zrušil a jaké měl štítky (alergie, VIP).
An application of the staff sends the guest the link to pay a deposit (also for bookings taken by phone), waives a deposit, sets its own length of a table reservation, seats guests without a reservation and, on the phone, sees how many times the guest came, did not come or cancelled and their tags (allergies, VIP).
Co musíte udělatNic. Nová pole a operace jsou nepovinné; duration_minutes, walk_in a deposit při založení platí jen pro channel=staff.
What you need to doNothing. The new fields and operations are optional; duration_minutes, walk_in and deposit on create apply only to channel=staff.
PřidánoAdded
sendReservationPaymentLink– nový odkaz na stránku rezervace hosta, kde zaplatí zálohu kartou; pošle ho na e-mail hosta a vrátí ho i pro SMS.sendReservationPaymentLink– a new link to the guest's page of the reservation where the deposit is paid by card; sent to the guest's e-mail and returned for an SMS too.waiveReservationDeposit– odpuštění čekající zálohy; rezervace čekající jen na zálohu se potvrdí.waiveReservationDeposit– waives a pending deposit; a reservation waiting only for the deposit is confirmed.getReservationGuest– historie hosta podle telefonu nebo e-mailu napříč provozovnami účtu.getReservationGuest– the history of a guest by phone or e-mail across the restaurants of the account.createReservation:duration_minutes(vlastní délka stolu),walk_in(hosté bez rezervace – teď a hned usazení),deposit: false(bez zálohy) – jenchannel=staff.updateReservation:duration_minutes.createReservation:duration_minutes(own length at a table),walk_in(guests without a reservation – now and seated at once),deposit: false(no deposit) – onlychannel=staff.updateReservation:duration_minutes.
Přesný výčet změn ve smlouvěExact list of contract changes 9
Nové operaceNew operations 3
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/payment-link Poslat odkaz k zaplacení zálohySend the link to pay the deposit
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/waive-deposit Odpustit zálohuWaive the deposit
- GET/v2/restaurants/{restaurant_id}/reservation-guest Historie hostaGuest history
Nová poleNew fields 4
ReservationCreate.depositReservationCreate.duration_minutesReservationCreate.walk_inReservationUpdate.duration_minutes
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 2
ReservationGuestHistoryReservationPaymentLink
Reference ve verzi 26.11.10Reference at version 26.11.10 · Porovnat s 26.11.9Compare with 26.11.9
26.11.9
Nové funkceNew featuresZpětně kompatibilníBackward compatibleRezervace stolů a služebReservations of tables and services
Nové operace pro rezervace: pravidla provozovny, služby k rezervaci, volné časy dne, založení, změny a stavy rezervace (potvrdit, odmítnout, zrušit, usadit, odešli, nepřišli) a stav stolů v tuto chvíli. Kapacitu hlídá server – stůl, pracovník ani místnost nejsou nikdy rezervované dvakrát. Pro rezervační platformy, weby provozoven i aplikace obsluhy.
New operations for reservations: the rules of the restaurant, bookable services, free times of a day, creating, changing and moving a reservation through its states (confirm, reject, cancel, seat, left, no-show) and the state of the tables now. The server keeps the capacity – a table, an employee or a room is never booked twice. For booking platforms, websites of restaurants and applications of the staff.
Co musíte udělatNic. Kdo chce rezervace, požádá v autorizaci o reservations:read a reservations:write. Provozovna musí mít Rezervační systém v licenci, jinak operace vrací module_not_licensed.
What you need to doNothing. To use reservations ask for reservations:read and reservations:write in the authorization. The restaurant needs the Reservation system in its licence, otherwise the operations answer module_not_licensed.
PřidánoAdded
getReservationSettings,listReservationServices,getReservationAvailability– pravidla, služby a volné časy.getReservationSettings,listReservationServices,getReservationAvailability– rules, services and free times.listReservations,createReservation,getReservation,updateReservationa stavyconfirmReservation,rejectReservation,cancelReservation,seatReservation,completeReservation,markReservationNoShow.listReservations,createReservation,getReservation,updateReservationand the statesconfirmReservation,rejectReservation,cancelReservation,seatReservation,completeReservation,markReservationNoShow.getTableStatus– které stoly jsou teď volné, rezervované nebo obsazené (i hosté bez rezervace).getTableStatus– which tables are free, reserved or occupied now (also guests without a reservation).- Oprávnění
reservations:readareservations:write; událostireservation.created,reservation.updated,reservation.status_changed.Scopesreservations:readandreservations:write; eventsreservation.created,reservation.updated,reservation.status_changed. - Chyby
reservation_unavailable,reservation_not_allowed,reservation_state_conflict.Errorsreservation_unavailable,reservation_not_allowed,reservation_state_conflict.
ZměněnoChanged
- Výdejna bez stolů (
getDeviceSettings,pos.takeaway_only): kalkulace sfulfillment.typedine_inse spočítá jakopickup– s obalem a sazbou DPH s sebou – a objednávka je osobní odběr. Kiosek v takové provozovně volbu „Tady“ nenabízí.A takeaway-only restaurant (getDeviceSettings,pos.takeaway_only): a quote withfulfillment.typedine_inis priced aspickup– with packaging and the takeaway VAT rate – and the order is a pickup. A kiosk in such a restaurant does not offer the "eat in" choice.
Přesný výčet změn ve smlouvěExact list of contract changes 35
Nové operaceNew operations 14
- GET/v2/restaurants/{restaurant_id}/reservation-settings Pravidla rezervacíGet reservation rules
- GET/v2/restaurants/{restaurant_id}/reservation-services Služby k rezervaciList bookable services
- GET/v2/restaurants/{restaurant_id}/reservation-availability Volné časy dneFree times of a day
- GET/v2/restaurants/{restaurant_id}/reservations Seznam rezervacíList reservations
- POST/v2/restaurants/{restaurant_id}/reservations Založit rezervaciCreate a reservation
- GET/v2/restaurants/{restaurant_id}/reservations/{reservation_id} Detail rezervaceGet a reservation
- PATCH/v2/restaurants/{restaurant_id}/reservations/{reservation_id} Změnit rezervaciChange a reservation
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/confirm Potvrdit rezervaciConfirm a reservation
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/reject Odmítnout rezervaciReject a reservation
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/cancel Zrušit rezervaciCancel a reservation
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/seat Usadit hostySeat the guests
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/complete Hosté odešliGuests left
- POST/v2/restaurants/{restaurant_id}/reservations/{reservation_id}/no-show Hosté nepřišliGuests did not come
- GET/v2/restaurants/{restaurant_id}/table-status Které stoly jsou teď volnéWhich tables are free now
Nové typy událostíNew event types 3
reservation.createdreservation.status_changedreservation.updated
Nové kódy chybNew error codes 3
reservation_not_allowedPravidla provozovny tuto rezervaci nedovolíThe rules of the restaurant do not allow this reservationreservation_state_conflictRezervace je v jiném stavuThe reservation is in another statereservation_unavailableTermín není volnýThe time is not free
Nová oprávněníNew scopes 2
reservations:read– Vidět rezervace stolů a služeb s kontakty hostů, pravidla rezervací, služby, volné časy a které stoly jsou teď volné.See reservations of tables and services with the guests' contacts, the reservation rules, services, free times and which tables are free now.reservations:write– Zakládat, měnit, potvrzovat, usazovat a rušit rezervace stolů a služeb.Create, change, confirm, seat and cancel reservations of tables and services.
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 13
ReservationReservationActionReservationAvailabilityReservationCreateReservationDepositReservationGuestReservationGuestInputReservationListReservationServiceReservationServiceListReservationSettingsReservationUpdateTableStatus
Reference ve verzi 26.11.9Reference at version 26.11.9 · Porovnat s 26.11.8Compare with 26.11.8
26.11.8
Nové funkceNew featuresZpětně kompatibilníBackward compatibleVýdejna bez stolůTakeaway-only restaurant
Provozovna bez stolů (třeba výdejna pizzy) si zapne, že každá účtenka a bon z pokladny je s sebou: server připočte obal produktů, i když pokladna pošle jídlo na místě. Pokladna to čte v nastavení zařízení.
A restaurant without tables (a pizza counter, say) turns on that every receipt and ticket of the register is takeaway: the server adds the packaging fee of the products, also when the register sends eating in. The register reads it in the device settings.
Co musíte udělatPokladna: čtěte getDeviceSettings → pos.takeaway_only; při true nenabízejte jídlo na místě a předvolte order_type takeaway, ať cena na displeji sedí s účtenkou (previewReceipt ji spočítá s obalem).
What you need to doRegisters: read getDeviceSettings → pos.takeaway_only; with true do not offer eating in and preselect order_type takeaway, so the price on the display matches the receipt (previewReceipt prices it with the packaging).
PřidánoAdded
DeviceSettings.pos.takeaway_only– výdejna bez stolů, vše s sebou s obalem.DeviceSettings.pos.takeaway_only– a takeaway-only restaurant, everything takeaway with packaging.
ZměněnoChanged
createReceipt,previewReceiptacreateKitchenTicket: připos.takeaway_onlyjeorder_typevždytakeaway.createReceipt,previewReceiptandcreateKitchenTicket: withpos.takeaway_onlytheorder_typeis alwaystakeaway.
Přesný výčet změn ve smlouvěExact list of contract changes 1
Nová poleNew fields 1
DeviceSettings.pos.takeaway_only
Reference ve verzi 26.11.8Reference at version 26.11.8 · Porovnat s 26.11.7Compare with 26.11.7
26.11.7
Nové funkceNew featuresZpětně kompatibilníBackward compatibleStorno účtenky podle nastavení provozovnyReceipt cancellation by the rules of the restaurant
Provozovna si volí, kdo smí na pokladně stornovat účtenku, a tím změnit platbu: kdokoli s rolí pos (výchozí, jako v API v1), nebo jen vedoucí pokladny. Pokladna to čte v nastavení zařízení, ať se na PIN vedoucího ptá předem, a ne až po chybě.
A restaurant chooses who may cancel a receipt at the register, and so change its payment: anybody with the pos role (default, as in API v1), or only a register manager. The register reads it in the device settings, so it asks for the manager's PIN beforehand, not after an error.
Co musíte udělatPokladna: před cancelReceipt čtěte getDeviceSettings → pos.receipt_cancel_by; při manager pošlete PIN vedoucího v manager_credential, při staff ho nechtějte. Stornovat bez vedoucího teď jde i tam, kde dřív končilo manager_approval_required.
What you need to doRegisters: before cancelReceipt read getDeviceSettings → pos.receipt_cancel_by; with manager send the manager's PIN in manager_credential, with staff do not ask for it. Cancelling without a manager now works also where it used to end with manager_approval_required.
PřidánoAdded
DeviceSettings.pos.receipt_cancel_by(staff|manager) – kdo smí stornovat účtenku.DeviceSettings.pos.receipt_cancel_by(staff|manager) – who may cancel a receipt.
ZměněnoChanged
cancelReceiptpodlepos.receipt_cancel_by: přistaffstačí rolepos, PIN vedoucího se jen zapíše;manager_approval_requiredjen přimanager.cancelReceiptfollowspos.receipt_cancel_by: withstafftheposrole is enough, the manager's PIN is only recorded;manager_approval_requiredonly withmanager.
Přesný výčet změn ve smlouvěExact list of contract changes 1
Nová poleNew fields 1
DeviceSettings.pos
Reference ve verzi 26.11.7Reference at version 26.11.7 · Porovnat s 26.11.6Compare with 26.11.6
26.11.6
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePřechod vlastních zařízení Profirestu mezi API v1 a v2Profirest's own devices moving between API v1 and v2
Profirest pouští provozovny na API v2 postupně a umí je vrátit. Vlastní aplikace pokladny, kuchyňského displeje a kurýra přitom přecházejí samy, bez nového párování: identitu z API v1 vymění za tokeny zařízení a zařízení spárované rovnou na API v2 si vyzvedne záložní identitu pro návrat. Kam mají být, říká hlavička Profirest-Api-Target a pole api_target. Účet stolu, jehož pokladna přešla na API v1, je převedený.
Profirest moves restaurants to API v2 one by one and can move them back. Its own register, kitchen display and courier apps follow on their own, without pairing again: they exchange their API v1 identity for device tokens, and a device paired straight to API v2 picks up a backup identity for the way back. Where they belong is told by the header Profirest-Api-Target and the field api_target. A tab whose register moved to API v1 is transferred.
Co musíte udělatNic – verze jen přidává. Aplikace partnerů zůstávají na API v2: api_target mají vždy null a hlavičku nedostanou. Kdo čte účty stolů, ať stav transferred bere jako uzavřený (změna skončí tab_closed). Chyba OAuth má nově vždy pole api_target (null).
What you need to doNothing – the version only adds. Partner applications stay on API v2: their api_target is always null and they do not get the header. If you read tabs, treat the status transferred as closed (a change ends with tab_closed). An OAuth error now always has the field api_target (null).
PřidánoAdded
- Grant
urn:profirest:params:oauth:grant-type:v1-devicevoauthToken– jen vlastní pokladna, kuchyňský displej a kurýr Profirestu: identita API v1 za tokeny zařízení, když je provozovna na API v2.The granturn:profirest:params:oauth:grant-type:v1-deviceofoauthToken– only Profirest's own register, kitchen display and courier: an API v1 identity for device tokens while the restaurant is on API v2. createLegacyIdentity– záložní identita API v1 pro zařízení spárované rovnou na API v2; kódy chyblegacy_identity_unsupportedano_legacy_identity.createLegacyIdentity– a backup API v1 identity for a device paired straight to API v2; the error codeslegacy_identity_unsupportedandno_legacy_identity.Device.api_target(vgetConnection) aDeviceCheckInResult.api_target– kam má vlastní zařízení Profirestu patřit (ApiTarget), u ostatníchnull; totéž v hlavičceProfirest-Api-Targetkaždé odpovědi takovému zařízení.Device.api_target(ingetConnection) andDeviceCheckInResult.api_target– where Profirest's own device belongs (ApiTarget),nullfor others; the same in the headerProfirest-Api-Targetof every answer to such a device.OAuthError.api_target–v1u obnovy tokenu zařízení vráceného na API v1, jinaknull.OAuthError.api_target–v1on a refresh of a device moved back to API v1, otherwisenull.PosShiftCloseRequest.legacy_receipt_ids– účtenky směny vystavené v API v1; uzávěrka je vezme také.PosShiftCloseRequest.legacy_receipt_ids– receipts of the shift issued in API v1; the close takes them in as well.- Stav účtu stolu
transferred– pokladna přešla na API v1 a účet převzala, nebo ji někdo odpojil.The tab statustransferred– its register moved to API v1 and took the tab over, or the register was unpaired.
ZměněnoChanged
- Uzávěrka pokladny (
closePosShift,getPosShift) počítá otevřené účty stolů jen za uzavírané pokladny, ne za celou provozovnu.A register close (closePosShift,getPosShift) counts the open tabs of the closed registers only, not of the whole restaurant.
Přesný výčet změn ve smlouvěExact list of contract changes 12
Nové operaceNew operations 1
- POST/v2/devices/current/legacy-identity Vyzvednout identitu API v1 zařízeníGet the API v1 identity of the device
Nová poleNew fields 4
Device.api_targetDeviceCheckInResult.api_targetOAuthError.api_targetPosShiftCloseRequest.legacy_receipt_ids
Nové hodnoty výčtůNew enum values 1
Tab.status:transferred
Nové kódy chybNew error codes 2
legacy_identity_unsupportedTato aplikace identitu API v1 nemáThis application has no API v1 identityno_legacy_identityProvozovna pro tuto aplikaci identitu API v1 nemáThe restaurant has no API v1 identity for this app
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 4
ApiTargetLegacyIdentityLegacyIdentityRequestTokenRequestV1Device
Reference ve verzi 26.11.6Reference at version 26.11.6 · Porovnat s 26.11.5Compare with 26.11.5
26.11.5
Nové funkceNew featuresZpětně kompatibilníBackward compatibleRozvozová zóna u kuchyňského bonuThe delivery zone at a kitchen ticket
Kuchyňský displej může sčítat frontu podle rozvozových zón – co pojede jedním kurýrem, se peče a balí spolu. Bon rozvozu nese zónu, do které padne adresa, spočítanou Profirestem z polohy adresy stejně jako v e-shopu a na kuchyňském displeji Profirestu.
A kitchen display can sum up the queue by delivery zones – what goes with one courier is baked and packed together. A delivery ticket carries the zone its address lies in, computed by Profirest from the location of the address the same way as in the e-shop and on the Profirest kitchen display.
Co musíte udělatNic – verze jen přidává. Kdo chce souhrn podle zón: seskupte bony podle KitchenTicket.delivery_zone a záložku nabízejte, jen když listDeliveryZones nějaké zóny vrací.
What you need to doNothing – the version only adds. For a summary by zones group the tickets by KitchenTicket.delivery_zone and offer it only when listDeliveryZones returns some zones.
PřidánoAdded
KitchenTicket.delivery_zone(idanamejako vlistDeliveryZones) – rozvozová zóna adresy bonu sdelivery;nullu ostatních bonů, u adresy bez souřadnic, mimo všechny zóny a v provozovně bez zón.KitchenTicket.delivery_zone(idandnameas inlistDeliveryZones) – the delivery zone of the address of a ticket withdelivery;nullfor other tickets, an address without coordinates, outside all zones and in a restaurant without zones.
Přesný výčet změn ve smlouvěExact list of contract changes 1
Nová poleNew fields 1
KitchenTicket.delivery_zone
Reference ve verzi 26.11.5Reference at version 26.11.5 · Porovnat s 26.11.4Compare with 26.11.4
26.11.4
Nové funkceNew featuresZpětně kompatibilníBackward compatibleSložení – host odebere surovinu („bez žampionů“)Composition – the guest removes an ingredient („without mushrooms“)
Produkt může mít složení: suroviny, které si host smí odebrat. Aplikace je ukáže zaškrtnuté a odškrtnuté pošle s položkou – u pizzy z dílů u každého dílu zvlášť. Cena se nemění. Kuchyň dostane u jídla (u dílu) výrazné „BEZ: ŽAMPIONY“ a sklad odebranou surovinu neodepíše. Funguje v kalkulaci a objednávce, při přidání položek k bonu, na účtence, bonu a účtu stolu pokladny i v objednávkách od stolu.
A product can have a composition: ingredients the guest may remove. An application shows them ticked and sends the unticked ones with the item – for a pizza from parts at every part. The price does not change. The kitchen gets a prominent „WITHOUT: MUSHROOMS“ at the dish (at the part) and the stock does not write the removed ingredient off. It works in a quote and an order, when adding items to a ticket, on a receipt, a ticket and a tab of the register and in orders from the table.
Co musíte udělatNic – verze jen přidává. Kdo chce odebírání nabízet: zobrazte Product.removable_ingredients a odškrtnuté posílejte v removed_ingredient_ids položky. V řádcích kalkulace, objednávky a účtu stolu počítejte s removed_ingredients (zákazníkovi „Bez: …“) a kuchyňský displej ať ukáže KitchenItem.removed_ingredients u jídla.
What you need to doNothing – the version only adds. To offer removing: show Product.removable_ingredients and send the unticked ones in removed_ingredient_ids of the item. In the lines of a quote, an order and a tab expect removed_ingredients („Without: …“ for the customer) and let a kitchen display show KitchenItem.removed_ingredients at the dish.
PřidánoAdded
Product.removable_ingredientsaTableMenuProduct.removable_ingredients(RemovableIngredient:id,name) – složení ve všech kanálech sortimentu,[], když produkt žádné nemá.Product.removable_ingredientsandTableMenuProduct.removable_ingredients(RemovableIngredient:id,name) – the composition in every channel of the catalog,[]when the product has none.removed_ingredient_idsve vstupechQuoteItemInput(iaddKitchenTicketItems),SplitPartInput(u dílu),ReceiptItemInput,KitchenTicketCreate.items[],TabInput.items[],TableOrderLineInputaTableOrderApplyInput.lines[]– nejvýš 30, každé ID jednou.removed_ingredient_idsin the inputsQuoteItemInput(alsoaddKitchenTicketItems),SplitPartInput(at the part),ReceiptItemInput,KitchenTicketCreate.items[],TabInput.items[],TableOrderLineInputandTableOrderApplyInput.lines[]– at most 30, every ID once.removed_ingredients(id a název z doby objednání) vOrderLine,OrderLinePart,TabLineaTableOrderLine; u starších kalkulací, objednávek a účtů[]. NepovinnéTableOrderLineState.removed_ingredientspro hlavní kasu.removed_ingredients(the ID and the name from the time of ordering) inOrderLine,OrderLinePart,TabLineandTableOrderLine;[]for older quotes, orders and tabs. The optionalTableOrderLineState.removed_ingredientsfor the main register.KitchenItem.removed_ingredientsaKitchenModifier.removed_ingredients– názvy odebraných surovin u jídla a u dílu dělené pizzy (poznámkanotezůstává beze změny).KitchenItem.removed_ingredientsandKitchenModifier.removed_ingredients– the names of the removed ingredients at the dish and at a part of a split pizza (thenotestays unchanged).- Kód pole
ingredient_not_removable(u422 validation_failed) – produkt takovou surovinu k odebrání nemá, nebo je v seznamu dvakrát.The field codeingredient_not_removable(with422 validation_failed) – the product has no such removable ingredient, or it is in the list twice.
Přesný výčet změn ve smlouvěExact list of contract changes 17
Nová poleNew fields 16
KitchenItem.removed_ingredientsKitchenModifier.removed_ingredientsKitchenTicketCreate.items[].removed_ingredient_idsOrderLine.removed_ingredientsOrderLinePart.removed_ingredientsProduct.removable_ingredientsQuoteItemInput.removed_ingredient_idsReceiptItemInput.removed_ingredient_idsSplitPartInput.removed_ingredient_idsTabInput.items[].removed_ingredient_idsTabLine.removed_ingredientsTableMenuProduct.removable_ingredientsTableOrderApplyInput.lines[].removed_ingredient_idsTableOrderLine.removed_ingredientsTableOrderLineInput.removed_ingredient_idsTableOrderLineState.removed_ingredients
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 1
RemovableIngredient
Reference ve verzi 26.11.4Reference at version 26.11.4 · Porovnat s 26.11.3Compare with 26.11.3
26.11.3
Nové funkceNew featuresZpětně kompatibilníBackward compatibleŽivý proud změn přes Server-Sent EventsThe live change feed over Server-Sent Events
Změny už nemusíte zjišťovat dotazováním. streamEvents posílá tytéž události jako listEvents jednou dlouhou odpovědí text/event-stream, ve stejném pořadí a se stejným kurzorem: id každé zprávy je kurzor, po výpadku se pokračuje hlavičkou Last-Event-ID a mezi proudem a dotazováním jde kdykoli přecházet. Telefon hosta u stolu dostává přes streamTableEvents upozornění, že se změnila jeho objednávka, volání, účet stolu nebo návštěva – stejně jako na hlavní kase.
You no longer have to poll for changes. streamEvents sends the same events as listEvents over one long-lived text/event-stream response, in the same order and with the same cursor: the id of every message is the cursor, after a disconnection you continue with the header Last-Event-ID and you can switch between the stream and polling at any time. A guest's phone at the table gets from streamTableEvents notices that its order, call, the tab of the table or the visit changed – the same as on the main register.
Co musíte udělatNic povinného – listEvents funguje dál beze změny. Kdo dnes dotazuje každých pár sekund, ať přejde na streamEvents, když getApiRoot vrací stream_url; bez něj (nebo při 503) se dál ptejte přes listEvents. Proud čtěte přes fetch s hlavičkou Authorization – EventSource prohlížeče hlavičky neumí.
What you need to doNothing required – listEvents keeps working unchanged. If you poll every few seconds today, switch to streamEvents when getApiRoot returns stream_url; without it (or on 503) keep polling listEvents. Read the stream with fetch and the header Authorization – the browser's EventSource cannot send headers.
PřidánoAdded
streamEvents– živý proud změn (Server-Sent Events): zprávyready(StreamReady), jedna zpráva za každou událost (event:typ,data:Event,id:kurzor) aclosing(StreamClosings důvodemmax_age,token_expired,token_revoked,restart,forbidden). Parametryrestaurant_idatypesjako ulistEvents, pokračování hlavičkouLast-Event-IDnebocursor.streamEvents– the live change feed (Server-Sent Events): messagesready(StreamReady), one message for every event (event:the type,data:theEvent,id:the cursor) andclosing(StreamClosingwith the reasonmax_age,token_expired,token_revoked,restart,forbidden). Parametersrestaurant_idandtypesas inlistEvents, continuing with the headerLast-Event-IDorcursor.streamTableEvents– upozornění pro telefon hosta u stolu (TableGuestEvent:session,orders,calls,tab,visit_ended), stejně jako události místního API hlavní kasy.streamTableEvents– notices for a guest's phone at the table (TableGuestEvent:session,orders,calls,tab,visit_ended), the same as the events of the main register's local API.
ZměněnoChanged
ApiRoot.stream_urlje adresastreamEvents, když proud běží (dřív vždynull);nullznamená dotazovatlistEvents.ApiRoot.stream_urlis the address ofstreamEventswhile the stream runs (alwaysnullbefore);nullmeans polllistEvents.
Přesný výčet změn ve smlouvěExact list of contract changes 5
Nové operaceNew operations 2
- GET/v2/events/stream Proud změn živě (Server-Sent Events)Change feed live (Server-Sent Events)
- GET/v2/table/events Upozornění na změny pro telefon u stolu (Server-Sent Events)Live updates of the phone at the table (Server-Sent Events)
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 3
StreamClosingStreamReadyTableGuestEvent
Reference ve verzi 26.11.3Reference at version 26.11.3 · Porovnat s 26.11.2Compare with 26.11.2
26.11.2
Nové funkceNew featuresZpětně kompatibilníBackward compatibleKurýr u dveří – platba kartou i hotově a nepřevzaté objednávkyThe courier at the door – card or cash payment and orders not taken over
Aplikace kurýra zapíše platbu, kterou vybral u dveří – kartou na terminálu nebo hotově, oběma směry (hotovostní objednávka zaplacená kartou i karta, která neprošla, zaplacená hotově) – a uzávěrka podle toho přesune tržbu mezi hotovostí a kartou. Bon říká, kolik zbývá vybrat a čím se zaplatilo. Když zákazník jídlo nepřevezme, kurýr to zapíše s důvodem; objednávka nejde do tržby, trasa se dokončí a provozovna ji pak odepíše, pošle znovu, nebo označí jako doručenou.
A courier application records the payment taken at the door – by card on the terminal or in cash, both ways (a cash order paid by card and a card that failed paid in cash) – and the shift close moves the takings between cash and card accordingly. A ticket tells how much is left to collect and how it was paid. When the customer does not take the food over, the courier records it with the reason; the order does not go into the takings, the route is completed and the restaurant then writes it off, sends it out again or marks it delivered.
Co musíte udělatNic povinného – verze jen přidává. Počítejte s novou hodnotou not_delivered v KitchenTicket.status, Order.status a v události kitchen.ticket_updated; neznámý stav ukažte obecně. Kurýrní aplikace nabízí kartu jen u bonu s nenulovým amount_due.
What you need to doNothing required – the version only adds. Expect the new value not_delivered in KitchenTicket.status, Order.status and the event kitchen.ticket_updated; show an unknown status generically. A courier application offers a card only for a ticket with a non-zero amount_due.
PřidánoAdded
handoverTicketPayment– platba vybraná kurýrem u dveří (HandoverPayment:methodcard/cash,amountvčetnětip,gateway_payment_idterminálu,card_brand,card_last4,paid_at). Kódy chybalready_paid(sProblem.paid_by),payment_method_not_changeableaamount_mismatch.handoverTicketPayment– the payment the courier took at the door (HandoverPayment:methodcard/cash,amountincludingtip, the terminal'sgateway_payment_id,card_brand,card_last4,paid_at). Error codesalready_paid(withProblem.paid_by),payment_method_not_changeableandamount_mismatch.markTicketNotDelivered– nepřevzatá objednávka s důvodem (NotDeliveredReport:reason,note,attempted_at,locations přesností,call_attempts). Kódy chybnote_requiredaticket_already_delivered.markTicketNotDelivered– an order not taken over, with the reason (NotDeliveredReport:reason,note,attempted_at,locationwith its accuracy,call_attempts). Error codesnote_requiredandticket_already_delivered.KitchenTicket.amount_due(kolik zbývá vybrat),KitchenTicket.paid_by(PaidBy),KitchenTicket.not_delivered(NotDeliveredInfo) a u zákazníka bonunot_delivered_countalast_not_delivered_at.KitchenTicket.amount_due(what is left to collect),KitchenTicket.paid_by(PaidBy),KitchenTicket.not_delivered(NotDeliveredInfo), andnot_delivered_countandlast_not_delivered_atat the customer of a ticket.- Stav
not_deliveredvKitchenTicket.status,Order.statusaEventKitchenTicketData.status.The statusnot_deliveredinKitchenTicket.status,Order.statusandEventKitchenTicketData.status. KitchenTicketCancel.write_off– storno bez vrácení surovin na sklad (odpis nepřevzaté objednávky).KitchenTicketCancel.write_off– a cancellation without returning stock (writing off an order not taken over).ShiftTotals.not_delivered– počet a hodnota nepřevzatých objednávek v uzávěrce kuchyně a kurýra.ShiftTotals.not_delivered– the number and the value of orders not taken over in the close of the kitchen and of a courier.
ZměněnoChanged
- Trasa se dokončí, i když jsou její zbylé objednávky nepřevzaté;
markTicketDeliveredjde i u nepřevzaté objednávky acreateDeliveryRouteji pošle znovu.A route is completed also when its remaining orders were not taken over;markTicketDeliveredworks for an order not taken over too andcreateDeliveryRoutesends it out again.
Přesný výčet změn ve smlouvěExact list of contract changes 25
Nové operaceNew operations 2
- POST/v2/restaurants/{restaurant_id}/delivery-routes/{route_id}/tickets/{ticket_id}/handover-payment Zapsat platbu, kterou kurýr vybral u dveříRecord the payment the courier took at the door
- POST/v2/restaurants/{restaurant_id}/delivery-routes/{route_id}/tickets/{ticket_id}/not-delivered Označit objednávku trasy jako nepřevzatou, s důvodemMark an order of the route not delivered, with the reason
Nová poleNew fields 8
KitchenTicket.amount_dueKitchenTicket.customer.last_not_delivered_atKitchenTicket.customer.not_delivered_countKitchenTicket.not_deliveredKitchenTicket.paid_byKitchenTicketCancel.write_offProblem.paid_byShiftTotals.not_delivered
Nové hodnoty výčtůNew enum values 3
EventKitchenTicketData.status:not_deliveredKitchenTicket.status:not_deliveredOrder.status:not_delivered
Nové kódy chybNew error codes 5
already_paidObjednávka je už zaplacenáThe order is already paidamount_mismatchČástka nesedí s objednávkouThe amount does not match the ordernote_requiredK tomuto důvodu chybí poznámkaA note is required for this reasonpayment_method_not_changeableU této objednávky se u dveří nic nevybíráNothing is collected at the door for this orderticket_already_deliveredObjednávka je už doručenáThe order is already delivered
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 7
DeliveryAttemptLocationDeliveryAttemptLocationInputHandoverPaymentNotDeliveredInfoNotDeliveredReasonNotDeliveredReportPaidBy
Reference ve verzi 26.11.2Reference at version 26.11.2 · Porovnat s 26.11.1Compare with 26.11.1
26.11.1
Nové funkceNew featuresZpětně kompatibilníBackward compatibleCeny a účtenka na kuchyňském bonu, půl porce pro personálPrices and the receipt on a kitchen ticket, a half portion for the staff
Kuchyňský displej a kurýr vytisknou účtenku rozvozu přímo z bonu: bon nese účtenku spočítanou serverem stejně jako kopie účtenky v administraci (položky, slevy na účet, doprava, zaokrouhlení, celkem, k úhradě, rozpis DPH, nadpis a číslo dokladu) a každá položka cenu za kus, obal, slevu, příznak dárku z akce, sazbu DPH a velikost jako štítek. Aplikace personálu objednají půl porce – v kalkulaci, objednávce i při přidání položek k bonu.
The kitchen display and the courier print the delivery receipt straight from the ticket: a ticket carries the receipt computed by the server the same way as the copy of the receipt in the administration (items, discounts of the whole receipt, delivery, rounding, total, amount to pay, VAT by rates, the title and the number of the document), and every item its price per piece, packaging, discount, the mark of a gift of a promotion, the VAT rate and the size as a label. Staff applications order a half portion – in a quote, an order and when adding items to a ticket.
Co musíte udělatNic – verze jen přidává. Kuchyňský displej může tisknout účtenku z KitchenTicket.receipt místo vlastního výpočtu; půlku objednáte přes QuoteItemInput.variant half u produktu s Product.half_price.
What you need to doNothing – the version only adds. A kitchen display can print the receipt from KitchenTicket.receipt instead of computing it; order a half with QuoteItemInput.variant half for a product with Product.half_price.
PřidánoAdded
KitchenTicket.receipt(KitchenTicketReceipt) – účtenka bonu:items,discounts(záporně, s názvem akce),delivery,rounding,adjustment,total,to_pay,vatpo sazbách adocument(nadpis, číslo dokladu, zjednodušený daňový doklad).KitchenTicket.receipt(KitchenTicketReceipt) – the receipt of a ticket:items,discounts(negative, with the name of the promotion),delivery,rounding,adjustment,total,to_pay,vatby rates anddocument(the title, the number of the document, simplified tax document).KitchenItemaKitchenModifier:unit_price(za kus po slevě),packaging_price,discount(na kus, záporně),gift(dárek z akce),vat_rateasize(KitchenItemSize– velikost a název jídla bez ní).KitchenItemandKitchenModifier:unit_price(per piece after the discount),packaging_price,discount(per piece, negative),gift(a gift of a promotion),vat_rateandsize(KitchenItemSize– the size and the name of the dish without it).QuoteItemInput.variant(full|half) – půl porce zaProduct.half_pricev sortimentukitchenapos; jinde422 validation_faileds kódemnot_allowed. Platí procreateQuoteiaddKitchenTicketItems; v kuchyni je půlkaKitchenItem.kindhalf.QuoteItemInput.variant(full|half) – a half portion atProduct.half_pricein the catalogskitchenandpos; elsewhere422 validation_failedwith the codenot_allowed. It applies tocreateQuoteandaddKitchenTicketItems; in the kitchen a half isKitchenItem.kindhalf.Product.half_price(kanálykitchenapos, vewebnull) aOrderLine.variant.Product.half_price(the channelskitchenandpos,nullinweb) andOrderLine.variant.AppVersion.sha256aAppVersion.size– otisk a velikost souboru k ověření staženého instalátoru; hodnotakitchen_windowsvAppVersion.app(kuchyňský displej pro Windows).AppVersion.sha256andAppVersion.size– the fingerprint and the size of the file to check a downloaded installer; the valuekitchen_windowsinAppVersion.app(the kitchen display for Windows).
Přesný výčet změn ve smlouvěExact list of contract changes 21
Nová poleNew fields 18
AppVersion.sha256AppVersion.sizeKitchenItem.discountKitchenItem.giftKitchenItem.packaging_priceKitchenItem.sizeKitchenItem.unit_priceKitchenItem.vat_rateKitchenModifier.discountKitchenModifier.giftKitchenModifier.packaging_priceKitchenModifier.sizeKitchenModifier.unit_priceKitchenModifier.vat_rateKitchenTicket.receiptOrderLine.variantProduct.half_priceQuoteItemInput.variant
Nové hodnoty výčtůNew enum values 1
AppVersion.app:kitchen_windows
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 2
KitchenItemSizeKitchenTicketReceipt
Reference ve verzi 26.11.1Reference at version 26.11.1 · Porovnat s 26.10.9Compare with 26.10.9
26.10.9
Nové funkceNew featuresZpětně kompatibilníBackward compatiblePizza z půlek a čtvrtek, vlastní pizza a víc porcí přílohyPizza from halves and quarters, custom pizza and more portions of an add-on
Aplikace hostů objednají pizzu ze dvou půlek nebo čtyř čtvrtek různých druhů – každý díl se svými přílohami, jeden obal za pizzu – a produkty, které si zákazník skládá ze skupin voleb: vlastní pizzu, povinný výběr těsta nebo přílohy, ingredience s mezemi a s porcemi v ceně a prémiové volby, které zvednou cenu základu. Příloha může mít víc porcí (dvojitý sýr). Kalkulace vrací úplný rozpis dílů a voleb a kuchyň vidí díly pizzy s přísadami u svého dílu.
Guest applications can order a pizza from two halves or four quarters of different kinds – each part with its own add-ons, one packaging fee per pizza – and products the customer composes from groups of options: a custom pizza, a required choice of dough or side, toppings with limits and with portions included in the price, and premium options that raise the base price. An add-on can have more portions (double cheese). The quote returns a full breakdown of parts and options, and the kitchen sees the parts of a pizza with the toppings at their part.
Co musíte udělatNic – verze jen přidává. Kdo chce půlky nebo vlastní pizzu nabízet: produkty s Product.split skládejte do položky type split s parts; u produktu s Product.option_groups posílejte options místo add_ons. V řádcích kalkulace a objednávky počítejte s type split, parts, options a base_unit_price.
What you need to doNothing – the version only adds. To offer halves or a custom pizza: put products with Product.split into an item of type split with parts; for a product with Product.option_groups send options instead of add_ons. In the lines of a quote and an order expect type split, parts, options and base_unit_price.
PřidánoAdded
QuoteItemInput.typesplitsparts(2 půlky nebo 4 čtvrtky,SplitPartInputs přílohami dílu) aProduct.split(ProductSplit– ceny půlky a čtvrtky). Díly ze stejné kategorie a velikosti, obal nejvyšší z dílů.QuoteItemInput.typesplitwithparts(2 halves or 4 quarters,SplitPartInputwith the add-ons of the part) andProduct.split(ProductSplit– prices of a half and a quarter). Parts from the same category and of the same size, the highest packaging of the parts.Product.option_groups(ProductOptionGroup,ProductOption) aQuoteItemInput.options(OptionInput) – meze porcí skupiny, porce jedné volby, N nejlevnějších porcí v ceně a prémiová cena základu (ProductOption.base_price). Jen kanálweb; produkt se skupinami nemáadd_ons.Product.option_groups(ProductOptionGroup,ProductOption) andQuoteItemInput.options(OptionInput) – limits of portions of a group, portions of one option, the N cheapest portions included in the price and a premium base price (ProductOption.base_price). Only thewebchannel; a product with groups has noadd_ons.AddOnInput.quantity– víc porcí jedné přílohy; v řádkuOrderLine.add_ons[].quantityaOrderLinePart.add_ons[].quantity.AddOnInput.quantity– more portions of one add-on; in the lineOrderLine.add_ons[].quantityandOrderLinePart.add_ons[].quantity.OrderLine.base_unit_price,options(OrderLineOptions porcemi v ceně a důvodemreason) aparts(OrderLinePart);OrderLine.typesplit.OrderLine.base_unit_price,options(OrderLineOptionwith included portions and areason) andparts(OrderLinePart);OrderLine.typesplit.KitchenItem.partaKitchenModifier.part– ke kterému dílu dělené pizzy řádek patří.KitchenItem.partandKitchenModifier.part– which part of a split pizza the line belongs to.- Kódy polí
option_not_in_group,option_group_min,option_group_max,split_category_mismatchasplit_size_mismatch(u422 validation_failed).Field codesoption_not_in_group,option_group_min,option_group_max,split_category_mismatchandsplit_size_mismatch(with422 validation_failed).
ZměněnoChanged
QuoteItemInput.product_idje nepovinné – usplitnepatří, uproductzůstává povinné (chybějící vrátí422 validation_faileds kódemrequired).QuoteItemInput.product_idis optional – it does not belong tosplitand stays required forproduct(a missing one answers422 validation_failedwith the coderequired).
Přesný výčet změn ve smlouvěExact list of contract changes 21
Nová poleNew fields 11
AddOnInput.quantityKitchenItem.partKitchenModifier.partOrderLine.add_ons[].quantityOrderLine.base_unit_priceOrderLine.optionsOrderLine.partsProduct.option_groupsProduct.splitQuoteItemInput.optionsQuoteItemInput.parts
Nové hodnoty výčtůNew enum values 2
OrderLine.type:splitQuoteItemInput.type:split
Už nejsou povinnéNo longer required 1
QuoteItemInput.product_id
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 7
OptionInputOrderLineOptionOrderLinePartProductOptionProductOptionGroupProductSplitSplitPartInput
Reference ve verzi 26.10.9Reference at version 26.10.9 · Porovnat s 26.10.8Compare with 26.10.8
26.10.8
Nové funkceNew featuresZpětně kompatibilníBackward compatibledříve 2.5.0formerly 2.5.0Akce 2.0 – slevy na položky, věrnostní karta, dárky, sady a jednorázové kódyPromotions 2.0 – item discounts, loyalty cards, gifts, sets and single-use codes
Akce provozoven umí víc: slevu na vybrané kategorie a produkty, každý N-tý kus se slevou (2+1 zdarma) i věrnostní kartu napříč objednávkami (každá 7. pizza zdarma), dárek k objednávce a pevnou cenu za sadu. Platí i podle dne v týdnu a denní doby (happy hour), jen pro registrované zákazníky nebo na první objednávku a s limitem na zákazníka. Slevové kódy mohou být i jednorázové. Sleva na položky přichází jako sleva řádku v jeho sazbě DPH, dárek jako řádek s plnou cenou a slevou na ni.
Promotions of restaurants can do more: a discount on chosen categories and products, every N-th piece at a discount (2+1 free) and a loyalty card across orders (every 7th pizza free), a gift with the order and a fixed price for a set. They can apply by the day of the week and the time of day (happy hour), only for registered customers or the first order, and with a limit per customer. Promo codes can also be single-use. A discount of items comes as a discount of a line in its VAT rate, a gift as a line with its full price and a discount of it.
Co musíte udělatZobrazte řádky s gift_of jako dárek, nedovolte je měnit a do další kalkulace je neposílejte. Počítejte se slevami applies_to: line (s line_id) a s novými hodnotami effect.type. Pro akce pro registrované a věrnostní karty posílejte v kalkulaci customer_id zákazníka s ověřeným telefonem. Jinak nic – verze jen přidává.
What you need to doShow lines with gift_of as a gift, do not let the customer change them and do not send them in the next quote. Expect discounts with applies_to: line (with line_id) and new values of effect.type. For promotions for registered customers and loyalty cards send customer_id of a customer with a verified phone in the quote. Otherwise nothing – the version only adds.
PřidánoAdded
PromotionEffect.typenth_item(každý N-tý kus, sloyaltyvěrnostní karta napříč objednávkami),gift(dárek) abundle(pevná cena sady) s polinth_item,giftabundle.PromotionEffect.typenth_item(every N-th piece, withloyaltya loyalty card across orders),giftandbundle(a fixed price for a set) with the fieldsnth_item,giftandbundle.- Podmínky akce
PromotionConditions.min_items,scope(kategorie a produkty),days,time_windows(happy hour),customer(any,registered,first_order) amax_per_customer.Promotion conditionsPromotionConditions.min_items,scope(categories and products),days,time_windows(happy hour),customer(any,registered,first_order) andmax_per_customer. Promotion.code_type– sdílený (shared) nebo jednorázový kód (single_use); jednorázové kódy se posílají vQuoteRequest.promo_codesstejně jako sdílené.Promotion.code_type– a shared (shared) or single-use code (single_use); single-use codes go inQuoteRequest.promo_codeslike shared ones.Discount.applies_toline– sleva na položky jednoho řádku (line_id) v jeho sazbě DPH, z ceny produktu (přílohy a obal se platí).Discount.applies_toline– a discount of the items of one line (line_id) in its VAT rate, from the price of the product (add-ons and packaging are paid).OrderLine.gift_of– řádek dárku, který přidala akce; v kalkulaci i objednávce.OrderLine.gift_of– a gift line added by a promotion; in quotes and orders.
ZměněnoChanged
- Čas akce (platnost, dny, denní doba) se posuzuje v okamžiku odeslání objednávky (vytvoření kalkulace), ne podle času doručení nebo odběru;
listPromotionssatfiltruje jen platnost.The time of a promotion (validity, days, time of day) is judged at the moment the order is sent (the quote is created), not by the time of delivery or pickup;listPromotionswithatfilters the validity only. - Podrobnější
detailupromo_code_not_applicable(kolik chybí, počet kusů, část sady, den a čas, jen registrovaní nebo první objednávka);promo_code_used_upi pro použitý jednorázový kód a vyčerpaný limit zákazníka;promotion_changedi když jednorázový kód mezitím použila jiná objednávka nebo zákazník dosáhl limitu.A more detaileddetailofpromo_code_not_applicable(how much is missing, the number of items, a part of a set, the day and time, registered customers or the first order only);promo_code_used_upalso for a used single-use code and a reached limit per customer;promotion_changedalso when another order used the single-use code meanwhile or the customer reached the limit. - Poplatky a slevy celé objednávky se dělí do sazeb DPH podle položek po slevách na řádky;
Totals.itemszahrnuje řádky dárků s plnou cenou.Charges and discounts of the whole order are split over the VAT rates by the items after the discounts of lines;Totals.itemsincludes gift lines at their full price.
Přesný výčet změn ve smlouvěExact list of contract changes 19
Nová poleNew fields 11
OrderLine.gift_ofPromotion.code_typePromotionConditions.customerPromotionConditions.daysPromotionConditions.max_per_customerPromotionConditions.min_itemsPromotionConditions.scopePromotionConditions.time_windowsPromotionEffect.bundlePromotionEffect.giftPromotionEffect.nth_item
Nové hodnoty výčtůNew enum values 2
Discount.applies_to:linePromotionEffect.type:bundle,gift,nth_item
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 6
PromotionBundlePromotionBundleGroupPromotionGiftPromotionNthItemPromotionScopePromotionTimeWindow
Reference ve verzi 26.10.8Reference at version 26.10.8 · Porovnat s 26.10.7Compare with 26.10.7
26.10.7
Nové funkceNew featuresZpětně kompatibilníBackward compatibledříve 2.4.0formerly 2.4.0Docházkový terminál – rozpis směn a žádosti o volnoAttendance terminal – shift schedule and time-off requests
Zaměstnanec přihlášený na docházkovém terminálu uvidí svůj rozpis směn a volna na příštích až 31 dní, může požádat o volno a čekající žádost vzít zpět. Provozovna si v administraci nastaví, jestli a jak žádosti přijímá.
An employee signed in on the attendance terminal sees their shifts and days off for up to 31 days ahead, can request time off and withdraw a pending request. The restaurant decides in the administration whether and how it takes requests.
Co musíte udělatNic – verze jen přidává. Oprávnění se nezměnila, spárované terminály se nepárují znovu.
What you need to doNothing – the version only adds. Scopes are unchanged; paired terminals do not need to pair again.
PřidánoAdded
- Rozpis přihlášeného zaměstnance
getMyAttendanceSchedule– směny a volno na příštích až 31 dní.The signed-in employee's schedulegetMyAttendanceSchedule– shifts and days off for up to 31 days ahead. - Žádosti o volno
listMyAbsenceRequests,createAbsenceRequesta zpětvzetí čekající žádosticancelAbsenceRequest.Time-off requestslistMyAbsenceRequests,createAbsenceRequestand withdrawing a pending one withcancelAbsenceRequest. AttendanceTerminal.absence_requests– pravidla žádostí, která provozovna nastavila (terminál podle nich ukáže formulář).AttendanceTerminal.absence_requests– the request rules the restaurant set (the terminal shows the form by them).- Kódy chyb
absence_requests_disabled,absence_request_not_allowed,absence_request_conflictaabsence_request_decided.Error codesabsence_requests_disabled,absence_request_not_allowed,absence_request_conflictandabsence_request_decided.
ZměněnoChanged
- Čtení stačí s oprávněním
attendance:read, žádost a její zpětvzetí sattendance:punch– stejně jako dosud píchnutí.Reading needsattendance:read, requesting and withdrawingattendance:punch– the same as punches so far.
Přesný výčet změn ve smlouvěExact list of contract changes 17
Nové operaceNew operations 4
- GET/v2/restaurants/{restaurant_id}/attendance/my-schedule Rozpis přihlášeného zaměstnanceThe signed-in employee's schedule
- GET/v2/restaurants/{restaurant_id}/attendance/absence-requests Žádosti o volno přihlášeného zaměstnanceThe signed-in employee's requests for time off
- POST/v2/restaurants/{restaurant_id}/attendance/absence-requests Požádat o volno za přihlášeného zaměstnanceRequest time off for the signed-in employee
- DELETE/v2/restaurants/{restaurant_id}/attendance/absence-requests/{request_id} Vzít zpět čekající žádost o volnoWithdraw a pending request for time off
Nová poleNew fields 1
AttendanceTerminal.absence_requests
Nové kódy chybNew error codes 4
absence_request_conflictZaměstnanec už v tu dobu volno máThe employee already has time off thenabsence_request_decidedŽádost už je vyřízenáThe request is already decidedabsence_request_not_allowedŽádost porušuje pravidlo provozovnyThe request breaks a rule of the restaurantabsence_requests_disabledProvozovna žádosti o volno nepřijímáThe restaurant does not accept requests for time off
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 8
AbsenceRequestAbsenceRequestCreateAbsenceRequestListAbsenceRequestRulesAbsenceTypeAttendanceScheduleAttendanceScheduleItemAttendanceSectionRef
Reference ve verzi 26.10.7Reference at version 26.10.7 · Porovnat s 26.10.6Compare with 26.10.6
26.10.6
Nové funkceNew featuresZpětně kompatibilníBackward compatibledříve 2.3.0formerly 2.3.0Stav a chyby vlastních zařízení, logy na vyžádáníStatus and errors of own devices, logs on request
Vlastní zařízení Profirestu hlásí každou minutu svůj stav a chyby hned, když nastanou. Celý log zůstává na zařízení a server si ho vyžádá, jen když ho podpora potřebuje – nahraje se po částech s jednorázovým tokenem. Týká se jen aplikací Profirestu; partnerských integrací se verze nedotkne.
Profirest's own devices report their status every minute and errors as soon as they happen. The full log stays on the device and the server asks for it only when support needs it – it is uploaded in parts with a one-time token. Only Profirest's own apps are concerned; partner integrations are not affected.
Co musíte udělatPartnerské integrace nic. Aplikace, které posílají řádky logu přes createDeviceLogs, mají přejít na checkInDevice a reportDeviceError.
What you need to doPartner integrations: nothing. Apps that send log lines with createDeviceLogs should move to checkInDevice and reportDeviceError.
PřidánoAdded
checkInDevice– stav zařízení každých 60 sekund; odpověď nese příkazyupload_logs,live_logsaping. HlavičkaProfirest-Commands: pendingu každé odpovědi zařízení řekne, že příkaz čeká.checkInDevice– the device's status every 60 seconds; the answer carries the commandsupload_logs,live_logsandping. The headerProfirest-Commands: pendingon any answer to the device says a command is waiting.reportDeviceError– chyba hned, i s asi 30 řádky kontextu, vlastním ID proti dvojímu zápisu, nejvýš 60 za hodinu.reportDeviceError– an error at once, with about 30 lines of context and the device's own ID against duplicates, at most 60 an hour.- Nahrávání logu po částech s tokenem cíle
pfl_(nový způsob přihlášenílogUpload) –getLogUpload,putLogUploadPart(gzip po částech do 4 MB),completeLogUploadaabortLogUpload.Uploading a log in parts with an upload tokenpfl_(the new security schemelogUpload) –getLogUpload,putLogUploadPart(gzip, parts up to 4 MB),completeLogUploadandabortLogUpload. - Kódy chyb
upload_closedaupload_incomplete.Error codesupload_closedandupload_incomplete.
ZastaraléDeprecated
createDeviceLogs– řádky logu už nejdou do databáze po jednom. Operace dál funguje pro starší aplikace; nahrazují jireportDeviceErrora soubory na vyžádání.createDeviceLogs– log lines no longer go to the database one by one. The operation still works for older apps;reportDeviceErrorand logs on request replace it.
DokumentaceDocumentation
- Doplněno 28. 10. 2026 (tvar beze změny): strop 200 MB na jedno nahrávání a 500 MB na jednu žádost (
413), plný disk serveru503, souběžné požadavky na totéž nahrávání409 conflict, příkazupload_logspřijde znovu se stejnými tokeny, kontext chyby nejvýš 16 kB a 1 MB za den na zařízení.Added on 28 October 2026 (shape unchanged): at most 200 MB per upload and 500 MB per request (413), a full server disk503, concurrent requests on the same upload409 conflict, theupload_logscommand comes again with the same tokens, error context at most 16 kB and 1 MB a day per device.
Přesný výčet změn ve smlouvěExact list of contract changes 23
Nové operaceNew operations 6
- POST/v2/restaurants/{restaurant_id}/device-checkin Přihlásit stav zařízeníCheck the device in
- POST/v2/restaurants/{restaurant_id}/device-errors Nahlásit chybu hnedReport an error at once
- GET/v2/log-uploads/{upload_id} Stav nahrávání loguState of a log upload
- PUT/v2/log-uploads/{upload_id}/parts/{part} Nahrát část loguUpload a part of the log
- POST/v2/log-uploads/{upload_id}/complete Dokončit nahrávání loguFinish the log upload
- POST/v2/log-uploads/{upload_id}/abort Vzdát nahrávání loguGive the log upload up
Nové kódy chybNew error codes 2
upload_closedNahrávání logu je dokončené nebo prošléThe log upload is finished or expiredupload_incompleteČásti nahrávání logu chybíParts of the log upload are missing
Nové způsoby přihlášeníNew security schemes 1
logUpload
Označené jako zastaraléMarked deprecated 1
- POST/v2/restaurants/{restaurant_id}/device-logs Poslat logy zařízeníSend device logs
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 13
DeviceCheckInDeviceCheckInResultDeviceCommandDeviceCommandResultDeviceErrorCreateDeviceErrorResultDevicePeerDeviceQueueLogUploadAbortLogUploadCommandLogUploadCompleteLogUploadStatusLogUploadTarget
Reference ve verzi 26.10.6Reference at version 26.10.6 · Porovnat s 26.10.5Compare with 26.10.5
26.10.5
Nové funkceNew featuresZpětně kompatibilníBackward compatibledříve 2.2.0formerly 2.2.0Expresní doručeníExpress delivery
Zákazník si rozvoz „co nejdřív“ může za příplatek zrychlit. Cenu určuje rozvozová zóna, expres má přednost v kuchyni i u kurýra, ale bez slíbeného času. Nový přehled ukazuje poplatky za dopravu, doplatek do minima a expres.
The customer can speed up an "as soon as possible" delivery for a fee. The delivery zone sets the price; express has priority in the kitchen and with the courier, but no promised time. A new report shows the delivery fees, minimum-order surcharges and express fees.
Co musíte udělatNic, pokud expres nechcete nabízet. Kdo čte doklady prodeje (listSales, getSale), počítejte s novými hodnotami SaleLine.type – neznámou hodnotu berte jako jinou položku, jak říkají pravidla pro každého klienta.
What you need to doNothing unless you want to offer express. If you read sales documents (listSales, getSale), expect the new values of SaleLine.type – treat an unknown value as another line, as the rules for every client say.
PřidánoAdded
FulfillmentInput.speedaFulfillment.speed–standardneboexpress; expres jen u rozvozu „co nejdřív“.FulfillmentInput.speedandFulfillment.speed–standardorexpress; express only for an "as soon as possible" delivery.- Příplatek zóny
DeliveryZone.express_fee,DeliveryInfo.express_feeaAddressSuggestion.zone.express_fee–nullznamená, že se v zóně expres nenabízí.The zone's feeDeliveryZone.express_fee,DeliveryInfo.express_feeandAddressSuggestion.zone.express_fee–nullmeans express is not offered in the zone. - Poplatek
Charge.type=express_delivery(„Expresní doručení“, DPH jako vedlejší výdaj) a kód chybyexpress_unavailable.The chargeCharge.type=express_delivery("Express delivery", VAT as an incidental cost) and the error codeexpress_unavailable. - V kuchyni
KitchenTicket.express(štítek EXPRES) aKitchenItem.charge/KitchenModifier.charge– řádek je poplatek, ne jídlo.In the kitchenKitchenTicket.express(the EXPRESS label) andKitchenItem.charge/KitchenModifier.charge– the line is a fee, not food. - Přehled poplatků
getChargesReport(oprávněníreports:read) – doprava, doplatek do minima a expres, kolikrát a za kolik, stejně jako Statistiky v administraci.The charges reportgetChargesReport(scopereports:read) – delivery, minimum-order surcharge and express, how many times and for how much, the same as Statistics in the administration.
ZměněnoChanged
- Řádky dokladu prodeje za doplatek do minima a za expres mají vlastní
SaleLine.type–minimum_order_surchargeaexpress_delivery(doplatek dřív přicházel jakoproduct).Sales document lines for the minimum-order surcharge and express have their ownSaleLine.type–minimum_order_surchargeandexpress_delivery(the surcharge used to come asproduct).
Přesný výčet změn ve smlouvěExact list of contract changes 14
Nové operaceNew operations 1
- GET/v2/restaurants/{restaurant_id}/reports/charges PoplatkyCharges
Nová poleNew fields 8
AddressSuggestion.zone.express_feeDeliveryInfo.express_feeDeliveryZone.express_feeFulfillment.speedFulfillmentInput.speedKitchenItem.chargeKitchenModifier.chargeKitchenTicket.express
Nové hodnoty výčtůNew enum values 2
Charge.type:express_deliverySaleLine.type:express_delivery,minimum_order_surcharge
Nové kódy chybNew error codes 1
express_unavailableExpresní doručení není k dispoziciExpress delivery is not available
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 2
ChargesReportChargesReportRow
Reference ve verzi 26.10.5Reference at version 26.10.5 · Porovnat s 26.10.4Compare with 26.10.4
26.10.4
Nové funkceNew featuresZpětně kompatibilníBackward compatibledříve 2.1.0formerly 2.1.0Akce a slevové kódy, kiosek, přehledy tržeb, objednávání od stoluPromotions and promo codes, kiosk, sales reports, ordering from the table
Největší rozšíření od vydání v2: akce a slevové kódy v kalkulaci a objednávce, samoobslužný kiosek a jídlo na místě, přehledy tržeb, doklady prodeje a účetní export pro partnerské systémy, zápis otevírací doby a porcí, přesuny mezi účty stolů a uzávěrka za víc zařízení a objednávání od stolu přes QR kód.
The largest extension since v2 was released: promotions and promo codes in quotes and orders, a self-service kiosk and eating in, sales reports, sales documents and accounting export for partner systems, writing opening hours and portions, moving lines between tabs and closing several devices at once, and ordering from the table by a QR code.
Co musíte udělatNic – verze jen přidává. Kdo chce nové funkce, požádá o nová oprávnění (reports:read, accounting:read, availability:write, opening_hours:write) v nové autorizaci a majitel restaurace je potvrdí; stávající připojení je samo nedostane.
What you need to doNothing – the version only adds. To use the new features, ask for the new scopes (reports:read, accounting:read, availability:write, opening_hours:write) in a new authorization and the restaurant owner confirms them; an existing connection does not get them by itself.
PřidánoAdded
- Akce a slevové kódy:
listPromotions(catalog:read),QuoteRequest.promo_codes, slevy v kalkulaci a objednávce sDiscount.promotion,applies_toaline_id, kódy chybpromo_code_invalid,promo_code_expired,promo_code_not_applicable,promo_code_used_up,promo_code_attempts_exceededapromotion_changed, událostpromotions.changed.Promotions and promo codes:listPromotions(catalog:read),QuoteRequest.promo_codes, discounts in quotes and orders withDiscount.promotion,applies_toandline_id, error codespromo_code_invalid,promo_code_expired,promo_code_not_applicable,promo_code_used_up,promo_code_attempts_exceededandpromotion_changed, the eventpromotions.changed. - Kiosek: kanál
Connection.client.order_channel=kiosk, jídlo na místěfulfillment.type=dine_in(bez obalu, DPH „na místě“), objednávka kiosku bez kontaktu na zákazníka a platba kartou na terminálu kiosku.Kiosk: the channelConnection.client.order_channel=kiosk, eating infulfillment.type=dine_in(no packaging, VAT for eating in), kiosk orders without customer contact and card payment at the kiosk's terminal. - Přehledy a účetnictví (
reports:read):getSalesSummary,getProductSales,getTipsReport,getVatReport, doklady prodeje ze všech zdrojůlistSalesagetSale, uzávěrkylistShiftClosesagetShiftClose, událostisale.created,sale.cancelledashift.closed; účetní export pro Pohodu a MoneygetAccountingExport(accounting:read).Reports and accounting (reports:read):getSalesSummary,getProductSales,getTipsReport,getVatReport, sales documents from all sourceslistSalesandgetSale, shift closeslistShiftClosesandgetShiftClose, the eventssale.created,sale.cancelledandshift.closed; the accounting export for Pohoda and MoneygetAccountingExport(accounting:read). - Zápis z partnerských systémů: otevírací doba
setOpeningHours(opening_hours:write), zbývající porce a „vyprodáno“setProductAvailability(availability:write, kódportion_tracking_disabled).Writing from partner systems: opening hourssetOpeningHours(opening_hours:write), remaining portions and "sold out"setProductAvailability(availability:write, codeportion_tracking_disabled). - Sortiment:
Category.color,Category.icon,Product.kitchen_name,PosProductInfo.ticket(kuchyň nebo bar) a velikostiProduct.size– každá velikost je samostatný produkt, klient je seskupí podlegroup_id.Catalog:Category.color,Category.icon,Product.kitchen_name,PosProductInfo.ticket(kitchen or bar) and sizesProduct.size– each size is its own product; the client groups them bygroup_id. - Kuchyň:
KitchenTicket.platform,KitchenItem.category,KitchenItem.from_daily_menu, bon stolu na časKitchenTicketCreate.preorder_ata událostikitchen.ticket_createdakitchen.ticket_updatedi pro objednávky mimo API.Kitchen:KitchenTicket.platform,KitchenItem.category,KitchenItem.from_daily_menu, a table ticket for laterKitchenTicketCreate.preorder_atand the eventskitchen.ticket_createdandkitchen.ticket_updatedalso for orders outside the API. - Pokladna: přesun položek mezi účty
moveTabLines, důvod ucloseTab, uzávěrka za víc zařízení a odvod číšníka (getPosShiftsdevices,closePosShiftsdevice_ids), vklad, výběr a výdajcreateCashMovementa pokladní knihagetCashBook,listStaffsETaga304.Register: moving lines between tabsmoveTabLines, a reason atcloseTab, closing several devices and a waiter's hand-in (getPosShiftwithdevices,closePosShiftwithdevice_ids), deposits, withdrawals and expensescreateCashMovementand the cash bookgetCashBook,listStaffwithETagand304. - Objednávání od stolu: skupina operací Table ordering pro telefon hosta s vlastním tokenem
pfg_(způsob přihlášenítableGuest) a spojení hlavní kasy s cloudem (table:sync, jen aplikace Profirestu),DeviceSettings.table_ordering, kód stolu pro QRRoom.tables[].code, událosttable.inbox_received.Ordering from the table: the Table ordering group for the guest's phone with its ownpfg_token (security schemetableGuest) and the main register's link to the cloud (table:sync, Profirest's apps only),DeviceSettings.table_ordering, the table's QR codeRoom.tables[].code, the eventtable.inbox_received.
ZměněnoChanged
listEvents: parametrtypespřijímá i skupinuorder.*jako proud přes WebSocket (dřív422).listEvents: thetypesparameter also takes the grouporder.*, like the WebSocket stream (422before).OrderCreate.customeraOrderCustomerInput.phoneuž nejsou ve schématu povinné – vynechat je smí jen kiosek; ostatní dál dostanou422 required, rozvoz vždy.OrderCreate.customerandOrderCustomerInput.phoneare no longer required by the schema – only a kiosk may leave them out; others still get422 required, delivery always.closeTab: řádky už poslané do kuchyně se zapíšou jako storna.closeTab: lines already sent to the kitchen are recorded as cancellations.
Přesný výčet změn ve smlouvěExact list of contract changes 170
Nové operaceNew operations 31
- PUT/v2/restaurants/{restaurant_id}/opening-hours Nastavit týdenní otevírací dobuSet the weekly opening hours
- GET/v2/restaurants/{restaurant_id}/accounting-export Účetní export pro Pohodu nebo MoneyAccounting export for Pohoda or Money
- GET/v2/restaurants/{restaurant_id}/shift-closes UzávěrkyShift closes
- GET/v2/restaurants/{restaurant_id}/shift-closes/{close_id} Jedna uzávěrkaOne shift close
- GET/v2/restaurants/{restaurant_id}/reports/sales-summary Souhrn tržebSales summary
- GET/v2/restaurants/{restaurant_id}/reports/product-sales Prodej položekProduct sales
- GET/v2/restaurants/{restaurant_id}/reports/tips SpropitnéTips
- GET/v2/restaurants/{restaurant_id}/reports/vat Rozpis DPHVAT by rate
- GET/v2/restaurants/{restaurant_id}/sales Doklady prodejeSales documents
- GET/v2/restaurants/{restaurant_id}/sales/{sale_id} Jeden doklad prodejeOne sales document
- PUT/v2/restaurants/{restaurant_id}/availability/{product_id} Nastavit zbývající porce produktuSet the remaining portions of a product
- GET/v2/restaurants/{restaurant_id}/promotions Akce a slevové kódyPromotions and promo codes
- POST/v2/restaurants/{restaurant_id}/cash-movements Zapsat vklad, výběr nebo výdaj hotovostiRecord a deposit, a withdrawal or an expense of cash
- GET/v2/restaurants/{restaurant_id}/cash-book Pokladní knihaCash book
- POST/v2/restaurants/{restaurant_id}/tabs/{tab_id}/moves Přesunout položky na jiný účetMove lines to another tab
- POST/v2/table/sessions Připojit se ke stolu kódem z QRJoin a table by the code from its QR
- GET/v2/table/session Stůl, jak ho vidí tento telefonThe table as this phone sees it
- POST/v2/table/session/join Přidat se ke skupině kódem od kamarádaJoin the party with the code from a friend
- GET/v2/table/requests/{request_id} Odpověď hlavní kasy na žádost tohoto telefonuThe answer of the main register to a request of this phone
- GET/v2/table/menu Co si host může objednat od stoluWhat the guest can order from the table
- GET/v2/table/orders Objednávky tohoto telefonuOrders of this phone
- POST/v2/table/orders Poslat objednávku na stůlSend an order to the table
- POST/v2/table/orders/{order_id}/cancel Požádat o zrušení objednávky, která ještě čeká na obsluhuAsk to cancel an order that still waits for the staff
- POST/v2/table/calls Zavolat obsluhu ke stoluCall the staff to the table
- POST/v2/table/calls/{call_id}/cancel Požádat o zrušení voláníAsk to cancel a call
- GET/v2/table/tab Účet stoluThe tab of the table
- PUT/v2/restaurants/{restaurant_id}/table/heartbeat Hlavní kasa žijeThe main register is alive
- GET/v2/restaurants/{restaurant_id}/table/inbox Žádosti hostů ze záložní cestyRequests of guests on the backup path
- PUT/v2/restaurants/{restaurant_id}/table/inbox/{item_id} Výsledek žádosti hostaThe result of a request of a guest
- PUT/v2/restaurants/{restaurant_id}/table/state Zrcadlo stavu stolů z hlavní kasyMirror the state of tables from the main register
- POST/v2/restaurants/{restaurant_id}/table/orders/{order_id}/apply Zapsat přijatou objednávku od stolu na účet a do kuchyněWrite an accepted order from the table to the tab and the kitchen
Nová poleNew fields 21
Category.colorCategory.iconDeviceSettings.table_orderingDiscount.applies_toDiscount.line_idDiscount.promotionKitchenItem.categoryKitchenItem.from_daily_menuKitchenTicket.platformKitchenTicketCreate.preorder_atPosProductInfo.ticketPosShiftCloseRequest.device_idsPosShiftCloseRequest.manager_credentialPosShiftSummary.by_devicePosShiftSummary.by_employeePosShiftSummary.cash_movementsPosShiftSummary.device_idsProduct.kitchen_nameProduct.sizeQuoteRequest.promo_codesRoom.tables[].code
Nové hodnoty výčtůNew enum values 4
Connection.client.order_channel:kioskFulfillment.type:dine_inFulfillmentType:dine_inTimeSlots.type:dine_in
Nové typy událostíNew event types 6
kitchen.ticket_createdpromotions.changedsale.cancelledsale.createdshift.closedtable.inbox_received
Nové kódy chybNew error codes 23
cash_book_already_startedPokladní kniha už má počáteční stavThe cash book already has an opening balancecash_book_not_startedPokladní kniha ještě nezačalaThe cash book has not starteddevice_not_verifiedTelefon u stolu není ověřenýThis phone is not verified at the tableinbox_item_conflictŽádost už je rozhodnutá jinakThe request was already decided differentlyjoin_code_invalidŠpatný kód od kamarádaWrong code from a friendjoin_lockedPříliš mnoho špatných kódůToo many wrong codesjoin_not_availablePřidání kódem není k dispoziciJoining by a code is not availablemain_device_conflictHlavní kasou je jiné zařízeníAnother device is the main registerorder_not_pendingObjednávka už na obsluhu nečekáThe order no longer waits for the staffordering_pausedObjednávky od stolu jsou pozastavenéOrders from the table are pausedportion_tracking_disabledProvozovna pro vás porce nehlídáThe restaurant does not track portions for youproduct_not_orderableTento produkt nejde objednat od stoluThis product cannot be ordered from the tablepromo_code_attempts_exceededPříliš mnoho neplatných pokusů o slevový kódToo many invalid promo code attemptspromo_code_expiredSlevový kód už neplatíThe promo code has expiredpromo_code_invalidSlevový kód neplatíThe promo code is not validpromo_code_not_applicableSlevový kód na tuto objednávku neplatíThe promo code does not apply to this orderpromo_code_used_upSlevový kód je vyčerpanýThe promo code has been used uppromotion_changedAkce z kalkulace se změnilaA promotion of the quote has changedrestaurant_offlineHlavní kasa podniku není připojenáThe main register of the restaurant is not connectedtable_not_foundŽádný stůl nemá tento kódNo table has this codetable_not_openStůl nemá otevřený účetThe table has no open tabtoo_many_pending_ordersNa obsluhu čeká příliš mnoho objednávekToo many orders wait for the staffvisit_endedNávštěva stolu skončilaThe visit of the table has ended
Nová oprávněníNew scopes 5
accounting:read– Stahovat účetní exporty tržeb a uzávěrek (Pohoda, Money) včetně odběratelů na fakturách.Download accounting exports of takings and shift closes (Pohoda, Money), including buyers on invoices.availability:write– Měnit zbývající porce produktů a označovat produkty jako vyprodané.Change how many portions of products are left and mark products sold out.opening_hours:write– Měnit běžnou týdenní otevírací dobu provozovny.Change the regular weekly opening hours of the restaurant.reports:read– Vidět uzávěrky, doklady prodeje ze všech zdrojů, přehledy tržeb (po dnech, platbách, produktech, zaměstnancích, dýška) a pokladní knihu – se jmény zaměstnanců, bez kontaktů zákazníků.See shift closes, sales documents of all sources, reports of takings (by day, payment, product, employee, tips) and the cash book – with names of employees, without customer contacts.table:sync– Přebírat žádosti hostů, kteří objednávají od stolu, a zrcadlit stoly hlavní kasy do cloudu.Take over requests of guests ordering from the table and mirror the tables of the main register to the cloud.
Nové způsoby přihlášeníNew security schemes 1
tableGuest
Nové parametryNew parameters 3
closeTab: queryreasongetPosShift: querydeviceslistStaff: headerIf-None-Match
Nově zdokumentované odpovědiNewly documented responses 1
listStaff:304
Už nejsou povinnéNo longer required 2
OrderCreate.customerOrderCustomerInput.phone
Nová schémata (třídy v knihovnách)New schemas (classes in the libraries) 73
CashBookCashBookDayCashBookEntryCashMovementCashMovementInputDiscountPromotionEventTableInboxDataOpeningHoursInputPosShiftCashMovementsPosShiftDevicePartPosShiftEmployeePartProductAvailabilityProductAvailabilityInputProductSalesProductSalesRowProductSizePromoCodePromoCodeInputPromotionPromotionConditionsPromotionEffectPromotionListSaleSaleEetSaleLineSalePageSalesSummarySalesSummaryRowShiftCloseShiftClosePageShiftCloseTotalsTabMoveTabMoveInputTableCallTableCallCreateTableCallStateTableDeviceTableDeviceStateTableHeartbeatTableHeartbeatInputTableInboxCompletionTableInboxItemTableInboxPageTableInboxResultInputTableJoinInputTableMenuTableMenuCategoryTableMenuProductTableOrderTableOrderAppliedTableOrderApplyInputTableOrderCreateTableOrderLineTableOrderLineInputTableOrderLineStateTableOrderListTableOrderStateTableOrderingSettingsTableOrderingStateTableRequestTableSessionTableSessionCreatedTableSessionStartTableStateInputTableStateResultTableTabTableTabStateTableVisitTableVisitStateTimeIntervalInputTipsByEmployeeTipsReportVatReport
Reference ve verzi 26.10.4Reference at version 26.10.4 · Porovnat s 26.10.3Compare with 26.10.3
26.10.3
Opravy a dokumentaceFixes and documentationZpětně kompatibilníBackward compatibledříve 2.0.7formerly 2.0.7Rozpis DPH dopravy jako na účtenceVAT split of delivery as on the receipt
Doprava a doplatek do minima se do sazeb DPH dělí poměrem hrubých částek položek – přesně jako kopie účtenky a účetní exporty. Rozpis DPH kalkulace a objednávky tak sedí s účtenkou, Pohodou i Money na haléř.
Delivery and the minimum-order surcharge are split into VAT rates by the ratio of the items' gross amounts – exactly like the receipt copy and the accounting exports. The VAT breakdown of quotes and orders now matches the receipt, Pohoda and Money to the cent.
Co musíte udělatNic, pokud rozpis DPH berete z odpovědi. Jestli si ho počítáte sami, dělte dopravu poměrem hrubých částek.
What you need to doNothing if you take the VAT breakdown from the answer. If you compute it yourself, split delivery by gross amounts.
OpravenoFixed
- Dělení dopravy a doplatku do sazeb DPH poměrem hrubých částek (dřív poměrem základů daně).Delivery and surcharge split into VAT rates by gross amounts (by tax bases before).
DokumentaceDocumentation
- Příklady kalkulace podle serveru: kalkulace platí 15 minut, voucher v ní je
pendingaLoyalty.redeemablejefalse.Quote examples as the server answers: a quote is valid for 15 minutes, a voucher in it ispendingandLoyalty.redeemableisfalse.
Tvar API se nezměnil – jen texty, příklady a chování podle smlouvy.The shape of the API did not change – texts, examples and behaviour by the contract only.
Reference ve verzi 26.10.3Reference at version 26.10.3 · Porovnat s 26.10.2Compare with 26.10.2
26.10.2
Opravy a dokumentaceFixes and documentationZpětně kompatibilníBackward compatibledříve 2.0.6formerly 2.0.6Přesnější dokumentaceMore precise documentation
Jen texty a příklady, tvar API se nezměnil. Popisy teď přesně odpovídají tomu, co server dělá, a smlouva uvádí i odpovědi, které server vracel už dřív.
Texts and examples only; the shape of the API did not change. The descriptions now match exactly what the server does, and the contract lists answers the server already gave before.
Co musíte udělatNic.
What you need to doNothing.
DokumentaceDocumentation
- Zdokumentované odpovědi:
409 ticket_cancelledustartStationWork,stopStationWorkatakeBackTicketHandover,400 invalid_requestuoauthRevoke,429uoauthAuthorizeaoauthDeviceAuthorization(limit na IP adresu); ustartPhoneVerificationpopsaná503, když SMS nejde odeslat.Documented answers:409 ticket_cancelledatstartStationWork,stopStationWorkandtakeBackTicketHandover,400 invalid_requestatoauthRevoke,429atoauthAuthorizeandoauthDeviceAuthorization(a limit per IP address);503atstartPhoneVerificationexplained for when an SMS cannot be sent. - Doplněné popisy hlavních schémat (účtenka, objednávka, kuchyňský bon, účet stolu, produkt, provozovna, zákazník, nastavení zařízení) a jejich polí, význam hodnot výčtů a parametrů.Descriptions of the main schemas (receipt, order, kitchen ticket, tab, product, restaurant, customer, device settings) and their fields, the meaning of enum values and parameters.
- Upřesněné chování: vaše ID (
putExternalRef) jen u pěti typů objektů,restaurant.changedi po uložení provozovny v administraci, stálá ID zón a stolů, kódy voucherů v poznámkách jen maskované (ABC-***).Behaviour made precise: your IDs (putExternalRef) for five object types only,restaurant.changedalso after the restaurant is saved in the administration, stable IDs of zones and tables, voucher codes in notes masked only (ABC-***). - Veřejný ukázkový účet
profirestdemo(bez SMS, e-mailů a EET, data se každou noc obnoví) a popis přechodu z API v1.The public demo accountprofirestdemo(no SMS, e-mails or EET, the data is reset every night) and how to move from API v1.
Přesný výčet změn ve smlouvěExact list of contract changes 6
Nově zdokumentované odpovědiNewly documented responses 6
oauthAuthorize:429oauthDeviceAuthorization:429oauthRevoke:400startStationWork:409stopStationWork:409takeBackTicketHandover:409
Reference ve verzi 26.10.2Reference at version 26.10.2 · Porovnat s 26.10.1Compare with 26.10.1
26.10.1
První finální verzeFirst final versiondříve 2.0.5formerly 2.0.5První finální verze API v2The first final version of API v2
Zmrazená smlouva API v2: napojení e-shopů a partnerských aplikací (OAuth 2.0 s PKCE, sortiment, kalkulace a objednávky, zákazníci, vouchery, vaše ID objektů, události v proudu i webhookem) a vlastní zařízení Profirestu (párování kódem, zaměstnanci, docházka, kuchyňský displej, rozvoz, pokladna s účtenkami spočítanými serverem a EET 2.0 ze serveru, inventura, zálohy a diagnostika). Od této verze platí slib stability – v rámci v2 se jen přidává.
The frozen API v2 contract: integrations of e-shops and partner applications (OAuth 2.0 with PKCE, the catalog, quotes and orders, customers, vouchers, your IDs of objects, events in the feed and by webhook) and Profirest's own devices (pairing by code, staff, attendance, the kitchen display, deliveries, the register with receipts priced by the server and EET 2.0 sent by the server, stock taking, backups and diagnostics). The stability promise holds from this version – within v2 things are only added.
Co musíte udělatPředběžné verze (rc.1–rc.9) se v changelogu neuvádějí; kdo s nimi zkoušel, řiďte se touto verzí.
What you need to doPre-release versions (rc.1–rc.9) are not listed; if you tried them, follow this version.
Výchozí verze: celou smlouvu, jak tehdy vypadala, ukáže reference ve verzi 26.10.1.The starting version: the reference at version 26.10.1 shows the whole contract as it was then.