PRRO.cloud

Фіскалізація чеків — це один POST-запит

PRRO.cloud — API-сервіс програмного РРО. Ви надсилаєте позиції продажу, а далі вже наша робота: відкрити зміну, підписати чек вашим КЕП, довезти його до ДПС і ввечері закрити день Z-звітом. Вашому коду про касову дисципліну знати не обов'язково.

Тестові чеки безкоштовні. Ні обмежень по кількості чеків, ні абонплати за касу — лише API та кабінет.

POST /v1/receipts
{
  "register": "kasa-1",
  "items": [
    { "name": "Кава", "price": 6500, "qty": 1 }
  ]
}

→ 200 OK
{
  "fiscal_number": "273401352",
  "receipt_url": "https://cabinet.tax.gov.ua/…"
}

Як це працює

  1. Підключіть касу.

    Зареєструйте ПРРО в податковій (форма 1-ПРРО) і завантажте ключ КЕП у кабінеті PRRO.cloud. Сертифікати підтягнуться самі.

  2. Надішліть продаж.

    Один POST з позиціями. Хочете фіскальний номер одразу у відповіді — тримайте з'єднання; поспішаєте — отримаєте миттєве 202, а результат прийде webhook'ом.

  3. Ми робимо решту.

    Зміни, наскрізна нумерація, підпис КЕП (CAdES-T з міткою часу), доставка в ДПС. Не достукались до податкової з першого разу — спробуємо ще.

  4. День закривається сам.

    Ввечері сервіс сам сформує Z-звіт і закриє зміну — за розкладом вашої каси.

Під капотом — черга, що тримає порядок документів на касі, ідемпотентні запити і підпис в ізольованому процесі. Кожна квитанція ДПС зберігається: її можна дістати через API або переглянути в кабінеті PRRO.cloud.

Для кого

SaaS і підписки.

Щомісячне автосписання саме створює чек клієнту — нікому нічого не треба «пробивати» руками. Фіскальний номер ваш біллінг дізнається з webhook'а.

E-commerce.

Чек створюється в момент оплати замовлення, повернення оформлюється тим самим API. І не треба тримати на складі планшет із касовим застосунком.

Вендинг і самообслуговування.

Автомати, EV-зарядки, пральні — каса без касира. Зник зв'язок? Офлайн-режим це переживе, чеки видаються далі.

Інтегратори.

Один API на всіх ваших клієнтів: у кожного свої ключі та вебхуки, а у вас — операторська зона кабінету, з якої видно всіх одразу.

Можливості

Повний життєвий цикл ПРРО.

Зміни, нумерація, Z-звіти живуть на боці сервісу. У вашому коді просто немає поняття «забув відкрити зміну».

Чесний офлайн-режим.

Коли фіскальний сервер ДПС мовчить, каса сама переходить в офлайн-сесію за правилами ЄВПЕЗ (контрольні числа, ліміти 36/168 год), а після відновлення сама ж і здає накопичені пакети. Продажі тим часом ідуть далі.

Самовиправлення помилок ДПС.

Розсинхрон нумерації, «зависла» зміна, пропущений Z-звіт — такі відмови сервіс розпізнає, виправить і подасть документ повторно, без вашої участі. Якщо ж проблема вперто повторюється, ви побачите її в кабінеті PRRO.cloud.

Sync або async — на вибір.

Можна дочекатися відповіді ДПС прямо в HTTP-запиті, а можна взяти миттєве 202 Accepted і забрати результат із webhook'а. Як зручніше вам, а не нам.

Ідемпотентність.

Обірвався зв'язок і запит пішов удруге? З тим самим ключем ідемпотентності дубля чека не буде. Повторюйте сміливо.

Кабінет, а не лише API.

Що зараз із касою, які документи пройшли і що відповіла ДПС — усе це видно очима в кабінеті: каси, ключі, токени, журнал документів і квитанції ДПС. Те саме доступне через API, а на кожну подію прилітає підписаний webhook.

Ключ КЕП — під замком

