Интеграция c внешними системами

API интерфейс используется для предоставления данных сервиса Инноват внешним системам. Работает по протоколу HTTPS и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы. Использование методов ограничено HTTP Basic Authentication и заранее определенным списком IP адресов. Ограничение на количество запросов не предусмотрено. Кроссдоменные запросы запрещены. Параметры GET запросов передаются в query компоненте URI. Параметры POST запросов передаются в body JSON структурах. Все ответы приходят в виде JSON структур.

Запрос данных пользователя

GET https://api0.sms-dnevnik.com/integrations/data/users

Query Parameters

Name
Type
Description

phone

string

номер телефона пользователя

rfid

string

RFID идентификатор пользователя

snils

string

СНИЛС (в формате 111-111-111 11)

details

string

0 - минимальный набор данных 1.0 1 - расширенный набор данных

2 - минимальный набор данных 2.0

значение по умолчанию - 0

Минимальный 1.0 набор данных пользователя:

roles - набор ролей: PARENT - родитель; STUDENT - учащийся; EMPLOYEE - сотрудник password - статус пароля: NONE - отсутствует - пользователь не активирован; TEMP - временный - пароль сгенерирован системой PERM - постоянный - пароль установлен пользователем subscriptions - текущие подписки: DIARY - ключ - идентификатор услуги; expired_at - время окончания действия.

Расширенный набор включает минимальный и дополнительно:

activity - дата последней активности пользователя DIARY - ключ - идентификатор услуги last_name, first_name, middle_name - ФИО phone - номер телефона birthdate - дата рождения country, city, district, school - страна, город, район города, школа school_class, school_status - класс и статус учащегося

Минимальный 2.0 набор данных пользователя:

аккаунт id и ФИО детей, если это родитель.

