Інструкція для розробників програмного забезпечення звітування в електронній формі

ІНСТРУКЦІЯ

для розробників програмного забезпечення звітування в електронній формі

з використання системи подання звітності до Держстату в електронному вигляді з використанням WEB-сервісу обміну документами та квитанціями

 

Призначення

Система «WEB-сервіс обміну документами та квитанціями в електронній формі» (далі - Система) призначена для подання звітності та отримання квитанцій (далі - Документи) до системи «Приймальний шлюз системи електронної звітності Держстату (далі - Приймальний шлюз  Держстату) по прямому Internet-з’єднанню за протоколом SOAP (Simple Object Access Protocol). Система транспортує Документи, завірені кваліфікованим електронним підписом (далі - КЕП), в зашифрованому вигляді.

Для криптографічних перетворень використовуються сертифіковані засоби КЕП, що відповідають законодавству України. Такі засоби наразі використовуються для підписання і шифрування електронних документів, що подаються до Державної податкової служби України.

 

Функції системи

  • Транспортування звітності від респондентів до приймального шлюзу Держстату;
  • Транспортування квитанцій від Приймального шлюзу Держстату до респондентів.

 

Схема функціонування системи


 

Архітектура системи

До складу системи входять:

  • WEB-сервіс обміну документами та квитанціями, який працює під управлінням Microsoft Internet Information Services і здійснює обмін з клієнтами.
  • Приймальний шлюз Держстату.
  • Клієнтське програмне забезпечення для передачі звітності за протоколом SOAP.
  • Складова частина АРМ підготовки та обробки звітності, що здійснює взаємодію з WEB-сервісом обміну документами та квитанціями.

 

Протокол обміну

Обмін здійснюється за протоколом SOAP.

Протокол SOAP забезпечує обмін інформацією з сервером незалежно від платформи клієнта.

Адреса сервера: http://directzvit.ukrstat.gov.ua/websrv/gate.asmx

Детальний опис протоколу наведений у прикладі, розміщеному за вищезазначеним посиланням.

 

Вимоги до формату Документів

Всі Документи, що передаються до WEB-сервісу обміну документами та квитанціями, мають бути створеними відповідно до наказу Держкомстату від 12.01.2011 №3 «Про затвердження Порядку подання електронної звітності до органів державної статистики».

 

Порядок обміну

  1. Клієнт SOAP передає Документи до WEB-сервісу обміну документами та квитанціями викликом Send.
  2. Клієнт SOAP перевіряє наявність квитанцій викликом GetMessages або GetMessagesEx.
  3. Клієнт SOAP отримує квитанції викликом Receive або ReceiveAll.
  4. Після успішної обробки, Клієнт SOAP вилучає оброблені квитанції викликом Delete. У виклику Delete передається перелік кодів документів, одержаних викликом GetMessages або GetMessagesEx, і підписаних КЕП респондента.

 

Функції і структури обміну

Функції і структури обміну наведені в Додатку 1 і Додатку 2 до цього документу.


 

Додаток 1

Опис методів, які використовуються при обміні Документами

Функції обміну

  1. Відправити документ на шлюз

    ProcessResult Send( string fileName, string senderEMail, byte[] data );

    fileName – ім'я файлу документа;

    senderEMail – адреса електронної пошти відправника документа на яку буде відправлено відповіді, якщо за певний час користувач їх не вилучив викликом методу Delete;

    data - зміст документа в форматі електронного конверта шлюзу.

  2. Отримати список кодів повідомлень для одержувача

    ProcessResult GetMessages( byte[] signedEDRPOU, out string[] messagesList );

    signedEDRPOU – ЄДРПОУ/ДРФО одержувача;
    messagesList – перелік кодів повідомлень, у вигляді тексту, кожен код з нового рядку.

  3. Отримати список кодів повідомлень для одержувача з визначенням адреси електронної пошти

    ProcessResult GetMessagesEx( byte[] signedEDRPOU, string senderEmail, out string[] messagesList );

    signedEDRPOU – ЄДРПОУ/ДРФО одержувача;

    senderEmail - адреса електронної пошти відправника документа (така сама як у виклику Send);
    messagesList – перелік кодів повідомлень, у вигляді тексту, кожен код з нового рядку.

  4. Отримати повідомлення

    ProcessResult Receive( byte[] signedMsgId, out string fileName, out byte[] messageData );

    signedMsgId – рядок з кодом повідомлення;

    fileName – ім'я файлу повідомлення;

    messageData – зміст повідомлення в форматі електронного конверта шлюзу.

  5. Отримати всі повідомлення

    ProcessResult ReceiveAll( byte[] signedEmail, byte needDelete, out Message[] messages, out byte complete );

    signedEmail – адреса електронної пошти відправника документа (така сама як у виклику Send), підписана КЕП (блок XXX_SIGN);

    needDelete – ознака необхідності вилучення повідомлень (0/1);

    messages – повідомлення;

    complete – ознака відсутності на час виклику повідомлень, що не повернуті користувачу.

  6. Вилучити повідомлення

    ProcessResult Delete( byte[] signedMsgId );

    signedMsgId – перелік кодів повідомлень, у вигляді тексту, кожен код з нового рядку, підписаний КЕП (блок XXX_SIGN).


 

Додаток 2

Коди помилок

 
GATE_OK (0) - Успішно
GATE_SEND_FAILED (1) - Помилка збереження вхідного повідомлення
GATE_EMPTY_FILENAME (2) - Не визначено ім'я файлу
GATE_EMPTY_MESSAGE (3) - Блок документу не визначено
GATE_FILENAME_TOOLONG (4) - Некоректне ім'я файлу
GATE_FILENAME_INVALID (5) - Недопустимі символи в імені файлу
GATE_PARSESIGN_FAILED (6) - Помилка перевірки підпису
GATE_DB_INTERNAL (7) - Помилка роботи з базою повідомлень
GATE_MSGID_INVALID (8) - Некоректний код повідомлення
GATE_MSGID_ABSENT (9) - Відсутнє запитане повідомлення
GATE_EMPTY_EMAIL (10) - Не визначено адресу електронної пошти
GATE_TEMPORARY_UNAVAIL (11) - Сервіс тимчасово недоступний
GATE_INVALID_PARAMS (12) - Некоректні параметри