Експериментальний проект РРО

Меню Пілот E-Receipt надає користувачам електронного кабiнету можливість протестувати систему, що розробляється відповідно до Постанови Кабінету міністрів України від 13.06.2018 № 472 «Про реалізацію експериментального проекту щодо реєстрації та експлуатації новітніх моделей програмних та/або програмно-технічних комплексів, призначених для реєстрації розрахункових операцій»

Цей режим надає доступ до переліку об’єктів оподаткування або об’єктів, пов’язаних з оподаткуванням або через якi провадиться дiяльнiсть:

Альтернативний текст

Перелік об’єктів

Примітка

Якщо об’єкт відсутній в переліку, необхідно в розділі Заяви, запити для отримання інформації подати заяву J/F1312002 Повiдомлення про об’єкти оподаткування або об’єкти, пов’язанi з оподаткуванням або через якi провадиться дiяльнiсть, форма № 20-ОПП

Обравши відповідний об’єкт, користувач електронного кабiнету отримує можливість зареєструвати каси і касирів, уповноважених здійснювати операції з касами на відповідному об’єкті в наступних вкладках:

  1. Каси
  2. Касири

Каси

У цій вкладці користувачу електронного кабiнету надаєтья можливість створити нову касу за допомогою кнопки Додати, активувати касу за допомогою кнопки Активувати, або перевести касу в неактивний режим за допомогою кнопки Деактивувати

Альтернативний текст

Реєсрація каси

Попередження

Операції з активації та деактивації кас вимагають накладання ЕЦП особи з правом підпису.

Примітка

Перелік новітніх моделей комплексів буде оновлюватись по факту затвердження Мінфіном у встановленому порядку відповідно до вимог Постанови № 472

Касири

У цій вкладці користувачу електронного кабiнету надаєтья можливість додати касира за допомогою кнопки Додати, активувати касира за допомогою кнопки Активувати, або перевести касира в неактивний режим за допомогою кнопки Деактивувати

Альтернативний текст

Реєсрація касира

Примітка

При додаванні нового касира необхідно завантажити сертифікат ключа електронного цифрового підпису такого касира. Файл сертифікату ключа як правило має розширення *.crt і може бути отриманий на сайти відповідного акредитованого центру сертифікації ключів.

Опис API Електронного кабінету для фіскалізації чеків та передачі Z-звітів

  1. API Електронного кабінету для фіскалізації чеків та передачі Z-звітів доступне за адресою https://cabinet.tax.gov.ua:8443, та реалізоване на фреймворку gRpc, розробленому компанією Google, Висока продуктивність досягається за рахунок використання протоколу HTTP/2 и Protocol Buffers, детальніше за посиланням: https://grpc.io/
  2. Опис методів API

Передача чеку чи Z-звіту:

Check{
         data( Bytes "windows-1251" ) - чек, xml підписаний внутрішнім підписом з позначкою часу
         fn - фіскальный номер апарата
         number — локальний номер чека
         date - дата/час створення чека (yyyyMMddHHmmss)
         type - тип 1 чек , 2 Z-звіт
         id_cancel - ІД чека повернення
      }

Відповідь API:

Answer
  id - ID (фіскальний номер) чеку
  Status{
         UNKNOWN = 0; не визначений
         OK = 1;
         ERROR_VEREFY = -1; - помилка перевірки підпису
         ERROR_CHECK = -2; - помилка перевірки РРО
         ERROR_SAVE = -3; - помилка запису
         ERROR_UNKNOWN = -4; - загальна помилка
         ERROR_TYPE = -5; - помилка типу посилки
         ERROR_NOT_PREV_ZREPORT = -6; - нема Z-звіта
         ERROR_XML = -7; - невірний формат XML ( структура , фіскальний номер)
         ERROR_XML_DATE = -8; - невірний формат XML дата не відповідає Check.date
         ERROR_XML_CHK = -9; - невірний формат XML чеку
         ERROR_XML_ZREPORT = -10; - невірний формат XML чеку, Z-звіту
         }
  id_sign  - підписаний ID (фіскальний номер) чеку
  1. XML-формат чеку та Z-звіту повинен відповідати документу “НСМЕП Технологія ДПА. Протокол передачі”

Опис інтерфейсів

syntax = "proto3";

option java_multiple_files = true;
package com.programika.rro.ws.chk;

message Chk {
 string fn = 1;
 int64 date_time = 2;
 bytes check_sign = 3;
 int32 number = 4;
 enum Type {
     UNKNOWN = 0;
     CHK = 1;
     ZREPORT = 2;
 }
 Type type = 5;
 string id_cancel = 6;
 }

 message Answer {
 string id = 1;
 enum Status {
     UNKNOWN = 0;
     OK = 1;
     ERROR_VEREFY = -1;
     ERROR_CHECK = -2;
     ERROR_SAVE = -3;
     ERROR_UNKNOWN = -4;
     ERROR_TYPE = -5;
     ERROR_NOT_PREV_ZREPORT = -6;
     ERROR_XML = -7;
     ERROR_XML_DATE = -8;
     ERROR_XML_CHK = -9;
     ERROR_XML_ZREPORT = -10;
 }
 Status status = 2;
 bytes id_sign = 3;
 }

 service ChkIncomeService {
 rpc sendChk (Chk) returns (Answer);
 rpc ping (Chk) returns (Answer);
 }