Отчет по продажам

Возвращает информацию о сумме продаж, возвратов и НДС, агрегированную по временным интервалам в пределах заданного периода.

  1. Формат запроса
  2. Формат ответа
  3. Коды ответа
  4. Пример запроса

Формат запроса

POST https://api.ofd.yandex.net/{v1}/docs/aggregations/sales
Path-параметры
v1Номер версии API ОФД.

Заголовок запроса

Заголовки запроса должны содержать ключи (см. раздел Доступ к API):

Заголовок Значение
X-Yandex-Key <аутентификационный ключ>
X-OFD-Key <авторизационный ключ>
Content-Type application/json

Тело запроса

{
    "date_from": "{string}",
    "date_to": "{string}",
    "limit": "{integer}",
    "offset": "{integer}",
    "company_ids": ["{string}"],
    "retail_point_ids": ["{string}"],
    "cashbox_ids": ["{string}"],
    "document_types": ["{string}"],
    "operation_types": ["{string}"],
    "taxation_types": ["{string}"],
    "interval": "{string}",
    "orders": ["{string}"]
  }
date_from *

Дата начала отчетного периода (включительно). Формат: YYYY-MM-DD hh:mm:ss. Если время не задано, значение автоматически устанавливается на начало дня: 00:00:00.

date_to *

Дата завершения отчетного периода (включительно). Формат: YYYY-MM-DD hh:mm:ss. Если время не задано, значение автоматически устанавливается на конец дня: 23:59:59.

limit

Максимальное количество объектов, возвращаемое в ответе.

offset

Смещение от начала списка объектов.

company_ids

Список идентификаторов компаний, по ККТ (кассам) которых будет построен отчет.

retail_point_ids

Список идентификаторов точек продаж, по ККТ которых будет построен отчет.

cashbox_ids

Список идентификаторов ККТ, по которым будет построен отчет.

document_types

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

  • fiscalReport — отчет о регистрации;
  • fiscalReportCorrection — отчет об изменении параметров регистрации;
  • openShift — открытие смены;
  • closeShift — закрытие смены;
  • receipt — чек;
  • receiptCorrection — чек коррекции;
  • bso — бланк строгой отчетности (БСО);
  • bsoCorrection — БСО коррекции;
  • currentStateReport — отчет о состоянии расчетов;
  • closeArchive — закрытие ФН.
operation_types

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

  • income — приход;
  • income_return — возврат прихода;
  • outcome — расход;
  • outcome_return — возврат расхода.
taxation_types

Тип налогообложения. Можно указать несколько значений в рамках одного запроса. Возможные значения:

  • osn — общая (ОСН);
  • usn_income — упрощенная (6% дохода);
  • usn_income_wo_expenditure — упрощенная (доход-расход);
  • esn_agricultural — единый сельскохозяйственный (ЕСХН);
  • psn — патент (ПСН).
interval

Временной промежуток, по которому агрегировать данные. Возможные значения:

  • day — сутки;
  • week — календарная неделя (с понедельника по воскресенье);
  • month — календарный месяц (с 1 по 29/30/31 число).
orders

Способ сортировки данных в отчете. По умолчанию значения располагаются по возрастанию. Чтобы расположить значения в отчете по убыванию, используйте префикс - (например, -date). Можно задать несколько способов сортировки. В этом случае применяться они будут последовательно в том порядке, в котором указаны в запросе.

Возможные способы сортировки:

  • date — по дате начала интервала;
  • income — по приходу (всеми способами расчета);
  • income_return — по возврату прихода (всеми способами расчета).
  • cash — по приходу с оплатой наличными;
  • ecash — по приходу с безналичной оплатой;
  • checks — по общему количеству чеков;
  • checks_income — по количеству чеков прихода;
  • avg_receipt — по среднему чеку прихода;
  • outcome — по расходу (всеми способами расчета);
  • outcome_return — по возврату расхода (всеми способами расчета).

Обязательный параметр

