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 Name — GA_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.
[ { "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.
{ "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)”.
{ "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:
External error codes returned by rk7 (marked with the RK7_ prefix followed by the specific error code) are listed in the article Erorr codes.