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

Внимание

Новые ключи временно не выпускаются в связи с обновлением продукта.

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

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

POST https://api.ofd.yandex.net/{v1}/docs/aggregations/sales
  • 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
    Количество интервалов в заданном периоде.

Коды ответа

Список кодов, которые поддерживаются в API ОФД см. в разделе Коды ответов и ошибки.

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

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

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
}