Syrve POS API SDK

Change log

15 January 2024 LTS version of V8 released

API V8 has been released with Syrve POS 8.7. This is an LTS version, plugins developed for V8 will be supported by all versions of Syrve POS that will be released in the next 4 years. The Resto.Front.Api.V8 library is available as NuGet package, examples of using here.

15 January 2024 API V6 support is ending

The release of API V6 took place in the fall of 2019. Later, in January 2022, the V7 version was released, since then V6 has been listed as obsolete. Progress cannot be stopped, and starting from the winter of 2024, Syrve POS builds with V8 support will be released, which means that V7 will become obsolete and V6 will no longer be supported (more details version control).

22 November 2023 Group service mode

API V8 introduces group service mode ITerminalsGroup.ServiceMode. Service mode ServiceMode could be fast food or a restaurant.

07 November 2023 Navigation to order initiated by the plugin (continued)

In API V8, they took the second step towards the ability to show dialog boxes and navigate to the order at the initiative of the plugin from different screens.

18 October 2023 Returning an order (cancellation)

Now it is possible to return orders not only from UI Syrve POS, but also from the V8Preview7 API. To do this you need to call the method StornoOrder.

12 October 2023 Ability to change the hasFixedIikoCardDiscounts parameter

Starting from API V8, we renamed the parameter hasIikoCardDiscounts methods CreateOrder, CreateDeliveryOrder in hasFixedIikoCardDiscounts, and also added the ability to change it.

06 October 2023 Tracking which delivery the current delivery was formed from or which it moved to when transferred to a new point.

Starting from V8Preview7, new properties have been added to the delivery order IDeliveryOrder which are filled in when transferring a delivery from point to point: the identifier of the new delivery created to transfer the current one, and the identifier of the group of the new delivery. The identifier of the old delivery from which the current delivery was formed, and the identifier of the group of the old delivery.

21 September 2023 Release of V8Preview7

Interim release released V8Preview7. This SDK is supported from version 8.6.5 to version 8.9.1. Learn more about API versions here.

28 August 2023 More information in orders of closed cash register shifts

The V8Preview7 API has added information about whether the current order was deleted or reversed, information about which order the current order was reversed from, as well as a list of orders that are included in the same group as the current order.

28 August 2023 More details about pay fail

The V8Preview7 API has made it even more convenient to analyze payment errors.

28 August 2023 User authentication without PIN code

In the V8Preview7 API, you can now confirm actions for users without a PIN. But this will require a special license.

23 August 2023 Creating kitchen orders from the API

A method has been added to the V8Preview7 API CreateKitchenOrder, that allows you to create a kitchen order via the API.

22 August 2023 Printing to a custom printer

A new method has been added to the V8Preview7 API GetPrintingDeviceInfos, which returns a list of objects with an interface PrintingDeviceInfo.

09 August 2023 Ability to work with arbitrary synchronized data

Starting with API V8PreviewV7, it became possible to work with arbitrary data. This data is live and synchronized between terminals for plugins with a specific moduleId.

27 July 2023 Sign of belonging to the current department for IUser

Since API V8PreviewV7:

  1. Method to get all users IOperationService.GetUsers by default returns only employees of the current enterprise. To get all Syrve HQ users you need to pass the parameter fromAllDepartments = true.
  2. Added property IUser.AssignedToCurrentDepartment — property “whether users belong to the current enterprise”.
17 July 2023 Refund of payments made

Starting with API V8PreviewV7, it became possible to return completed payments and prepayments using the IOperationService.UnprocessPayment. This may be required for scenarios where payment has been initiated but the fiscal receipt has not been printed. Or when payment was made using the method IOperationService.ProcessPrepay earlier, but now it needs to be returned.

07 July 2023 Loading organization details from an external service

Starting with V8Preview5, you can make it easier to fill out fields when editing organization data. The user will only need to enter the TIN, and then the plugin will perform a search in the external system and Syrve POS will fill in the remaining company details.

04 July 2023 Version release V8Preview6 and minor changes to the release schedule

