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

CashFlow. Движение денежных средств на кассе

Метод возвращает журнал движения наличных денег на кассах: продажи и возвраты за наличные, внесения и выплаты, закрытие смены. Данные можно ограничить кассой, точкой продаж, типом операции и периодом.

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

Запрос

Метод только читает данные. Все параметры запроса, кроме ключа apikey и формата format, передаются только в адресной строке (GET): в теле POST-запроса они игнорируются.

GET https://[компания].myvirtualpos.ru/api/cashFlow?apikey=MySecret&days=2&type=income,outcome

В интерфейсе те же данные показаны на странице кассы, вкладка «Движение денежных средств».

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

terminalid Число. Ид кассы (кассового места). Если указан, возвращаются операции, где эта касса — источник или получатель денег. Если не указан — по всем кассам
warehouseid Число. Ид точки продаж: вернутся операции всех касс этой точки. Игнорируется, если указан terminalid
warehouseextid Строка. Код точки продаж во внешней системе (external_id), например в 1С. Действует, как warehouseid. Игнорируется, если указан terminalid или warehouseid. Если точки продаж с таким кодом нет, возвращается пустой список
type Строка. Типы операций через запятую: income,outcome,collection. Регистр важен. Если не указан — все типы. Допустимые значения — в разделе «Типы операций»
lastid Число. Вернуть только операции с ид больше указанного. Служит для получения новых данных с момента прошлого обращения
days Число. Вернуть операции за последние N дней, считая от начала суток: days=1 — с начала вчерашнего дня. Нечисловое значение игнорируется
limit Число. Максимальное количество операций в ответе. По умолчанию 100. Нечисловое значение даёт пустой ответ
format json (по умолчанию) или xml

Параметры можно сочетать: например, warehouseid=3&type=sale&days=7 вернёт продажи за наличные по точке 3 за неделю.

Порядок записей: от новых к старым. Операции сортируются по ид по убыванию. Если новых записей больше, чем limit, вы получите самые новые, а более ранние пропустите: при lastid=404000&limit=3 придут записи 404250, 404249, 404248, а не 404001…404003. Чтобы не потерять данные, задайте limit с запасом (например, 1000): если в ответе count меньше limit, вы получили все новые записи. Запомните наибольший id из ответа и передайте его как lastid в следующем запросе.

Типы операций

Тип операции указан в поле type и в параметре type:

Тип Название в системе Когда создаётся Направление Сумма
sale Продажа товара Продажа: по каждому чеку продажи В кассу Наличная часть оплаты чека. Для оплаты картой — 0.00
return Возврат товара Возврат по чеку Из кассы Наличная часть возврата, отрицательная
income Внесение Внесение денег в кассу В кассу Положительная
outcome Выплата Выплата денег из кассы Из кассы Отрицательная
collection Закрытие смены Закрытие смены: вся наличность кассы переносится в главную кассу магазина (инкассация) Из кассы Отрицательная, равна остатку в кассе. После операции в кассе 0.00
to_strongbox Перемещение в главную кассу Перемещение денег из операционной кассы в главную кассу (сейф) магазина Из кассы Отрицательная
from_strongbox Перемещение из главной кассы Перемещение денег из главной кассы (сейфа) магазина в операционную кассу В кассу Положительная

Направление показывают поля src_* и dst_*: у операций «в кассу» заполнены только dst_* (получатель — касса), у операций «из кассы» — только src_* (источник — касса).

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

Ответ содержит общие поля метода, а сами операции — в списке transactions. Каждая операция обёрнута в объект transaction:

success 1 — данные получены
type Тип данных в ответе, всегда cashflow
count Количество операций в ответе
transactions Список операций, самые новые первыми

Поля операции

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

Операция

id Число. Уникальный ид операции
guid Строка. Уникальный идентификатор (GUID) операции
type Строка. Тип операции, см. раздел выше
subtype Строка. Подтип внесения или выплаты, например other или collection. Заполнен у внесений и выплат. Набор значений задаётся справочником «Типы внесений (выплат) в операционной кассе» и зависит от настроек системы. У остальных типов пусто
comment Строка. Комментарий кассира к внесению или выплате
created_date Строка. Дата и время операции в формате дд.мм.гггг чч:мм:сс
last_update_date Строка. Дата и время последнего изменения записи, формат тот же. Обычно совпадает с created_date
receipt_id Число. Ид чека. Заполнен у продаж и возвратов, у остальных типов пусто

Суммы

cash_before Строка с числом. Сколько наличных было в кассе до операции
cash_after Строка с числом. Сколько стало после операции
cash_change Строка с числом. Изменение остатка: положительное для поступлений, отрицательное для выплат

Суммы передаются строкой с двумя знаками после точки, например «905.00».

Пользователь

user_id Число. Ид пользователя, выполнившего операцию
user_login Строка. Логин пользователя
user_corp_code Строка. Корпоративный код пользователя. Может быть пустой

Кассы и точки продаж

src_terminal_id Число. Ид кассы, из которой ушли деньги. Пусто у операций «в кассу»
dst_terminal_id Число. Ид кассы, в которую поступили деньги. Пусто у операций «из кассы»
src_machine_number Строка. Регистрационный номер кассы-источника
dst_machine_number Строка. Регистрационный номер кассы-получателя
src_warehouse_id Число. Ид точки продаж кассы-источника
dst_warehouse_id Число. Ид точки продаж кассы-получателя
src_warehouse_ext_id Строка. Код точки продаж кассы-источника во внешней системе (1С). Пусто, если код не задан
dst_warehouse_ext_id Строка. Код точки продаж кассы-получателя во внешней системе

