Proyectos y entregas
Proyectos, tareas, miembros, tarifas y asignaciones — automatiza la entrega y sincroniza los datos del proyecto.
Proyecto
Endpoints
| GET | /projects | Recupera la colección de recursos Project. |
| POST | /projects | Crea un recurso Project. |
| GET | /projects/{id} | Recupera un recurso Project. |
| PATCH | /projects/{id} | Actualiza el recurso Project. |
| DELETE | /projects/{id} | Elimina el recurso Project. |
| POST | /projects/{id}/archive | Archive this project |
| GET | /projects/{id}/cost-allocations | Recupera un recurso Project. |
| GET | /projects/{id}/documents | Recupera un recurso Project. |
| GET | /projects/{id}/logged-time | Recupera un recurso Project. |
| POST | /projects/{id}/merge | Merge this project into another |
| POST | /projects/{id}/pin | Pin this project for the current user |
| GET | /projects/{id}/profitability | Recupera un recurso Project. |
| GET | /projects/{id}/reparent-impact | How many employees lose visibility if this project is moved |
| GET | /projects/{id}/travel | Recupera un recurso Project. |
| POST | /projects/{id}/unarchive | Restore an archived project |
| POST | /projects/{id}/unpin | Unpin this project for the current user |
| GET | /projects/folder-counts | Recupera la colección de recursos Project. |
| GET | /projects/preview | Recupera la colección de recursos Project. |
| GET | /projects/reference-usage | Recupera la colección de recursos Project. |
| GET | /projects/search | Recupera la colección de recursos Project. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| parent | mixed | |
| client | string,null (iri-reference) | |
| currency | string,null (iri-reference) | |
| dateFrom | string,null (date-time) | |
| dateTo | string,null (date-time) | |
| name* | string | |
| publicDescription | stringnull | |
| type* | string | |
| clientHash | string | |
| notes | stringnull | |
| description | stringnull | Free-text description. A third free-text field alongside `publicDescription` (customer-facing, 255) and `notes` (internal): the client asked for "description" and got it as its own field rather than a rename, so nothing that reads either of the other two changes meaning (#3431). |
| reference | stringnull | Cross-system integration key — a stable, human-writable handle for joining this project to systems outside Flowtly, because the numeric id is unusable for that (#3431). NOT a display nicety: the UI prefilling it from the name is a convenience on first entry, and every property below is the contract. |
| color | string | |
| icon | stringnull | |
| priceNet | stringnull | |
| taxGroup | string,null (iri-reference) | |
| attributeSet | string,null (iri-reference) | |
| taskCreatePolicy | string | |
| taskVisibility | string | |
| projectMembers | array | |
| archivedAt | string,null (date-time) | Archiving retires a project from view without deleting it (#2896). |
| status | string | |
| flattenType | string | |
| budgets | array |
Miembro del Proyecto
Endpoints
| GET | /project-members | Recupera la colección de recursos ProjectMember. |
| POST | /project-members | Crea un recurso ProjectMember. |
| GET | /project-members/{id} | Recupera un recurso ProjectMember. |
| PATCH | /project-members/{id} | Actualiza el recurso ProjectMember. |
| DELETE | /project-members/{id} | Elimina el recurso ProjectMember. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | string | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| position | string | |
| positionName | string | |
| notify | boolean | Whether to send this person the "project assigned" notification (#3955). |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possiblePositions | string |
Tarea del Proyecto
Endpoints
| POST | /project_tasks/{id}/subscribe | Crea un recurso ProjectTask. |
| POST | /project_tasks/{id}/unsubscribe | Crea un recurso ProjectTask. |
| GET | /project-tasks | Recupera la colección de recursos ProjectTask. |
| POST | /project-tasks | Crea un recurso ProjectTask. |
| GET | /project-tasks/{id} | Recupera un recurso ProjectTask. |
| PATCH | /project-tasks/{id} | Actualiza el recurso ProjectTask. |
| DELETE | /project-tasks/{id} | Elimina el recurso ProjectTask. |
| GET | /project-tasks/picker | Recupera la colección de recursos ProjectTask. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| requester | string,null (iri-reference) | |
| list | string,null (iri-reference) | |
| status | string (iri-reference) | |
| title | string | |
| description | stringnull | |
| priority* | string | |
| startAt | string,null (date-time) | |
| dueAt | string,null (date-time) | |
| completedAt | string,null (date-time) | |
| position | integer | |
| recurrenceRule | string,null (iri-reference) | |
| recurrenceParent | string,null (iri-reference) | |
| isTemplate | boolean | |
| assignees | array | |
| subtasks | array | The task's checklist, as STRUCTURED items rather than prose (#2210). |
| subscribers | array | |
| asset | string,null (iri-reference) | |
| transaction | string,null (iri-reference) | THE FINANCE DOCUMENT THIS TASK IS ABOUT (#3532). |
| transactionAttachment | string,null (iri-reference) | |
| source | string | |
| raisedBy | string,null (iri-reference) | ZGŁASZAJĄCY — the COLLEAGUE who raised this task (#2210). |
| reporterName | stringnull | |
| reporterEmail | stringnull | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possiblePriorities | string | |
| statusName | stringnull | Slim status accessor for the WorkTime embed — keeps the API payload small (single string) instead of nesting the full ProjectTaskStatus resource on every WorkTime row. |
| template | boolean | |
| subtaskProgress | array | How many of the checklist's items are done, and how many there are (#2210). |
Precio del Proyecto
Endpoints
| GET | /project-prices | Recupera la colección de recursos ProjectPrice. |
| POST | /project-prices | Crea un recurso ProjectPrice. |
| GET | /project-prices/{id} | Recupera un recurso ProjectPrice. |
| PATCH | /project-prices/{id} | Actualiza el recurso ProjectPrice. |
| DELETE | /project-prices/{id} | Elimina el recurso ProjectPrice. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| project* | string,null (iri-reference) | |
| property | string,null (iri-reference) | |
| attributeRule* | string (iri-reference) | |
| amount* | string | |
| currency* | string (iri-reference) | |
| dateFrom* | string,null (date-time) | |
| note | stringnull |
Transacción del Proyecto
Endpoints
| GET | /project-transactions | Recupera la colección de recursos ProjectTransaction. |
| POST | /project-transactions | Crea un recurso ProjectTransaction. |
| PATCH | /project-transactions/{id} | Actualiza el recurso ProjectTransaction. |
| DELETE | /project-transactions/{id} | Elimina el recurso ProjectTransaction. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| project* | string,null (iri-reference) | |
| transaction* | string,null (iri-reference) | |
| amount | stringnull | |
| note | stringnull |
Tarifa de Proyecto del Empleado
Endpoints
| GET | /people-project-rates | Recupera la colección de recursos EmployeeProjectRate. |
| POST | /people-project-rates | Crea un recurso EmployeeProjectRate. |
| GET | /people-project-rates/{id} | Recupera un recurso EmployeeProjectRate. |
| PATCH | /people-project-rates/{id} | Actualiza el recurso EmployeeProjectRate. |
| DELETE | /people-project-rates/{id} | Elimina el recurso EmployeeProjectRate. |
| POST | /people-project-rates/{id}/extend | Crea un recurso EmployeeProjectRate. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| employee* | string (iri-reference) | |
| project* | string (iri-reference) | |
| position | stringnull | |
| positionRef | string,null (iri-reference) | |
| rate* | number | |
| currency | string (iri-reference) | |
| dateFrom* | string,null (date-time) | Nullable, to match the column, the property, the getter and {@see \App\Service\App\WorkTime\Report\EntryRateResolver::selectEffective()}, all four of which already admit a null left edge. Only this setter and isActive() refused it, which is the same asymmetry: `setDateTo()` and the `dateTo` half of isActive() both handle null, and the `dateFrom` half of neither did (#3159). |
| dateTo | string,null (date-time) | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| active | boolean | Does this rate apply on the given date? |
| relatedEmployee | string,null (iri-reference) |
Comentario de Tarea de Proyecto
Endpoints
| GET | /project-task-comments | Recupera la colección de recursos ProjectTaskComment. |
| POST | /project-task-comments | Crea un recurso ProjectTaskComment. |
| GET | /project-task-comments/{id} | Recupera un recurso ProjectTaskComment. |
| PATCH | /project-task-comments/{id} | Actualiza el recurso ProjectTaskComment. |
| DELETE | /project-task-comments/{id} | Elimina el recurso ProjectTaskComment. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| task | string (iri-reference) | |
| employee | string (iri-reference) | |
| content | string | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) |
Lista de Tareas de Proyecto
Endpoints
| GET | /project-task-lists | Recupera la colección de recursos ProjectTaskList. |
| POST | /project-task-lists | Crea un recurso ProjectTaskList. |
| GET | /project-task-lists/{id} | Recupera un recurso ProjectTaskList. |
| PATCH | /project-task-lists/{id} | Actualiza el recurso ProjectTaskList. |
| DELETE | /project-task-lists/{id} | Elimina el recurso ProjectTaskList. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| name | string | |
| position | integer | |
| isDefault | boolean | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| default | boolean |
Estado de Tarea de Proyecto
Endpoints
| GET | /project-task-statuses | Recupera la colección de recursos ProjectTaskStatus. |
| POST | /project-task-statuses | Crea un recurso ProjectTaskStatus. |
| GET | /project-task-statuses/{id} | Recupera un recurso ProjectTaskStatus. |
| PATCH | /project-task-statuses/{id} | Actualiza el recurso ProjectTaskStatus. |
| DELETE | /project-task-statuses/{id} | Elimina el recurso ProjectTaskStatus. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| name | string | |
| color | string | |
| position | integer | |
| isClosed | boolean | READABLE ACCESSOR, and it is not a duplicate of {@see isClosed()} (#3720). |
| isStarted | boolean | Marks a status as meaning "work has begun", exactly parallel to {@see $isClosed}. Not mutually exclusive with it or with itself across rows: like isClosed, more than one status may carry isStarted=true at once (e.g. "In progress" and "In review" could both count as started), and there is no DB or app-level uniqueness enforcement — same as isClosed today. |
| isDefault | boolean | READABLE ACCESSOR, and it is not a duplicate of {@see isDefault()} (#3720). |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| closed | boolean | |
| started | boolean | |
| default | boolean | |
| deleted | boolean | Check if the entity has been soft deleted. |
Regla de Recurrencia de Tarea de Proyecto
Endpoints
| GET | /project-task-recurrence-rules | Recupera la colección de recursos ProjectTaskRecurrenceRule. |
| POST | /project-task-recurrence-rules | Crea un recurso ProjectTaskRecurrenceRule. |
| GET | /project-task-recurrence-rules/{id} | Recupera un recurso ProjectTaskRecurrenceRule. |
| PATCH | /project-task-recurrence-rules/{id} | Actualiza el recurso ProjectTaskRecurrenceRule. |
| DELETE | /project-task-recurrence-rules/{id} | Elimina el recurso ProjectTaskRecurrenceRule. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| project | string (iri-reference) | |
| frequency | string | |
| interval | integer | |
| weekday | integernull | |
| monthDay | integernull | |
| timeOfDay | string,null (date-time) | |
| timezone | string | |
| nextRunAt | string,null (date-time) | |
| endAt | string,null (date-time) | |
| maxOccurrences | integernull | |
| occurrencesGenerated | integer | |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| possibleFrequencies | string |
Plan de Personas del Proyecto
Endpoints
| GET | /project-people-plans | Recupera la colección de recursos ProjectPeoplePlan. |
| POST | /project-people-plans | Crea un recurso ProjectPeoplePlan. |
| GET | /project-people-plans/{id} | Recupera un recurso ProjectPeoplePlan. |
| PATCH | /project-people-plans/{id} | Actualiza el recurso ProjectPeoplePlan. |
| DELETE | /project-people-plans/{id} | Elimina el recurso ProjectPeoplePlan. |
| GET | /projects/{projectId}/people-plans | Recupera la colección de recursos ProjectPeoplePlan. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| project | string (iri-reference) | |
| periodKey | string | |
| forecastHours | integernull | |
| overrideRatePerHour | stringnull |
Regla de Cascada de Asignación de Proyecto
Endpoints
| GET | /project-allocation-cascade-rules | Recupera la colección de recursos ProjectAllocationCascadeRule. |
| POST | /project-allocation-cascade-rules | Crea un recurso ProjectAllocationCascadeRule. |
| GET | /project-allocation-cascade-rules/{id} | Recupera un recurso ProjectAllocationCascadeRule. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | string | |
| name | string | |
| assetAttribute | string (iri-reference) | Attribute carried by Property (Asset) entities. Drives the share each selected Asset takes of the total cost. For Juwentus on Horizon this is "Ochrona" (5/13/23.98/23.42/34.60 across the 5 buildings, summing to 100). |
| projectAttribute | string (iri-reference) | Attribute carried by tenant Projects. Drives the within-building split. For Horizon's standard rules this is "Powierzchnia" — each tenant's m² inside its building. |
Adjunto de Transacción de Proyecto
Endpoints
| GET | /project-transaction-attachments | Recupera la colección de recursos ProjectTransactionAttachment. |
| POST | /project-transaction-attachments | Crea un recurso ProjectTransactionAttachment. |
| PATCH | /project-transaction-attachments/{id} | Actualiza el recurso ProjectTransactionAttachment. |
| DELETE | /project-transaction-attachments/{id} | Elimina el recurso ProjectTransactionAttachment. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| project | string (iri-reference) | |
| transactionAttachment | string (iri-reference) | |
| netAmount | integernull | |
| excluded | booleannull | A client the operator DELIBERATELY struck from this split (#3315). |
| line | string,null (iri-reference) |
Precio del medidor del proyecto
Endpoints
| GET | /project-meter-prices | Recupera la colección de recursos ProjectMeterPrice. |
| POST | /project-meter-prices | Crea un recurso ProjectMeterPrice. |
| PATCH | /project-meter-prices/{id} | Actualiza el recurso ProjectMeterPrice. |
| DELETE | /project-meter-prices/{id} | Elimina el recurso ProjectMeterPrice. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | string | |
| project* | string (iri-reference) | |
| utilityType* | string | |
| meter | string,null (iri-reference) | |
| unitPrice* | string | |
| currency | string,null (iri-reference) | |
| effectiveFrom | string,null (date-time) |
Traslado de coste de proyecto
Endpoints
| POST | /project-costs/move | Crea un recurso ProjectCostMove. |
Plantilla de proyecto
Endpoints
| GET | /project-templates | Recupera la colección de recursos ProjectTemplate. |
| POST | /project-templates | Crea un recurso ProjectTemplate. |
| GET | /project-templates/{id} | Recupera un recurso ProjectTemplate. |
| PATCH | /project-templates/{id} | Actualiza el recurso ProjectTemplate. |
| DELETE | /project-templates/{id} | Elimina el recurso ProjectTemplate. |
| POST | /project-templates/{id}/instantiate | Crea un recurso ProjectTemplate. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| name* | string | |
| structure | object | |
| isDefault | boolean | The org's built-in default template (#3026): applied to a project created with no template explicitly chosen. Read-only over the API — not in the create/update groups — because a user declaring their own template "the default" would leave more than one row with this flag true, and nothing enforces the resulting ambiguity away. Set only by ProjectDefaultTemplateProvisioner, which lazily creates this row once per org and never touches it again. |
| createdAt | string (date-time) | |
| updatedAt | string (date-time) | |
| deletedAt | string,null (date-time) | |
| default | boolean | |
| deleted | boolean | Check if the entity has been soft deleted. |
Subtarea de tarea de proyecto
Endpoints
| GET | /project-task-subtasks | Recupera la colección de recursos ProjectTaskSubtask. |
| POST | /project-task-subtasks | Crea un recurso ProjectTaskSubtask. |
| GET | /project-task-subtasks/{id} | Recupera un recurso ProjectTaskSubtask. |
| PATCH | /project-task-subtasks/{id} | Actualiza el recurso ProjectTaskSubtask. |
| DELETE | /project-task-subtasks/{id} | Elimina el recurso ProjectTaskSubtask. |
Campos de schema
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer | |
| task | string (iri-reference) | |
| title* | string | Never empty. An item with no text is not a checklist entry, it is a stray row that renders as a checkbox beside nothing — and the archetype's permanent `.ck.add` row means an accidental blank submit is easy to make. |
| done | boolean | |
| position | integer | Author-arranged order within the task. Ties break on id, via the collection's own ordering. |