Interim release released V8Preview6.

22 June 2023 Changing the order of the ICredentials parameter in IOperationService methods

In API V8Preview7 for unification with OperationServiceExtensions, where parameter type ICredentials is the last of the parameters without a default value, and interface methods IOperationService this parameter is now passed last.

02 June 2023 Removed before printing modifiers

In API V8Preview6, a new list was described in the RemovedItems in the news.

02 June 2023 Follow-up orders for kitchen orders

In Api V8Preview6 for kitchen orders, the ability to create follow-up orders for kitchen orders has been added.

31 May 2023 New order property ExternalNumber

Starting with API V8Preview4, a new property has been added to the order IOrder.ExternalNumber, which stores the order number in the external system. You can change the value of this property using the new method IEditSession.ChangeOrderExternalNumber.

30 May 2023 Adding new GetCashRegisterStatus features.

The V8Preview6 API has added the ability to retrieve additional property using IOperationService.GetCashRegisterStatus.

22 May 2023 IsPublic for ExternalData in kitchen order

In Api V8Preview6 for kitchen orders, the ability to set data publicity for ExternalData.

19 May 2023 Default Modifier information

In the kitchen order version of API V8Preview6, it became possible to find out details about modifiers that should be hidden, and about remote modifiers that would be hidden if they were part of the dish.

18 May 2023 Dishes removed before printing

In API V8Preview6, a list RemovedItems was added to the order information. This list contains a list of dishes that were removed from the order without printing. The API interface was set for these dishes IRemovedOrderItem.

18 May 2023 ExternalNumber in kitchen order

In API V8Preview6 in IKitchenOrder the property was set ExternalNumber, which represents the order number in the external system.

18 May 2023 Different discounts for different dishes

In API V8Preview6 for the method ChangeSelectiveDiscount was added overload. This overload allows you to pass a list of pairs consisting of Id elements of the order and the corresponding discount amounts that need to be assigned to them.

15 May 2023 API V8Preview6 cash register operating

Methods for working directly with cash register have been added to the V8Preview6 API

03 May 2023 V8Preview5 released

The next version has been released Syrve Office 8.4, and with it an interim release V8Preview5. This version will be supported in 8.4 and 8.5.

03 May 2023 Ability to edit stop list

In Api V8 it became possible to add a dish in only one size or without specifying a size to the stop list AddProductToStopList.

28 April 2023 PublicExternalData for IUser

Added property to Api V8Preview6 IUser.PublicExternalData. This data is not set from the RMS UI. It is assumed that they are assigned to the business tasks of a specific client. This data will be written directly to the RMS object user via the server API or through special SyrveApp plugins.

28 April 2023 Current cash amount in ICafeSession

In Api V8, a method for obtaining the amount of cash at the cash desk has been added for ICafeSession current terminal method GetHostTerminalCafeSessionCashSum.

18 April 2023 ResponsibleManager in CafeSession

In API V8 in ICafeSession property was exposed ResponsibleManager, which shows which user opened the selected restaurant session.

18 April 2023 OriginName in kitchen order

In Api V8 in IKitchenOrder property was exposed OriginName, which is the name of the external order source.

18 April 2023 Obtaining a list of local terminal branches

A method was added to Api V8 GetHostTerminalRestaurantSections that returns a list of restaurant branches to which this terminal belongs.

18 April 2023 ExternalData in kitchen order

In Api V8, the ability to record ExternalData for kitchen orders has been added. This will allow you to store and transmit the necessary additional information related to the order

07 April 2023 CashChequePrinting on reversal

Notification about printing a receipt upon payment CashChequePrinting, allowing you to expand the markup of the receipt in the header and footer, starting from version SyrvePOS 8.5.1 it will also be generated when canceling (returning) an order.

31 March 2023 Added properties FN, FAotD

In API V8 CashRegisterResult properties FnSerialNumber and DocumentSign, containing the FN number and fiscal attribute of the document (FAotD) were added to the class.

22 March 2023 Products and orders returns from closed cash register shifts

