To enable the transmission of kiosk status metrics, navigate to Service Menu > Main Settings:

  • Enable the parameter Use metrics.
  • In the Metrics Service Base URL parameter, specify the address: https://rk-platform-monitoring.rkeeper.com.
  • Set the State Sending Interval (seconds) — default is 60 seconds.
  • Set the Reference Sending Interval (seconds) — default is 3600 seconds.
  • Set the A/B Testing tag for metrics — used for additional labeling of metrics; the value can be any string, and there is no uniqueness check.


To retrieve data from the metrics service, you will need a Token. You can obtain the token by sending a request to the email: yaro@ucsrkeeper.at.

 Also create a separate extended properties for the restaurant:

  • System NameGA_CUSTOM_ID
  • Types List — Restaurant.

In the Service > Stations and Devices directory for the restaurant, in the created extended property, specify ChampsID — the restaurant code in the global KFC system (data can be obtained from the Franchisee).

Request:

curl --location --request POST 'https://rk-platform-monitoring.rkeeper.com/api/v1/metrics/read' \
--header 'Authorization: Bearer <Token> \ The Token can be obtained by requesting at yaro@ucsrkeeper.at.
--header 'Content-Type: application/json' \
--data-raw '{
    "dateFrom": "2025-05-06T00:00:00Z",
    "dateTo": "2025-05-07T23:00:00Z",
    "cntFrom": 12000,
    "cntTo": 13000,
    "total": 100,
    "cashNetName": "KIOSK_1_STM",
    "champsID": "387K04",
    "objectCode": "527280004"
}'

  • dateFrom and dateTo — the time range for the metrics (from/to).
  • cntFrom and cntTo — the message counter range (field cnt).
  • total — the number of metrics to return in the response.
  • cashNetName — the kiosk name.
  • champsID — the kiosk's champsID.
  • objectCode — the kiosk object code.


Response example
[
     {
        "timestamp": "2025-07-08T14:57:51Z",
        "payload": {
            "typeData": "Time based event",
            "data": {
                "state": "Waiting window",
                "champsID": "234234234234211",
                "kioskName": {
                    "cashGuid": "{1E5C9B01-A065-48B0-882A-DDB46C22BC9C}",
                    "cashNetName": "RK7CASH004"
                },
                "kioskAppVersion": {
                    "back": " v0.0.383.21-rev.7b44ad92-j.42173",
                    "front": "0.0.330.21",
                    "theme": "KFCCee"
                },
                "objectCode": "199990001",
                "tagAB": "AAA"
            },
            "cnt": 21259
        }
    }
]
  • timestamp —the date and time the metric was saved on server
  • payload - typeData metric type

  • payload - data — main information about the metric (depends on the type of metric)

  • payload - cnt metric counter. Starts at 1 for each kiosk and increments by 1 as metrics are sent from the kiosk.

Metric types (typeData):

  • References — we send a list of active cash registers and the restaurant schedule associated with the kiosk
  • Time based event — we send the name of the current kiosk screen at the “State sending interval (in seconds)”
  • Event based event — we send information about order payment or about sending the order for payment at the cashier.

Common fields for all metric types:

  • champsID restaurant code in the global KFC system. Any text can be entered here. Uniqueness is not checked
  • kioskName - cashGuid — the GUID of the cash register the kiosk is connected to. In the Rkeeper Manager this field is GUID
  • kioskName - cashNetName — the network name of the cash register the kiosk is connected to. In the Rkeeper Manager this field is Network ID

  • kioskAppVersion - back full information about version of kiosk's backend. 

    Value from example: v0.0.383.21-rev.7b44ad92-j.42173:

    • v0.0.383.21 — main information about kiosk's backend part;
    • rev.7b44ad92-j.42173 — technical information.
  • kioskAppVersion - front — front part version name
  • kioskAppVersion - theme — used theme
  • objectCode — full object code, kiosk is connected to

  • tagAB - A/B Testing tag. Used for additional labeling. Set during the initial kiosk configuration in the parameter A/B Testing tag for metrics. The value can be any string, and uniqueness is not checked.

Fields depending on the metric type (data):

Metric type: References 

The kiosk sends a list of active cash registers and the restaurant schedule associated with the kiosk.

