# Сущности

Все сущности для API Pro.rent приведены в [swagger-схеме](https://portal.pro.rent/api). В этом разделе приведены расшифровки и комментарии к наиболее сложным из них.

### ApiAttachment

Файл-приложение к другой сущности.

<pre class="language-typescript"><code class="lang-typescript">{
    id: Guid,
    url: string, // Ссылка на файл, readonly
    name: string, // Название Файла
    creator: <a data-footnote-ref href="#user-content-fn-1">ApiUserInfo</a>, // Загрузивший файл пользователь, readonly
    createDate: DateTime // Дата и время создания, readonly
}
</code></pre>

### ApiContract

Содержит полную информацию о договоре. В договоре может быть от одного и более соглашений. Нулевое соглашение является основным договором.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    number?: string, // Номер договора, readonly
    date: Date, // Дата договора, readonly
    type: <a data-footnote-ref href="#user-content-fn-2">ContractType</a>, // Тип договора
    period: { // Общий из всех соглашений период действия договора, readonly
        begin: Date,
        end: Date
    },
    state: <a data-footnote-ref href="#user-content-fn-3">ContractState</a>, // Статус договора, readonly
    mainVersion: <a data-footnote-ref href="#user-content-fn-4">ApiContractVersion</a>, // Соглашение-основной договор
    currentVersionInfo: <a data-footnote-ref href="#user-content-fn-5">ApiContractVersionInfo</a>, // Краткая информация о текущем активном соглашении, readonly
    versions: <a data-footnote-ref href="#user-content-fn-4">ApiContractVersion</a>[], // Все соглашения по договору, включая основное, readonly
    currency: <a data-footnote-ref href="#user-content-fn-6">Currency</a>, // Валюта договора
    billingPeriod: <a data-footnote-ref href="#user-content-fn-7">BillingPeriod</a>, / 
    paymentSchedule?: { // Условия оплаты
        type: <a data-footnote-ref href="#user-content-fn-8">ContractPaymentType</a>, // Тип периода
        day: number, // День оплаты
        months: number, // Периодичность в месяцах
        advanceMonths?: number // Количество месяцев аванса
    },
    paymentTerms?: string, // Текстовое предсравление условий оплаты, readonly
    actMonths: number, // Периодичность выставления актов в месяцах
    ignoreInOccupation: boolean, // Учитывать или нет договор в заполняемости помещений
    notificationDays: number, // За сколько дней до окончания уведомлять ответственного и клиента
    warnings: <a data-footnote-ref href="#user-content-fn-9">ContractWarning</a>, // Предупреждения по договору
    agreementCount: number, // Кол-во дополнительных соглашений
    debt: { // Долги по договору, readonly
        value: number, // Сумма долга
        currency: <a data-footnote-ref href="#user-content-fn-6">Currency</a> // Валюта долга
    }[],
    advance: { // Неразнесенные авансы, readonly
        value: number, // Сумма аванса
        currency: <a data-footnote-ref href="#user-content-fn-6">Currency</a> // Валюта аванса
    }[],
    responsibleId: number, // ID ответственного по договору сотрудника
    responsible: <a data-footnote-ref href="#user-content-fn-10">ApiEmployee</a>, // Ответственный по договору сотрудник, readonly
    documentRuleId: number, // ID правила формирования счетов и актов
    documentRule: <a data-footnote-ref href="#user-content-fn-11">ApiDocumentRule</a>, // Правило формирования счетов и актов, readonly
    autoInvoices: <a data-footnote-ref href="#user-content-fn-12">DocumentAutoMode</a>, // Режим выставления счетов
    autoInvoicesTemplateId?: number, // ID шаблона для счетов
    autoInvoicesTemplate?: <a data-footnote-ref href="#user-content-fn-13">ApiTemplateInfo</a>, // Шаблон для счетов, readonly
    autoActs: <a data-footnote-ref href="#user-content-fn-12">DocumentAutoMode</a>, // Режим выставления актов,
    autoActsTemplateId?: number, // ID шаблона для актов
    autoActsTemplate?: <a data-footnote-ref href="#user-content-fn-13">ApiTemplateInfo</a>, // Шаблон для актов, readonly
    externalLink?: { // Договор во внешнем источнике, например, AmoCRM и др.
        id: string, // ID во внешнем источнике
        name: string, // Название внешнего истояника
        url: string // Ссылка во внешнем источнике
    },
    oneCId?: Guid, // ID договора в 1С
    attachments: <a data-footnote-ref href="#user-content-fn-14">ApiAttachment</a>[], // Приложенный к договору файлы
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiContractVersion

Информация об одном соглашении договора. Если  это нулевое соглашение, то информация об основном договоре.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    number?: string, // Номер
    date: Date, // Дата
    type: <a data-footnote-ref href="#user-content-fn-15">ContractVersionType</a>, // Тип соглашения
    period: { // Период действия
        begin: Date,
        end: Date
    },
    endFinal: Date, // Переопределенная следующим соглашением дата окончания периода действия, readonly
    status: <a data-footnote-ref href="#user-content-fn-16">ContractState</a>, // Статус соглашения
    signStatus: <a data-footnote-ref href="#user-content-fn-16">ContractSignStatus</a>, // Статус подписания
    signStatusChangeError?: string, // Текст ошибки при блокировке изменения статуса подписания, readonly
    orgId: number, // ID основного исполнителя
    org: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Основной исполнитель, readonly
    orgBankAccountId?: number, // ID р/с основного исполнителя
    orgBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Р/с основного исполнителя, readonly
    orgSignerId?: number, // ID подписанта основного исполнителя
    orgSigner?: <a data-footnote-ref href="#user-content-fn-19">ApiSigner</a>, // Подписан основного исполнителя, readonly
    orgsAdditional: { // Дополнительные исполнители по договору
        contractorId: number, // ID исполнителя
        contractor: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Исполнитель, readonly
        bankAccountId?: number, // ID р/с исполнителя
        bankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Р/с исполнителя, readonly
        signerId?: number, // ID подписанта исполнителя
        signer?: <a data-footnote-ref href="#user-content-fn-19">ApiSigner</a>, // Подписан исполнителя, readonly
        docBankAccountId?: number, // ID счёта исполнителя для счетов и актов
        docBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Счёт исполнителя для счетов и актов, readonly
        docSignerId?: number, // ID подписанта исполнителя для счетов и актов
        docSigner?: <a data-footnote-ref href="#user-content-fn-19">ApiSigner</a>, // Подписант исполнителя для счетов и актов, readonly
        share: number // Числитель доли исполнителя
    }[],
    orgShareBase?: number, // Знаменатель доли исполнителей, по умолчанию 10.000
    orgUtilityId: number, // ID исполнителя для выставления 100% переменной части
    orgUtility: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Исполнитель для выставления 100% переменной части, reaodnly
    clientId: number, // ID заказчика
    client: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Заказчик, readonly
    clientBankAccountId?: number, // ID р/с заказчика
    clientBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Р/с заказчика, readonly
    clientSignerId?: number, // ID заказчика исполнителя
    clientSigner?: <a data-footnote-ref href="#user-content-fn-19">ApiSigner</a>, // Подписан заказчика, readonly
    file: <a data-footnote-ref href="#user-content-fn-20">ApiDocumentFile</a>, // Файл или шаблон
    warnings: <a data-footnote-ref href="#user-content-fn-9">ContractWarning</a>, // Предупреждения по договору, readonly
    currency: <a data-footnote-ref href="#user-content-fn-6">Currency</a>, // Валюта
    amount: number, // Стоимость по соглашению, readonly
    amountRooms: number, // Стоимость помещений, readonly
    amountServices: number, // Стоимость услуг, readonly
    amountIndexed: number, // Индексированная стоимость по соглашению, readonly
    amountRoomsIndexed: number, // Индексированная стоимость помещений, readonly
    amountServicesIndexed: number, // Индексированная стоимость услуг, readonly
    lines: <a data-footnote-ref href="#user-content-fn-21">ApiContractLine</a>[], // Строки помещений и фиксированных услуг
    holidays: ApiContractHoliday[], // Скидки
    utilities: ApiContractUtility[], // Строки переменной часть
    meters: ApiContractMeter[], // Строки счетчиков для переменной части
    acts: ApiContractAct[], // Настройки актов п/п
    indexings: ApiContractIndexing[], // Индексации по документу, readonly
    buildings: ApiBuildingInfo[], // Объекты в соглашении, readonly
    deposit?: number, // Сумма депозита
    recoveryCost?: number, // Сумма восстановительного платежа
    penaltyPercent?: number, // Пени %
    indexingAuto?: boolean, // Индексация, ручная или автоматическая
    indexingDate?: number, // Минимальная дата индексации
    indexingMonths?: number, // Периодичность индексации
    indexingPercent?: number, // Максимальный процент индексации
    indexingNotifyDays?: number, // Срок уведомления об индексации
    indexingTerms?: string, // Текстовое представление условий индексации, readonly
    terminationOrgDays?: number, // Период расторжения исполнителем
    terminationClientDays?: number, // Период расторжения заказчиком
    roomPurpose?: string, // Назначение помещений
    conditions?: string, // Дополнительные условия
    comment?: string, // Комментарий
    notifyActivationDays?: number, // За сколько дней до начала уведомлять ответсвенного и клиента
    approveLink?: { // Согласование документа во внешнем источнике
        id: string, // ID во внешнем источнике
        name: string, // Название внешнего истояника
        url: string // Ссылка во внешнем источнике
    },
    docOrgBankAccountId?: number, // ID счёта основного исполнителя для счетов и актов
    docOrgBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Счёт основного исполнителя для счетов и актов, readonly
    docOrgSignerId?: number, // ID подписанта основного исполнителя для счетов и актов
    docOrgSigner?: <a data-footnote-ref href="#user-content-fn-19">ApiSigner</a>, // Подписант основного исполнителя для счетов и актов, readonly
    docClientBankAccountId?: number, // ID счёта заказчика для счетов и актов
    docClientBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Счёт заказчика для счетов и актов, readonly
    docClientSignerId?: number, // ID подписанта заказчика для счетов и актов
    docClientSigner?: <a data-footnote-ref href="#user-content-fn-19">ApiSigner</a>, // Подписант заказчика для счетов и актов, readonly
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiContractVersionInfo

Краткая информация о текущем активном соглашении договора.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    orgs: <a data-footnote-ref href="#user-content-fn-22">ApiContractorInfoWithShare</a>[], // Исполнители
    client: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Заказчик
    amountRooms: number, // Стоимость помещений
    amountServices: number, // Стоимость услуг
    square: number, // Площадь
    hasHolidays: boolean, // Есть скидки
    buildings: ApiBuildingInfo[], // Объекты в соглашении
    utilities: <a data-footnote-ref href="#user-content-fn-23">UtilityType</a>[], // Переменная часть
    createDate: DateTime, // Дата и время создания
    changeDate: DateTime // Дата и время последнего изменения
}
</code></pre>