Now it is possible to return products or orders from closed cash register shifts not only from UI SyrvePOS, but also from the V8 API.

21 March 2023 Custom properties (ProductTags) have been set for the product (IProduct)

In API V8, custom properties were exposed for products IProduct.ProductTags, and also it became possible to get all user properties and their groups using GetProductTags and GetProductTagGroups calls accordingly.

10 March 2023 An optional hasSyrveLoyaltyDiscounts field has been added to the CreateOrder method, allowing you to indicate that the order has pre-calculated SyrveLoyalty discounts

In API V8 in the method CreateOrder added an optional field hasSyrveLoyaltyDiscounts, which indicates that the order has pre-calculated SyrveLoyalty discounts. The default value is false.

10 March 2023 Changing cooking locations

A method has been added to the V8Preview4 API ChangeOrderItemsCookingPlace, with which you can change the cooking location of unprinted dishes.

10 March 2023 Address of the neighboring terminal

In API V8Preview2 it became possible to find out the address of a neighboring terminal.

09 March 2023 Receiving closed orders

The V8Preview4 API has expanded the ability to obtain information about closed orders.

09 March 2023 Editing an order before printing a service receipt

API V8Preview4 now allows you to edit an order immediately before printing a service receipt.

07 March 2023 An ActivityType field has been added to the CreateReserve and CreateBanquet methods, allowing you to add a description of the event type in text form

In API V8 in methods CreateReserve and CreateBanquet added the ActivityType field, which allows you to specify a description of the type of upcoming event in free form, for example, “Wedding”, “Birthday”, etc.

06 March 2023 Added the ability to get a fast dial code (FastCode) for a product group (IProductGroup)

Added property to API V8 FastCode for IProductGroup, which allows you to sort by the existing field “Speed ​​dial code in SyrvePOS” for product groups by analogy with products.

03 March 2023 Improvements for fractional quantities of goods

Added the ability to obtain settings related to weighted goods.

01 March 2023 Added the ability to combine orders into a follow-up order via API

Method added to API V8 MarkOrderAsAdditional , which allows you to assign order current follow-up order to order parent. Property GroupOrderId order current is set equal to the property Id order parent, or equal to null if parent == null.

22 February 2023 The "No Revenue" payment type now supports silent payment

In SyrvePOS version 8.4.4 and higher, it became possible to close an order containing payment type “Without revenue” remotely using the method PayOrder.

22 February 2023 Pay for your order at the current cash register

Previously, orders from the API could only be paid at the main terminal. In this case, the main terminal had to be a cash register (with a connected cash registrar). In one of the previous versions we made an attempt to get rid of the term “Main Cash Desk” by decoupling the main terminal from the point of sale and, as a result, from the fiscal registrar. API V8 took the next step by allowing payment for the order on the local terminal.

22 February 2023 Navigation to order initiated by plugin

In API V8 we took the first step towards the ability to navigate between SyrvePOS screens at the initiative of a plugin. For now, only order navigation via plug-in buttons or from the order editing screen is supported.

20 February 2023 Overriding text on standard dialog buttons

In API V8, it became possible to override the texts “Yes”, “No”, “OK”, “Cancel”, “Close”, “Retry”, “Continue” on standard dialog buttons.

26 January 2023 Added the ability to select a food printer

Starting with API V8, it became possible to get a dish printer.

25 January 2023 V8Preview4 released

The next version iikoRms 8.3 has been released, and with it an interim release V8Preview4. This version will be supported in 8.3 and 8.4.

12 October 2022 Improvements for quick check in the "Restaurant" service type

In API V8, it became possible to distinguish an order created in quick check mode from an order for a table. And also create this or that order or convert them.

12 October 2022 Payments carried out or fiscalized as a discount

In API V8 it became possible to distinguish between discount payments.

12 October 2022 Canceling the payment process

Starting with API V8, it became possible to interrupt payment/cancel an order, make/return an advance payment.

05 October 2022 V8Preview3 released

The next version has been released Syrve 8.2, and with it an interim release V8Preview3. This version will be supported in 8.2 and 8.3.

