5 Документи об'єкта
Прикріплюйте договори, технічну документацію, плани поверхів та інші файли до об'єктів з контролем доступу за ролями.
Навіщо прикріплювати документи?
Документи об'єкта зберігають усі важливі файли організовано та доступно в одному місці — договори, технічну документацію, плани поверхів, паролі тощо.
Переваги
- Усі файли об'єкта в одному організованому місці
- Видимість за ролями — контролюйте, хто бачить кожен документ
- Категоризація за типами: договори, технічні документи, плани, паролі
- Безпечне хмарне зберігання з доступом через підписані URL
Як додати документи
Ви можете завантажувати документи через веб-інтерфейс або через API. Кожному документу присвоюється тип, і за бажанням можна обмежити доступ для певних ролей.
У веб-інтерфейсі: відкрийте сторінку об'єкта, потім натисніть "Документи" у меню об'єкта.
Дивіться повну документацію у Бібліотеці: Документи об'єктів.
Типи документів
Кожен документ належить до однієї з п'яти категорій. Обирайте правильний тип для належної організації.
Контроль доступу
За замовчуванням документи доступні всім учасникам об'єкта. Ви можете обмежити видимість для певних ролей. Власник та агент завжди бачать усі документи.
Для розробників: REST API
Ви можете керувати документами об'єкта через REST API. Файли завантажуються як контент у кодуванні base64.
POST Завантажити документ
▶Завантажте документ, надіславши вміст файлу як рядок у кодуванні base64. Вкажіть тип документа для категоризації.
POST /api/v1/properties/{id}/documents
Заголовки:
Authorization: Bearer {token}
Content-Type: application/json
Обов'язкові поля:
Необов'язкові поля:
Тіло запиту:
{
"document_type_id": 1,
"file_content": "base64-encoded-file-content...",
"file_name": "rental-agreement.pdf",
"mime_type": "application/pdf",
"comment": "Rental agreement 2026"
}
Відповідь (201 Created):
{
"message": "Document uploaded successfully",
"data": {
"id": 50,
"property_id": "019a1b2c-3d4e-7f5a-8b9c-0123456789ab",
"document_type": {
"id": 1,
"code": "OFFICIAL_DOCUMENT",
"name_key": "document_type.official.name"
},
"file_url": "https://landlordkeeper.com/file/cG1mOjUwOjA6...",
"original_name": "rental-agreement.pdf",
"file_size": 45678,
"file_size_formatted": "44.61 KB",
"mime_type": "application/pdf",
"extension": "pdf",
"is_image": false,
"is_video": false,
"is_pdf": true,
"comment": "Rental agreement 2026",
"visible_to_roles": null,
"created_at": "2026-02-20T12:00:00+00:00"
}
}
GET Список документів
▶Отримати всі документи об'єкта. Використовуйте фільтр type_id для показу тільки певних типів.
GET /api/v1/properties/{id}/documents
Параметри запиту:
Відповідь (200 OK):
{
"data": [
{
"id": 50,
"property_id": "019a1b2c-3d4e-7f5a-8b9c-0123456789ab",
"document_type": {"id": 1, "code": "OFFICIAL_DOCUMENT"},
"file_url": "https://landlordkeeper.com/file/cG1mOjUwOjA6...",
"original_name": "rental-agreement.pdf",
"file_size": 45678,
"file_size_formatted": "44.61 KB",
"is_pdf": true,
"comment": "Rental agreement 2026",
"visible_to_roles": null,
"created_at": "2026-02-20T12:00:00+00:00"
}
],
"total": 3,
"stats": {
"total_count": 3,
"total_size": 137034,
"total_size_formatted": "133.82 KB"
}
}
PUT Оновити документ
▶Оновіть коментар та/або видимість документа. Замінити сам файл не можна — видаліть і завантажте повторно.
PUT /api/v1/documents/{documentId}
Тіло запиту:
{
"comment": "Updated rental agreement",
"visible_to": ["PROPERTY_TENANT", "PROPERTY_MAINTENANCE"]
}
Доступні ролі для visible_to:
Відповідь (200 OK):
{
"message": "Document updated successfully",
"data": {
"id": 50,
"comment": "Updated rental agreement",
"visible_to_roles": ["PROPERTY_TENANT", "PROPERTY_MAINTENANCE"]
}
}
DELETE Видалити документ
▶Остаточно видалити документ за його ID.
DELETE /api/v1/documents/{documentId}
Відповідь (200 OK):
{"message": "Document deleted successfully"}
Приклади cURL
▶1. Завантажити документ
curl -X POST https://landlordkeeper.com/api/v1/properties/019a1b2c-3d4e-7f5a-8b9c-0123456789ab/documents \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-d '{
"document_type_id": 1,
"file_content": "'$(base64 -w 0 contract.pdf)'",
"file_name": "contract.pdf",
"mime_type": "application/pdf",
"comment": "Rental agreement 2026"
}'
2. Список документів
curl https://landlordkeeper.com/api/v1/properties/019a1b2c-3d4e-7f5a-8b9c-0123456789ab/documents?type_id=1 \
-H "Authorization: Bearer YOUR_TOKEN_HERE"
3. Оновити документ
curl -X PUT https://landlordkeeper.com/api/v1/documents/50 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
-d '{
"visible_to": ["PROPERTY_TENANT"],
"comment": "Visible to tenant"
}'
4. Видалити документ
curl -X DELETE https://landlordkeeper.com/api/v1/documents/50 \
-H "Authorization: Bearer YOUR_TOKEN_HERE"