Example
{
        "timestamp": "2025-07-08T07:13:43Z",
        "payload": {
            "typeData": "References",
            "data": {
                "restaurantSchedule": [
                    {
                        "daysOfWeek": "[dwSunday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwMonday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwTuesday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwWednesday]",
                        "startTime": 39600000,
                        "endTime": 75600000
                    },
                    {
                        "daysOfWeek": "[dwThursday]",
                        "startTime": 32400000,
                        "endTime": 54000000
                    },
                    {
                        "daysOfWeek": "[dwFriday]",
                        "startTime": 36000000,
                        "endTime": 72000000
                    },
                    {
                        "daysOfWeek": "[dwSaturday]",
                        "startTime": 60000,
                        "endTime": 86340000
                    }
                ],
                "cashes": [
                    {
                        "cashGuid": "{7F2B98A5-B365-41EB-A5EC-265E52F05AF1}",
                        "cashNetName": "3252_KIOSK_PRN_1"
                    },
                    {
                        "cashGuid": "{4EAF23A6-2623-401B-A705-88644A2D4976}",
                        "cashNetName": "3252_TER1"
                    },
                    {
                        "cashGuid": "{3F6CE085-1048-47BE-844C-9A3C45EE3851}",
                        "cashNetName": "3252_TER2"
                    },
                    {
                        "cashGuid": "{50EA4090-15D0-4E43-B22E-2324C5E8193A}",
                        "cashNetName": "3252_TER3"
                    },
                    {
                        "cashGuid": "{CEB84F65-0A96-48B4-9EA3-B31A25FFC4DD}",
                        "cashNetName": "3252_PRN"
                    },
                    {
                        "cashGuid": "{A0E029D9-D6D3-414E-9B30-19329677F940}",
                        "cashNetName": "3252_KIOSK_PRN_2"
                    },
                    {
                        "cashGuid": "{E089FA8A-8610-473E-B1AB-0ECC624F5A36}",
                        "cashNetName": "CASH_ONE"
                    }
                ],
                "champsID": "234234234234211",
                "kioskName": {
                    "cashGuid": "{A0E029D9-D6D3-414E-9B30-19329677F940}",
                    "cashNetName": "3252_KIOSK_PRN_2"
                },
                "kioskAppVersion": {
                    "back": " v0.0.383.21",
                    "front": "0.0.330.21",
                    "theme": "KFCCee"
                },
                "objectCode": "199990207",
                "tagAB": "AAA"
            },
            "cnt": 20461
        }
    }

  • restaurantSchedule —restaurant working schedule::

    • daysOfWeek day of the week
    • startTime start time (time in milliseconds from the beginning of the day (00:00))
    • endTime — end time (time in milliseconds from the beginning of the day (00:00))
  • cashes list of active cash registers of the restaurant the kiosk is connected to:

    • cashGuid cash register GUID (in the Rkeeper Manager the GUID field);
    • cashNetName — network name of the cash register (in the Rkeeper Manager the Network ID field);

Metric type: Time based event

The kiosk sends the name of the current screen at the “State sending interval (in seconds)”.

Example
{
	"typeData": "Time based event",
	"data": {
		"state": "Manager functions",
		"champsID": "234234234234211",
		"kioskName": {
			"cashGuid": "{1E5C9B01-A065-48B0-882A-DDB46C22BC9C}",
			"cashNetName": "RK7CASH004"
		},
		"kioskAppVersion": {
			"back": " v0.0.383.21",
			"front": "0.0.330.21",
			"theme": "KFCCee"
		},
		"objectCode": "199990001",
		"tagAB": "AAA"
	},
	"cnt": 20433
}

Options for the state field (describes the current screen on the kiosk):

  • Waiting window — initial welcome screen: the kiosk is operational but not in use at the moment the metric is sent
  • Order — the order process. Starts when the user enters the menu on the kiosk
  • Manager functions — staff is performing tasks in the kiosk’s manager interface
  • Locked — the kiosk is locked
  • Error — an error is displayed on the kiosk screen (for example, if something goes wrong during payment). The message is shown, but the kiosk remains operational
  • Unknown — another screen

Metric type: Event based event

The kiosk sends information about order payment or about sending the order for payment at the cashier.

Пример
{
	"typeData": "Event based event",
	"data": {
		"orderResult": "successfully",
		"orderGuid": "{DCD36825-1EC0-44FC-8011-F568D18203B8}",
		"error": {
			"code": "0",
			"msg": "unknown"
		},
		"champsID": "234234234234211",
		"kioskName": {
			"cashGuid": "{1E5C9B01-A065-48B0-882A-DDB46C22BC9C}",
			"cashNetName": "RK7CASH004"
		},
		"kioskAppVersion": {
			"back": " v0.0.383.21",
			"front": "0.0.309.21",
			"theme": "KFCMena"
		},
		"objectCode": "199990001",
		"tagAB": "AAA"
	},
	"cnt": 20418
}

  • orderResult — result of an order.

    Possible values:

    • Successfully — the order was successfully paid
    • Failed — an error occurred during payment
    • Error_sending — an error occurred while sending the order for payment at the cashier
    • Sended — the order was successfully sent to the cashier for payment
  • orderGuid — the order GUID. Filled only if the payment is made at the kiosk
  • error error information (during payment or sending the order for payment at the cashier):

    • code — error code. If there is no error, the value is 0
    • msg — error message. If there is no error, the value is unknown.