16 August 2022 Added ride and related methods

Added the concept of a delivery-related ride to V8Preview2 (Ride, as well as several methods for working with a new entity.

25 July 2022 Teams of waiters

API V8Preview2 now has the ability to work with teams of waiters.

25 July 2022 Tax rates and product codes

The V8Preview2 API now has the ability to receive tax rates and product codes.

14 July 2022 V8Preview2 released

The next version has been released Syrve 8.1, and with it an interim release V8Preview2. This version will be supported in 8.1 and 8.2.

20 April 2022 V8Preview1 released

The next version has been released Syrve Office 8.0, and with it an interim release V8Preview1. This version will be supported in 8.0 and 8.1.

30 March 2022 Sign of discount payment and list of payment discounts

A new property has been added to the V8Preview1 API for payment type IPaymentType.IsDiscount, which shows whether the payment type is discounted, i.e. carried out as a discount.

18 March 2022 Notifications about removing external payment from an order have been added to API V8

When trying to delete an external payment, the method is called OnPaymentDeleting on the corresponding IPaymentProcessor.

20 January 2022 LTS version of V7 released

API V7 released. This is an LTS version, plugins developed for V7 will be supported by all versions of Syrve Office that will be released in the next 4 years. The Resto.Front.Api.V7 library is available as NuGet-package, examples of using here.

17 January 2022 Showing relative number of modifiers

In API V7 for a restaurant, it became possible to customize the way the number of group modifiers for a dish is displayed. New property added bool IRestaurant.DisplayRelativeNumberOfModifiers, indicating that in the case of false the quantity of the dish modifier should be displayed as an absolute quantity (as was previously), and in the case of true as the difference between the absolute quantity of the modifier and its default quantity.

14 January 2022 Closing a paid delivered delivery order from the APII

Starting with API V8Preview1, it became possible to close delivery directly from the plugin.

14 January 2022 Added the ability to find out whether the payment type is fiscal or not

In API V8 in the interface IPaymentType new property added IPaymentType.PrintCheque, which shows whether the payment type is fiscal or not.

09 December 2021 Dialog for entering arbitrary strings and reading barcodes and cards

New method added to API V7 IViewManager.ShowExtendedKeyboardDialog, which supports the following input types:

  • arbitrary string.
  • hidden string, for example entering a password.
  • barcode reading.
  • card reading.
07 December 2021 Barcodes

API V7 added mechanisms for working with product barcodes. Now you can find a product by barcode using the method IOperationService.GetProductByBarcode.
You can also get a list of all barcodes that are used by a product. To do this, a list of packages IProduct.BarcodeContainers has been added to the interface IProduct, from which you can find out barcodes using the property IBarcodeContainer.Barcode.

02 December 2021 Localization

Starting from API V7, when the application starts, plugins will automatically receive language settings from the terminal settings. Also, to track language switching on a running terminal, an event has been added INotificationService.CurrentCultureChanged.

03 November 2021 Information about the terminal that saved the latest changes has been added to orders and reserves

New property LastChangedTerminalId added to order (IOrder. LastChangedTerminalId) and to reserve (IReserve.LastChangedTerminalId), it allows you to determine on which terminal the current state of these objects was saved.

02 November 2021 A link to the department to which the table belongs has been added to the ITable interface

To the interface ITable added a property RestaurantSection, that returns a link to the restaurant branch.

01 November 2021 It is now possible to open and close personal shifts without employee PIN codes

Functions for opening and closing personal shifts was added earlier, but they only allowed managing the personal shift of the user on whose behalf the plugin was operating after logging in with a PIN code. Now you can manage personal shifts and other users too.

29 October 2021 Receiving front reports

In API V7 it became possible to get the markup of some front reports GetReportMarkupById.

21 October 2021 Notification of deletion of unprinted dishes and current user

In API V7 we added a notification about deleting unprinted dishes BeforeDeleteNonPrintedItems, and also forwarded the current user responsible for the operation being performed to some events.

20 October 2021 New properties in merchant settings

In API V7, new object properties have appeared IRestaurant.

20 October 2021 Update in methods for obtaining a list of orders, deliveries, reserves and banquets

In API V7, we have made changes to the methods for obtaining a list of orders, deliveries, reservations and banquets. Including methods for obtaining entity data from a known revision.

04 October 2021 Date and time input windows

In API V7, it became possible to show date and time request windows (see article «Date and time prompt windows»).

18 August 2021 Possibility to reset the last order change time

Method added to API V7 ResetOderLastChangeTimeByWaiter(), allowing you to reset the last time the order was edited by the waiter, thereby removing the problem “The waiter did not approach the table for more than N minutes” from the order.

11 August 2021 Added methods to check and query user rights

Methods for checking user rights have been added to API V7 (CheckPermission, CheckPermissions) and methods for requesting rights (ShowCheckPermissionPopup, ShowCheckPermissionsPopup) (see article «Checking and requesting rights»).

09 August 2021 Added the ability to expand the functionality of the cash register screen

Method added to API V7 AddButtonToPaymentScreen, which allows you to add your transaction to the cash register screen (see article «Cashier screen»).

08 July 2021 API V5 support is ending

The release of API V5 took place in the fall of 2017. Two years later, in the fall of 2019, the V6 version was released, since then V5 has been considered obsolete. Progress cannot be stopped, and starting from the fall of 2021, iikoRMS builds with V7 support will be released, which means that V6 will become obsolete, and V5 will no longer be supported (See more version control).

01 July 2021 BeforeOrderBill and repeated bill

In API version V7Preview7, notification about the order pre-check operation BeforeOrderBill will be generated when you check again.

01 July 2021 Window for working with a group of elements and their quantity

In API version V7Preview6, a new window was added to make it easier to work with the quantity of a group of elements IViewManager.ShowQuantityChangerPopup.

30 June 2021 Article number for product group

In API version V7Preview6 for a product group it became possible to find out its article number IProductGroup.Number. Previously, the SKU was only available for the product IProduct.Number.

17 June 2021 Added Comment fields and changed the signature of the AddOrderExternalData method

In API V7Preview7, a field has been added to the order Comment, the method is used to change the value IEditSession.ChangeOrderComment.

01 April 2021 V7Preview6 released

Interim release released V7Preview6.

09 March 2021 Order of dish modifiers

Starting with API version V7Preview6, it will be possible to arrange simple and group dish modifiers in the same order as is done in Syrve Office.

18 January 2021 V7Preview5 released

Interim release released V7Preview5.

23 December 2020 Payment for delivery order from API

Starting with API V7Preview5, it became possible to pay for a delivery order directly from the plugin, without entering the checkout screen.

23 December 2020 Editing an order before checking out

Starting with API V7Preview5, it became possible to edit an order immediately before the bill.

23 December 2020 Cancel the transition to the cash register screen

Starting with API V7Preview5, it became possible to prohibit transition to the checkout screen.

01 December 2020 When returning orders from closed cash register shifts, the order ID became available

In V7Preview5 in the method ReturnPaymentWithoutOrder a new argument Nullable<Guid> orderId has been added.

01 December 2020 More information has been added to plugin payment methods

In V7Preview5 in methods Pay and PaySilently replaced several arguments.

23 November 2020 Added the ability to interact between plugins over the network

Since V7Preview5 using the method CallExternalOperation a plugin can call an operation implemented by another plugin on a different terminal.

11 November 2020 It is now possible to show a button on the order editing screen

Starting with V7Preview5, the plugin will have the ability to add its own button to the bottom panel of the order editing screen (except for deliveries).

09 November 2020 It is now possible to add and delete payments fiscalized at an external cash register

In V7Preview4 it became possible to work with payments fiscalized at an external cash register. They are relevant when prepayment is accepted on the site, and the fiscal receipt is printed on the site’s cloud printer. When making such a payment, all transactions corresponding to the external fiscal payment will be created in Syrve POS, but no fiscal receipt will be printed, because the receipt had already been printed previously at the external cash register.

20 October 2020 The order editing screen allows you to make changes initiated by the plugin

Starting from V7Preview5, the plugin can edit the current order via the API without receiving EntityAlreadyInUseException :-)

