# Отчёты

# По сессиям

Для получения выгрузки по сессиям используется метод **report/sessions**:

```javascript
POST https://api.novaconnect.kz/api/report/sessions

{
  "filter": {
    "start": <string>,
    "end": <string>
  },
  "select": <array>,
  "page": <int>,
  "size": <int>
}
```
#### Параметры
| Параметр | Тип | Описание | Обязательность |
|-------|----------|---------|---------|
| **select**     | array     | Массив данных, по которым составляется отчет    |Нет
| **filter.start**     | string     | Дата начала (в формате ДД-ММ-ГГГГ)     |Нет
| **filter.end**     | string     | Дата конца (в формате ДД-ММ-ГГГГ)     |Нет
| **page**     | int     | Номер страницы (нумерация с 0)     |Нет
| **size**     | int     | Размер страницы     |Нет

##### Параметр select
В параметр необходимо передавать массив данных в виде:
- **all** - чтобы получить данные по всем доступным сим-картам;
- **s_*id*** - чтобы получить данные по сим-карте с идентификатором *id*
- **g_*id*** - чтобы получить данные по сим-картам, входящим в группу с идентификатором *id*

#### Ограничения и доступы
Метод доступен пользователю с любой ролью

#### Успешный ответ

```javascript
{
  "code": 200,
  "message": <string>,
  "result": {
    "items": [
        {
            "sid": <int>,
            "start": <int>,
            "end": <int>,
            "country_name": <string>,
            "operator_name": <string>,
            "operator_code": <int>,
            "session_cost": <float>,
            "value": <bigint>,
            "id": <int>,
            "original_number": <string>,
            "iccid": <string>,
            "name": <string | null>
      }
    ]
  }
}
```

| Параметр | Тип | Описание |
|-------|----------|---------|
| **code**     | int     | Код ответа, для успеха - 200
| **message**    | string      | Сообщение ответа
| **result.item.sid**    | int      | Идентификатор сессии
| **result.item.start**    | int (UnixTimeStamp)      | Дата и время начала сессии
| **result.item.end**    | int (UnixTimeStamp)      | Дата и время окончания сессии
| **result.item.country_name**    | string      | Сырое название страны (как хранится у верхнеуровнего оператора)
| **result.item.operator_name**    | string      | Сырое название оператора (как хранится у верхнеуровнего оператора)
| **result.item.operator_code**    | int      | Идентификатор оператора (MCC + MNC)
| **result.item.session_cost**    | float      | Стоимость сессии в евро (только для сим профиля TC)
| **result.item.value**    | bigint (string)      | Количество переданного и принятого трафика в сессии
| **result.item.id**    | int      | Идентификатор сим-карты
| **result.item.original_number**    | string      | Номер сим-карты
| **result.item.iccid**    | string      | ICCID сим-карты
| **result.item.name**    | string/null      | Название сим-карты

#### Дополнительная информация
Синхронизация сессий с базами данных операторов происходит раз в сутки. Например, сессия была 25.06.2024, в отчет она попадет только после синхронизации 26.06.2024

# По дням

Для получения выгрузки сессий по дням используется метод **report/day**:

```javascript
POST https://api.novaconnect.kz/api/report/day

{
  "filter": {
    "start": <string>,
    "end": <string>
  },
  "select": <array>,
  "page": <int>,
  "size": <int>
}
```
#### Параметры
| Параметр | Тип | Описание | Обязательность |
|-------|----------|---------|---------|
| **select**     | array     | Массив данных, по которым составляется отчет    |Нет
| **filter.start**     | string     | Дата начала (в формате ДД-ММ-ГГГГ)     |Нет
| **filter.end**     | string     | Дата конца (в формате ДД-ММ-ГГГГ)     |Нет
| **page**     | int     | Номер страницы (нумерация с 0)     |Нет
| **size**     | int     | Размер страницы     |Нет

##### Параметр select
В параметр необходимо передавать массив данных в виде:
- **all** - чтобы получить данные по всем доступным сим-картам;
- **s_*id*** - чтобы получить данные по сим-карте с идентификатором *id*
- **g_*id*** - чтобы получить данные по сим-картам, входящим в группу с идентификатором *id*