Общий формат ответа приведен ниже. В реальном ответе порядок следования элементов может отличаться, а некоторые элементы могут отсутствовать. Также в ответе могут находиться служебные параметры, которые не описаны в документе.

Формат ответа

{
    "data": [
        {
            "end": "{string}",
            "income_return": {
                "prepaid": {float},
                "cashTotal": {float},
                "credit": {float},
                "ecashTotal": {float},
                "provision": {float},
                "total": {float}
            },
            "date_to": "{string}",
            "outcome": {
                "prepaid": {float},
                "cashTotal": {float},
                "credit": {float},
                "ecashTotal": {float},
                "provision": {float},
                "total": {float}
            },
            "date_from": "{string}",
            "outcome_return": {
                "prepaid": {float},
                "cashTotal": {float},
                "credit": {float},
                "ecashTotal": {float},
                "provision": {float},
                "total": {float}
            },
            "start": "{string}",
            "checks": {integer},
            "income_avg": {float},
            "checks_income": {integer},
            "income": {
                "prepaid": {float},
                "cashTotal": {float},
                "credit": {float},
                "ecashTotal": {float},
                "provision": {float},
                "total": {float}
            }
        }        
    ],
    "full": {
        "checks": {integer},
        "income_return": {
            "prepaid": {float},
            "cashTotal": {float},
            "credit": {float},
            "ecashTotal": {float},
            "provision": {float},
            "total": {float}
        },
        "date_to": "{string}",
        "outcome": {
            "prepaid": {float},
            "cashTotal": {float},
            "credit": {float},
            "ecashTotal": {float},
            "provision": {float},
            "total": {float}
        },
        "date_from": "{string}",
        "outcome_return": {
            "prepaid": {float},
            "cashTotal": {float},
            "credit": {float},
            "ecashTotal": {float},
            "provision": {float},
            "total": {float}
        },
        "income_avg": {float},
        "checks_income": {integer},
        "income": {
            "prepaid": {float},
            "cashTotal": {float},
            "credit": {float},
            "ecashTotal": {float},
            "provision": {float},
            "total": {float}
        }
    },
    "total": {integer}
}
data

Данные по продажам за один интервал времени.

end

Дата завершения последнего полного интервала в заданном периоде.

income_return

Данные по операциям с типом «income_return» (возврат прихода).

prepaid

Сумма по чекам с предоплатой (зачет аванса и или других платежей).

cashTotal

Сумма по чекам с оплатой наличными.

credit

Сумма по чекам с постоплатой (кредит).

ecashTotal

Сумма по чекам с безналичной оплатой.

provision

Сумма по чекам с оплатой встречным представлением (другой способ оплаты).

total

Полная сумма по чекам.

date_to

Дата завершения интервала аггрегации (включительно). Формат: YYYY-MM-DD hh:mm:ss.

outcome

Данные по операциям с типом «outcome» (расход).

date_from

Дата начала интервала аггрегации (включительно). Формат: YYYY-MM-DD hh:mm:ss.

outcome_return

Данные по операциям с типом «outcome_return» (возврат расхода).

start

Дата начала первого полного интервала в заданном периоде.

checks

Общее количество чеков.

income_avg

Средний размер чека прихода.

checks_income

Количество чеков прихода.

income

Данные по операциям с типом «income» (приход).

full
Данные по продажам за весь отчетный период.
checks

Общее количество чеков.

income_return

Данные по операциям с типом «income_return» (возврат прихода).

date_to

Дата завершения отчетного периода (включительно). Формат: YYYY-MM-DD hh:mm:ss.

outcome

Данные по операциям с типом «outcome» (расход).

date_from

Дата начала отчетного периода. Формат: YYYY-MM-DD hh:mm:ss.

outcome_return

Данные по операциям с типом «outcome_return» (возврат расхода).

income_avg

Средний размер чека прихода.

checks_income

Количество чеков прихода.

income

Данные по операциям с типом «income» (приход).

total

