Factorizer/Cluster ERP WikiCluster ERP Türkçe
Home / API reference

API

Owned organisations API (owned_organisations)

HTTP endpoints of the owned_organisations module under /api/v1/owned_organisations: 28 routes with permissions, schemas, status codes, and error codes.

The owned_organisations module serves the company's own organisations, departments, employees, and employee assignments. All 28 endpoints sit under /api/v1/owned_organisations. For business meaning see the Owned organisations module page.

Group facts

Item Value Source
Base path /api/v1/owned_organisations src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/owned_organisations/module.py:49
Routers 3 router objects in 3 files; listed in the section Endpoint summary src/cluster_erp/modules/owned_organisations/module.py:35
Endpoints 28, counted from the route decorators and add_api_route calls of the routers that register_routes mounts src/cluster_erp/modules/owned_organisations/departments/routes.py, src/cluster_erp/modules/owned_organisations/employees/routes.py, src/cluster_erp/modules/owned_organisations/organisations/routes.py
Authentication Bearer header or session cookie, resolved by get_current_user; see Authentication and headers src/cluster_erp/modules/auth/guards.py:85-167
Permission guard 28 of 28 routes declare require_permission src/cluster_erp/modules/auth/guards.py:205-240
App entitlement gate require_app("owned_organisations") on every mounted router src/cluster_erp/modules/owned_organisations/module.py:54
Error format JSON body {"error": {...}}; see Errors src/cluster_erp/server/error_handler.py:33-46

Endpoint summary

One row per sub-module folder. The router prefix is added to the base path.

Sub-module Routers Endpoints Router source
organisations router (/organisations) 6 src/cluster_erp/modules/owned_organisations/organisations/routes.py:28
departments router (/departments) 7 src/cluster_erp/modules/owned_organisations/departments/routes.py:21
employees router 15 src/cluster_erp/modules/owned_organisations/employees/routes.py:35

Organisations endpoints

Organisation records.

Method Path Handler Permission Request Query Response Status Source
GET /api/v1/owned_organisations/organisations/ list_organisations organisation.read none active_only, party_id list[OwnedOrganisationListRead] 200 (default) src/cluster_erp/modules/owned_organisations/organisations/routes.py:44
POST /api/v1/owned_organisations/organisations/ create_organisation organisation.create OwnedOrganisationCreate none OwnedOrganisationRead 201 src/cluster_erp/modules/owned_organisations/organisations/routes.py:69
GET /api/v1/owned_organisations/organisations/{org_id} get_organisation organisation.read none none OwnedOrganisationRead 200 (default) src/cluster_erp/modules/owned_organisations/organisations/routes.py:81
PUT /api/v1/owned_organisations/organisations/{org_id} update_organisation organisation.update OwnedOrganisationUpdate none OwnedOrganisationRead 200 (default) src/cluster_erp/modules/owned_organisations/organisations/routes.py:95
POST /api/v1/owned_organisations/organisations/bulk-delete bulk_delete_organisations organisation.bulk_delete BulkDeleteRequest none BulkDeleteResponse 200 (default) src/cluster_erp/modules/owned_organisations/organisations/routes.py:110
DELETE /api/v1/owned_organisations/organisations/{org_id} delete_organisation organisation.delete none none none 204 src/cluster_erp/modules/owned_organisations/organisations/routes.py:122

Departments endpoints

Department records and the departments of one organisation.

Method Path Handler Permission Request Query Response Status Source
GET /api/v1/owned_organisations/departments/ list_all_departments department.read none none dict 200 (default) src/cluster_erp/modules/owned_organisations/departments/routes.py:37
GET /api/v1/owned_organisations/departments/by-org/{org_id} list_departments department.read none none list[DepartmentRead] 200 (default) src/cluster_erp/modules/owned_organisations/departments/routes.py:57
POST /api/v1/owned_organisations/departments/ create_department department.create DepartmentCreate none DepartmentRead 201 src/cluster_erp/modules/owned_organisations/departments/routes.py:75
GET /api/v1/owned_organisations/departments/{dept_id} get_department department.read none none DepartmentRead 200 (default) src/cluster_erp/modules/owned_organisations/departments/routes.py:86
PUT /api/v1/owned_organisations/departments/{dept_id} update_department department.update DepartmentUpdate none DepartmentRead 200 (default) src/cluster_erp/modules/owned_organisations/departments/routes.py:99
POST /api/v1/owned_organisations/departments/bulk-delete bulk_delete_departments department.bulk_delete BulkDeleteRequest none BulkDeleteResponse 200 (default) src/cluster_erp/modules/owned_organisations/departments/routes.py:113
DELETE /api/v1/owned_organisations/departments/{dept_id} delete_department department.delete none none none 204 src/cluster_erp/modules/owned_organisations/departments/routes.py:124

