# Approval Workflows {#approval-workflows}


Request approval system for leave, equipment, expenses, and custom workflows.


## Overview {#overview}


The approval system provides multi-level request handling with configurable policies and team-based approvals.


## Approval Flow {#approval-flow}


```
Employee submits request
  │
  ├── Auto-approved? → ✅ Done
  │
  └── Manual review
        ├── Team lead approves
        ├── Manager approves
        └── ✅ Request approved / ❌ Rejected
```


## Core Entities {#core-entities}



### Approval Policy {#approval-policy}


| Field          | Type   | Description                          |
| -------------- | ------ | ------------------------------------ |
| `name`         | string | Policy name                          |
| `description`  | string | Policy details                       |
| `approvalType` | enum   | Time Off, Equipment, Expense, Custom |


### Request Approval {#request-approval}


| Field               | Type       | Description                 |
| ------------------- | ---------- | --------------------------- |
| `name`              | string     | Request title               |
| `type`              | string     | Request type                |
| `status`            | enum       | Pending, Approved, Refused  |
| `min_count`         | number     | Minimum approvals needed    |
| `approvalPolicyId`  | UUID       | Associated policy           |
| `employeeApprovals` | Employee[] | Required employee approvers |
| `teamApprovals`     | Team[]     | Required team approvers     |


## Approval Types {#approval-types}


| Type          | Use Case                     |
| ------------- | ---------------------------- |
| **Time Off**  | Leave/vacation requests      |
| **Equipment** | Equipment sharing requests   |
| **Expense**   | Expense report approvals     |
| **Custom**    | Any custom approval workflow |


## API Endpoints {#api-endpoints}


```bash
# Approval Policies
GET    /api/approval-policy
POST   /api/approval-policy
PUT    /api/approval-policy/:id

# Request Approvals
GET    /api/request-approval
POST   /api/request-approval
PUT    /api/request-approval/:id

# Approve/Refuse
PUT    /api/request-approval/:id/approve
PUT    /api/request-approval/:id/refuse
```


## Related Pages {#related-pages}


- [Employee Management](https://sourcey-gauzy.pages.dev/features/employee-management/index.md)
- [HRM Features](https://sourcey-gauzy.pages.dev/features/hrm-overview/index.md)
- [Equipment Management](https://sourcey-gauzy.pages.dev/features/equipment-management/index.md)