08 October 2020 V7Preview4 released

Interim release released V7Preview4.

28 September 2020 Added the ability to get a list of available groups and a list of branches of each group.

In V7Preview4 it became possible to get a list of all groups, as well as a list of branches of any group, not just the current one.

25 August 2020 Expanded detail of popular screens

In V7Preview4 we added more different screens to the event ScreenChanged. Current list of supported screens here.

04 August 2020 Added methods for working with external courier services

From V7 in delivery IDeliveryOrder a new field appears IDeliveryOrder.ExternalCourierServiceData, as well as methods for assigning an external courier service PluginContext.Operations.ChangeDeliveryExternalCourierService and external courier PluginContext.Operations.ChangeDeliveryExternalCourier.

31 July 2020 It is now possible to find out the default table for a group.

In V7Preview4 to group ITerminalsGroup added a new property - default table ITerminalsGroup.DefaultTable, allows you to find out the default table specified in Syrve Office settings for a group.

25 July 2020 It has become possible to compare returned and new orders

In V7Preview4 we renamed the order return event to OrderStorned, adding a new argument Guid newOrderId to it - identifier of the new order, which is a copy of the returned one, and with which further work will take place. A new field was added to the order itself StornedOrderId — identifier of the same returned order from which the current order was copied during the return (reversal) operation. This field is not filled in if the order has not been returned.