Employees and assignments endpoints

Employee records and assignments, with reads by organisation, party, and department.

Method Path Handler Permission Request Query Response Status Source
GET /api/v1/owned_organisations/employees/ list_all_employees employee.read none search, party_id, limit, offset list[EmployeeListRead] 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:42
POST /api/v1/owned_organisations/employees/ create_employee employee.create EmployeeCreate none EmployeeRead 201 src/cluster_erp/modules/owned_organisations/employees/routes.py:65
GET /api/v1/owned_organisations/employees/{employee_id} get_employee employee.read none none EmployeeRead 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:81
PUT /api/v1/owned_organisations/employees/{employee_id} update_employee employee.update EmployeeUpdate none EmployeeRead 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:98
POST /api/v1/owned_organisations/employees/bulk-delete bulk_delete_employees employee.bulk_delete BulkDeleteRequest none BulkDeleteResponse 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:117
DELETE /api/v1/owned_organisations/employees/{employee_id} delete_employee employee.delete none none none 204 src/cluster_erp/modules/owned_organisations/employees/routes.py:129
GET /api/v1/owned_organisations/assignments/ list_assignments assignment.read none party_id list[AssignmentListRead] 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:146
GET /api/v1/owned_organisations/assignments/by-org/{org_id} list_assignments_by_org assignment.read none active_only list[AssignmentListRead] 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:161
GET /api/v1/owned_organisations/assignments/by-party/{party_id} list_assignments_by_party assignment.read none none list[AssignmentListRead] 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:174
GET /api/v1/owned_organisations/assignments/by-dept/{dept_id} list_assignments_by_dept assignment.read none none list[AssignmentListRead] 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:188
POST /api/v1/owned_organisations/assignments/ create_assignment assignment.create AssignmentCreate none AssignmentRead 201 src/cluster_erp/modules/owned_organisations/employees/routes.py:200
GET /api/v1/owned_organisations/assignments/{assignment_id} get_assignment assignment.read none none AssignmentRead 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:216
PUT /api/v1/owned_organisations/assignments/{assignment_id} update_assignment assignment.update AssignmentUpdate none AssignmentRead 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:234
POST /api/v1/owned_organisations/assignments/bulk-delete bulk_delete_assignments assignment.bulk_delete BulkDeleteRequest none BulkDeleteResponse 200 (default) src/cluster_erp/modules/owned_organisations/employees/routes.py:253
DELETE /api/v1/owned_organisations/assignments/{assignment_id} delete_assignment assignment.delete none none none 204 src/cluster_erp/modules/owned_organisations/employees/routes.py:265

Error codes

The table lists the error codes that code under src/cluster_erp/modules/owned_organisations/ raises, found by a syntax-tree scan for AppError(...), the factories in src/cluster_erp/core/errors.py (not_found, conflict, protected, permission_denied, privilege_escalation, check_version), and HTTPException(...). A status of 400 is the AppError default (src/cluster_erp/core/errors.py:23). Guard errors (401, 403), the entitlement codes, and validation errors (422) apply to every route and are listed on Errors.

Code HTTP status Raised in First site
RESOURCE_NOT_FOUND 404 departments, employees, organisations src/cluster_erp/modules/owned_organisations/departments/routes.py:95
VALIDATION_ERROR 422 employees, organisations src/cluster_erp/modules/owned_organisations/employees/services.py:205

Events emitted

The table lists the contract classes that code under src/cluster_erp/modules/owned_organisations/ passes directly to EventBus.emit, found by a syntax-tree scan. Events built in a variable first are not counted. The contracts are described in Contracts reference.

Contract Sites First site
EmployeeAdded 1 src/cluster_erp/modules/owned_organisations/employees/services.py:232
OrganisationCreated 1 src/cluster_erp/modules/owned_organisations/organisations/services.py:103
OrganisationUpdated 1 src/cluster_erp/modules/owned_organisations/organisations/services.py:139
PartyRoleSet 2 src/cluster_erp/modules/owned_organisations/employees/services.py:94

Verified against commit 92f8051 on 2026-11-13.

Verified against commit 92f8051 · 2026-11-13