### ApiContractLine

Строка договора с информацией о помещении или фиксированной услуге.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    isRoom: boolean, // Помещение или услуга
    name?: string, // Наименование
    roomId?: number, // ID помещения
    room?: ApiRoomTree, // Помещение, readonly
    serviceId?: number, // ID услуги
    service?: ApiService, // Услуга, readonly
    category?: <a data-footnote-ref href="#user-content-fn-24">DocumentLineCategory</a>, // Категория строки
    quantity: number, // Количество
    unit?: string, // Единица измерения
    price: number, // Цена строки
    amount: number, // Сумма строки
    ndsPercent?: <a data-footnote-ref href="#user-content-fn-25">NdsPercent</a>, // НДС %
    isAmountOnly: boolean // Не брать в расчет цену, а только сумму
}
</code></pre>

### ApiContractorInfo

Информация о контрагенте.

```typescript
{
    id: number,
    isOrganization: boolean, // Может быть исполнителем или нет
    type: ContractorType, // Тип
    country: Country, // Страна
    fullName: string, // Полное наименование
    shortName: string, // Краткое наименование
    inn?: string, // Идентификационный номер в стране
    email?: string, // Email для реквизитов
    isSimpleTaxSystem: boolean, // Применяет УСН
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
```

### ApiContractorInfoWithShare