Найважче питання до будь-якого сервісу фіскалізації — «ви хочете, щоб я віддав вам свою печатку?». Ось наша відповідь.

  • Контейнер ключа зберігається лише в зашифрованому вигляді (envelope-шифрування); розшифрований ключ існує тільки в пам'яті на час підпису і одразу затирається.

  • Ключі й паролі ніколи не потрапляють на диск, у логи чи резервні копії. Аудит-журнал пам'ятає, хто і коли підписував, — але не чим і не що.

  • Підпис виконується в ізольованому процесі без доступу ззовні; API-шар не бачить ключів взагалі.

  • Токени доступу показуються один раз, кожну інтеграцію можна відкликати миттєво.

  • У планах: режим inline-ключів — ключ передається в кожному запиті й не зберігається у нас зовсім.

Чим ми відрізняємось від звичайного ПРРО

ПРРО із застосунком касираPRRO.cloud
Головний продуктЗастосунок касира, API — довесок до ньогоAPI; кабінет — щоб дивитися й керувати, а не стояти за прилавком
Зміни і Z-звітиВідкриваєте й закриваєте саміСервіс сам, за розкладом каси
Коли ДПС мовчитьОфлайн тримає застосунок на пристроїОфлайн-сесію за правилами ЄВПЕЗ тримає сервіс
Коли ДПС відмовляєКод помилки — далі ваша справаРозпізнає, виправляє і подає повторно; у кабінеті — звірка з ДПС
Строки за закономСтежите самі24 год зміни і 36/168 год офлайну — на видноті по всьому парку кас
Що лишається від чекаПосилання на чекЧек для покупця, початковий XML і квитанція ДПС — через API й у кабінеті
АсинхронністьТримаєте з'єднання до відповіді ДПС202 Accepted — результат забираєте, коли зручно
ВебхукиЄ не завжди, і без історіїПідпис HMAC, історія доставок, повтор невдалої, тестова подія
ТарифікаціяАбонплата за кожну касуТільки за фактичний чек; тестові — безкоштовно
Ключ КЕПЛежить у сервісіEnvelope-шифрування, підпис в ізольованому процесі, аудит; inline-режим у планах

Скажемо чесно: API є і в звичайних ПРРО. Різниця в тому, що там він довесок до застосунку касира, а тут — єдиний спосіб роботи, і все навколо нього: автоматичні зміни, офлайн, повторні подачі, оплата за чек. Тож якщо вам потрібен застосунок для касира зі сканером штрихкодів — беріть саме такий ПРРО. Хочете свій — пишіть його на нашому API: фіскальна частина там уже вся, за вами лишається інтерфейс. А якщо каса має жити всередині вашого продукту — це до нас.

Тарифи

0,15 грн / чек

0,15 грн за зареєстрований чек — і це вся тарифікація. Жодної абонплати за касу, офлайн-чеки нічого не коштують до їх фіскалізації, а тестові чеки безкоштовні й безлімітні, поки на касі увімкнено режим TEST.

150 грн/міс

Порахуйте: кількість чеків на місяць × ціна за чек — і порівняйте з абонплатою за кожну касу.

Спробувати на тестовій касі

Зроблено для розробників

Документація API →

Часті питання

Чи потрібно реєструвати ПРРО самостійно?

Так, реєстрація ПРРО (форма 1-ПРРО) і отримання фіскального номера — у кабінеті платника податків. Далі все — через PRRO.cloud.

Чи є вебінтерфейс, чи тільки API?

Є: кабінет PRRO.cloud — вебзастосунок, у якому реєструють каси, завантажують ключі КЕП, випускають і відкликають токени, читають журнал документів, квитанції ДПС і баланс. Він не замінює касира за прилавком: чеки пробиває ваш код через API, а кабінет — щоб бачити стан і керувати ним.

Чи можна написати власний застосунок касира?