{
  "roles": [
    "PARENT",
    "EMPLOYEE"
  ],
  "password": "NONE",
  "subscriptions": {
    "DIARY": {
     "expired_at": "2020-08-17T10:31:58Z"
  },
  "activity": {
    "DIARY": "2020-09-17"
  },
  "first_name": "Мария",
  "middle_name": null,
  "last_name": "Петрова",
  "birthdate": null,
  "account_number": "00066248",   // л/с
  "phone": "+996551234567",
  "city": "Саратов",
  "country": "Россия",
  "district": null,
  "school": "Пробная школа",
  "school_class": "1 \"б\"",
  "school_status": "Текущий",
  "parents": [
    {
      "parent_role": null,
      "first_name": "Сергей",
      "middle_name": null,
      "last_name": "Петров",
      "birthdate": null,
      "phone": null,
      "city": "Бишкек",
      "country": "Киргизия"
    }
  ],
  "students": [
    {
      "first_name": "Мария",
      "middle_name": null,
      "last_name": "Петрова",
      "birthdate": null,
      "phone": "+996551234567",
      "city": "Бишкек",
      "country": "Киргизия",
      "district": null,
      "school": "Пробная школа",
      "school_class": "1 \"б\"",
      "school_status": "Текущий"
    }
  ]
}

Запрос данных учащегося

GET https://api0.sms-dnevnik.com/integrations/data/students

Query Parameters

Name
Type
Description

phone

string

номер телефона пользователя

rfid

string

RFID идентификатор пользователя

snils

string

СНИЛС (в формате 111-111-111 11)

{ "message": "User Not Found" }

Запрос данных учащихся по родителю

GET https://api0.sms-dnevnik.com/integrations/data/parents

Query Parameters

Name
Type
Description

phone

string

номер телефона пользователя

rfid

string

RFID идентификатор пользователя

snils

string

СНИЛС (в формате 111-111-111 11)

{ "message": "User Not Found" }

Запрос списка школ

GET https://api0.sms-dnevnik.com/integrations/data/schools

Возвращает список доступных школ

Query Parameters

Name
Type
Description

offset

string

limit

string

лимит

{
  "total": 1,
  "limit": 1000,
  "offset": 0,
  "page": [
    {
      "id": 1,
      "country": "Киргизия",
      "city": "Бишкек",
      "district": null,
      "title": "Пробная школа",
      "years": [
        {
          "id": 294,
          "title": "2012-2013",
          "students_count": 200
        }
      ],
      "buildings": [
        {
          "id": 188,
          "title": "Основной корпус"
        }
      ],
      "employees_count": 100
    }
  ]
}

Обновление телефона

POST https://api0.sms-dnevnik.com/integrations/change/phone

Request Body

Name
Type
Description

new_phone

string

новый номер тефона

old_phone

string

старый номер телефона

{ "message": "Phone Changed" }

Обновление пароля

POST https://api0.sms-dnevnik.com/integrations/change/password

Пользователю отправляется SMS с новым паролем.

Request Body

Name
Type
Description

phone

string

Номер телефона пользователя.

{ "message": "Password Changed" }

Обновление подписки

POST https://api0.sms-dnevnik.com/integrations/change/subscription

Request Body

Name
Type
Description

expired_at

string

Время до которого будет создана подписка формат: YYYY-MM-DDThh:mm:ssZ

to_date

string

Дата до которой будет создана подписка формат: YYYY-MM-DD

change

string

Идентификатор изменения. Возможные значения: CREATE, REMOVE

service

string

Идентификатор услуги. Возможные значения: DIARY

phone

string

Номер телефона пользователя.

{ "message": "Subscription Created|Removed" }

Корректировка баланса для питания

POST https://api0.sms-dnevnik.com/integrations/change/cafeteria_balance

Request Body

Name
Type
Description

account_number*

String

Номер лицевого счета

value*

Float

Сумма изменения (положительная или отрицательная)

comment

String

Комментарий

camp_school_id

Int

ID учебного заведения, в котором существует пришкольный лагерь, в этом случае будет пополнен баланс питания за лагерь

{
    // Response
}

Выгрузка пользователей (два варианта)

POST https://api0.sms-dnevnik.com/integrations/data/reports

Возможные типы отчетов: 1. Выгрузка пользователей. Вариант 1. a8c78e0c-2690-4870-a4a9-3b03485aa793 Выгрузка пользователей телеком оператора: [ { "roles": [ "STUDENT" ], "first_name": "Иван", "middle_name": "Иванович", "last_name": "Иванов", "birthdate": "2008-12-12", "phone": "+996702123456", "city": "Бишкек", "activity": { "DIARY": "2020-11-01" } "subscriptions": { "DIARY": { "expired_at": null } } } ] Примеры запросов: 1.1 выгрузка всех пользователей телеком оператора: POST <host>/integrations/data/reports { "kind": "a8c78e0c-2690-4870-a4a9-3b03485aa793" } 1.2 выгрузка всех пользователей телеком оператора, добавить в ответ данные о подписках: POST <host>/integrations/data/reports { "kind": "a8c78e0c-2690-4870-a4a9-3b03485aa793", "include": ["SUBSCRIPTIONS"] } 1.3 выгрузка пользователей телеком оператора с активностью 17.09.2020: POST <host>/integrations/data/reports { "kind": "a8c78e0c-2690-4870-a4a9-3b03485aa793", "activity_from_date": "2020-09-17", "activity_to_date": "2020-09-17" } 2. Выгрузка пользователей. Вариант 2. 1548fbae-520c-429b-bb43-1bf5299357a9 Выгрузка пользователей: [ { "account_id": 12345, "account_number": "12345", "account_role": "STUDENT", "first_name": "Иван", "middle_name": "Иванович", "last_name": "Иванов", "birthdate": null, "city": "Саратов", "city_id": 12345, "school": "Лицей 15", "school_id": 12345, "school_class": "5А", "school_class_id": 12345, "school_class_date": "2020-09-01", "school_class_shift": "1", "school_status": "Выбыл", "snils": "123-456-789-01", "cafeteria_rejected": false,

"parents": [ { "account_id": 6277, "parent_role": "Мама", "first_name": "Ирина", "middle_name": "Борисовна", "last_name": "Иванова", "phone": "+798712345" }, ] "identifiers": [ { "number": "AABBCCDDEEFF" } ],

"subsidy_orders": [ { "scope": "Индивидуальная", "allowance": "Малоимущая семья", "status": "Текущая", "accrual": "Комплекты", "sum": "0.0", "complexes": [ { "title": "Вечерний3" } ], "from": "2021-09-01", "to": "2022-09-01" }

"camps": [ { "school_id": 587, "school": "Лицей 15", "balance": 92.8, "groups": [ { "id": 65, "title": "Весна 1", "invite_date": "2023-05-01", "expulsion_date": "2023-05-16", "food_mode": "Двухразовое питание" // режим питания }, { "id": 66, "title": "Лето 1", "invite_date": "2023-05-11", "expulsion_date": "2023-05-20", "food_mode": "Не указано" // режим питания } ] } ]

] ],

} ] Примеры запросов: 2.1 выгрузка всех пользователей указанных школ: POST <host>/integrations/data/reports { "kind": "1548fbae-520c-429b-bb43-1bf5299357a9", "schools": [1,2,3] }

Request Body

Name
Type
Description

schools

array

фильтр - список идентификаторов школ

include

array

дополнительные блоки вложенных данных, где SUBSCRIPTIONS - подписки SNILS - номер СНИЛС IDENTIFIERS - идентификаторы SUBSIDY_ORDERS - справки о льготах

CAMPS - информация о пришкольных лагерях

kind

string

Тип отчета: USERS - выгрузка пользователей

activity_from_date

string

фильтр - период активности, дата начала

activity_to_data

string

фильтр - период активности, дата окончания

{
  id: 123,
  progress: 0
}

Выгрузка финансовых операций

POST https://api0.sms-dnevnik.com/integrations/data/reports

Финансовые операции по счету за питание (пополнения и списания) на выбранную дату

Path Parameters

Name
Type
Description

date*

string

дата

kind*

string

885199c4-e33d-42dc-97d3-1422956d9dc7

schools*

array

фильтр - список идентификаторов школ

include*

array

массив строк с нужными типами операций

WRITE_OFFS - списания

PAYMENTS - пополнения

CORRECTIONS - корректирующие пополнения

account_type

string

SCHOOL - операции по счету за школьное питание (по умолчанию)

CAMP - операции по счету за питание в пришкольных лагерях

[
  {
    "vid": "115495#2",
    "operation_type": "write-off",
    "value": 4.0,
    "datetime": "2021-09-17T09:47:59+03:00",
    "school_id": 587,
    "klass_id": 14253,
    "payments_account_number": "00045538",
    "fullname": "Бабец Дмитрий",   
    "comment": "Личная продажа Бабцу Дмитрию в 11 \"а\" классе Лицей 15, № 1570305 от 17.09.21, блюдо: Новый, продажа №1502437 от 27.11.2018"
  },
  {
    "vid": "61913#3",
    "operation_type": "refill",
    "value": 500.0,
    "datetime": "2021-09-17T10:49:38+03:00",
    "school_id": 587,
    "klass_id": 16640,
    "payments_account_number": "00081740",
    "fullname": "Бабец Дмитрий",  
    "payment_source": "Сбербанк (столовая)",
    "comment": "Пополнение средств на счете за питание Боброва Егора (1 \"к\" класс Лицей 15) через Сбербанк (на основании платежа №300862)"
  }
]

Выгрузка фактического питания и дотаций

POST https://api0.sms-dnevnik.com/integrations/data/reports

Сумма продаж и дотаций по доступным поставщикам питания на выбранную дату

Path Parameters

Name
Type
Description

kind*

string

ea78c447-4199-47ec-9f41-eda193f40327

date*

string

дата

account_type

string

SCHOOL - операции по счету за школьное питание (по умолчанию)

CAMP - операции по счету за питание в пришкольных лагерях

{
  [
    {
      "payments_account_number": "00064542",
      "fullname": "Афонина Анастасия Владиславовна",
      "sales_sum": 20,
      "sales": [
        {
          "title": "Завтрак",
          "cost": 15.0,
          "count": 1, // кол-во
          "nomenclature": "101", // номенклатура продукции
          "item_id": 12345, // идентификатор продукции
          "item_type": "item", // item - продукция или complex - комплект
          "sale_type": "personal", // order - продажа по заявке (комплексное питание), personal - индивидуальная покупка
          "school_title": "Лицей 15",
          "school_id": 587,
          "building_id": 1, // корпус
          "klass_title": "11 \"д\"",
          "klass_id": 12345,
          "subsidy": {  // информация о дотации, начисленной на продажу
            "value": 15.0,  // сумма дотации 
            "order_type": "common", // common - общая справка, personal - личная
            "allowance": "Малоимущая семья" // категория льгот
          }
        ]
      }
      "subsidies_sum": 10
    }
  ]
}

Выгрузка фактического питания и дотаций (по всем пользователям)

POST https://api0.sms-dnevnik.com/integrations/data/reports

Сумма продаж и дотаций по всем пользователям на выбранную дату

Path Parameters

Name
Type
Description

account_type

String

SCHOOL - операции по счету за школьное питание (по умолчанию)

CAMP - операции по счету за питание в пришкольных лагерях

Request Body

Name
Type
Description

kind *

String

08d2f70d-1ea6-4fb5-91d1-5ab7ff09e0c4

date*

String

дата

{
  [
    {
      "payments_account_number": "00064542",
      "fullname": "Афонина Анастасия Владиславовна",
      "sales_sum": 20,
      "sales": [
        {
          "title": "Завтрак",
          "cost": 15.0,
          "count": 1, // кол-во
          "nomenclature": "101", // номенклатура продукции          
          "item_id": 12345, // идентификатор продукции
          "item_type": "item", // item - продукция или complex - комплект
          "sale_type": "personal", // order - продажа по заявке (комплексное питание), personal - индивидуальная покупка
          "school_title": "Лицей 15",
          "school_id": 587,
          "building_id": 1, // корпус
          "klass_title": "11 \"д\"",
          "klass_id": 12345,          
          "subsidy": {
            "value": 15.0,
            "order_type": "common", // common - общая справка, personal - личная
            "allowance": "Малоимущая семья" // категория льгот
          }
        ]
      }
      "subsidies_sum": 10
    }
  ]
}

Продажи по способу расчета

POST https://api0.sms-dnevnik.com/integrations/data/reports

Сумма продаж, сгруппированная по способу расчет за выбранный период

Request Body

Name
Type
Description

kind *

String

82de40c7-c18b-42d0-ae01-80e31321b99e

from_date*

String

дата начала периода

to_date*

String

дата окончания периода

details*

Boolean

флаг детализации

{  
  // итоговые суммы 
  "summary": {
    "Внутренний счет": 13234.89,
    "Наличные": 390.0,
    "Банковская карта": 30.0,
    "Итого покупателей": 42,
    "Итого": 13676.41,
    "Сумма дотаций": 52.0,
    "Итого без учета дотаций": 13624.41
  },
  
  // детализация
  "groups": [
    {
      "title": "Внутренний счет",  // наименование группы способа расчета
      "total": 13266.39,
      
      // список позиций 
      "items": [                   
         {
          "title": "ПОЛДНИК",
          "n": 15,             // кол-во
          "cost": 25.0,        // стоимость
          "sum": 375.0         // сумма
         },
         ...
       ]
    },
    ...
    {
      "title": "Всего",           // итоговая детализация
      "total": 13676.41,
      "items": [
        {
          "title": "ПОЛДНИК",
          "n": 15,
          "cost": 25.0,
          "sum": 375.0
        },
        ...
      ]
    }
  ]
}  
        

Выгрузка продаж с группировкой по продукции и комплектам

POST https://api0.sms-dnevnik.com/integrations/data/reports

Request Body

Name
Type
Description

kind *

String

d5d34cf1-a3ad-41ea-b127-e459401364b8

date*

Date

дата

school_id*

Integer

id школы

[
  {
    "item_type": "item", // item - продукция или complex - комплект
    "item_id": 335,  // идентификатор продукции или комплекта
    "nomenclature": null, // номенклатура
    "title": "БОРЩ.", // наименование
    "cost": 20.0, // стоимость
    "portion": "", // порция
    "n": 1, // кол-во
    "sum": 20.0 // сумма,
    "sale_type": "personal", // personal - буфет или order - горячее питание
    "sale_point": "Столовая 1 этаж", // точка продаж
    "building": "Основной корпус" // корпус
  },
  {
    "item_type": "complex", // item - продукция или complex - комплект
    "item_id": 20,  // идентификатор продукции или комплекта
    "title": "ПОЛДНИК", // наименование
    "cost": 25.0, // стоимость
    "portion": null, // порция
    "items": [  // состав
      {
        "item_type": "item",
        "item_id": 1613, // идентификатор продукции или комплекта
        "nomenclature": "500-Ф", // номенклатура
        "title": "Авокадо", // наименование
        "cost": null, // стоимость
        "portion": "1шт." // порция
      }
    ],
    "n": 1, // кол-во
    "sum": 25.0 // сумма,
    "sale_type": "complex", // personal - буфет или order - горячее питание
    "sale_point": "Столовая 1 этаж", // точка продаж
    "building": "Основной корпус" // корпус
  }
]

Выгрузка сумм платежей

POST https://api0.sms-dnevnik.com/integrations/data/reports

Сумма платежей за выбранный период с разделением по источникам и датам. Если в запросе не указана конкретная школа, то данные детализируются по всем доступным школам. В противном случае, данные детализируются по классам и сотрудникам.

Request Body

Name
Type
Description

to_date*

string

до

from_date*

string

от

year_id

integer

учебный год

school_id

integer

школа

kind*

string

65004e9a-617b-4f94-a0af-140ea0c7a143

[
  // детализация по школе (запрос без указания конкретной школы)
  {
    "school_id": 587,
    "school_title": "Лицей 15",
    "days": [
      {
        "date": "2021-09-17",
        "sources_data": [
          {
            "source": "Сбербанк",
            "sum": 13.0
          }
      }
  },
  
  // детализация по группам (запрос с указанием конкретной школы)
  {
    "group": "11 \"а\"",
    "days": [
      {
        "date": "2021-09-17",
        "sources_data": [
          {
            "source": "Сбербанк",
            "sum": 13.0
          }
      }
  }
]

Выгрузка реестров получателей горячего питания

POST https://api0.sms-dnevnik.com/integrations/data/reports

Ресстры получателей горячего питания по дням и школам.

Request Body

Name
Type
Description

from_date*

date

дата начала периода выборки

to_date*

date

дата окончания периода выборки

school_id*

integer

идентификатор школы

kind*

string

64a94d31-e7d3-4d8b-a473-e55ddbca5241

[
  {
    "school_id": 587,
    "date": "2023-11-01",
    
    "error": null,
    
    "report":{
      "Возрастная группа 1-4":{
        "Смена 1":{
          "Обычная категория": 0,
          "Дети-инвалиды": 0,
          "ОВЗ": 0
        },
        "Смена 2":{
          "Обычная категория": 0,
          "Дети-инвалиды": 0,
          "ОВЗ": 0
        }
      },
      "Возрастная группа 5-11":{
        "Смена 1":{
          "Обычная категория":7,
          "Обычная категория (родительская плата)": 35.0,
          "Многодетная семья": 0,
          "Многодетная семья (родительская плата)": 0.0,
          "Дети-инвалиды": 0,
          "ОВЗ": 0,
          "Дети из семей военнослужащих, проходящих военную службу": 0,
          "Дети граждан, погибших (умерших) при исполнении служебных обязанностей": 0
        },
        "Смена 2":{
          "Обычная категория": 0,
          "Обычная категория (родительская плата)": 0.0,
          "Многодетная семья": 0,
          "Многодетная семья (родительская плата)": 0.0,
          "Дети-инвалиды": 0,
          "ОВЗ": 0,
          "Дети из семей военнослужащих, проходящих военную службу": 0,
          "Дети граждан, погибших (умерших) при исполнении служебных обязанностей": 0
        }
      }
    }
  },
  {
    "school_id": 587,
    "date": "2023-11-02",
    
    "error": "невозможно сформировать отчет, имеются непроведенные заявки",
    
    "report":{}
  }
]

Выгрузка посещаемости столовой

POST https://api0.sms-dnevnik.com/integrations/data/reports

Посещаемость столовой с разделением по классам, датам и режимам питания

Request Body

Name
Type
Description

to_date

string

до

from_date

string

от

year_id

integer

учебный год

school_id

integer

школа

kind

string

ae4cf67b-8b7d-435e-8399-534e9a4b92bf

[
  {
    "group": "10 \"б\"",
    "students_count": 20,
    "days": [
      {
        "date": "2021-09-29",
        "attendance_data": {
          "personal_sales": {
            "sum": 100,
            "count": 10,
            "percents": 50.0
          },
          "order_sales": {
            "total": {
              "sum": 100,
              "count": 11,
              "percents": 55.0
            },
            "breakfast": {
              "sum": 100,
              "count": 7,
              "percents": 35.0
            },
            "dinner": {
              "sum": 100,
              "count": 7,
              "percents": 35.0
            },
            "afternoon": {
              "sum": 100, 
              "count": 7,
              "percents": 35.0
            },
            "breakfast_dinner": {
              "sum": 100,
              "count": 4,
              "percents": 20.0
            },
            "dinner_afternoon": {
              "sum": 100,
              "count": 4,
              "percents": 20.0
            },
            "breakfast_afternoon": {
              "sum": 100,
              "count": 4,
              "percents": 20.0
            },
            "breakfast_dinner_afternoon": {
              "sum": 100,
              "count": 2,
              "percents": 10.0
            }
          }
        }
      }
    ]
  }
]

Выгрузка посещаемости столовой и суммы продаж

POST https://api0.sms-dnevnik.com/integrations/data/reports

Request Body

Name
Type
Description

kind*

String

2d2f00b2-91ec-43b8-96d8-7d0d2477f259

date*

String

дата

[
  {
    "school_id": 587,
    "school_title": "Лицей 15",
    "data": [
      {
        "group": "1 \"е\"",
        "students_count": 1,  // количество учеников, получивших питание
        "sales_without_subsidies_sum": 0.0,  // сумма продаж без учета дотаций
        "subsidies_sum": 25.0  // сумма дотаций
      },
      {
        "group": "2 \"е\"",
        "students_count": 1,
        "sales_without_subsidies_sum": 0.0,
        "subsidies_sum": 15.0
      },
    ]
  }
]

Выгрузка мониторинга заявок

POST https://api0.sms-dnevnik.com/integrations/data/reports

Request Body

Name
Type
Description

date*

дата

kind*

String

d4ec7094-4ab0-4204-830e-d614673098d5

{
  "schools": [
    {
      "school_id": 587,
      "school_title": "Лицей 15",
      "food_modes": [
        {
          "pending": 12,
          "performed": 8,
          "lacking": 0,
          "title": "Завтрак"
        },
        {
          "pending": 10,
          "performed": 2,
          "lacking": 8,
          "title": "Обед"
        },
        {
          "pending": 0,
          "performed": 0,
          "lacking": 20,
          "title": "Полдник"
        }
      ],
      "groups": [
        {
          "title": "1 А",
          "workday": true,
          "food_modes": [
            {
              "title": "Завтрак",
              "status": "Заявки отсутствуют",
              "restriction": null,
              "pending": 0,
              "performed": 0
            },
            {
              "title": "Обед",
              "status": "Заявки отсутствуют",
              "restriction": {
                "day_mode": "today" 
                "time": "09:00"              
              },
              "pending": 0,
              "performed": 0
            },
            {
              "title": "Полдник",
              "status": "Заявки отсутствуют",
              "restriction": null,
              "pending": 0,
              "performed": 0
            }
          ]
        }
      ]
    }
  ],
  "food_modes": [
    {
      "pending": 50,
      "performed": 58,
      "lacking": 0,
      "title": "Завтрак"
    },
    {
      "pending": 50,
      "performed": 50,
      "lacking": 8,
      "title": "Обед"
    },
    {
      "pending": 0,
      "performed": 0,
      "lacking": 108,
      "title": "Полдник"
    }
  ]
}

где:

$.schools - список доступных школ
$.schools[*].school_id - идентификатор школы
$.schools[*].school_title - наименование школы

$.schools[*].groups - список групп учащихся: классы и ГПД

$.schools[*].groups[*].title - наименование группы 
$.schools[*].groups[*].workday - флаг: true - учебный день, false - выходной

$.schools[*].groups[*].food_modes - список режимов питания группы

$.schools[*].groups[*].food_modes[*].title - наименование режима
$.schools[*].groups[*].food_modes[*].status - статус режима питания
$.schools[*].groups[*].food_modes[*].pending - количество непроведенных заявок
$.schools[*].groups[*].food_modes[*].performed - количество проведенных заявок

$.schools[*].groups[*].food_modes[*].restriction - ограничения режима
$.schools[*].groups[*].food_modes[*].restriction.time - время до которого создание и редактирование заявок ограничено
$.schools[*].groups[*].food_modes[*].restriction.day_mode=today - ограничение действует в день питания
$.schools[*].groups[*].food_modes[*].restriction.day_mode=before - ограничение действует за день до питания

$.schools[*].food_modes - список режимов питания по всем группам школы
$.schools[*].food_modes[*].title - наименование режима
$.schools[*].food_modes[*].pending - количество непроведенных заявок
$.schools[*].food_modes[*].performed - количество проведенных заявок
$.schools[*].food_modes[*].lacking - количество групп на которых нет заявок

$.food_modes - список режимов питания по всем школам
$.food_modes[*].title - наименование режима
$.food_modes[*].pending - количество непроведенных заявок
$.food_modes[*].performed - количество проведенных заявок
$.food_modes[*].lacking - количество групп на которых нет заявок

Выгрузка сводной информации по проходной и столовой

POST https://api0.sms-dnevnik.com/integrations/data/reports

Request Body

Name
Type
Description

kind*

String

3f1050b0-7a89-42bb-891f-ab7da2cb11ed

date*

String

дата

[
  {
    "school_id": 587,
    "school_title": "Лицей 15",
    "access": {
      "enabled": true,
      "students": {
        "g_1_4": {
          "count": 97
        },
        "g_5_11": {
          "count": 375
        },
        "total": {
          "count": 472
        }
      },
      "attended": {
        "g_1_4": {
          "count": 0
        },
        "g_5_11": {
          "count": 0
        },
        "total": {
          "count": 0
        }
      }
    },
    "cafeteria": {
      "enabled": true,
      "ordered": {
        "summary": {
          "g_1_4": {
            "count": 0,
            "sum": 0.0
          },
          "g_5_11": {
            "count": 0,
            "sum": 0.0
          },
          "total": {
            "count": 0,
            "sum": 0.0
          }
        },
        "breakfast": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "dinner": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "afternoon": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "breakfast_dinner": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "breakfast_afternoon": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "dinner_afternoon": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "breakfast_dinner_afternoon": {
          "surcharge": {
            "g_1_4": {
              "count": 0,
              "sum": 0.0
            },
            "g_5_11": {
              "count": 0,
              "sum": 0.0
            },
            "total": {
              "count": 0,
              "sum": 0.0
            }
          },
          "subsidies": []
        },
        "without": {
          "g_1_4": {
            "count": 97
          },
          "g_5_11": {
            "count": 375
          },
          "total": {
            "count": 472
          }
        }
      }
    }
  }
]

где:

$[*].school_id - идентификатор школы
$[*].school_title - наименование школы

$[*].access.enabled - флаг наличия проходной

$[*].access.students - количество учащихся 
$[*].access.students.g_1_4.count - в 1-4 классах
$[*].access.students.g_5_11.count - в 5-11 классах
$[*].access.students.total.count - всего

$[*].access.attended - учащиеся посетившие школу по данным с проходной
$[*].access.attended.g_1_4.count - в 1-4 классах
$[*].access.attended.g_5_11.count - в 5-11 классах
$[*].access.attended.total.count - всего

$[*].cafeteria.enabled - флаг наличия столовой
$[*].cafeteria.ordered - данные по комплексному питанию

$[*].cafeteria.ordered.summary - учащиеся посетившие столовую по данным заявок
$[*].cafeteria.ordered.summary.g_1_4.count - в 1-4 классах
$[*].cafeteria.ordered.summary.g_1_4.sum - сумма продаж
$[*].cafeteria.ordered.summary.g_5_11.count - в 5-11 классах
$[*].cafeteria.ordered.summary.g_5_11.sum - сумма продаж
$[*].cafeteria.ordered.summary.total.count - всего
$[*].cafeteria.ordered.summary.total.sum - сумма продаж

$[*].cafeteria.ordered.without - учащиеся не посетившие столовую
$[*].cafeteria.ordered.without.g_1_4.count - в 1-4 классах
$[*].cafeteria.ordered.without.g_5_11.count - в 5-11 классах
$[*].cafeteria.ordered.without.total.count - всего

сводные данные по режимам питания:

$[*].cafeteria.ordered.breakfast - завтрак
$[*].cafeteria.ordered.dinner - обед
$[*].cafeteria.ordered.afternoon - полдник
$[*].cafeteria.ordered.breakfast_dinner - завтрак + обед
$[*].cafeteria.ordered.breakfast_afternoon - завтрак + полдник
$[*].cafeteria.ordered.dinner_afternoon - обед + полдник
$[*].cafeteria.ordered.breakfast_dinner_afternoon - завтрак + обед + полдник

каждый режим включает данные на примере завтрака:

$[*].cafeteria.ordered.breakfast.surcharge - данные по расходам родителей
$[*].cafeteria.ordered.breakfast.surcharge.g_1_4.count - в 1-4 классах
$[*].cafeteria.ordered.breakfast.surcharge.g_1_4.sum - сумма продаж
$[*].cafeteria.ordered.breakfast.surcharge.g_5_11.count - в 5-11 классах
$[*].cafeteria.ordered.breakfast.surcharge.g_5_11.sum - сумма продаж
$[*].cafeteria.ordered.breakfast.surcharge.total.count - всего
$[*].cafeteria.ordered.breakfast.surcharge.total.sum - сумма продаж

$[*].cafeteria.ordered.breakfast.subsidies - данные по расходам бюджета
$[*].cafeteria.ordered.breakfast.subsidies[*].allowance - категория льгот
$[*].cafeteria.ordered.breakfast.subsidies[*].g_1_4.count - в 1-4 классах
$[*].cafeteria.ordered.breakfast.subsidies[*].g_1_4.sum - сумма продаж
$[*].cafeteria.ordered.breakfast.subsidies[*].g_5_11.count - в 5-11 классах
$[*].cafeteria.ordered.breakfast.subsidies[*].g_5_11.sum - сумма продаж
$[*].cafeteria.ordered.breakfast.subsidies[*].total.count - всего
$[*].cafeteria.ordered.breakfast.subsidies[*].total.sum - сумма продаж

Выгрузка карт Сбербанка

POST https://api0.sms-dnevnik.com/integrations/data/reports

Request Body

Name
Type
Description

kind

String

3378e35a-903f-49ab-bfbf-912a467b8fca

[
  {
    "name": "Авдеев Павел Андреевич",
    "birthdate": "2010-03-01",
    "school": "Лицей 15",
    "number": "4567",
    "created": "2022-10-03T11:04:33+03:00"
  }
]

[*].name - ФИО
[*].birthdate - дата рождения
[*].school - учебное заведение
[*].number - последние 4 цифры номера карты
[*].created - время добавления

Запрос состояния выгрузки

GET https://api0.sms-dnevnik.com/integrations/data/reports/<id>

Используется для получения прогресса формирования отчета

Query Parameters

Name
Type
Description

id

integer

идентификатор отчета

{
  id: 1234,
  progress: 15
}

Запрос данных выгрузки

GET https://api0.sms-dnevnik.com/integrations/data/reports/<id>/data

После того как прогресс достигнет 100 можно запросить сформированные данные

Query Parameters

Name
Type
Description

id

integer

идентификатор отчета

<data>

Запрос данных проходов

GET https://api0.sms-dnevnik.com/integrations/data/passages

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

Query Parameters

Name
Type
Description

offset

number

смещение

limit

number

лимит

from_date

string

дата начала периода выборки

to_date

string

дата окончания периода выборки

phone

string

номер телефона пользователя

rfid

string

RFID идентификатор пользователя

account_id

integer

идентификатор пользователя учащегося

{
  "total": 21,
  "limit": 10,
  "offset": 20,
  "page": [
    {
      "time": "2021-02-10T08:00:00+03:00",
      "school": "Лицей 15",
      "action": "in",
      "comment": "Не был произведен выход"
    }
  ]

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

GET https://api0.sms-dnevnik.com/integrations/data/passages_count

Возвращает количество проходов по каждому классу выбранного учебного года, а также сотрудников. За каждый день выбранного периода.

Path Parameters

Name
Type
Description

year_id

integer

id учебного года

from_date

string

дата начала периода выборки

to_date

string

дата окончания периода выборки

school_id

integer

id школы

{
  "data": [
    {
      "group": "2 \"А\"",
      "subjects_count": 20,  // всего учащихся/сотрудников в группе
      "days": [
        {
          "date": "2021-06-25",
          "passages_count": 10,
          "passages_subjects_count": 1 // всего уникальных учащихся/сотрудников с проходами
        }
      ]
    },
    
    {
      "group": "Сотрудники",
      "subjects_count": 20,  // всего учащихся/сотрудников в группе
      "days": [
        {
          "date": "2021-06-25",
          "passages_count": 20,
          "passages_subjects_count": 1
        }
      ]
    }
  ]
}
    

Запрос заявок по столовой

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/orders

Возвращает перечень заявок и их содержимое на выбранную дату.

Path Parameters

Name
Type
Description

date

string

school_id

integer

{
  "school": {
    "id": 587,
    "title": "Лицей 15"
  },
  "orders": [
    {
      "id": 9737,
      "date": "2020-06-22",
      "group": "9 \"а\"",
      "status": "Ожидает проведения",
      "building_id": 188,
      "updated_at": "2020-06-22T10:01:38+03:00",
      "items": [],
      "complexes": [
        {
          "title": "Комплект 6",
          "cost": 6.0,
          "count": "5",
          "list": [
            {
              "id": 1510,
              "title": "Банан",
              "cost": 26.37
            },
            {
              "id": 1529,
              "title": "Апельсин",
              "cost": 20.0
            },
            {
              "id": 1532,
              "title": "Choco pie",
              "cost": 25.0
            }
          ]
        }
      ]
    },
    {
      "id": 9738,
      "date": "2020-06-22",
      "group": "9 \"а\"",
      "status": "Проведена",
      "building_id": 188,
      "updated_at": "2020-06-22T10:06:50+03:00",
      "items": [
        {
          "id": 417,
          "title": "Хлеб",
          "cost": 1.5,
          "count": 5
        }
      ],
      "complexes": []
    }
  ]
}

Запрос поставщиков питания

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/food_suppliers

Возвращает список поставщиков питания, по которым доступны операции

Path Parameters

Name
Type
Description

string

{
  "food_suppliers": [
    {
      "id": 869,
      "title": "ООО \"Инноват\""
    }
  ]
}

Запрос продукции поставщика питания

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/items

Возвращает список блюд поставщика питания

Path Parameters

Name
Type
Description

food_supplier_id

integer

id поставщика питания

{
  "items": [
    {
      "id": 220,
      "title": "Бублик",
      "portion": "60",
      "cost": 25.0,
      "nomenclature": null,
      "production_type": 1
    },
    {
      "id": 222,
      "title": "Булочка домашняя.",
      "portion": "250 гр",
      "cost": 100.0,
      "nomenclature": "123",
      "production_type": 2
    }
  ]
}

Запрос типов продукции поставщика питания

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/production_types

Возвращает список типов продукции поставщика питания

Path Parameters

Name
Type
Description

food_supplier_id

integer

id поставщика питания

{
	"production_types": [
		{
			"id": 1,
			"title": "Собственное производство"
		},
		{
			"id": 2,
			"title": "Привозная продукция"
		}
	]
}

Запрос комплектов

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/complexes

Возвращает список комплектов с составом на выбранную дату, по выбранным школам

Query Parameters

Name
Type
Description

date

String

Дата (по умолчанию текущая)

school_ids[]

Набор параметров с id школ

(в виде school_ids[]=1&school_ids[]=2&...),

по умолчанию все доступные

{
 "complexes": [
     {
      "id": 3,
      "school_id": 587,
      "title": "Завтрак  №12",
      "fixed_price": true,    // фиксированная цена
      "cost": 45.0, 
      "grocery_set_price": 22.0 // стоимость продуктового набора
      "items": [
        {
          "id": 269,
          "title": "Гуляш из говядины.",
          "portion": "100 (20/80)",
          "cost": 21.0,
          "nomenclature": null,
          "production_type": "imported"
        },
        {
          "id": 1478,
          "title": "Булочка вкусная",
          "portion": "70",
          "cost": 15.0,
          "nomenclature": null,
          "production_type": "imported"
        }
      ]
    }
  ]
}

Запрос добавления/изменения блюда поставщика питания

POST https://api0.sms-dnevnik.com/integrations/data/cafeteria/item

Добавление/изменения блюда.

Request Body

Name
Type
Description

options

object

дополнительные параметры: all_schools - сохранить во всех школах поставщика all_menu_single - сохранить в меню, применяя к продукции all_menu_complex - сохранить в меню, применяя к комплектам пример: { "all_schools": true, "all_menu_single": true, "all_menu_complex": true }

item

object

id - используется для синхронизации с базой блюд, имеющейся на сервере (блюдо с заданным id будет обновлено) nomenclature - используется для синхронизации с базой блюд внешней системы (блюдо с заданным nomenclature будет обновлено) production_type - принимает значение own (Собственное производство) или imported (Привозная продукция) пример: { "id": 1, "title": "Булка", "cost": 10, "portion": "2", "nomenclature": "12356", "production_type": 1 }

food_supplier_id

integer

id поставщика питания

{
  "item": {
    "id": 1836,
    "title": "Булка",
    "portion": "2",
    "cost": 11.0,
    "nomenclature": "24",
    "production_type": 1
  }
}

Запрос изменения комплекта

PUT https://api0.sms-dnevnik.com/integrations/data/cafeteria/complexes/:id

Изменение стоимости и/или состава комплекта на выбранную дату

Path Parameters

Name
Type
Description

id*

integer

id комплекта

Request Body

Name
Type
Description

school_id*

integer

id школы

items

array

массив объектов блюд

id - блюдо cost- стоимость

portion - порция пример: [

{

"id": 1,

"cost": 20,

"portion": "1 шт."

}

]

date*

date

дата

cost

float

стоимость, для комплектов с фиксированной стоимостью

grocery_set_price

float

стоимость продуктового набора

{
  "status": "ok",
  "complex": {
    "id": 3,
    "school_id": 587,
    "title": "Завтрак  №12",
    "fixed_price": true,
    "cost": 20.0,
    "grocery_set_price": 22.0,
    "items": [
      {
        "id": 1,
        "title": "Булка",
        "cost": 20,
        "portion": "1 шт.",
        "nomenclature": "11",
        "production_type": "own"
      }
    ]
  }
}

Импорт квитанций

POST https://api0.sms-dnevnik.com/integrations/data/jobs

Создание задачи импорта квитанций: POST <host>/integrations/data/jobs { "kind": "d490cb45-8145-43cc-97a1-868d443bbfd3", "data": [ { "account_number": "1234567890", "order_school_id": 587, "order_number": "20210809", "order_amount": "100.0", "order_kind": "SCHOOL" } ] } data содержит список объектов account_number - номер ЛС order_number - номер квитанции order_amount - сумма квитанции order_kind - тип квитанции: SCHOOL или CAMP order_school_id - идентификатор школы (требуется для типа CAMP) Получение результата: GET /integrations/data/jobs/<id>/data 200 OK [ { "account_number": "1234567890", "order_school_id": 587, "order_number": "20210809", "order_amount": "100.0", "order_kind": "CAMP", "order_status": "CREATED", "order_error": null, "order_id": 123 }, { "account_number": "1234567890", "order_number": "20210809", "order_amount": "100.0", "order_kind": "SCHOOL", "order_status": "ERROR", "order_error": "ACCOUNT_NOT_FOUND", "order_id": null } ] order_status - статус обработки квитанции: CREATED, UPDATED или ERROR order_error - идентификатор ошибки: ACCOUNT_NOT_FOUND, SCHOOL_ID_REQUIRED, INVALID_NUMBER или EXCEPTION order_id - идентификатор квитанции

Request Body

Name
Type
Description

data

object

набор входящих данных

kind

string

d490cb45-8145-43cc-97a1-868d443bbfd3

{
  "id": 123,
  "progress": 0
}

Запрос состояния фоновой задачи по импорту квитанций

GET https://api0.sms-dnevnik.com/integrations/data/jobs/<id>

Path Parameters

Name
Type
Description

id

integer

идентификатор задачи

{
  "id": 123,
  "progress": 0
}

Запрос данных фоновой задачи по импорту квитанций

GET https://api0.sms-dnevnik.com/integrations/data/jobs/<id>/data

Path Parameters

Name
Type
Description

id

integer

идентификатор задачи

<data>

ЭДС

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/e_money

Query Parameters

Name
Type
Description

date*

2022-07-26

Дата

{
  "s_sum": 89.0,        // списания ЭДС
  "c_sum": 80.1,        // сумма для перевода
  "u_com_sum": 8.9,     // вознаграждение оператора
  "u_ret_sum": 1,       // сумма возвратов
  "u_percents": 10.0,   // вознаграждение оператора, %
  "c_schools": [        // сумма для перевода, пошкольно
    {
      "school_id": 587,
      "school_title": "Лицей 15",
      "complex_s": 8.0,      // списания по комп. питанию
      "complex_ret": -0.0,   // возвраты по комп. питанию
      "complex_com": -0.24,  // вознагр. по комп. питанию
      "personal_s": 79.0,    // списания по лич. продажам
      "personal_ret": -0.0,  // возвраты по лич. продажам
      "personal_com": -2.37, // вознагр. по лич. продажам
      "total": 84.39
    }
 ],
  "s_skipped_sum": 0.0   // ожидает списания ЭДС
}

Остаток средств

GET https://api0.sms-dnevnik.com/integrations/data/cafeteria/balance

Принимает номер л/с, идентификатор или СНИЛС пользователя. Возвращает баланс л/с на текущий момент или переданную дату.

Query Parameters

Name
Type
Description

account_number

String

номер л/с

date

Date

дата

account_id

Integer

идентификатор пользователя

snils

string

СНИЛС

{
    "balance": "100.0",  // баланс по питанию в школе
    "camp_balances": [   // балансы по питанию в пришкольных лагерях
      {
        "school_id": 587,
        "balance": "0.0"
      }
    ]
}

Запрос получения списка заявок на вывод компенсаций

GET https://api0.sms-dnevnik.com/integrations/data/compensation_withdraw_orders

Принимает ID поставщика питания, опционально - даты начала и окончания периоды выборки, лимит и оффсет. Возвращает количество и список заявок.

Query Parameters

Name
Type
Description

food_supplier_id

Integer

ID поставщика питания

date_from

Date

дата начала, опционально

date_to

Date

дата окончания, опционально

limit

Integer

кол-во записей на странице, опционально, не более 1000, по умолчанию - 100

offset

Integer

номер первой записи, начинается с 0, опционально, по умолчанию - 0

Статусы заявок:

  • 0 - Черновик

  • 1 - На рассмотрении

  • 2 - В обработке

  • 3 - Проведена

  • 4 - Отказано

  • 5 - Удалена

  • 6 - Проведение отменено

{
  "count": 1,   // количество всех записей
  "withdraw_orders": [
    {
      "id": 25,
      "status": 4,
      "datetime": "2024-03-27T13:32:40+03:00",
      "value": 20.0,  // сумма вывода
      "food_supplier_title": "ООО",  // наименование организации поставщика питания
      "food_supplier_head_fullname": "Андреев Иван Иванович", // ФИО руководителя поставщика питания
      "student_fullname": "Аписова Ольга ",  // ФИО учащегося
      "student_payments_account": "00081062", // л/с учащегося
      "parent_fullname": "Иванов Артем Петровичх", // ФИО родителя
      "school_title": "Лицей 15",  // название школы
      "klass_title": "11 \"А\"", // класс
      "bank_title": "КРАСНОДАРСКОЕ ОТДЕЛЕНИЕ N8619 ПАО СБЕРБАНК", // название банка
      "bik": "040349602", // БИК
      "checking_account": "49646546546546546444", // р/с
      "corr_account": "30101810100000000602", // к/с
      "inn": "7707083893", // ИНН банка
      "kpp": "231043001", // КПП банка
      "parent_phone": "911", // телефон родителя
      "parent_address": "Earth" // адрес родителя
    }
  ]
}

Запрос обновления статуса заявки на вывод компенсации

POST https://api0.sms-dnevnik.com/integrations/data/compensation_withdraw_order_update

Принимает JSON. Возвращает результат операции.

{
   "food_supplier_id": 1282,   // ID поставщика питания
   "withdraw_order_id": 25,    // ID заявки 
   "status": 5,                // новый статус
   "comment": "Some text"      // комментарий, для статусов Отказано или Проведение отменено
}

Статусы заявок:

  • 0 - Черновик

  • 1 - На рассмотрении

  • 2 - В обработке

  • 3 - Проведена

  • 4 - Отказано

  • 5 - Удалена

  • 6 - Проведение отменено

Возможные последовательности смены статусов:

  • На рассмотрении -> В обработке

  • В обработке -> Проведена

  • На рассмотрении -> Отказано

  • В обработке -> Отказано

  • Проведена -> Проведение отменено

Результаты:

{
   "message": "Withdraw Order Updated"
}

Идентификаторы

GET https://api0.sms-dnevnik.com/integrations/data/identifiers

[
  {
    "school_id": 587,
    "school_title": "Лицей 15",
    "students_count": 467,   // всего учащихся
    "students_with_identifiers_count": 130, // учащихся с идентификаторами
    "students_identifiers": { // кол-во идентификаторов учащихся по типу
      "Карта": 162,
      "Брелок": 18,
      "Браслет силиконовый": 10,
      "Банковская карта": 0,
      "Браслет кожаный": 4,
      "Брелок кожаный": 6,
      "RFID-метка": 2,
      "Фотография пользователя": 0
    },
    "employees_count": 302,  // всего сотрудников
    "employees_with_identifiers_count": 19,  // сотрудников с идентификаторами
    "employees_identifiers": {  // кол-во идентификаторов сотрудников по типу
      "Карта": 33,
      "Брелок": 6,
      "Браслет силиконовый": 0,
      "Банковская карта": 0,
      "Браслет кожаный": 1,
      "Брелок кожаный": 1,
      "RFID-метка": 0,
      "Фотография пользователя": 0
    }
  }
]

Фактическое питание и проходы по учащемуся

GET https://api0.sms-dnevnik.com/integrations/data/student/factual

В качестве идентификатора учащегося принимаются: идентификатор пользователя, номер л/с, номер телефона или номер карты. Период выборки будет включать переданные даты и не должен превышать 7 дней.

Query Parameters

Name
Type
Description

account_id

integer

идентификатор пользователя учащегося

account_number

String

номер л/с учащегося

phone

String

номер телефона учащегося

rfid

String

номер карты учащегося

from*

Date

дана начала периода выборки данных

to*

дата окончания периода выборки данных

snils

String

снилс

image

String

URL фотографии продуции или комплекта

{
  "cafeteria": {
    "2023-10-18": {
      "sales": [
        {
          "title": "Завтрак",
          "nomenclature": null,
          "item_id": 179,
          "item_type": "complex",
          "sale_type": "order",
          "cost": 25.0,
          "count": 1,
          "school_title": "Лицей 15",
          "school_id": 587,
          "building_id": 188,
          "klass_title": "4 \"А\"",
          "klass_id": 19017,
          "complex_list": [
            {
              "id": 123,
              "title": "Авокадо",
              "image": <URL>
            },
            {
              "id": 124,
              "title": "Ананас",
              "image": <URL>
            }
          ],
          "subsidy": {
            "value": 25.0,
            "order_type": "personal",
            "allowance": "ОВЗ"
          },
          "image": <URL>
        }
      ],
      "subsidies_sum": 25.0,
      "sales_sum": 25.0
    },
    "2023-10-19": {
      "sales": [],
      "subsidies_sum": 0.0,
      "sales_sum": 0.0
    },
    "2023-10-20": {
      "sales": [],
      "subsidies_sum": 0.0,
      "sales_sum": 0.0
    }
  },
  "attendance": {
    "2023-10-18": {
      "passages": []
    },
    "2023-10-19": {
      "passages": []
    },
    "2023-10-20": {
      "passages": [
        {
          "time": "2023-10-20T14:13:14+03:00",
          "school": "Лицей 15",
          "action": "in",
          "comment": null
        }
      ]
    }
  }
}

Last updated

Was this helpful?