Erorr examples

"error": {
                    "code": "RK7_3813",
                    "msg": "Интерфейс СБП: Ошибка \"Операция отменена\"(18)."
                }
"error": {
                    "code": "RK7_236",
                    "msg": "Ошибка отправки данных на SBP_FARCARDS2."
                }
"error": {
                    "code": "RK7_2043",
                    "msg": "Компьютер принтера \"3252_KIOSK_PRN_2 Plaintex 1(2123)\" (3252_KIOSK_PRN_2:3252_KIOSK_PRN_2) не подключен."
                }
                "error": {
                    "code": "RK7_2703",
                    "msg": "Некорректный код карты ПДС \"{B4034D6A-C0D0-4DFB-B768-689D7D20DD15}\"."
                }
                "error": {
                    "code": "RK7_3813",
                    "msg": "Интерфейс СБП: Ошибка \"Неверные параметры.\"(18)."
                }

Errors on the kiosk can be either external (from r_keeper 7) or internal (from kiosk).

Internal erorr codes: 

  "KIOSK_107": "Payment error.",
  "KIOSK_108": "Check device state error.",
  "KIOSK_109": "Udb files not sent.",
  "KIOSK_110": "Couldn't load RefData.",
  "KIOSK_111": "Weblate error.",
  "KIOSK_112": "Error to connect to midserver.",
  "KIOSK_113": "RK7_REF_LOAD_ACTIVITY_ERR",
  "KIOSK_114": "SameName error",
  "KIOSK_116": "error_shift_exceeded_specified_value",
  "KIOSK_117": "error_paper_low",
  "KIOSK_118": "error_paper_out",
  "KIOSK_119": "error_paper_other",
  "KIOSK_120": "error_eklz_full",
  "KIOSK_121": "error_fisc_over_24",
  "KIOSK_122": "error_fisc_available",
  "KIOSK_123": "error_ofd_unsended",
  "KIOSK_124": "error_device_uavailable",
  "KIOSK_125": "error_restaurant_is_closed",
  "KIOSK_126": "error_shift_automatically_closed",
  "KIOSK_127": "error_no_connection_to_cash_server",
  "KIOSK_128": "error_problem_with_getting_device_statuses",
  "KIOSK_129": "Error to void not closed orders.",
  "KIOSK_130": "There is no recipients.",
  "KIOSK_131": "Order is not Approved by Waiter.",
  "KIOSK_132": "Couldn't send XML order file.",
  "KIOSK_133": "Restaurant id is not set in browser.cfg",
  "KIOSK_134": "There is no tables in current hall plan",
  "KIOSK_135": "There is no such hallPlanId at current restaurant",
  "KIOSK_136": "Restart after lost connection to cash server",
  "KIOSK_137": "Cannot update orderMenu.",
  "KIOSK_137_2": "Cannot update orderMenu. Duplicated ID=",
  "KIOSK_138": "Cannot delete orderMenu. ",
  "KIOSK_139": "error_update_app_task_failed",
  "KIOSK_140": "Cannot find dish with such code",
  "KIOSK_141": "Dish with such code is blocked at Stop List",
  "KIOSK_142": "There is empty currencies for this bonus. Incorrect setting for \"Субсчёт для FarCards\" at rk7 management setting",
  "KIOSK_143": "Used wrong type kiosk mode for Marked Dishes, change kiosk setting mode type to write mode, please",
  "KIOSK_144": "Prepay sum cannot be equal 0",
  "KIOSK_145": "There is no Prepay line from rk7",
  "KIOSK_146": "To use this method please enable filter settings",
  "KIOSK_147": "Classification parent category for type id cannot be 0. Set correct classification parent category id at settings.",
  "KIOSK_148": "Classification parent category for ingredient id cannot be 0. Set correct classification parent category id at settings.",
  "KIOSK_149": "There is no information about fiscal check by this visitId and guid.",
  "KIOSK_150": "error_engineering_works",
  "KIOSK_151": "No order was found in the local storage while changing the type of order",
  "KIOSK_152": "Url of loyalty Burger King is not set at kiosk settings.",
  "KIOSK_153": "BK Loyalty Error : There is problem of interaction with Burger King Loyalty API",
  "KIOSK_154": "BK Loyalty Error : There is no token from Burger King Loyalty API",
  "KIOSK_155": "QRCode Generator : Something went wrong when generating QRCode image",
  "KIOSK_156": "BK Loyalty Error : Sorry user is not authorized at BK Loyalty system",
  "KIOSK_157": "BK Loyalty Error : Sorry incorrect confirm code for authentication by phone number at BK Loyalty system",
  "KIOSK_158": "BK Loyalty Error : Invalid duration refresh token calculation, duration value must be more than zero",
  "KIOSK_159": "BK Loyalty Error : Sorry we cannot pre calc with zero quantity dishes order at BK Loyalty system",
  "KIOSK_160": "Undefined selector for changeToCombo fuctionality. Set correct lunchSelIdent in settings",
  "KIOSK_161": "BK Loyalty Error : Sorry kiosk has internal error during transforming modifier data to Burger King loyalty format",
  "KIOSK_162": "BK Loyalty Error : It seems that Burger King loyalty is not enable. Please check kiosk settings.",
  "KIOSK_163": "There is no saved clientOrder at current local order",
  "KIOSK_164": "BK Loyalty Error : Sorry service is not available for now.",
  "KIOSK_165": "BK Loyalty Error : Sorry service is not available for now. Crowns may not be awarded.",
  "KIOSK_166": "The operation is prohibited since the check %s is a fiscal advance payment check. To delete a receipt, delete the fiscal prepayment at the checkout.",
  "KIOSK_167": "Get Opened Order : Sorry there is no opened order at rk7. Please contact with administrator",
  "KIOSK_168": "Get Order : Sorry order with visit = &quot%s&quot; is not found at rk7. Please contact with administrator",
  "KIOSK_169": "PayOrder : Sorry there is some error when calculate payment for order.",
  "KIOSK_170": "rkeeper CRM : Get loyalty by service code : Sorry there is no loyalty. Please make check in or sign in at r_keeper Crm Loyalty before",
  "KIOSK_171": "rkeeper CRM : You cannot apply same loyalty to one order more than one time",
  "KIOSK_172": "rkeeper CRM : Sorry there is not passed applied loyalties",
  "KIOSK_173": "rkeeper CRM : Sorry there is no such product group",
  "KIOSK_174": "rkeeper CRM : Sorry there is no such product at this group",
  "KIOSK_175": "rkeeper CRM : Sorry there is a lot of products at this group that it can be",
  "KIOSK_176": "rkeeper CRM : Sorry max quantity same type product at this group is exceeded",
  "KIOSK_177": "Error while getting information about the organization",
  "KIOSK_178": "Invalid data format",
  "KIOSK_179": "Cannot get loyalty info for input code: %s",
  "KIOSK_180": "rkeeper CRM : Get loyalty by service code : Sorry there is no loyalty. Wrong input coupon service code.",
  "KIOSK_181": "multi payStep : terminalAuthStart2 : There is no Prepay info line from RK7.",
  "KIOSK_182": "Cannot find dish with such ident",
  "KIOSK_183": "Dish with such ident is blocked at Stop List",
  "KIOSK_184": "rkeeper CRM : Something went wrong during update amount of bonus write-off",
  "KIOSK_185": "Importing settings was not completed successfully",
  "KIOSK_186": "Loyalty Plant : You cannot apply more than one code",
  "KIOSK_187": "Loyalty Plant : Unknown type of loyalty",
  "KIOSK_188": "Metrics : There is problem of interaction with Metrics API",
  "KIOSK_189": "Metrics : Error while getting counter for metrics",
  "KIOSK_190": "Premium Bonus : Sorry there is no object of Premium Bonus with such service code",
  "KIOSK_191": "Premium Bonus : Sorry you cannot apply Premium Bonus more than one time for one order",
  "KIOSK_192": "Premium Bonus : Url of loyalty Premium Bonus is not set at kiosk settings.",
  "KIOSK_193": "Premium Bonus : AuthToken for Premium Bonus is not set at kiosk settings.",
  "KIOSK_194": "Premium Bonus : Sale Point Identifier for Premium Bonus is not set at kiosk settings.",
  "KIOSK_195": "Premium Bonus : Error response from Premium Bonus service - %s",
  "KIOSK_196": "Premium Bonus : Error user with phone number %s is not verified by sms code",
  "KIOSK_197": "Premium Bonus : Error user with phone number %s is not registered at Premium Bonus loyalty service",
  "KIOSK_198": "Premium Bonus : Error user with phone number %s is blocked at Premium Bonus loyalty service",
  "KIOSK_199": "Premium Bonus : Response error when try to authenticate at Premium Bonus loyalty service",
  "KIOSK_200": "Cannot find dish with such guid",
  "KIOSK_201": "Dish with such ident is blocked at Stop List",
  "KIOSK_202": "Premium Bonus: empty field setting for charge mark dish code",
  "KIOSK_203": "Premium Bonus: there is no dish with such guid for charge mark dish or it is blocked at Stop List",
  "KIOSK_500": "error_unexpected_error",
  "KIOSK_501": "Kiosk internal error while working with BK Loaylty API",
  "SETTINGS_404": "No setting for XmlInterface was found.",
  "RK7_2202": "The order &quot;{guid}&quot; is not found."

External error codes returned by rk7 (marked with the RK7_ prefix followed by the specific error code) are listed in the article Erorr codes.

  • No labels