# Вэб-хуки

# Операции с сим-картами

Если в методах блокировки, разблокировки, перезагрузки, баланса, пинга, изменения групп указан параметр **callbackUrl**, то на этот адрес выполняется **POST**-запрос с информацией о выполнении заданий.

```javascript
POST callbackUrl
Content-type: application/json

{
  "qid": <string>,
  "added": <>,
  "queue": <string>,
  "handler": <string>,
  "items": [
    //массив элементов типа "сим-карта"
  ],
  "user": {
    "id": <int>,
    "first_name": <string>,
    "last_name": <string>,
    "company_id": <int>
  },
  "status": {
    "count": <int>,
    "process": <int>,
    "percentage": <int>
  }
}
```

##### Параметры
| Параметр | Тип | Описание |
|-------|----------|---------|
| **qid**     | string     | ID задания в очереди    |
| **added**     | int(UnixTimeStamp)     | Дата добавления задания в очередь    |
| **queue**     | string     | Код очереди    |
| **handler**     | string     | URL вэб-хука    |
| **items**     | array     | Массив объектов типа [Сим-карта](https://kb.novaconnect.kz/books/rukovodstvo-razrabotcika/page/sim-karta)    |
| **user**     | object     | Объект с информацией о пользователе     |
| **user.id**     | int     | ID пользователя   |
| **user.first_name**     | string     | Имя     |
| **user.last_name**     | string     | Фамилия     |
| **user.company_id**     | int     | ID компании пользователя     |
| **status**     | object     | Объект с информацией о статусе выполнения задания     |
| **status.count**     | object     | Общее количество элементов в очереди     |
| **status.process**     | object     | Количество обработанных элементов     |
| **status.percentage**     | object     | Процент обработанных элементов     |

# Уведомления

Если в личном кабинете настроены уведомления типа **Вэбхук**, то на указанный URL приходят POST-запросы вида:
```javascript
POST clientURL

Content-Type: application/json

{
  "type": <string>,
  "files": <array>,
  "items": <array>
}
```
#### Параметры
| Параметр | Тип | Описание | Примечание |
|-------|----------|---------|---------|
| **type**     | string     | Тип уведомления    |
| **files**     | array     | Файлы    |Наличие зависит от типа
| **items**     | array     | Элементы     | Содержание зависит от типа

##### Тип уведомления (параметр type)
| Значение | Описание |
|-------|----------|
| **msu_lock**     | Блокировка сим по MSU     | 
| **package_empty**     | Закончился пакет трафика     | 
| **generate_bill**     | Добавлен новый счет на оплату     | 
| **unpaid_bill_3**     | Отправляется на 3й рабочий день после выставления счета, в случае неоплаты     | 
| **unpaid_bill_5**     | Отправляется на 5й рабочий день после выставления счета, в случае неоплаты     | 
| **unpaid_bill_6**     | Отправляется на 6й рабочий день после выставления счета, в случае неоплаты. Блокировка всех сим-карт и ограничение функциональности ЛК и API     |

##### Параметр files
Параметр **files** заполняется только в случае отправки уведомления по финансовым обязательствам, когда **type** = generate_bill, unpaid_bill_3, unpaid_bill_5, unpaid_bill_6.
Элемент массива представлен следующим объектом:
```javascript

  {
    "type": "base64",
    "format": <string>,
    "name": <string>,
    "body": <string>
  }
```
| Параметр | Тип | Описание | Примечание |
|-------|----------|---------|---------|
| **type**     | string     | Тип содержимого - всегда base64    |
| **format**     | string     | MIME-type файла    |
| **name**     | string     | Имя файла    |
| **body**     | string     | Содержимое файла, закодированное в base64    |

##### Параметр items
Параметр items содержит массив элементов, тип которых зависит от значения параметра **type**:
- Объект типа [Сим-карта](https://kb.novaconnect.kz/books/rukovodstvo-razrabotcika/page/sim-karta), для **type** = msu_lock, package_empty
- Объект типа [Счёт](https://kb.novaconnect.kz/books/rukovodstvo-razrabotcika/page/scet), для  **type** = generate_bill, unpaid_bill_3, unpaid_bill_5, unpaid_bill_6