Информация о контрагенте с долей.

<pre class="language-typescript"><code class="lang-typescript">{
    ...<a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>
    share?: number, // Числитель доли
    shareBase?: number // Знаменатель доли
}
</code></pre>

### ApiBankAccount

Расчётный счёт.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    status: <a data-footnote-ref href="#user-content-fn-26">ItemStatus</a>, // Статус
    expiry?: Date, // Срок действия
    currency: <a data-footnote-ref href="#user-content-fn-6">Currency</a>, // Валюта
    number: string, // Номер р/с
    bik: string, // Идентификационный код банка
    bankName: string, // Название банка
    corr?: string, // Корр. счёт
    comment?: string, // Комментарий
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiDocumentFile

Информация о файле документа.

```typescript
{
    templateId?: number, // ID шаблона
    template?: ApiTemplateInfo, // Шаблон
    fileId?: Guid, // ID файла
    name?: string, // Наименование файла
    urlDocx?: string, // Ссылка на DOCX файл
    urlPdf?: string, // Ссылка на PDF файл
    urlPdfWithActs?: string // Ссылка на PDF с актами п/п
}
```

### ApiDocumentRule

Правило формирования счетов и актов по договору.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    name, string, // Наименование
    status: <a data-footnote-ref href="#user-content-fn-26">ItemStatus</a>, // Статус
    lineMode: <a data-footnote-ref href="#user-content-fn-27">DocumentLineMode</a>, // Тип срок в счетах и актах
    lineContract: boolean, // Включать номер договора в каждую строку
    invoiceSurchargeDays?: number, // Выставлять счета на доплату
    attachments: boolean, // Прикладывать акты РСО арендаторам
    usageCount: number, // Кол-во договоров с этим правилом
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiEmployee

