Skip to content
API фіскального сервера
  • Pages
    • Основні положення
    • Порядок взаємодії
    • Зауваження щодо реалізації
    • Сценарії роботи
    • Офлайн сесія
    • Команди
    • Запит стану сервера
    • Запит XSD схем
    • Запит доступних господарських одиниць
    • Запит переліку операторів (касирів)
    • Запит стану ПРРО
    • Запит чека
    • Запит Z-звіту
    • Запит переліку змін за період
    • Запит переліку документів зміни
    • Запит підсумків останньої зміни
    • Запит відомостей про документ за локальним номером
    • Запит надсилання документа
    • Запит надсилання пакета офлайн документів
    • Закріплення ПРРО за пристроєм

Зауваження щодо реалізації

Кодування текстових полів документів XML: Windows-1251.
Тип HTTP-запиту – POST.
Заголовок “Content-Type”: “application/octet-stream” для повідомлень, засвідчених КЕП. Або “Content-Type”: “application/json” чи “Content-Type”: “application/json; charset=UTF-8” для команд, не засвідчених КЕП.
Використання компресії Gnu Zip (GZip) або Zip (deflate). Вхідні та вихідні документи оброблюються алгоритмом GZip або Zip для зменшення розміру повідомлення.
У разі використання компресії, заголовок “Content-Encoding” вхідного повідомлення повинен мати значення “gzip” або “deflate”.
Повідомлення містить XML документ, засвідчений КЕП відправника.
Вхідне повідомлення може містити серйозні помилки, що не дозволяють його подальшу обробку. Наприклад, повідомлення не являє собою засвідчений блок або містить більше ніж одну КЕП. У випадку грубого порушення вимог до формату вхідного повідомлення, у відповідь надсилається код статусу обробки HTTP 4xx “Client Error”. У тілі відповіді надається інформація щодо причини помилки. Наприклад, “Очікується значення 'Content-Type' рівне 'application/octet-stream' або 'application/json; charset=UTF-8'”, “Повідомлення повинно бути засвідчене кваліфікованим електронним підписом” і таке інше.
Сервер оброблює Url:
“<адреса>/doc“ – одержання документів (чеків, Z-звітів тощо)
“<адреса>/pck“ – одержання пакетів документів (офлайн документи тощо)
“<адреса>/cmd“ – одержання команд
Команди надсилаються у форматі JSON. Див. розділ «Команди».

Класи документів

/// Клас документа
public enum DocumentClass {
Check = 0, /// Чек
ZRep = 1 /// Z-звіт
}

Типи документів

/// Чек. Тип документa
public enum CheckDocumentType {
SaleGoods = 0, /// Чек реалізації товарів/послуг
TransferFunds = 1, /// Чек переказу коштів
CurrencyExchange = 2, /// Чек операції обміну валюти
CashWithdrawal = 3, /// Чек видачі готівки
OpenShift = 100, /// Відкриття зміни
CloseShift = 101, /// Закриття зміни
OfflineBegin = 102, /// Початок офлайн сесії
OfflineEnd = 103 /// Завершення офлайн сесії
}

Чек. Розширені типи документів

/// Чек. Розширений тип документа
public enum CheckDocumentSubType {
CheckGoods = 0, /// Касовий чек (реалізація)
CheckReturn = 1, /// Видатковий чек (повернення)
ServiceDeposit = 2, /// Чек операції «службове внесення»/«отримання авансу»
AdditionalDeposit = 3, /// Чек операції «отримання підкріплення»
ServiceIssue = 4, /// Чек операції «службова видача»/«інкасація»
CheckStorno = 5 /// Чек сторнування попереднього чека
}

Типи даних запитів документів

/// Тип даних запиту документа
public enum DocumentRequestType {
Availability = 0, /// Перевірка наявності документа
OriginalXml = 1, /// Оригінальний XML
SignedByServerXml = 2, /// XML засвідчений КЕП Фіскального Сервера
Visualization = 3, /// Документ в текстовому форматі для відображення UTF8
SignedBySenderXml = 4, /// XML засвідчений КЕП відправника
SignedBySenderAndServerXml = 5 /// XML зас. КЕП відправника і КЕП Фіск. Сервера
}

Коди результату обробки запитів документів

/// Код результату обробки запиту документа
public enum DocumentRequestResultCode {
/// OK
Ok = 0,
/// Документ з фіскальним номером, що відповідає режиму онлайн, не зареєстрований на ПРРО
OnlineDocumentAbsent = 1,
/// Фіскальний номер зарезервований для використання в режимі офлайн на ПРРО, але наразі ще не переданий з ПРРО до контролюючого органу
OfflineNumberReserved = 2,
/// Фіскальний номер не зарезервований для використання в режимі офлайн на ПРРО
OfflineNumberNotReserved = 3,
/// ПРРО не зареєстрований
TransactionsRegistrarNotRegistered = 4,
/// Документ не зареєстрований на ПРРО
DocumentAbsent = 5
}

Коди помилок

/// Код помилки
public enum ErrorCode {
/// OK
Ok = 0,

/// ПРРО не зареєстрований
TransactionsRegistrarAbsent = 1,

/// Відсутній доступ до ПРРО для користувача
OperatorAccessToTransactionsRegistrarNotGranted = 2,
/// В документі зазначено реєстраційний код платника, що не дорівнює реєстраційному коду господарської одиниці
InvalidTin = 3,
/// Зміну для ПРРО наразі відкрито
ShiftAlreadyOpened = 4,
/// Зміну для ПРРО наразі не відкрито
ShiftNotOpened = 5,
/// Останній документ, зареєстрований перед закриттям зміни, повинен бути Z-звітом
LastDocumentMustBeZRep = 6,
/// Некоректний локальний номер чека
CheckLocalNumberInvalid = 7,
/// Z-звіт наразі зареєстрований для поточної зміни
ZRepAlreadyRegistered = 8,
/// Помилка валідації документа
DocumentValidationError = 9,
 
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.