---
title: "Відмовитися від офлайн-сесії, яку не приймає ДПС"
method: POST
path: "/v1/cash-registers/{id}/offline-session/abandon"
tags: ["fiscal"]
---

# Відмовитися від офлайн-сесії, яку не приймає ДПС

`POST /v1/cash-registers/{id}/offline-session/abandon`

## Request

- Base URL: `https://prro.cloud` (the document declares no server; this is the origin it was published from)
- URL: `https://prro.cloud/v1/cash-registers/{id}/offline-session/abandon`
- Auth: HTTP bearer

Доступно лише для сесії, надсилання якої зупинено (state.offline_backlog_undeliverable), і лише коли ДПС відповідає; інакше — state.offline_session_not_paused або state.offline_abandon_needs_dps. Документи сесії, яких ДПС не отримала, позначаються abandoned: їхні офлайн-фіскальні номери в ДПС не існують, а локальні номери переходять до наступних документів. Сесію завершують у ДПС на тому, що вона вже має, і каса отримує нові офлайн-ключі. Перелік покинутих документів — у результаті та в події register.offline_abandoned; чи видавати їх знову, вирішує інтеграція.

## Path parameters

- `id` string, uuid, required

## Query parameters

- `mode` 'sync' | 'async'

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `mode` 'sync' | 'async': Режим доставки результату; параметр запиту ?mode= має перевагу над цим полем.

## Response `201`

Від сесії відмовлено; у результаті — offline_abandon.