Информация о сотруднике.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    email: string,
    emailConfirmed: boolean, // Email подтвержден, readonly
    displayName: string, // Отображаемое имя, readonly
    firstName: string, // Имя
    middleName?: string, // Отчество
    lastName: string, // Фамилия
    position?: string, // Должность
    pemissions: SubPermission, // Параметры доступа в аккаунте
    adminPermissions: AdminPermission, // Параметры доступа администратора
    phone?: string, // Телефон
    phoneConfirmed: boolean, // Телефон подтвержден, readonly
    avatar?: <a data-footnote-ref href="#user-content-fn-28">ApiFileInfo</a>, // Аватар пользователя
    managerCount: number, // Кол-во секиций, где сотрудник управляющий, readonly
    responsibleCount: number, // Кол-во договоров, где сотрудник ответсвенный, readonly
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime, // Дата и время последнего изменения, readonly
    activityDate: DateTime, // Дата и время последней активности, readonly
    lockoutEnd?: DateTime // Дата и время срока блокировки пользователя, readonly
}
</code></pre>

### ApiFileInfo

Информация о файле в системе.

```typescript
{
    id: Guid,
    url: string // Ссылка на файл, readonly
}
```

### ApiPayment

Денежная операция.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    type: <a data-footnote-ref href="#user-content-fn-29">PaymentType</a>, // Тип платежа
    number?: string, // Номер
    date: Date, // Дата
    orgId: number, // ID исполнителя
    org: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Исполнитель, readonly
    orgBankAccountId?: number, // ID р/с исполнителя
    orgBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Р/с исполнителя, readonly
    clientId: number, // ID заказчика
    client: <a data-footnote-ref href="#user-content-fn-17">ApiContractorInfo</a>, // Заказчик, readonly
    clientBankAccountId?: number, // ID р/с заказчика
    clientBankAccount?: <a data-footnote-ref href="#user-content-fn-18">ApiBankAccount</a>, // Р/с заказчика, readonly
    currency: <a data-footnote-ref href="#user-content-fn-6">Currency</a>, // Валюта платежа
    amount: number, // Сумма платежа
    amountConnected: number, // Разнесенная сумма, readonly
    purpose?: string, // Назначение платежа
    comment?: string, // Комментарий
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiSigner

