Перейти к содержаниюСправка

ZReport. Z-отчёты

Метод возвращает электронные Z-отчёты — итоги закрытых смен фискальных регистраторов: суммы и количество чеков продаж, возвратов, покупок, внесений и выплат, налоги, данные о кассирах. Отчёты можно только читать.

Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье Общие сведения. Здесь описаны только особенности метода zreport.

Запрос

Все параметры, кроме ключа apikey и формата format, принимаются и в адресной строке, и в теле POST.

GET https://[компания].myvirtualpos.ru/api/zreport?apikey=MySecret&warehouse_id=2&date=20260925

Параметры запроса

warehouse_id Число. Ид точки продаж: отчёты всех её касс
ext_warehouse_id Строка. Код точки продаж во внешней системе. Действует, если не указан warehouse_id. Если точки с таким кодом нет, возвращается пустой список
terminal_id Число. Ид кассового места
fiscal_number Строка. Серийный номер фискального регистратора. Действует, если не указан terminal_id
session Число. Номер смены на фискальном регистраторе
date Дата ГГГГММДД. Отчёты смен, закрытых в этот день
format json (по умолчанию) или xml

Условия объединяются по «и». Отчёты возвращаются по убыванию id: новые первыми. Даты передаются строго в формате ГГГГММДД, иначе метод вернёт ошибку Incorrect date format.

Только закрытые смены за последние 30 дней. Метод возвращает отчёты смен, закрытых не более 30 дней назад; изменить глубину нельзя. Смена, которая ещё не закрыта, в выдачу не попадает. Если нужны более давние отчёты, они доступны в панели управления.

Структура ответа

success 1 — данные получены
type Тип данных, всегда zreport
count Количество отчётов в ответе
zreports Список отчётов. Каждый обёрнут в объект zreport

Поля отчёта

Пустые значения в JSON приходят как null, в XML — как пустой элемент.

Смена и касса

id Число. Ид отчёта
guid Строка. Уникальный идентификатор отчёта (GUID)
session Число. Номер смены
open_datetime, close_datetime Строка. Дата и время открытия и закрытия смены, формат гггг-мм-дд чч:мм:сс
terminal_id Число. Ид кассового места
terminal_number Число. Номер кассы в зале
warehouse_external_id Строка. Код точки продаж во внешней системе
fiscal_number Строка. Серийный номер фискального регистратора
short_fiscal_serial_number Строка. Краткий серийный номер
device_model_name, device_model_version Строка. Модель и версия ККТ
open_user_id, close_user_id Число. Ид кассиров, открывшего и закрывшего смену
open_user_corp_code, close_user_corp_code Строка. Их корпоративные коды
open_user_fio, close_user_fio Строка. Их фамилии и инициалы

Итоги продаж

salesamount Строка. Сумма продаж за смену
saleschecks Число. Количество чеков продаж
discount_misc Строка. Скидки, оплаченные купонами и сертификатами

Регистры фискального регистратора. Названия полей построены по схеме fp_reg_<что>_<вид операции>_<…>: oper — количество операций, cash — денежные суммы; вид операции — sale (продажи), saleret (возвраты продаж), buy (покупки), buyret (возвраты покупок). Значения -1 означают, что регистратор не передаёт этот регистр.

fp_reg_oper_sale_counts, fp_reg_oper_saleret_counts, fp_reg_oper_buy_counts, fp_reg_oper_buyret_counts Число. Количество чеков продаж, возвратов продаж, покупок и возвратов покупок
fp_reg_cash_sale_sum, fp_reg_cash_saleret_sum, fp_reg_cash_buy_sum, fp_reg_cash_buyret_sum Строка. Общая сумма по этим чекам
fp_reg_cash_<вид>_sum_cash, _card, _credit, _tare Строка. Та же сумма по способам оплаты: наличными, банковской картой, в кредит, тарой (кредит и тара не используются)
fp_reg_oper_moneyinput_count, fp_reg_oper_moneyinput_count_global Число. Количество внесений за смену и с начала работы регистратора
fp_reg_cash_moneyinput_sum Строка. Сумма внесений
fp_reg_oper_moneyoutput_count, fp_reg_oper_moneyoutput_count_global Число. Количество выплат за смену и с начала работы регистратора
fp_reg_cash_moneyoutput_sum Строка. Сумма выплат
fp_reg_oper_annulate_count_global, fp_reg_oper_annulate_<вид>_count Число. Количество аннулированных чеков (общее и по видам операций)
fp_reg_cash_annulate_<вид>_sum Строка. Сумма аннулированных чеков по видам операций
fp_reg_cash_allcash_sum Строка. Сумма наличных по данным регистратора
fp_reg_cash_sale_sum_discount, fp_reg_oper_sale_counts_discount Сумма и количество чеков продаж со скидкой
fp_reg_cash_total_sale_sum Строка. Итоговая сумма продаж по данным регистратора