- Task: Завдання фіскального конвеєра: у нього перетворюється кожен запит до ДПС.
  - `task_id` string, uuid, required: Ідентифікатор завдання — за ним опитують GET /v1/tasks/{id}.
  - `type` 'receipt' | 'open_shift' | 'close_shift' | 'close_offline_session' | 'abandon_offline_session' | 'verify_key' | 'sync_register' | 'dps_objects', required: Операція завдання: receipt — розрахунковий документ; open_shift і close_shift — зміна; close_offline_session — завершення офлайн-сесії; abandon_offline_session — відмова від офлайн-сесії, яку не приймає ДПС; verify_key — перевірка ключа КЕП; sync_register — звіряння з ДПС; dps_objects — запит об'єктів власника ключа.
  - `status` 'pending' | 'processing' | 'succeeded' | 'failed', required: pending — у черзі; processing — виконується; succeeded і failed — завершено, результат у result або fault.
  - `created_at` string, date-time, required: Коли завдання створено.
  - `finished_at` string, date-time: Коли завдання завершилося; поки воно в роботі — відсутнє.
  - `error` string: Текст помилки завдання; структурований опис того самого збою — у fault.
  - `fault` Fault: Структурований опис збою завдання. Простори імен коду: dps.* — відмова фіскального сервера, fiscal.* — валідація документа, return.* — звірка повернення з початковим чеком, signer.* — рівень КЕП, state.* — стан реєстратора. Мову message задає Accept-Language, типово українська.
    - `code` string, required: Стабільний ідентифікатор, напр. dps.check_local_number_invalid.
    - `class` 'resync' | 'config' | 'precursor' | 'user_action' | 'transient' | 'request' | 'internal', required: Що може зарадити: resync — звірити стан із ДПС; config — виправити налаштування реєстратора; precursor — виконати пропущений попередній крок; user_action — потрібне рішення людини; transient — тимчасова недоступність, допоможе повтор; request — виправити запит; internal — збій сервісу.
    - `params` object: Значення для підстановки в message.
    - `message` string: Текст для людини, локалізований із каталогу помилок.
    - `upstream_message` string: Дослівне повідомлення фіскального сервера.
    - `remediation` string[]: Автоматичні виправлення, застосовані під час обробки завдання.
  - `result` TaskResult: Фіскальні поля (prro_id/shift_id/testing/…) стосуються завдань на чек, зміну та офлайн-сесію; key_verification — єдиний результат завдання verify_key.
    - `prro_id` string, uuid: Каса, на якій виконано завдання.
    - `shift_id` string, uuid: Зміна, у межах якої видано документи завдання.
    - `shift_number` integer: Наскрізний номер зміни в межах каси. Присвоюється локально: ДПС номера зміни не видає (у квитанції такого поля немає).
    - `testing` boolean: Документи завдання тестові — каса в режимі test.
    - `receipt` DocResult: Документ, який видало завдання: номери в журналі та в ДПС і посилання для покупця.
      - `document_id` string, uuid, required: Ідентифікатор документа в сервісі.
      - `local_number` integer, required: Наскрізний номер документа в межах каси (ORDERNUM).
      - `fiscal_number` string, required: Присвоєний фіскальним сервером ДПС.
      - `register_fiscal_number` string, required: Фіскальний номер ПРРО, на якому видано документ, — «ФН ПРРО» на чеку (CASHREGISTERNUM). Це номер каси, а не документа: він однаковий у будь-якому режимі, на відміну від fiscal_number. Присутнє завжди.
      - `offline` boolean: Документ підписано в межах офлайн-сесії: його фіскальний номер обчислено локально (<sid>.<n>.<crc>), і на фіскальному сервері він з'явиться лише після надсилання пакета сесії.
      - `receipt_url` string, uri: Копія чека для покупця на короткому домені сервісу (https://r.prro.cloud/<код>): її пересилають листом або перетворюють на QR. Сторінка відкривається без авторизації — код і є доступом. Формат задає параметр запиту: ?format=html (типово), png (чек картинкою завширшки 576 px — стрічка 80 мм для термопринтера, з QR усередині) або qr (PNG з адресою цієї ж сторінки). Є лише в розрахункових документів і працює одразу, в офлайн-сесії теж. Це подання чека, а не доказ фіскалізації: доказ — fiscal_number і tax_url.
      - `tax_url` string, uri: Той самий документ у кабінеті платника податків — незалежне підтвердження. Відсутнє, доки документ не потрапив на фіскальний сервер: в офлайн-чека до надсилання пакета сесії є лише локально обчислений номер.
      - `original` ReturnOriginal: Початковий чек повернення. Є лише в документа повернення.
        - `fiscal_number` string, required: Фіскальний номер початкового чека.
        - `document_id` string, uuid: Початковий чек у журналі сервісу; відсутній разом із verified.
        - `verified` boolean, required: true — початковий чек видано в цьому сервісі, і повернення звірено із залишком за ним. false — чека в сервісі немає (виданий іншим ПРРО), повернення прийнято без звірки.
    - `shift_open` DocResult: Документ, який видало завдання: номери в журналі та в ДПС і посилання для покупця.
      - `document_id` string, uuid, required: Ідентифікатор документа в сервісі.
      - `local_number` integer, required: Наскрізний номер документа в межах каси (ORDERNUM).
      - `fiscal_number` string, required: Присвоєний фіскальним сервером ДПС.
      - `register_fiscal_number` string, required: Фіскальний номер ПРРО, на якому видано документ, — «ФН ПРРО» на чеку (CASHREGISTERNUM). Це номер каси, а не документа: він однаковий у будь-якому режимі, на відміну від fiscal_number. Присутнє завжди.
      - `offline` boolean: Документ підписано в межах офлайн-сесії: його фіскальний номер обчислено локально (<sid>.<n>.<crc>), і на фіскальному сервері він з'явиться лише після надсилання пакета сесії.
      - `receipt_url` string, uri: Копія чека для покупця на короткому домені сервісу (https://r.prro.cloud/<код>): її пересилають листом або перетворюють на QR. Сторінка відкривається без авторизації — код і є доступом. Формат задає параметр запиту: ?format=html (типово), png (чек картинкою завширшки 576 px — стрічка 80 мм для термопринтера, з QR усередині) або qr (PNG з адресою цієї ж сторінки). Є лише в розрахункових документів і працює одразу, в офлайн-сесії теж. Це подання чека, а не доказ фіскалізації: доказ — fiscal_number і tax_url.
      - `tax_url` string, uri: Той самий документ у кабінеті платника податків — незалежне підтвердження. Відсутнє, доки документ не потрапив на фіскальний сервер: в офлайн-чека до надсилання пакета сесії є лише локально обчислений номер.
      - `original` ReturnOriginal: Початковий чек повернення. Є лише в документа повернення.
        - `fiscal_number` string, required: Фіскальний номер початкового чека.
        - `document_id` string, uuid: Початковий чек у журналі сервісу; відсутній разом із verified.
        - `verified` boolean, required: true — початковий чек видано в цьому сервісі, і повернення звірено із залишком за ним. false — чека в сервісі немає (виданий іншим ПРРО), повернення прийнято без звірки.
    - `zreport` DocResult: Документ, який видало завдання: номери в журналі та в ДПС і посилання для покупця.
      - `document_id` string, uuid, required: Ідентифікатор документа в сервісі.
      - `local_number` integer, required: Наскрізний номер документа в межах каси (ORDERNUM).
      - `fiscal_number` string, required: Присвоєний фіскальним сервером ДПС.
      - `register_fiscal_number` string, required: Фіскальний номер ПРРО, на якому видано документ, — «ФН ПРРО» на чеку (CASHREGISTERNUM). Це номер каси, а не документа: він однаковий у будь-якому режимі, на відміну від fiscal_number. Присутнє завжди.
      - `offline` boolean: Документ підписано в межах офлайн-сесії: його фіскальний номер обчислено локально (<sid>.<n>.<crc>), і на фіскальному сервері він з'явиться лише після надсилання пакета сесії.
      - `receipt_url` string, uri: Копія чека для покупця на короткому домені сервісу (https://r.prro.cloud/<код>): її пересилають листом або перетворюють на QR. Сторінка відкривається без авторизації — код і є доступом. Формат задає параметр запиту: ?format=html (типово), png (чек картинкою завширшки 576 px — стрічка 80 мм для термопринтера, з QR усередині) або qr (PNG з адресою цієї ж сторінки). Є лише в розрахункових документів і працює одразу, в офлайн-сесії теж. Це подання чека, а не доказ фіскалізації: доказ — fiscal_number і tax_url.
      - `tax_url` string, uri: Той самий документ у кабінеті платника податків — незалежне підтвердження. Відсутнє, доки документ не потрапив на фіскальний сервер: в офлайн-чека до надсилання пакета сесії є лише локально обчислений номер.
      - `original` ReturnOriginal: Початковий чек повернення. Є лише в документа повернення.
        - `fiscal_number` string, required: Фіскальний номер початкового чека.
        - `document_id` string, uuid: Початковий чек у журналі сервісу; відсутній разом із verified.
        - `verified` boolean, required: true — початковий чек видано в цьому сервісі, і повернення звірено із залишком за ним. false — чека в сервісі немає (виданий іншим ПРРО), повернення прийнято без звірки.
    - `shift_close` DocResult: Документ, який видало завдання: номери в журналі та в ДПС і посилання для покупця.
      - `document_id` string, uuid, required: Ідентифікатор документа в сервісі.
      - `local_number` integer, required: Наскрізний номер документа в межах каси (ORDERNUM).
      - `fiscal_number` string, required: Присвоєний фіскальним сервером ДПС.
      - `register_fiscal_number` string, required: Фіскальний номер ПРРО, на якому видано документ, — «ФН ПРРО» на чеку (CASHREGISTERNUM). Це номер каси, а не документа: він однаковий у будь-якому режимі, на відміну від fiscal_number. Присутнє завжди.
      - `offline` boolean: Документ підписано в межах офлайн-сесії: його фіскальний номер обчислено локально (<sid>.<n>.<crc>), і на фіскальному сервері він з'явиться лише після надсилання пакета сесії.
      - `receipt_url` string, uri: Копія чека для покупця на короткому домені сервісу (https://r.prro.cloud/<код>): її пересилають листом або перетворюють на QR. Сторінка відкривається без авторизації — код і є доступом. Формат задає параметр запиту: ?format=html (типово), png (чек картинкою завширшки 576 px — стрічка 80 мм для термопринтера, з QR усередині) або qr (PNG з адресою цієї ж сторінки). Є лише в розрахункових документів і працює одразу, в офлайн-сесії теж. Це подання чека, а не доказ фіскалізації: доказ — fiscal_number і tax_url.
      - `tax_url` string, uri: Той самий документ у кабінеті платника податків — незалежне підтвердження. Відсутнє, доки документ не потрапив на фіскальний сервер: в офлайн-чека до надсилання пакета сесії є лише локально обчислений номер.
      - `original` ReturnOriginal: Початковий чек повернення. Є лише в документа повернення.
        - `fiscal_number` string, required: Фіскальний номер початкового чека.
        - `document_id` string, uuid: Початковий чек у журналі сервісу; відсутній разом із verified.
        - `verified` boolean, required: true — початковий чек видано в цьому сервісі, і повернення звірено із залишком за ним. false — чека в сервісі немає (виданий іншим ПРРО), повернення прийнято без звірки.
    - `offline_end` DocResult: Документ, який видало завдання: номери в журналі та в ДПС і посилання для покупця.
      - `document_id` string, uuid, required: Ідентифікатор документа в сервісі.
      - `local_number` integer, required: Наскрізний номер документа в межах каси (ORDERNUM).
      - `fiscal_number` string, required: Присвоєний фіскальним сервером ДПС.
      - `register_fiscal_number` string, required: Фіскальний номер ПРРО, на якому видано документ, — «ФН ПРРО» на чеку (CASHREGISTERNUM). Це номер каси, а не документа: він однаковий у будь-якому режимі, на відміну від fiscal_number. Присутнє завжди.
      - `offline` boolean: Документ підписано в межах офлайн-сесії: його фіскальний номер обчислено локально (<sid>.<n>.<crc>), і на фіскальному сервері він з'явиться лише після надсилання пакета сесії.
      - `receipt_url` string, uri: Копія чека для покупця на короткому домені сервісу (https://r.prro.cloud/<код>): її пересилають листом або перетворюють на QR. Сторінка відкривається без авторизації — код і є доступом. Формат задає параметр запиту: ?format=html (типово), png (чек картинкою завширшки 576 px — стрічка 80 мм для термопринтера, з QR усередині) або qr (PNG з адресою цієї ж сторінки). Є лише в розрахункових документів і працює одразу, в офлайн-сесії теж. Це подання чека, а не доказ фіскалізації: доказ — fiscal_number і tax_url.
      - `tax_url` string, uri: Той самий документ у кабінеті платника податків — незалежне підтвердження. Відсутнє, доки документ не потрапив на фіскальний сервер: в офлайн-чека до надсилання пакета сесії є лише локально обчислений номер.
      - `original` ReturnOriginal: Початковий чек повернення. Є лише в документа повернення.
        - `fiscal_number` string, required: Фіскальний номер початкового чека.
        - `document_id` string, uuid: Початковий чек у журналі сервісу; відсутній разом із verified.
        - `verified` boolean, required: true — початковий чек видано в цьому сервісі, і повернення звірено із залишком за ним. false — чека в сервісі немає (виданий іншим ПРРО), повернення прийнято без звірки.
    - `offline_abandon` OfflineAbandonResult: Результат відмови від офлайн-сесії (abandon_offline_session).
      - `session_id` string, uuid, required: Сесія, від якої відмовлено.
      - `dps_session_id` integer, required: Номер сесії, виданий ДПС.
      - `held_documents` integer, required: Скільки документів сесії ДПС отримала; вони лишаються зареєстрованими.
      - `abandoned` AbandonedDocument[], required: Документи сесії, яких ДПС не отримала.
        - `document_id` string, uuid, required: Ідентифікатор документа в сервісі.
        - `task_id` string, uuid: Завдання, яке видало документ.
        - `class` 'check' | 'zreport' | 'open_shift' | 'close_shift' | 'offline_begin' | 'offline_end', required: Вид документа.
        - `kind` 'sale' | 'return' | 'storno' | 'service_in' | 'service_out': Що саме оформив чек; лише для class = check.
        - `local_number` integer, required: Локальний номер, який мав документ.
        - `fiscal_number` string: Офлайн-фіскальний номер, надрукований на документі.
        - `total` string: Сума документа в гривнях; лише для чеків.
        - `pay_form` 'cash' | 'cashless' | 'mixed': Форма оплати; лише для чеків.
        - `created_at` string, date-time, required: Коли документ видано.
      - `closure_session_id` string, uuid: Сесія, якою відмовлену сесію завершують у ДПС. Відсутня, якщо ДПС не отримала жодного документа сесії або вже завершила її сама.
      - `closed` boolean, required: Сесію завершено в ДПС, каса знову онлайн. false — завершення ще передається; документи каси до того чекають.
    - `key_verification` KeyVerificationResult: Вердикт повної перевірки ключа КЕП: чи можна ним підписувати документи ПРРО і чий він.
      - `signing_key_id` string, uuid, required: Ключ, який перевіряли. При deleted=true запису вже немає.
      - `status` 'active' | 'invalid', required: active — ключем можна користуватися; invalid — відхилено, причина у verify_code.
      - `verify_code` 'wrong_password' | 'cert_not_found' | 'cert_expired' | 'not_prro' | 'verify_failed' | 'ca_unreachable': Причина відхилення. not_prro можна перекрити через POST /cabinet/signing-keys/{id}/activate.
      - `verify_error` string: Дослівна помилка перевірки.
      - `key_type` 'individual' | 'legal': Тип власника, визначений із сертифіката.
      - `prro_capable` boolean, required: Сертифікат придатний для підпису документів ПРРО.
      - `cert_subject` string: Поле subject сертифіката, як його видав АЦСК.
      - `org_name` string: Назва організації (або ім'я особи) власника з сертифіката.
      - `edrpou` string: ЄДРПОУ юридичної особи з сертифіката, лише цифри.
      - `drfo` string: РНОКПП (ДРФО) фізичної особи з сертифіката, лише цифри.
      - `deleted` boolean: Запис ключа видалено; так буває при будь-якому відхиленні, крім not_prro.
    - `key_password_check` KeyPasswordCheckResult: Результат швидкої перевірки пароля контейнера: контейнер лише розшифровується, без звернень до мережі. Завдання успішне і при ok=false — воно дійшло до вердикту. При внутрішньому збої вердикту немає і завдання повторюється.
      - `signing_key_id` string, uuid, required: Ключ, пароль якого перевіряли.
      - `ok` boolean, required: Пароль підійшов — контейнер розшифровано.
      - `verify_code` string: Присутній завжди при ok=false (напр. wrong_password).
      - `verify_error` string: Дослівна помилка бібліотеки підпису.
    - `reconcile` ReconcileReport: Підсумок звіряння реєстратора з ДПС (sync_register): який стан побачили на боці сервера і що виправили в себе.
      - `fiscal_number` string, required: Реєстратор, який звіряли.
      - `dps_shift_opened` boolean, required: Чи вважає ДПС зміну відкритою.
      - `dps_next_local_number` integer, required: Локальний номер, якого ДПС чекає від наступного документа.
      - `dps_testing` boolean: Чи вважає ДПС реєстратор тестовим.
      - `counter_old` integer: Наш лічильник локальних номерів до звіряння.
      - `counter_new` integer: Наш лічильник після звіряння.
      - `shift_adopted` boolean: Ми прийняли як свою зміну, відкриту на боці ДПС.
      - `shift_abandoned` boolean: Ми закрили в себе зміну, якої на боці ДПС немає.
      - `offline_credentials_refreshed` boolean: Офлайн-ключі реєстратора оновлено з даних ДПС.
      - `cash` object: Скільки готівки зрушила поточна зміна за нашим підрахунком і за підсумками зміни на боці ДПС. Присутнє лише тоді, коли на сервері справді триває зміна. Довідкове поле: за розбіжністю нічого не виправляється.
        - `ours` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
        - `dps` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
        - `match` boolean, required: Чи збіглися обидва підрахунки.
      - `totals` object: Підсумки поточної зміни за нашим обліком і за даними ДПС. Присутнє лише тоді, коли зміна триває і на сервері, і в нас. Якщо підсумки розходяться, Z-звіт зміни подається з підсумками ДПС — інших сервер не приймає.
        - `ours` ShiftTotalsBrief, required: Суми й кількості чеків зміни, за якими ДПС звіряє Z-звіт.
          - `sales` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
          - `sales_count` integer, required: Кількість чеків продажу.
          - `returns` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
          - `returns_count` integer, required: Кількість чеків повернення.
          - `service_input` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
          - `service_output` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
        - `dps` ShiftTotalsBrief: Суми й кількості чеків зміни, за якими ДПС звіряє Z-звіт.
          - `sales` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
          - `sales_count` integer, required: Кількість чеків продажу.
          - `returns` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
          - `returns_count` integer, required: Кількість чеків повернення.
          - `service_input` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
          - `service_output` string, required: Гривні з копійками десятковим рядком — у тій самій формі, що й суми в чеках; Money натомість рахує копійки і належить тарифікації.
        - `match` boolean, required: Чи збіглися обидва підсумки.
        - `z_report_source` 'local' | 'dps', required: З яких підсумків буде подано Z-звіт зміни.
        - `forced` boolean: Це звіряння перевело Z-звіт зміни на підсумки ДПС.
        - `held` 'dps_totals_unavailable' | 'shift_closing' | 'offline_backlog': Чому підсумки не звірено або розбіжність не виправлено: dps_totals_unavailable — ДПС не повернула підсумки, звірити не вдалося (match тоді false, dps відсутнє); shift_closing — Z-звіт зміни вже подано; offline_backlog — офлайн-документи ще не доставлено до ДПС.
      - `attention_cleared` boolean: Знято позначку auto_close_failing — автоматичне закриття зміни відновлено.
      - `skipped` 'offline_session': Чому нічого не чіпали (офлайн-сесію звіряння не торкається).
    - `dps_objects` DPSTaxObject[]: Господарські одиниці власника ключа — результат завдання dps_objects.
      - `name` string, required: Назва господарської одиниці.
      - `address` string: Адреса господарської одиниці.
      - `tin` string, required: Податковий номер власника — ЄДРПОУ або РНОКПП.
      - `ipn` string: Індивідуальний податковий номер платника ПДВ.
      - `org_name` string, required: Назва суб'єкта господарювання.
      - `registrars` DPSRegistrar[], required: ПРРО, зареєстровані за цією господарською одиницею.
        - `fiscal_number` string, required: Фіскальний номер ПРРО, присвоєний ДПС.
        - `local_number` string, required: Локальний номер ПРРО у власника.
        - `name` string: Назва ПРРО з реєстрації.
        - `closed` boolean: ПРРО скасовано в ДПС.

## Other responses

- `202`: Ще виконується; статус — через GET /tasks/{id}.
- `400`: Конверт помилки.
- `401`: Немає облікових даних, або вони недійсні, протерміновані чи відкликані.
- `404`: Конверт помилки.
- `422`: Конверт помилки.

---

[API](https://skmtc.dev/prro/apis/prro-service-api.md) · [All operations](https://skmtc.dev/prro/apis/prro-service-api/llms.txt) · [OpenAPI document](https://skmtc.dev/prro/apis/prro-service-api/revisions/a8904b68057f?raw)