Количество интервалов в заданном периоде.

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

Метод и адрес:

https://api.ofd.yandex.net/v1/docs/aggregations/sales
Заголовки:
x-yandex-key: 74f...e8ca
x-ofd-key: eka...b17eae
Content-Type: application/json

Тело:

{
    "date_from": "2018-04-01",
    "date_to": "2019-08-13",
    "company_ids": [
        "301"
    ],
    "limit": 20,
    "offset": 0,
    "document_types": [
        "receipt",
        "receiptCorrection",
        "bso",
        "bsoCorrection"
    ],
    "interval": "month",
    "orders": [
        "-date"
    ]
}
Пример запроса в формате cURL
curl -X POST \
  https://api.ofd.yandex.net/v1/docs/aggregations/sales \
  -H 'Content-Type: application/json' \
  -H 'x-ofd-key: eka...b17eae' \
  -H 'x-yandex-key: 74f...e8ca' \  -d '{
    "date_from": "2018-04-01",
    "date_to": "2019-08-13",
    "company_ids": [
        "301"
    ],
    "limit": 20,
    "offset": 0,
    "document_types": [
        "receipt",
        "receiptCorrection",
        "bso",
        "bsoCorrection"
    ],
    "interval": "month",
    "orders": [
        "-date"
    ]
}'

Ответ:

{
    "data": [
        {
            "income_avg": 70.0,
            "income_return": {
                "cashTotal": 0.0,
                "provision": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "total": 0.0,
                "credit": 0.0
            },
            "checks_income": 5,
            "end": "2018-07-31",
            "outcome": {
                "cashTotal": 0.0,
                "provision": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "total": 0.0,
                "credit": 0.0
            },
            "checks": 5,
            "income": {
                "cashTotal": 350.0,
                "provision": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "total": 350.0,
                "credit": 0.0
            },
            "date_from": "2018-07-06",
            "outcome_return": {
                "cashTotal": 0.0,
                "total": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "credit": 0.0,
                "provision": 0.0
            },
            "date_to": "2018-07-25",
            "start": "2018-07-01"
        },
        {
            "income_avg": 63.1,
            "income_return": {
                "cashTotal": 0.0,
                "provision": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "total": 0.0,
                "credit": 0.0
            },
            "checks_income": 10,
            "end": "2018-06-30",
            "outcome": {
                "cashTotal": 0.0,
                "provision": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "total": 0.0,
                "credit": 0.0
            },
            "checks": 10,
            "income": {
                "cashTotal": 630.0,
                "provision": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "total": 631.0,
                "credit": 0.0
            },
            "date_from": "2018-06-09",
            "outcome_return": {
                "cashTotal": 0.0,
                "total": 0.0,
                "ecashTotal": 0.0,
                "prepaid": 0.0,
                "credit": 0.0,
                "provision": 0.0
            },
            "date_to": "2018-06-20",
            "start": "2018-06-01"
        }
    ],    
    "full": {
        "income_avg": 65.4,
        "income_return": {
            "cashTotal": 0.0,
            "provision": 0.0,
            "ecashTotal": 0.0,
            "prepaid": 0.0,
            "total": 0.0,
            "credit": 0.0
        },
        "checks_income": 15,
        "outcome": {
            "cashTotal": 0.0,
            "provision": 0.0,
            "ecashTotal": 0.0,
            "prepaid": 0.0,
            "total": 0.0,
            "credit": 0.0
        },
        "checks": 15,
        "income": {
            "cashTotal": 980.0,
            "provision": 0.0,
            "ecashTotal": 0.0,
            "prepaid": 0.0,
            "total": 981.0,
            "credit": 0.0
        },
        "date_from": "2018-06-09",
        "outcome_return": {
            "cashTotal": 0.0,
            "total": 0.0,
            "ecashTotal": 0.0,
            "prepaid": 0.0,
            "credit": 0.0,
            "provision": 0.0
        },
        "date_to": "2018-07-25"
    },
    "total": 2
}