Так, і це нормальний сценарій. У машинному API є весь фіскальний цикл: реалізація, повернення, сторно, службові внесення й видачі, відкриття зміни і Z-звіт, стан реєстратора з лічильниками, заявлений залишок готівки, керування офлайн-сесією. Друкована форма теж готова — сторінка чека віддається як html, text (моноширинний, під чековий принтер) або qr. За вами лишається сам інтерфейс: каталог товарів, сканер, платіжний термінал; журнал документів зручно збирати з вебхуків.

Чий КЕП використовується?

Ваш: печатка ФОП/юрособи або ключ, виданий для ПРРО. Ми підтримуємо ключі акредитованих ЦСК України, сертифікати завантажуються автоматично.

Що буде, коли ДПС «лежить»?

Каса автоматично переходить в офлайн-режим за правилами ЄВПЕЗ і продовжує видавати чеки з контрольними числами; після відновлення пакети здаються автоматично.

Це законно — тримати ключ у сервісі?

Зберігання ключа — стандартна практика хмарних ПРРО. Ключ зашифровано, використовується лише для підпису ваших чеків, доступ фіксується в аудиті. А для тих, кому цього замало, готуємо inline-режим — без зберігання ключа в нас узагалі.

Скільки чеків на секунду витримує каса?

Обмеження ДПС — один документ на касу за раз (наскрізна нумерація). Масштабуйтеся кількістю кас — сервіс мультитенантний і черги незалежні.

Чи є повернення та скасування?

Так, чеки повернення — тим самим API; сторно останнього офлайн-чека підтримується.

Чим ПРРО відрізняється від класичного РРО?

Класичний РРО — це апаратна каса з фіскальним блоком, яку ставлять на облік і обслуговують у сервісному центрі. ПРРО — програмний реєстратор: тієї коробки немає взагалі, документи підписуються КЕП і йдуть на фіскальний сервер ДПС. PRRO.cloud — це ПРРО, у якого замість застосунку касира API.

Що таке фіскальний номер і навіщо він потрібен?

Це номер, який фіскальний сервер ДПС присвоює зареєстрованому чеку, — доказ того, що чек справді фіскалізовано. Приходить у відповіді на POST або вебхуком, а поруч із ним — посилання на той самий документ у кабінеті платника податків, за яким покупець перевіряє чек, не довіряючи нам.

Коли закривається зміна і навіщо Z-звіт?

Зміна ПРРО не може бути відкрита довше 24 годин: після цього каса перестане реєструвати чеки, доки її не закрити Z-звітом. Сервіс робить це сам за розкладом вашої каси, а наступну зміну відкриє перший продаж. Якщо зручніше керувати вручну — є shift_mode: manual і окремі виклики API.

Як покупець отримає свій чек?

Разом із фіскальним номером у відповіді приходять два посилання: копія чека на нашому боці й той самий документ у кабінеті ДПС. Обидва відкриваються без авторизації, тож їх достатньо надіслати листом чи в месенджер або показати QR-кодом на екрані. Рендерити чек самотужки не треба.

Чи підходить для інтернет-магазину?

Так, це один з основних сценаріїв: чек створюється в момент оплати замовлення, повернення оформлюється тим самим API, а тримати на складі планшет із касовим застосунком не потрібно. Так само працюють підписки, вендинг і самообслуговування.

Скільки кас можна підключити?

Скільки завгодно — абонплати за касу немає, платіж прив'язаний до чека. Черги кас незалежні, тож десята каса нічого не змінює для перших дев'яти; інтегратори так і тримають усіх своїх клієнтів на одному API.

Що дає режим TEST?

Каса в режимі TEST відповідає тим самим API і тими самими структурами, але чеки безкоштовні, безлімітні й не потребують реєстрації в податковій. Це спосіб написати й відлагодити інтеграцію до того, як з'явиться зареєстрована каса.

Перший фіскальний чек — сьогодні

Реєстрація в кабінеті займає хвилину, тестова каса не просить жодних документів, а перший справжній чек ви проб'єте, щойно матимете фіскальний номер ПРРО.

Питання про інтеграцію, тарифи чи договір — пишіть на info@prro.cloud або в телеграм-бот @prrocloud_bot, відповідаємо в робочі дні.