Налоги

vat Объект. Суммы НДС по ставкам: отдельно для чеков продаж (sale) и возвратов (return), поля vat10_sum, vat18_sum, vat20_sum
sum_with_vat Объект. Суммы с разбивкой по ставкам НДС для продаж (sale) и возвратов (return): sum_with_vat_none (без НДС), sum_with_vat0, sum_with_vat10, sum_with_vat18, sum_with_vat20

Пример ответа

{
  "success": 1,
  "type": "zreport",
  "count": 1,
  "zreports": [
    {
      "zreport": {
        "id": 19046,
        "terminal_id": 36,
        "terminal_number": 1,
        "warehouse_external_id": "WH-2",
        "fiscal_number": "00106701382709",
        "guid": "CC2CDC05-B0DB-9BE5-6CDD-57AC2726E91E",
        "salesamount": "1429.00",
        "saleschecks": 2,
        "session": 1,
        "open_user_id": 6,
        "close_user_id": 6,
        "open_user_corp_code": "",
        "close_user_corp_code": "",
        "open_user_fio": "Иванов И. И.",
        "close_user_fio": "Иванов И. И.",
        "open_datetime": "2026-09-25 09:04:01",
        "close_datetime": "2026-09-25 20:11:37",
        "device_model_name": "",
        "device_model_version": "",
        "short_fiscal_serial_number": "138270",
        "fp_reg_oper_sale_counts": 2,
        "fp_reg_cash_sale_sum": "1429.00",
        "fp_reg_cash_sale_sum_cash": "1429.00",
        "fp_reg_cash_sale_sum_card": "0.00",
        "fp_reg_oper_saleret_counts": 0,
        "fp_reg_cash_saleret_sum": "0.00",
        "fp_reg_cash_allcash_sum": "1429.00",
        "vat": {
          "sale": { "vat10_sum": "0.00", "vat18_sum": "0.00", "vat20_sum": "0.00" },
          "return": { "vat10_sum": null, "vat18_sum": null, "vat20_sum": null }
        },
        "sum_with_vat": {
          "sale": { "sum_with_vat_none": "1080.00", "sum_with_vat0": null, "sum_with_vat10": null, "sum_with_vat18": null, "sum_with_vat20": null },
          "return": { "sum_with_vat_none": null, "sum_with_vat0": null, "sum_with_vat10": null, "sum_with_vat18": null, "sum_with_vat20": null }
        },
        "discount_misc": "0.00"
      }
    }
  ]
}

В примере для краткости опущены часть регистров фискального регистратора: покупки, возвраты покупок, внесения, выплаты, аннулирования. Структура и названия полей — как в таблице выше. Тот же ответ при format=xml (сокращённо):

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <success>1</success>
  <type>zreport</type>
  <count>1</count>
  <zreports>
    <zreport>
      <id>19046</id>
      <terminal_id>36</terminal_id>
      <session>1</session>
      <open_datetime>2026-09-25 09:04:01</open_datetime>
      <close_datetime>2026-09-25 20:11:37</close_datetime>
      <salesamount>1429.00</salesamount>
      <!-- остальные поля отчёта -->
      <vat>
        <sale><vat10_sum>0.00</vat10_sum><vat18_sum>0.00</vat18_sum><vat20_sum>0.00</vat20_sum></sale>
        <return><vat10_sum/><vat18_sum/><vat20_sum/></return>
      </vat>
    </zreport>
  </zreports>
</root>

Примеры запросов

Задача Запрос
Отчёты за последние 30 дней /api/zreport?apikey=MySecret
Отчёты точки продаж за день /api/zreport?apikey=MySecret&warehouse_id=2&date=20260925
Отчёты точки по её коду в 1С /api/zreport?apikey=MySecret&ext_warehouse_id=WH-2
Отчёты одной кассы /api/zreport?apikey=MySecret&terminal_id=36
Отчёт по регистратору и смене /api/zreport?apikey=MySecret&fiscal_number=00106701382709&session=1

Ошибки

Ошибка авторизации и общие ошибки описаны в статье Общие сведения.

Сообщение Причина Что делать
Incorrect date format date='…'. Valid format is: YYYYMMDD Дата не в формате ГГГГММДД Передайте дату как 20260925

Если по условиям ничего не найдено, метод возвращает успешный ответ с count равным 0 и пустым списком zreports.

Связанные разделы