# Kontur Focus REST API Python library

Библиотека-обертка для взаимодействия с REST API Контур.Фокус.

Бибилиотека использует методы [REST API Контур.Фокус](https://developer.kontur.ru/doc/focus).

## Установка

*в разработке*

## Параметры подключения

```python
from kontur_focus import Focus

ul = Focus(inn='7842393933')  # Инициализация класса, необходимо указать ИНН компании
print(ul.base_info())  # Запрос основной информации из ЕГРЮЛ
```

## Методы

<details>
<summary><strong>base_info()</strong> Получение основной информации о компании</summary>

#### Описание

Метод для работы с реквизитами Российских юридических лиц и индивидуальными предпринимателями. С помощью метода 
можно просто и быстро обновлять реквизиты деловых партнеров. API предоставляет актуальную и историческую информацию 
из баз данных ФНС России – ЕГРЮЛ и ЕГРИП, а также часть данных из источников ГМЦ Росстата.

#### Пример ответа

```json
[{
  "inn": "7842393933",
  "ogrn": "1089847357126",
  "focusHref": "https://focus.kontur.ru/entity?query=1089847357126",
  "UL": {
    "kpp": "781001001",
    "okpo": "87419394",
    "okato": "40284000000",
    "okfs": "34",
    "oktmo": "40373000000",
    "okogu": "4210011",
    "okopf": "12300",
    "opf": "Общества с ограниченной ответственностью",
    "legalName": {
      "short": "ООО Селектел",
      "full": "Общество с ограниченной ответственностью Сеть дата-центров Селектел",
      "readable": "ООО Сеть дата-центров Селектел",
      "date": "2008-09-11"
    },...
```

</details>

---

<details>
<summary><strong>advanced_info()</strong> Получение расширенной информации о компании</summary>

#### Описание

Метод для работы с расширенными реквизитами. С помощью метода можно просто и быстро обновлять реквизиты 
деловых партнеров. API предоставляет актуальную и историческую информацию из баз данных ФНС России – ЕГРЮЛ и ЕГРИП, 
а также часть данных из источников ГМЦ Росстата.

#### Пример ответа

```json
[{
  "inn": "7842393933",
  "ogrn": "1089847357126",
  "focusHref": "https://focus.kontur.ru/entity?query=1089847357126",
  "UL": {
    "kpp": "781001001",
    "okpo": "87419394",
    "okato": "40284000000",
    "okfs": "34",
    "oktmo": "40373000000",
    "okogu": "4210011",
    "okopf": "12300",
    "opf": "Общества с ограниченной ответственностью",
    "legalName": {
      "short": "ООО Селектел",
      "full": "Общество с ограниченной ответственностью Сеть дата-центров Селектел",
      "readable": "ООО Сеть дата-центров Селектел",
      "date": "2008-09-11"
    },...
```

</details>

---

<details>
<summary><strong>founders_history()</strong> История владения организацией</summary>

#### Описание

С помощью метода можно определить моменты изменения долей участников, моменты выхода участников из состава владельцев.

Датой включения в состав участников считается официальная дата внесения сведений в ЕГРЮЛ. А датой исключения — 
наиболее ранняя дата из выписки, в которой вышедший участник больше не упоминается. Периоды, которые закончились 
более 5 лет назад не возвращаются.

#### Пример ответа

```json
[
  {
    "ogrn":"1089847357126",
    "inn":"7842393933",
    "focusHref":"https://focus.kontur.ru/entity?query=1089847357126",
    "companyHistory":[
      {
        "startDate":"2018-03-29",
        "endDate":"2024-02-06",
        "statedCapital":123185400
      },
      {
        "startDate":"2024-02-06",
        "statedCapital":128318125
      }
    ],
    "foundersHistory":[
      {
        "info":{
          "name":"Компания с ограниченной ответственностью Лвл1 Менеджмент ЛТД",
          "country":"ОАЭ"
        },
        "periods":[
          {
            "startDate":"2023-08-08",
            "endDate":"2023-12-15"
          },...
```

</details>

---

<details>
<summary><strong>foreign_representatives()</strong> Иностранные представительства и филиалы</summary>

#### Описание

Метод для работы с реквизитами иностранных представительств и филиалов России.

Адрес иностранных представительств в источнике (РАФП) может быть указан в одном из адресных форматов - 
КЛАДР или ФИАС. В ответе метода юридический адрес в формате, в котором указан в источнике.

</details>

---

<details>
<summary><strong>full_analytics()</strong> Расширенная аналитика</summary>

#### Описание

Проверяйте организации по заданному набору критериев. Метод получения расширенной аналитики позволяет построить 
индивидуальную автоматизированную систему оценки контрагентов (скоринга), а также обогатить дополнительными 
критериями. Разнообразие применяемых критериев обеспечивает быстрый старт без необходимости повторять то, что 
уже реализовано в системе Контур.Фокус.

Устанавливайте свои собственные маркеры проверки — банкротство, особые реестры ФНС, смена руководителя и т.д., 
и сервис оповестит о появлении значимых для вас рисковых факторов.

</details>

---

<details>
<summary><strong>government_lists()</strong> Список реестров РФ</summary>

#### Описание

Список официальных реестров РФ с идентификаторами для использования в других методах.

#### Пример ответа

```json
[
    {
        "name": "illicit_reward",
        "uid": "53a2d6b8-2ca3-41a6-b3c2-f942d58b35fd",
        "description": "Участники закупок, привлечённые к административной ответственности по ст. 19.28 КоАП РФ"
    },
    {
        "name": "banks",
        "uid": "7c1c310a-9c26-4e08-80f5-8b7611f28460",
        "description": "Перечень кредитных организаций"
    },
    {
        "name": "insurance_business",
        "uid": "c18dd28d-0028-4bad-b73c-c15de023d843",
        "description": "Страховые компании"
    },
    {
        "name": "foreign_agents",
        "uid": "fcfc856d-89f8-408b-afef-56750cb90fed",
        "description": "Иностранные агенты"
    },...
```

</details>

---

<details>
<summary><strong>check_if_in_lists(list_name: str = None)</strong> Наличие организации в реестрах при проверке контрагентов</summary>

#### Описание

Проверяйте наличие организации в реестрах при проверке контрагентов.

#### Параметры

| Name          | Required | Type        | Description                               |
|---------------|----------|-------------|-------------------------------------------|
| **list_name** | false    | string(255) | Имя списка из метода `government_lists()` |

Если `list_name` не указан, отдаются все списки с указанием наличия или отсутствия в них организации.

#### Пример ответа

```json
[
  {
    "inn": "7842393933",
    "ogrn": "1089847357126", 
    "focusHref": "https://focus.kontur.ru/entity?query=1089847357126", 
    "listsEntries": 
      [
        {
          "id": "d764d2a2-b33b-446f-b60e-be517698864d",
          "name": "Стратегические предприятия и стратегические АО", 
          "isInList": "false", 
          "lastUpdateDate": "2024-04-09"
        },...
```

Если в `list_name` указано имя списка, отдается только начилие или отсутствие в списке.

#### Пример ответа

```
false
```

</details>