24 July 2020 Added processing of cards and barcodes on the order editing screen

Starting with V7Preview4, the plugin can handle card rolling or barcode scanning events on the order editing screen. This can be used, for example, for integration with an external loyalty system.

24 July 2020 Added the ability to set a custom name for order items

From version V7Preview4 it will be possible to specify and receive a custom name for an order item that contains a link to IProduct.

23 July 2020 Added the ability to specify the method of sending a receipt when paying for an order

From version V7Preview4 it will be possible to specify the method of sending a receipt for order payment methods: PayOrder and PayOrderAndPayOutOnUser.

12 July 2020 Information about the current user authorized on Syrve POS

From version V7Preview4 it will be possible to subscribe to a notification about changing the current user to Syrve POS: CurrentUserChanged.

02 July 2020 V7Preview3 released

Interim release released V7Preview3.

01 July 2020 Added counterparty type for the user

In V7Preview4 user IUser property added IUser.Type, allowing you to determine the type of counterparty UserType, specified in the personal card in Syrve POS:

26 June 2020 Added the ability to compare dishes from regular and kitchen orders

In V7Preview4, for dishes and modifiers in a kitchen order, links to the corresponding dishes and modifiers in the original order have been added.

17 June 2020 Added the ability to show messages with standard button combinations

V7Preview3 added methods to show messages with the following button combinations: Close, Ok/Cancel, Retry/Cancel, Yes/No/Cancel and Retry/Ignore/Cancel. Full list here.

14 June 2020 Added the ability to send delivery on the way (without payment)

Starting with V7Preview3, you can prepare your shipment for shipment, print a delivery note, assign a courier, and send it on its way.

28 May 2020 V7Preview2 released

Interim release released V7Preview2

08 May 2020 Added notification about opening and closing personal shifts of users

Since V7Preview2 a notification has been added UserSessionChanged, that makes it convenient to track property changes IUser.IsSessionOpen.

16 March 2020 Added the ability to get a list of allergens

Starting with API v7, it became possible to get a list of allergens product list or order items.

18 February 2020 Ability to create delivery without a client

Starting from V7, the ability to create a delivery without a client has been added.

15 January 2020 V7Preview1 released

Interim release released V7Preview1.

13 March 2019 Added the ability to select a device for printing a receipt “Invoice”

Starting with version Syrve 6.4, API V6 added the ability to explicitly specify where a receipt of the “Invoice‎” type will be printed.