#### Ограничения и доступы
Метод доступен пользователю с любой ролью

#### Успешный ответ

```javascript
{
  "code": 200,
  "message": <string>,
  "result": {
    "items": [
        {
            "sid": <int>,
            "day": <int>,
            "session_cost": <float>,
            "value": <bigint>,
            "id": <int>,
            "original_number": <string>,
            "iccid": <string>,
            "name": <string | null>
      }
    ]
  }
}
```

| Параметр | Тип | Описание |
|-------|----------|---------|
| **code**     | int     | Код ответа, для успеха - 200
| **message**    | string      | Сообщение ответа
| **result.item.sid**    | int      | Идентификатор сессии
| **result.item.day**    | int (UnixTimeStamp)      | День
| **result.item.session_cost**    | float      | Стоимость в евро (только для сим профиля TC)
| **result.item.value**    | bigint (string)      | Количество переданного и принятого трафика за день
| **result.item.id**    | int      | Идентификатор сим-карты
| **result.item.original_number**    | string      | Номер сим-карты
| **result.item.iccid**    | string      | ICCID сим-карты
| **result.item.name**    | string/null      | Название сим-карты

#### Дополнительная информация
Синхронизация сессий с базами данных операторов происходит раз в сутки. Например, сессия была 25.06.2024, в отчет она попадет только после синхронизации 26.06.2024

# СМС и звонки

Для получения выгрузки по смс используется метод **report/call_sms**:

```javascript
POST https://api.novaconnect.kz/api/report/call_sms

{
  "filter": {
    "start": <string>,
    "end": <string>
  },
  "select": <array>,
  "page": <int>,
  "size": <int>
}
```
#### Параметры
| Параметр | Тип | Описание | Обязательность |
|-------|----------|---------|---------|
| **select**     | array     | Массив данных, по которым составляется отчет    |Нет
| **filter.start**     | string     | Дата начала (в формате ДД-ММ-ГГГГ)     |Нет
| **filter.end**     | string     | Дата конца (в формате ДД-ММ-ГГГГ)     |Нет
| **page**     | int     | Номер страницы (нумерация с 0)     |Нет
| **size**     | int     | Размер страницы     |Нет

##### Параметр select
В параметр необходимо передавать массив данных в виде:
- **all** - чтобы получить данные по всем доступным сим-картам;
- **s_*id*** - чтобы получить данные по сим-карте с идентификатором *id*
- **g_*id*** - чтобы получить данные по сим-картам, входящим в группу с идентификатором *id*

#### Ограничения и доступы
Метод доступен пользователю с любой ролью

#### Успешный ответ

```javascript
{
  "code": 200,
  "message": <string>,
  "result": {
    "items": [
        {
            "sid": <int>,
            "date": <int>,
            "type": <string>,
            "to_number": <string>,
            "session_cost": <float>,
            "id": <int>,
            "original_number": <string>,
            "iccid": <string>,
            "name": <string | null>
      }
    ]
  }
}
```

| Параметр | Тип | Описание |
|-------|----------|---------|
| **code**     | int     | Код ответа, для успеха - 200
| **message**    | string      | Сообщение ответа
| **result.item.sid**    | int      | Идентификатор действия
| **result.item.date**    | int (UnixTimeStamp)      | Дата отправки (приема)
| **result.item.type**    | string      | Тип действия (см. ниже)
| **result.item.to_number**    | string      | Номер назначения
| **result.item.session_cost**    | float      | Стоимость в евро
| **result.item.id**    | int      | Идентификатор сим-карты
| **result.item.original_number**    | string      | Номер сим-карты
| **result.item.iccid**    | string      | ICCID сим-карты
| **result.item.name**    | string/null      | Название сим-карты

##### Тип действия
Параметр **type** может принимать следующие значения:
| Значение | Описание |
|-------|----------|
| **call**     | Звонок     |
| **in_sms**     | Входящее смс     |
| **out_sms**     | Исходящее смс     |
| **ussd**     | Ussd-запрос     |

#### Дополнительная информация
Синхронизация информации с базами данных операторов происходит раз в сутки. Например, действие было 25.06.2024, в отчет оно попадет только после синхронизации 26.06.2024