Документация по API

Документация по API

 
HTTP взаимодействие с пояснениями
 
Получение API-ключа для автоматизированных действий
В данные момент API-ключ получается на сайте по пути “Обмен данными” -> “Интеграции” -> “Ключ API”.
Использование токена доступа
В каждом запросе необходимо указывать токен доступа в заголовке `Authorization`.
GET /* HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
```
Загрузка данных о должнике или событии
Загрузка данных в определенную компанию по Идентификатору компании. Для загрузки необходимо указать ГРЗ автомобиля-должника в ASCII формате и тип производства, чаще всего это - сочетание `pretrial` и `2`. Вместе с должником можно присылать:
Список интернет ссылок на документы `documents`, которые должны быть в формате `.pdf` или `.zip`.
 Список интернет ссылок на изображения `images`, которые должны быть в формате `.png`, `.jpeg`, `.jpg`.
Список событий (поездок) `trips`. Событие состоит из:
  • Названия ПВП `place_name`. Например, `М-10 "Россия" - М-11 "Нева"`
  • Названия Оператора `place_operator`. Например, `ЕО ЦКАД`
  • Номер транзакции `transaction`, которая является строкой с максимальной длинной 31 символ.
  • Даты транзакции `transaction_date`.
  • Дата события `date`.
  • Номер дорожной полосы `lane`.
  • Сумма транзакции `cost` - вещественное положительное число с переменной точностью. Можно указывать как строкой, так и числом: `"2.2"` и `2.2`.
  • Тип транзакции `payment_type`, число которое имеет строго ограниченное количество вариантов. `1-"Взыскание платы невозможно", 2-"Проезд по ГРН", 3-"Транспондер", 10-"Проезд нарушителя (оплата отсутствует)"`.
Запрос:
```
POST /api/datafile/package/upload_debtor/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
{
  "personal_account": "{ГРЗ}",
  "production_type": "pretrial",
  "module": 2,
  "documents": [
     {
       "url": "http://..."
     }
  ],
  "images": [
     {
       "url": "http://..."
     }
  ],
  "trips": [
     {
       "place_name": "string",
       "place_operator": "string",
       "transaction": "string",
       "transaction_date": "2021-11-17T15:51:45.465Z",
       "date": "2021-11-17T15:51:45.465Z",
       "lane": 0,
       "cost": "string",
       "payment_type": 1
     }
  ]
}
```
В ответ выдается Идентификатор обработки `id`, по которому можно проверять статус обработки.
Ответ:
```
{
     "id": {Идентификатор обработки},
     "uuid": "string",
     "company": {Идентификатор компании},
     "operator": {Идентификатор пользователя},
     "status": 1,
     "status_name": "новый",
     "module_type": 2,
     "mode": null,
     "region": null,
     "task_uuid": "32111111-0000-4444-aaaa-222222222222",
     "payload": {
         ...
     }
}
```
Проверка статуса
При проверки статуса обработки необходимо смотреть на поле `status` и его текстовое описание `status_name`. Виды статусов `1-"новый", 2-"загружен", 4-"обработан", 5-"ошибка"`
Запрос:
```
GET /api/datafile/package/{Идентификатор обработки}/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
```
Ответ:
```
{
     "id": {Идентификатор обработки},
     "uuid": "string",
     "company": {Идентификатор компании},
     "operator": {Идентификатор пользователя},
     "status": 4,
     "status_name": "обработан",
     "module_type": 2,
     "mode": null,
     "region": null,
     "task_uuid": "32111111-0000-4444-aaaa-222222222222",
     "payload": {
         ...
     }
}
```
Просмотр списка должников и деталей должника
В списке должников выводится вся необходимая информация. Должники фильтруются по типы производства `production_type` имеют определенные тип производства `"pretrial"-Досудебное, "judicial"-Судебное, "executive"-Исполнительное`. Должников можно фильтровать `?any=any` и сортировать `?o=-pk`. Об этом детальнее в Swagger. Список пагинигируется, поэтому данные находятся в поле `results` Наиболее важные поля это:
  • Идентификатор должника уникальный в системе `debtor.pk`.
  • РЗ `personal_account`.
  • Информация о профиле должнике находится в поле `debtor_main_profile`. В случае если должник юридическое лицо - профиль должника описывает директора.
  • Является ли должник юридическим лицом обозначается в поле `debtor_main_profile.is_organization`.
  • Если должник является физическим лицом, то у него будет заполнено `debtor_tenant_profiles[0]`, если он является юридическим лицом - `debtor_main_profile.organization`.
  • Описание физического лица `debtor_tenant_profiles[0]`: Серия и номер паспорта без разделителей `num_of_passport`, является ли пароль действительным `passport_is_valid`, кем выдан паспорт `passport_issued_by`, дата выдачи паспорта `date_of_passport_issue`,  ФИО через пробел `full_name`, Дата рождения `birth_date`, Идентификационный номер налогоплательщика - `inn`, Страховой номер индивидуального лицевого счета - `snils`.
  • Описание Юридического лица `debtor_main_profile.organization`: ИНН - `inn`, КПП - `kpp`, ОГРН - `ogrn`, дата регистрации - `ogrn_data_reg`, физический адрес - `physical_address`, юридический адрес - `legal_address`, почтовый адрес - `mail_address`.
  • Описание транспортного средства находится в поле `vehicle`: Регистрационные знак транспортного средства - `grz`, VIN номер - `vin`,  свидетельство о прохождении регистрации - `ctc`, паспорт транспортного средства - `ptc`,  и их даты соответственно `ctc_date` и `ptc_date`, Тип ТС - `info.tc_type_name`, Марка и модель - `model_name`.
Запрос для получения списка должников:
```
GET /api/debtors-data/?company_id={Идентификатор компании}&production_type={Идентификатор производства} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
```
Запрос для получения должника по лицевому счету:
```
GET /api/debtors-data/?company_id={Идентификатор компании}&production_type={Идентификатор производства}&personal_account={Лицевой счет} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
```
Запрос для получения должника по идентификатору:
```
GET /api/debtors-data/{Идентификатор должника}/?company_id={Идентификатор компании}&production_type={Идентификатор производства} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
```
Ответ:
```
{
     "pk": {Идентификатор записи должника},
     "debtor": {
         "pk": {Идентификатор должника},
         "company_id": {Идентификатор компании},
         "module": 2,
         "personal_account": "{ГРЗ}",
         "debtor_status": [
             {
                 "id": 1,
                 "status": "string",
                 "updated_at": "2021-11-17T20:13:09.364153",
                 "substatus": [
                     {
                         "substatus": "string",
                         "updated_at": "2021-11-17T20:13:09.369457"
                     }
                 ]
             },
         ],
         ...
     },
     "debtor_main_profile": {
         "id": {Идентификатор профиля},
         "address": "string",
         "is_organization": false,
         "organization": {
             "id": 20,
             "name_short": "string",
             "name_full": "string",
             "inn": "string",
             "kpp": "string",
             "ogrn": "string",
             "ogrn_data_reg": "string",
             "physical_address": "string",
             "legal_address": "string",
             "mail_address": "string",
         },
         "phone_number": "string",
         "production_type": "pretrial",
         "full_name": "ФИО",
         "phone_numbers": [
             "string"
         ],
         "email": null,
         "debtor": {Идентификатор должника},
         "regional_court_place": {Идентификатор суда},
         "magistrate_court_place": {Идентификатор суда}
     },
     "debtor_tenant_profiles": [
         {
             "id": {Идентификатор человека},
             "production_type": "judicial",
             "full_name_orig": "string",
             "full_name": "string",
             "birth_date": "string",
             "birth_place": null,
             "num_of_passport": "string",
             "passport_issued_by": "string",
             "date_of_passport_issue": "string",
             "passport_is_valid": true,
             "passport_is_invalid": false,
             "inn": null,
             "snils": null,
             "registration_date": null,
             "citizenship": "РФ",
             "registration": null,
             "verified": false,
             "debtor": {Идентификатор должника}
         }
     ],
     "vehicle": {
         "id": {Идентификатор транспорта},
         "trips": [
             {
                 "id": 1,
                 "place": {
                     "id": 1,
                     "operator_name": "ЕО ЦКАД",
                     "clear_name": "м10россиям11нева",
                     "name": "М-10 \"Россия\" - М-11 \"Нева\"",
                     "default_price": "0.00",
                     "operator": 1
                 },
                 "transaction": "538605481",
                 "transaction_date": "2021-10-29T00:06:19",
                 "date": "2021-10-29T00:00:00",
                 "lane": 2,
                 "cost": "20.00",
                 "payment_type": 10
             }
         ],
         "region": null,
         "trips_total": {
             "sum_1": 0.0,
             "sum_2": 0.0,
             "sum_3": 0.0,
             "sum_10": 20.0
         },
         "info": {
             "id": 57,
             "tc_type_name": "Легковые автомобили универсал",
             "model_name": "АКУРА МDХ ",
             "model": 57,
             "tc_type": 6
         },
         "grz": "В948КС799",
         "vin": "2НNУD18241Н503234",
         "ctc": "7761",
         "ptc": "ОН276372",
         "ctc_date": null,
         "ptc_date": null,
         "owner": 1
     },
     ...
     "debt": 0.0,
     "penalty": 0.0,
     "accrual": 0.0,
     "paid_up": 0.0,
     "fee": 0.0,
     "clean_address": "string",
     "production_type": "pretrial",
     "total_debt": 0.0
}
```
Перевод должника в судебное производство
Каждый должник имеет три стадии делопроизводства. Для того чтобы формировать судебные приказы необходимо перевести должника из досудебного в судебное делопроизводство.
Запрос:
```
POST /api/debtors-data-move/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
{
  "filters": {
     "production_type": "pretrial",
     "debtor_ids": [{Идентификатор должника}],
     "company_id": {Идентификатор компании}
  },
  "to": "judicial"
}
```
В ответ приходит Идентификатор перемещения и информация о её возможности. Перемещение необходимо подтвердить.
Ответ:
```
...
```
Запрос:
```
PATCH /api/debtors-data-move/{Идентификатор перемещения}/confirm/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
{
  "filters": {},
  "to": "judicial"
}
```
Ответ:
```
...
```
 Выбор шаблонов
Предварительно для формирования документов по должнику необходимо выбрать шаблоны документов которые будут подаваться в печать.
Запрос:
```
POST /document_attachments/company_bulk_create/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
```
Ответ:
```
...
```
Формирование документа
При печати необходимо указать список Идентификаторов должников, по котором будут формироваться документы. В процессе печати формируются файлы в формате `.pdf`, их совокупность в `.zip` и подписанные файлы по ЭЦП `.sig`, если указана переменная `encrypt` в запросе.
Запрос:
```
POST /document_attachments/generate_merged/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
{
     "production_type": "judicial",
     "company_id": {Идентификатор компании},
     "filters": {
         "company_id": {Идентификатор компании},
         "module": 2,
         "production_type": "judicial",
         "debtor_ids": [
             {Идентификатор должника}
         ]
     }
}
```
После создания запроса создается Идентификатор процесса печати. По этому идентификатор проверяется статус печати.
Ответ:
```
{
     "id": {Идентификатор процесса печати},
     "status_name": "Запрос на печать создан",
     "status": 0,
     "file": null,
     "file_pdf": null,
     "file_sig": null,
     "company": {Идентификатор компании}
}
```
При проверке статуса обработки необходимо смотреть на поле `status` и его текстовое описание `status_name`. Виды статусов `0-"Запрос на печать создан", 1-"Печать успешно завершена", 2-"Ошибка печати", 3-"Ошибка подписи"`.
Запрос:
```
GET /document_attachments/status/{id}/?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
```
В ответе есть ссылка на архив с pdf документами по отдельности `file`, объединенный pdf файл `file_pdf`, архив с подписанными по ЭЦП документами `file_sig`.
Ответ:
```
{
     "id": {Идентификатор процесса печати},
     "status_name": "Печать успешно завершена",
     "status": 1,
     "file": "https://api-2.urrobot.tech/media/...zip",
     "file_pdf": "https://api-2.urrobot.tech/media/...pdf",
     "file_sig": "string",
     "company": {Идентификатор компании}
}
 
```
Загрузка судебных решений
Для загрузки судебных решений требуется указать Идентификатор компании, Идентификатор должника и Тип производства. Идентификатор должника можно получить из пункта 3.1. Для загрузки файла нужно использовать Content-Type:  multipart/form-data
Запрос:
```
POST /judicial/debtor/{Идентификатор должника }/decisions/
?company_id={Идентификатор компании} HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
{
     "company_id": {Идентификатор компании},
     "production_type": {Тип производства},
      "file": {Файл судебного решения},
            "case_number": {Номер судебного дела},
"decision_date": {Дата решения},
"debtor_name": {ФИО должника},
     "status": {Статус},
"amount": {Сумма},
}
```
Ответ:
```
{
     "id": {Идентификатор судебного решения},
     "company_id": {Идентификатор компании},
     "production_type": {Тип производства},
      "file": {Файл судебного решения},
            "case_number": {Номер судебного дела},
"decision_date": {Дата решения},
"debtor_name": {ФИО должника},
     "status": {Статус},
"amount": {Сумма},
"created_at": {Дата и время создания судебного решения}
}
```
Загрузка платежных поручений
Для загрузки платежного поручения требуется указать Идентификатор компании и Идентификатор производства. Для загрузки файла нужно использовать Content-Type: multipart/form-data
Запрос:
```
POST /judicial/company/{Идентификатор компании}/payments/link/ HTTP/1.1
Host: api-2.urrobot.tech
Authorization: Bearer {Ключ доступа}
Content-Type: application/json
{
     "file": {Файл платежного поручения},
     "production_type": {Идентификатор производства},
     "repaid": {Доплата (Да/Нет)},
     "recipient_inn": {ИНН получателя},
     "recipient_kpp": {КПП получателя},
     "document_amount": {Сумма документа},
     "document_number": {Номер документа},
     "personal_account": {Лицевой счет},
     "debtor_name": {Имя должника},
}
```
Ответ:
```
{
     "id": {Идентификатор платежного поручения},
     "company_id": {Идентификатор компании},
            "debtor_id": {Идентификатор должника},
     "production_type": {Тип производства},
     "file": {Файл платежного поручения}
     "repaid": {Доплата (Да/Нет)},
     "recipient_inn": {ИНН получателя},
     "recipient_kpp": {КПП получателя},
     "document_amount": {Сумма документа},
     "document_number": {Номер документа},
     "personal_account": {Лицевой счет},
     "debtor_name": {Имя должника},
     "created_at": {Дата и время создания платежного поручения}
}
```