Подписант контрагента.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    status: <a data-footnote-ref href="#user-content-fn-26">ItemStatus</a>, // Статус
    expiry?: Date, // Срок действия
    name: string, // ФИО
    nameGenitive?: string, // ФИО в родительном падеже
    position?: string, // Должность
    positionGenitive?: string, // Должность в родительном падеже
    actsOnTheBasisOf?: string, // Действует на основании
    signName?: string, // Имя для подписи
    signFile?: ApiFileInfo, // Файл подписи
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiTemplateInfo

Информация о шаблоне документа.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    name: string, // Наименование
    type: <a data-footnote-ref href="#user-content-fn-30">TemplateType</a>, // Тип
    status: <a data-footnote-ref href="#user-content-fn-26">ItemStatus</a>, // Статус
    expiry?: Date, // Срок действия
    file: <a data-footnote-ref href="#user-content-fn-28">ApiFileInfo</a>, // Основной файл
    fileVatInvoice?: <a data-footnote-ref href="#user-content-fn-28">ApiFileInfo</a>, // Файл счёта-фактуры для типа акта
    createDate: DateTime, // Дата и время создания, readonly
    changeDate: DateTime // Дата и время последнего изменения, readonly
}
</code></pre>

### ApiUserInfo

Информация о пользователе.

<pre class="language-typescript"><code class="lang-typescript">{
    id: number,
    email: string,
    displayName: string, // Отображаемое имя
    avatar?: <a data-footnote-ref href="#user-content-fn-28">ApiFileInfo</a> // Аватар пользователя
}
</code></pre>

[^1]: [Посмотреть схему](#apiuserinfo)

[^2]: [Посмотреть значения](https://docs.pro.rent/d/enums#contracttype)

[^3]: [Посмотреть значения](https://docs.pro.rent/d/enums#contractstate)

[^4]: [Посмотреть схему](#apicontractversion)

[^5]: [Посмотреть схему](#apicontractversioninfo)

[^6]: [Посмотреть значения](https://docs.pro.rent/d/enums#currency)

[^7]: [Посмотреть значения](https://docs.pro.rent/d/enums#billingperiod)

[^8]: [Посмотреть значения](https://docs.pro.rent/d/enums#contractpaymenttype)

[^9]: [Посмотреть значения](https://docs.pro.rent/d/enums#contractortype)

[^10]: [Посмотреть схему](#apiemployee)

[^11]: [Посмотреть схему](#apidocumentrule)

[^12]: [Посмотреть значения](https://docs.pro.rent/d/enums#documentautomode)

[^13]: [Посмотреть схему](#apitemplateinfo)

[^14]: [Посмотреть схему](#apiattachment)

[^15]: [Посмотреть значения](https://docs.pro.rent/d/enums#contractversiontype)

[^16]: [Посмотреть значения](https://docs.pro.rent/d/enums#contractsignstatus)

[^17]: [Посмотреть схему](#apicontractorinfo)

[^18]: [Посмотреть схему](#apibankaccount)

[^19]: [Посмотреть схему](#apisigner)

[^20]: [Посмотреть схему](#apidocumentfile)

[^21]: [Посмотреть схему](#apicontractline)

[^22]: [Посмотреть схему](#apicontractorinfowithshare)

[^23]: [Посмотреть значения](https://docs.pro.rent/d/enums#utilitytype)

[^24]: [Посмотреть значения](https://docs.pro.rent/d/enums#documentlinecategory)

[^25]: Посмотреть значения

[^26]: [Посмотреть значения](https://docs.pro.rent/d/enums#itemstatus)

[^27]: [Посмотреть значения](https://docs.pro.rent/d/enums#documentlinemode)

[^28]: [Посмотреть схему](#apifileinfo)

[^29]: [Посмотреть значения](https://docs.pro.rent/d/enums#paymenttype)

[^30]: [Посмотреть значения](https://docs.pro.rent/d/enums#templatetype)