Смена

src_terminal_open_datetime Строка. Дата и время открытия смены на кассе-источнике, формат гггг-мм-дд чч:мм:сс
dst_terminal_open_datetime Строка. Дата и время открытия смены на кассе-получателе, тот же формат
src_terminal_session Число. Номер этой смены на кассе-источнике
dst_terminal_session Число. Номер этой смены на кассе-получателе

Данные о смене берутся из самого позднего Z-отчёта кассы за календарный день операции. Если в этот день смен было несколько, будет указана последняя, а не та, в которую попала операция; если Z-отчёта за этот день нет, поля пусты.

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

JSON

Запрос: внесение наличных на кассу, type=income&limit=1.

{
  "success": 1,
  "type": "cashflow",
  "count": 1,
  "transactions": [
    {
      "transaction": {
        "id": 404182,
        "user_id": 6,
        "user_login": "kassir1",
        "user_corp_code": "",
        "created_date": "10.10.2025 17:25:53",
        "last_update_date": "10.10.2025 17:25:53",
        "src_terminal_id": null,
        "dst_terminal_id": 38,
        "src_machine_number": null,
        "dst_machine_number": "0000000001058369",
        "src_warehouse_id": null,
        "dst_warehouse_id": 8,
        "src_warehouse_ext_id": null,
        "dst_warehouse_ext_id": null,
        "type": "income",
        "subtype": "other",
        "cash_before": "0.00",
        "cash_after": "500.00",
        "cash_change": "500.00",
        "comment": "",
        "receipt_id": null,
        "guid": "9731F106-0CDF-D1E2-8C34-A1D1A3C24713",
        "src_terminal_open_datetime": null,
        "dst_terminal_open_datetime": "2025-10-10 17:28:03",
        "src_terminal_session": null,
        "dst_terminal_session": 4
      }
    }
  ]
}

XML

Тот же ответ при format=xml:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <success>1</success>
  <type>cashflow</type>
  <count>1</count>
  <transactions>
    <transaction>
      <id>404182</id>
      <user_id>6</user_id>
      <user_login>kassir1</user_login>
      <user_corp_code/>
      <created_date>10.10.2025 17:25:53</created_date>
      <last_update_date>10.10.2025 17:25:53</last_update_date>
      <src_terminal_id/>
      <dst_terminal_id>38</dst_terminal_id>
      <src_machine_number/>
      <dst_machine_number>0000000001058369</dst_machine_number>
      <src_warehouse_id/>
      <dst_warehouse_id>8</dst_warehouse_id>
      <src_warehouse_ext_id/>
      <dst_warehouse_ext_id/>
      <type>income</type>
      <subtype>other</subtype>
      <cash_before>0.00</cash_before>
      <cash_after>500.00</cash_after>
      <cash_change>500.00</cash_change>
      <comment/>
      <receipt_id/>
      <guid>9731F106-0CDF-D1E2-8C34-A1D1A3C24713</guid>
      <src_terminal_open_datetime/>
      <dst_terminal_open_datetime>2025-10-10 17:28:03</dst_terminal_open_datetime>
      <src_terminal_session/>
      <dst_terminal_session>4</dst_terminal_session>
    </transaction>
  </transactions>
</root>

Пример операции «из кассы»

Закрытие смены (type=collection): деньги уходят из кассы, поэтому заполнены поля src_*, а остаток после операции равен нулю.

{
  "id": 404215,
  "created_date": "11.02.2026 20:11:52",
  "src_terminal_id": 36,
  "dst_terminal_id": null,
  "src_warehouse_id": 2,
  "dst_warehouse_id": null,
  "type": "collection",
  "subtype": null,
  "cash_before": "2118.00",
  "cash_after": "0.00",
  "cash_change": "-2118.00",
  "receipt_id": null,
  "src_terminal_open_datetime": "2026-02-11 20:04:01",
  "src_terminal_session": 1
}

В примере показаны только основные поля.

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

Задача Запрос
Внесения и выплаты за последние два дня по всем кассам /api/cashFlow?apikey=MySecret&days=2&type=income,outcome
Все операции одной кассы /api/cashFlow?apikey=MySecret&terminalid=30&limit=1000
Продажи и возвраты по точке продаж /api/cashFlow?apikey=MySecret&warehouseid=7&type=sale,return&limit=1000
Операции точки по её коду в 1С /api/cashFlow?apikey=MySecret&warehouseextid=STORE-07&limit=1000
Только новые операции после последней полученной /api/cashFlow?apikey=MySecret&lastid=404182&limit=1000
Закрытия смен за неделю /api/cashFlow?apikey=MySecret&type=collection&days=7&limit=1000

Ошибки

Ошибка авторизации и общие ошибки описаны в статье Общие сведения. Для этого метода добавляется одна:

Сообщение Причина Что делать
CashFlow type ['…'] does not exist. Use one of: [sale,to_strongbox,outcome,income,from_strongbox,collection,return] В параметре type указан неизвестный тип, в том числе если он один из нескольких через запятую Используйте типы из списка в сообщении. Проверьте написание и регистр

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

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