Download OpenAPI specification:Download
The PrimeForge HR Service provides comprehensive human resources management capabilities for the PrimeForge platform.
Most endpoints require JWT authentication. Include the access token in the Authorization header:
Authorization: Bearer <your_access_token>
This service supports multi-tenancy. The tenant context is automatically extracted from the JWT token.
Roles: HR_MANAGER, HR_SPECIALIST, ADMIN, OWNER
| name required | string Company name |
| company_number required | string Company registration number |
| company_type | string Default: "LIMITED" Enum: "LIMITED" "PLC" "LLP" "SOLE_TRADER" "CHARITY" Company type |
| company_status | string Default: "ACTIVE" Enum: "ACTIVE" "DISSOLVED" "LIQUIDATION" "DORMANT" Company status |
| incorporation_date | string Incorporation date |
| registered_office_address | string Registered office address |
| company_director | string Company director name |
| company_secretary | string Company secretary name |
| shareholders | object Shareholders information as JSON |
| utr_number | string UTR number |
| vat_number | string VAT number |
| paye_reference | string PAYE reference |
| account_office_reference | string Account office reference |
| sic_code | string SIC code |
| website | string Company website URL |
string Company email address | |
| phone | string Company phone number |
{- "name": "Acme Corporation Ltd",
- "company_number": "12345678",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": "2020-01-01",
- "registered_office_address": "string",
- "company_director": "string",
- "company_secretary": "string",
- "shareholders": { },
- "utr_number": "string",
- "vat_number": "string",
- "paye_reference": "string",
- "account_office_reference": "string",
- "sic_code": "string",
- "website": "string",
- "email": "string",
- "phone": "string"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}| sortOrder | string Enum: "asc" "desc" Sort order |
| sortBy | string Field to sort by (name, companyNumber, type, status, created, updated) |
| search | string Search term for company name, number, director, or email |
| limit | number Number of items per page (max 100) |
| page | number Page number for pagination (starts from 1) |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| id required | string <uuid> Company ID |
{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> Company ID |
| name | string Company name |
| company_number | string Company registration number (Be careful when updating) |
| company_type | string Enum: "LIMITED" "PLC" "LLP" "SOLE_TRADER" "CHARITY" Company type |
| company_status | string Enum: "ACTIVE" "DISSOLVED" "LIQUIDATION" "DORMANT" Company status |
| incorporation_date | string Incorporation date |
| registered_office_address | string Registered office address |
| company_director | string Company director name |
| company_secretary | string Company secretary name |
| shareholders | object Shareholders information as JSON |
| utr_number | string UTR number |
| vat_number | string VAT number |
| paye_reference | string PAYE reference |
| account_office_reference | string Account office reference |
| sic_code | string SIC code |
| website | string Company website URL |
string Company email address | |
| phone | string Company phone number |
{- "name": "string",
- "company_number": "12345678",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": "string",
- "registered_office_address": "string",
- "company_director": "string",
- "company_secretary": "string",
- "shareholders": { },
- "utr_number": "string",
- "vat_number": "string",
- "paye_reference": "string",
- "account_office_reference": "string",
- "sic_code": "string",
- "website": "string",
- "email": "string",
- "phone": "string"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}| companyNumber required | string Company registration number |
{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> Company ID |
{- "canDelete": true,
- "usage": {
- "departments": 0,
- "jobs": 0,
- "assignments": 0,
- "paySchedules": 0,
- "payRuns": 0,
- "shiftTemplates": 0,
- "insurancePolicies": 0,
- "safetyInspections": 0,
- "riskAssessments": 0
}
}| name required | string Department name |
| company_id required | string <uuid> Company ID |
| department_function required | string Enum: "EXECUTIVE_MANAGEMENT" "HR" "FINANCE" "ACCOUNTING" "PAYROLL" "LEGAL" "COMPLIANCE" "RISK_MANAGEMENT" "SALES" "BUSINESS_DEVELOPMENT" "MARKETING" "DIGITAL_MARKETING" "PRODUCT_MANAGEMENT" "OPERATIONS" "CUSTOMER_SUPPORT" "CUSTOMER_SUCCESS" "PUBLIC_RELATIONS" "R_D" "IT" "SOFTWARE_DEVELOPMENT" "DATA_SCIENCE" "CYBERSECURITY" "TECHNICAL_SUPPORT" "PROCUREMENT" "SUPPLY_CHAIN_MANAGEMENT" "LOGISTICS" "WAREHOUSE" "MANUFACTURING" "QUALITY_ASSURANCE" "HEALTH_AND_SAFETY" "FACILITIES_MANAGEMENT" "TRAINING_AND_DEVELOPMENT" "CORPORATE_STRATEGY" "INVESTOR_RELATIONS" "CORPORATE_SOCIAL_RESPONSIBILITY" "OTHER" Department function |
| head_of_department_id | string <uuid> Head of department employee ID |
| parent_department_id | string <uuid> Parent department ID |
{- "name": "Software Development",
- "company_id": "123e4567-e89b-12d3-a456-426614174000",
- "department_function": "SOFTWARE_DEVELOPMENT",
- "head_of_department_id": "123e4567-e89b-12d3-a456-426614174000",
- "parent_department_id": "123e4567-e89b-12d3-a456-426614174000"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_id": "string",
- "department_function": "EXECUTIVE_MANAGEMENT",
- "head_of_department_id": { },
- "parent_department_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| company_id required | string Example: company_id=550e8400-e29b-41d4-a716-446655440000 Company ID to filter departments |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_id": "string",
- "department_function": "EXECUTIVE_MANAGEMENT",
- "head_of_department_id": { },
- "parent_department_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| id required | string Example: 123e4567-e89b-12d3-a456-426614174000 Department ID |
{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_id": "string",
- "department_function": "EXECUTIVE_MANAGEMENT",
- "head_of_department_id": { },
- "parent_department_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string Department ID |
| name | string Department name |
| company_id | string <uuid> Company ID |
| department_function | string Enum: "EXECUTIVE_MANAGEMENT" "HR" "FINANCE" "ACCOUNTING" "PAYROLL" "LEGAL" "COMPLIANCE" "RISK_MANAGEMENT" "SALES" "BUSINESS_DEVELOPMENT" "MARKETING" "DIGITAL_MARKETING" "PRODUCT_MANAGEMENT" "OPERATIONS" "CUSTOMER_SUPPORT" "CUSTOMER_SUCCESS" "PUBLIC_RELATIONS" "R_D" "IT" "SOFTWARE_DEVELOPMENT" "DATA_SCIENCE" "CYBERSECURITY" "TECHNICAL_SUPPORT" "PROCUREMENT" "SUPPLY_CHAIN_MANAGEMENT" "LOGISTICS" "WAREHOUSE" "MANUFACTURING" "QUALITY_ASSURANCE" "HEALTH_AND_SAFETY" "FACILITIES_MANAGEMENT" "TRAINING_AND_DEVELOPMENT" "CORPORATE_STRATEGY" "INVESTOR_RELATIONS" "CORPORATE_SOCIAL_RESPONSIBILITY" "OTHER" Department function |
| head_of_department_id | string <uuid> Head of department employee ID |
| parent_department_id | string <uuid> Parent department ID |
{- "name": "Software Development",
- "company_id": "123e4567-e89b-12d3-a456-426614174000",
- "department_function": "SOFTWARE_DEVELOPMENT",
- "head_of_department_id": "123e4567-e89b-12d3-a456-426614174000",
- "parent_department_id": "123e4567-e89b-12d3-a456-426614174000"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_id": "string",
- "department_function": "EXECUTIVE_MANAGEMENT",
- "head_of_department_id": { },
- "parent_department_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string Example: 123e4567-e89b-12d3-a456-426614174000 Department ID |
{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_id": "string",
- "department_function": "EXECUTIVE_MANAGEMENT",
- "head_of_department_id": { },
- "parent_department_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "head_of_department": { },
- "parent_department": { },
- "sub_departments": [
- "string"
], - "assignments_count": 0
}| companyId required | string Company ID |
| includeRelations | boolean Include related data (company, head, parent, sub-departments) |
[- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_id": "string",
- "department_function": "EXECUTIVE_MANAGEMENT",
- "head_of_department_id": { },
- "parent_department_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| company_id required | string Company ID |
| name required | string Job title |
| soc_2020_code | string SOC 2020 code |
| employment_type | string Default: "PERMANENT" Enum: "PERMANENT" "TEMPORARY" "CONTRACT" "INTERNSHIP" "PART_TIME" "ZERO_HOUR" "OTHER" Employment type |
| job_level | string Default: "ENTRY" Enum: "ENTRY" "JUNIOR" "MID" "SENIOR" "LEAD" "MANAGER" "DIRECTOR" "EXECUTIVE" "OTHER" Job level |
| salary_grade | string Salary grade |
| minimum_salary | number >= 0 Minimum salary |
| maximum_salary | number >= 0 Maximum salary |
| salary_currency | string Default: "GBP" Salary currency |
| pay_frequency | string Default: "MONTHLY" Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Pay frequency |
| work_pattern | string Default: "FULL_TIME" Enum: "FULL_TIME" "PART_TIME" "FLEXIBLE" "OTHER" Work pattern |
| work_location | string Default: "ON_SITE" Enum: "ON_SITE" "REMOTE" "HYBRID" "OTHER" Work location |
| weekly_hours | number >= 0 Default: 37.5 Weekly hours |
| job_description | string Job description |
| job_responsibilities | string Job responsibilities |
| job_requirements | string Job requirements |
| job_benefits | string Job benefits |
| job_status | string Default: "ACTIVE" Enum: "ACTIVE" "INACTIVE" "FROZEN" "DISCONTINUED" Job status |
{- "company_id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "soc_2020_code": "string",
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": "string",
- "minimum_salary": 30000,
- "maximum_salary": 60000,
- "salary_currency": "GBP",
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": 37.5,
- "job_description": "string",
- "job_responsibilities": "string",
- "job_requirements": "string",
- "job_benefits": "string",
- "job_status": "ACTIVE"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "soc_2020_code": { },
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": { },
- "minimum_salary": { },
- "maximum_salary": { },
- "salary_currency": { },
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": { },
- "job_description": { },
- "job_responsibilities": { },
- "job_requirements": { },
- "job_benefits": { },
- "job_status": "ACTIVE"
}| company_id required | string Example: company_id=550e8400-e29b-41d4-a716-446655440000 Company ID to filter jobs |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "soc_2020_code": { },
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": { },
- "minimum_salary": { },
- "maximum_salary": { },
- "salary_currency": { },
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": { },
- "job_description": { },
- "job_responsibilities": { },
- "job_requirements": { },
- "job_benefits": { },
- "job_status": "ACTIVE"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| id required | string Example: 123e4567-e89b-12d3-a456-426614174000 Job ID |
{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "soc_2020_code": { },
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": { },
- "minimum_salary": { },
- "maximum_salary": { },
- "salary_currency": { },
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": { },
- "job_description": { },
- "job_responsibilities": { },
- "job_requirements": { },
- "job_benefits": { },
- "job_status": "ACTIVE"
}| id required | string Job ID |
| company_id | string Company ID |
| name | string Job title |
| soc_2020_code | string SOC 2020 code |
| employment_type | string Default: "PERMANENT" Enum: "PERMANENT" "TEMPORARY" "CONTRACT" "INTERNSHIP" "PART_TIME" "ZERO_HOUR" "OTHER" Employment type |
| job_level | string Default: "ENTRY" Enum: "ENTRY" "JUNIOR" "MID" "SENIOR" "LEAD" "MANAGER" "DIRECTOR" "EXECUTIVE" "OTHER" Job level |
| salary_grade | string Salary grade |
| minimum_salary | number >= 0 Minimum salary |
| maximum_salary | number >= 0 Maximum salary |
| salary_currency | string Default: "GBP" Salary currency |
| pay_frequency | string Default: "MONTHLY" Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Pay frequency |
| work_pattern | string Default: "FULL_TIME" Enum: "FULL_TIME" "PART_TIME" "FLEXIBLE" "OTHER" Work pattern |
| work_location | string Default: "ON_SITE" Enum: "ON_SITE" "REMOTE" "HYBRID" "OTHER" Work location |
| weekly_hours | number >= 0 Default: 37.5 Weekly hours |
| job_description | string Job description |
| job_responsibilities | string Job responsibilities |
| job_requirements | string Job requirements |
| job_benefits | string Job benefits |
| job_status | string Default: "ACTIVE" Enum: "ACTIVE" "INACTIVE" "FROZEN" "DISCONTINUED" Job status |
{- "company_id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "soc_2020_code": "string",
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": "string",
- "minimum_salary": 30000,
- "maximum_salary": 60000,
- "salary_currency": "GBP",
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": 37.5,
- "job_description": "string",
- "job_responsibilities": "string",
- "job_requirements": "string",
- "job_benefits": "string",
- "job_status": "ACTIVE"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "soc_2020_code": { },
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": { },
- "minimum_salary": { },
- "maximum_salary": { },
- "salary_currency": { },
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": { },
- "job_description": { },
- "job_responsibilities": { },
- "job_requirements": { },
- "job_benefits": { },
- "job_status": "ACTIVE"
}| companyId required | string Company ID |
| includeRelations | boolean Include related data (company, assignment counts) |
[- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "soc_2020_code": { },
- "employment_type": "PERMANENT",
- "job_level": "ENTRY",
- "salary_grade": { },
- "minimum_salary": { },
- "maximum_salary": { },
- "salary_currency": { },
- "pay_frequency": "WEEKLY",
- "work_pattern": "FULL_TIME",
- "work_location": "ON_SITE",
- "weekly_hours": { },
- "job_description": { },
- "job_responsibilities": { },
- "job_requirements": { },
- "job_benefits": { },
- "job_status": "ACTIVE"
}
]| employee_no required | string Employee number |
| first_name required | string First name |
| last_name required | string Last name |
| email required | string Email address |
| national_insurance_no required | string National Insurance number |
| address required | string Address |
| hire_date required | string Hire date |
| title | string Title (Mr/Mrs/Dr/etc) |
| preferred_name | string Preferred name |
| avatar | string Avatar URL |
| phone | string Phone number |
| dob | string Date of birth |
| gender | string Enum: "MALE" "FEMALE" "OTHER" "PREFER_NOT_TO_SAY" |
| right_to_work_status | string Enum: "VERIFIED" "PENDING" "EXPIRED" "FAILED" "NOT_PROVIDED" |
| employment_status | string Default: "ACTIVE" Enum: "ACTIVE" "PROBATION" "LEAVE_PAID" "LEAVE_UNPAID" "SUSPENDED" "NOTICE_PERIOD" "RESIGNED" "TERMINATED" "RETIRED" "CONTRACT_ENDED" "INACTIVE" |
| contract_type | string Enum: "PERMANENT" "FIXED_TERM" "ZERO_HOURS" "APPRENTICE" "CONTRACTOR" |
| contract_start_date | string Contract start date |
| contract_end_date | string Contract end date |
| working_hours | number Working hours per week |
| salary_type | string Enum: "ANNUAL" "MONTHLY" "WEEKLY" "BIWEEKLY" "DAILY" "HOURLY" "COMMISSION" "PROJECT_BASED" |
| salary_amount | number Salary amount |
| tax_code | string Tax code |
| nic_table_letter | string Default: "A" Enum: "A" "B" "C" "H" "J" "M" "Z" |
| user_id | string <uuid> User ID from auth system |
{- "employee_no": "EMP001",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "national_insurance_no": "AB123456C",
- "address": "string",
- "hire_date": "2024-01-01",
- "title": "string",
- "preferred_name": "string",
- "avatar": "string",
- "phone": "07912345678",
- "dob": "1990-01-01",
- "gender": "MALE",
- "right_to_work_status": "VERIFIED",
- "employment_status": "ACTIVE",
- "contract_type": "PERMANENT",
- "contract_start_date": "string",
- "contract_end_date": "string",
- "working_hours": 37.5,
- "salary_type": "ANNUAL",
- "salary_amount": 50000,
- "tax_code": "1257L",
- "nic_table_letter": "A",
- "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}{- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}| company_id required | string <uuid> Company ID (required) |
| employment_status | string Enum: "ACTIVE" "PROBATION" "LEAVE_PAID" "LEAVE_UNPAID" "SUSPENDED" "NOTICE_PERIOD" "RESIGNED" "TERMINATED" "RETIRED" "CONTRACT_ENDED" "INACTIVE" |
| department_id | string Department ID |
| include_terminated | boolean Default: false Include terminated employees |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}Returns a paginated list of employees who do not have any assignments
| page | number Page number (default: 1) |
| limit | number Items per page (default: 10) |
| sortBy | string Field to sort by |
| sortOrder | string Enum: "asc" "desc" Sort order (asc or desc) |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}| id required | string Employee ID |
| title | string Title |
| first_name | string First name |
| last_name | string Last name |
| preferred_name | string Preferred name |
string Email address | |
| phone | string Phone number |
| dob | string Date of birth |
| gender | string Enum: "MALE" "FEMALE" "OTHER" "PREFER_NOT_TO_SAY" |
| national_insurance_no | string National Insurance number |
| right_to_work_status | string Enum: "VERIFIED" "PENDING" "EXPIRED" "FAILED" "NOT_PROVIDED" |
| address | string Address |
| employment_status | string Enum: "ACTIVE" "PROBATION" "LEAVE_PAID" "LEAVE_UNPAID" "SUSPENDED" "NOTICE_PERIOD" "RESIGNED" "TERMINATED" "RETIRED" "CONTRACT_ENDED" "INACTIVE" |
| termination_date | string Termination date |
| contract_type | string Enum: "PERMANENT" "FIXED_TERM" "ZERO_HOURS" "APPRENTICE" "CONTRACTOR" |
| contract_start_date | string Contract start date |
| contract_end_date | string Contract end date |
| working_hours | string Working hours per week |
| salary_type | string Enum: "ANNUAL" "MONTHLY" "WEEKLY" "BIWEEKLY" "DAILY" "HOURLY" "COMMISSION" "PROJECT_BASED" |
| salary_amount | string Salary amount |
| tax_code | string Tax code |
| nic_table_letter | string Enum: "A" "B" "C" "H" "J" "M" "Z" |
{- "title": "Mr",
- "first_name": "string",
- "last_name": "string",
- "preferred_name": "string",
- "email": "string",
- "phone": "07912345678",
- "dob": "1990-01-15",
- "gender": "MALE",
- "national_insurance_no": "AB123456C",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "employment_status": "ACTIVE",
- "termination_date": "string",
- "contract_type": "PERMANENT",
- "contract_start_date": "string",
- "contract_end_date": "string",
- "working_hours": 37.5,
- "salary_type": "ANNUAL",
- "salary_amount": "string",
- "tax_code": "1257L",
- "nic_table_letter": "A"
}{- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}| id required | string Employee ID |
{- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { },
- "contract_type": "PERMANENT",
- "contract_start_date": { },
- "contract_end_date": { },
- "working_hours": { },
- "salary_type": "ANNUAL",
- "salary_amount": { },
- "tax_code": { },
- "nic_table_letter": "A",
- "assignments": [
- "string"
], - "manage_departments": [
- "string"
]
}| employeeNumber required | string Employee number |
{- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}| id required | string Employee ID |
| terminationDate | string Termination date (ISO string) |
{- "id": "string",
- "tenant_id": "string",
- "employee_no": "string",
- "title": { },
- "first_name": "string",
- "preferred_name": { },
- "last_name": "string",
- "email": "string",
- "avatar": { },
- "phone": { },
- "dob": { },
- "gender": "MALE",
- "national_insurance_no": "string",
- "right_to_work_status": "VERIFIED",
- "address": "string",
- "hire_date": "2019-08-24T14:15:22Z",
- "termination_date": { },
- "employment_status": "ACTIVE",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "default_company": { }
}Checks if the provided employee number already exists and suggests an alternative if it does
| employee_no required | string Employee number to check for duplicates |
{- "employee_no": "EMP001"
}{- "is_duplicate": true,
- "suggested_employee_no": "EMP002"
}| employee_id required | string <uuid> Employee ID |
| company_id required | string <uuid> Company ID |
| job_id required | string <uuid> Job ID |
| department_id required | string <uuid> Department ID |
| start_date required | string Assignment start date |
| end_date | string Assignment end date |
| is_primary | boolean Default: true Is this the primary assignment for the employee |
| employment_type | string Default: "PERMANENT" Enum: "PERMANENT" "TEMPORARY" "CONTRACT" "INTERNSHIP" "PART_TIME" "ZERO_HOUR" "OTHER" Employment type |
{- "employee_id": "df4fd699-0854-488d-9cc2-15e751a80ee3",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "department_id": "094fb5f1-8160-46ea-8cec-010c4b44e054",
- "start_date": "2024-01-01",
- "end_date": "2024-12-31",
- "is_primary": true,
- "employment_type": "PERMANENT"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| start_date_to | any Filter by start date to |
| start_date_from | any Filter by start date from |
| include_ended | any Include ended assignments |
| job_id | any Filter by job ID |
| department_id | any Filter by department ID |
| employee_id | any Filter by employee ID |
| sortOrder | string Enum: "asc" "desc" Sort order |
| sortBy | string Field to sort by |
| limit | number Number of items per page (max 100) |
| page | number Page number for pagination (starts from 1) |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| employeeId required | string Employee ID |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
]| employeeId required | string Employee ID |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
]| departmentId required | string Department ID |
| include_ended | boolean Include ended assignments |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
]| id required | string Assignment ID |
{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| id required | string Assignment ID |
| company_id | string <uuid> Company ID |
| job_id | string <uuid> Job ID |
| department_id | string <uuid> Department ID |
| end_date | string Assignment end date |
| is_primary | boolean Is this the primary assignment for the employee |
| employment_type | string Enum: "PERMANENT" "TEMPORARY" "CONTRACT" "INTERNSHIP" "PART_TIME" "ZERO_HOUR" "OTHER" Employment type |
{- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "department_id": "094fb5f1-8160-46ea-8cec-010c4b44e054",
- "end_date": "2024-12-31",
- "is_primary": true,
- "employment_type": "PERMANENT"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| id required | string Assignment ID |
{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "job": { },
- "department": { },
- "company": { }
}| id required | string Assignment ID |
| endDate | string End date (ISO string) |
{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}Ends current assignment and creates a new one for job transfer
| employeeId required | string <uuid> |
required | object (CreateAssignmentDto) |
| reason | string |
{- "employeeId": "b0e78c8f-8c8b-4410-8293-9239e39d9e17",
- "newAssignment": {
- "employee_id": "df4fd699-0854-488d-9cc2-15e751a80ee3",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "department_id": "094fb5f1-8160-46ea-8cec-010c4b44e054",
- "start_date": "2024-01-01",
- "end_date": "2024-12-31",
- "is_primary": true,
- "employment_type": "PERMANENT"
}, - "reason": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "job": { },
- "department": { },
- "company": { }
}Creates an assignment while enforcing business rules (e.g., single primary assignment)
| employee_id required | string <uuid> Employee ID |
| company_id required | string <uuid> Company ID |
| job_id required | string <uuid> Job ID |
| department_id required | string <uuid> Department ID |
| start_date required | string Assignment start date |
| end_date | string Assignment end date |
| is_primary | boolean Default: true Is this the primary assignment for the employee |
| employment_type | string Default: "PERMANENT" Enum: "PERMANENT" "TEMPORARY" "CONTRACT" "INTERNSHIP" "PART_TIME" "ZERO_HOUR" "OTHER" Employment type |
{- "employee_id": "df4fd699-0854-488d-9cc2-15e751a80ee3",
- "company_id": "b2e6a1c3-1a5e-44ae-a8fd-81f76fd715cf",
- "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",
- "department_id": "094fb5f1-8160-46ea-8cec-010c4b44e054",
- "start_date": "2024-01-01",
- "end_date": "2024-12-31",
- "is_primary": true,
- "employment_type": "PERMANENT"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "company_id": "string",
- "job_id": "string",
- "department_id": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "is_primary": true,
- "employment_type": "PERMANENT",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| job_id | string |
| posting_title required | string |
| posting_description required | string |
| requirements required | string |
| benefits | string |
| salary_range_min | number |
| salary_range_max | number |
| employment_type required | string |
| location | string |
| remote_work_allowed | boolean |
| closing_date | string |
| hiring_manager_id | string |
| hr_contact_id | string |
| internal_only | boolean |
{- "job_id": "uuid",
- "posting_title": "Senior Software Engineer",
- "posting_description": "We are looking for a senior software engineer...",
- "requirements": "5+ years experience in TypeScript...",
- "benefits": "Health insurance, pension...",
- "salary_range_min": 50000,
- "salary_range_max": 80000,
- "employment_type": "PERMANENT",
- "location": "London",
- "remote_work_allowed": true,
- "closing_date": "2024-12-31",
- "hiring_manager_id": "uuid",
- "hr_contact_id": "uuid",
- "internal_only": false
}| status | string Enum: "DRAFT" "ACTIVE" "PAUSED" "CLOSED" "CANCELLED" "ARCHIVED" Filter by posting status |
| hiring_manager_id | string Example: hiring_manager_id=uuid Filter by hiring manager ID |
| department_id | string Example: department_id=uuid |
| location | string Example: location=London Filter by location (partial match) |
| remote_work_allowed | boolean Example: remote_work_allowed=true Filter by remote work availability |
| internal_only | boolean Example: internal_only=true Filter for internal only postings |
| limit | number Example: limit=20 Number of items per page |
| offset | number Example: offset=0 Number of items to skip |
| id required | string <uuid> Job posting ID |
| job_id | string |
| posting_title | string |
| posting_description | string |
| requirements | string |
| employment_type | string |
| location | string |
| salary_min | number |
| salary_max | number |
| posted_date | string |
| closing_date | string |
| hiring_manager_id | string |
| hr_contact_id | string |
| remote_work_allowed | boolean |
| internal_only | boolean |
| posting_status | string Enum: "DRAFT" "ACTIVE" "PAUSED" "CLOSED" "CANCELLED" "ARCHIVED" |
{- "job_id": "uuid",
- "posting_title": "Senior Software Engineer",
- "posting_description": "We are looking for a senior software engineer...",
- "requirements": "5+ years experience in TypeScript...",
- "employment_type": "FULL_TIME",
- "location": "London, UK",
- "salary_min": 50000,
- "salary_max": 80000,
- "posted_date": "2024-01-01",
- "closing_date": "2024-03-01",
- "hiring_manager_id": "uuid",
- "hr_contact_id": "uuid",
- "remote_work_allowed": true,
- "internal_only": false,
- "posting_status": "DRAFT"
}| first_name required | string |
| last_name required | string |
| email required | string |
| phone | string |
| address | string |
| linkedin_profile | string |
| current_employer | string |
| current_position | string |
| expected_salary | number |
| availability_date | string |
| right_to_work_uk | boolean |
| visa_required | boolean |
| visa_type | string |
| source required | string Enum: "WEBSITE" "REFERRAL" "LINKEDIN" "AGENCY" "JOB_BOARD" "DIRECT_APPLICATION" "OTHER" |
| source_details | string |
| notes | string |
| gdpr_consent required | boolean |
{- "first_name": "John",
- "last_name": "Doe",
- "email": "john.doe@example.com",
- "phone": "07912345678",
- "address": "SW1A 1AA",
- "current_employer": "Acme Corp",
- "current_position": "Senior Developer",
- "expected_salary": 65000,
- "availability_date": "2024-02-01",
- "right_to_work_uk": true,
- "visa_required": false,
- "visa_type": "Tier 2",
- "source": "WEBSITE",
- "source_details": "Referred by Jane Smith",
- "notes": "Additional notes...",
- "gdpr_consent": true
}| status | string Enum: "APPLIED" "SCREENING" "INTERVIEW_SCHEDULED" "INTERVIEWED" "OFFERED" "HIRED" "REJECTED" "WITHDRAWN" Filter by candidate status |
| source | string Enum: "WEBSITE" "REFERRAL" "LINKEDIN" "AGENCY" "JOB_BOARD" "DIRECT_APPLICATION" "OTHER" Filter by candidate source |
| search | string Example: search=john Search by name, email, or current employer |
| right_to_work_uk | boolean Example: right_to_work_uk=true Filter by UK right to work status |
| visa_required | boolean Example: visa_required=false Filter by visa requirement |
| limit | number Example: limit=20 Number of items per page |
| offset | number Example: offset=0 Number of items to skip |
| application_id required | string |
| candidate_id required | string |
| interview_type required | string |
| interview_round | number |
| scheduled_date required | string |
| scheduled_time | string |
| duration_minutes | number |
| location | string |
| video_meeting_link | string |
| meeting_link | string |
| interviewer_ids required | Array of strings |
| interview_agenda | string |
| candidate_notes | string |
{- "application_id": "uuid",
- "candidate_id": "uuid",
- "interview_type": "phone",
- "interview_round": 1,
- "scheduled_date": "2024-01-15T10:00:00Z",
- "scheduled_time": "10:00",
- "duration_minutes": 60,
- "location": "Office - Meeting Room 1",
- "interviewer_ids": [
- "uuid1",
- "uuid2"
], - "interview_agenda": "Technical discussion, culture fit",
- "candidate_notes": "Prepare portfolio"
}| status | string Enum: "SCHEDULED" "COMPLETED" "CANCELLED" "NO_SHOW" "RESCHEDULED" Filter by interview status |
| date | string <date> Example: date=2024-01-15 Filter by interview date (YYYY-MM-DD) |
| interviewer_id | string Example: interviewer_id=uuid Filter by interviewer ID |
| candidate_id | string Example: candidate_id=uuid Filter by candidate ID |
| limit | number Example: limit=20 Number of items per page |
| offset | number Example: offset=0 Number of items to skip |
| id required | string <uuid> Interview ID |
| technical_score | number |
| communication_score | number |
| cultural_fit_score | number |
| overall_score required | number |
| recommendation required | string Enum: "STRONG_HIRE" "HIRE" "MAYBE" "NO_HIRE" "STRONG_NO_HIRE" |
| strengths | string |
| weaknesses | string |
| detailed_feedback | string |
| concerns | string |
| questions_asked | string |
| additional_notes | string |
{- "technical_score": 4.5,
- "communication_score": 4,
- "cultural_fit_score": 4.5,
- "overall_score": 4.3,
- "recommendation": "STRONG_HIRE",
- "strengths": "Strong technical skills...",
- "weaknesses": "Could improve on...",
- "detailed_feedback": "Detailed feedback...",
- "concerns": "No major concerns",
- "questions_asked": "Asked about experience with...",
- "additional_notes": "Additional notes..."
}| application_id required | string |
| offer_type required | string |
| position_title required | string |
| department_id | string |
| salary_amount required | number |
| salary_frequency | string |
| benefits | object |
| start_date | string |
| contract_length | number |
| probation_period | number |
| working_hours | number |
| holiday_entitlement | number |
| response_deadline | string |
{- "application_id": "uuid",
- "offer_type": "full_time",
- "position_title": "Senior Software Engineer",
- "department_id": "uuid",
- "salary_amount": 65000,
- "salary_frequency": "annual",
- "benefits": { },
- "start_date": "2024-02-01",
- "contract_length": 12,
- "probation_period": 6,
- "working_hours": 37.5,
- "holiday_entitlement": 28,
- "response_deadline": "2024-01-20"
}| id required | string <uuid> Offer ID |
| decline_reason required | string |
| feedback | string |
{- "decline_reason": "Better opportunity elsewhere",
- "feedback": "Additional feedback..."
}| platform_name required | string |
| platform_code required | string |
| platform_type required | string Enum: "social" "job_board" "internal" "agency" "government" "university" "other" |
| website_url | string |
| api_endpoint | string |
| api_key | string |
| api_secret | string |
| is_active | boolean |
| is_free | boolean |
| cost_per_posting | number |
| billing_period | string Enum: "per_posting" "daily" "weekly" "monthly" "quarterly" "annual" |
| max_postings_per_period | number |
| features | object |
| integration_status | string Enum: "manual" "api_integrated" "webhook" |
{- "platform_name": "LinkedIn Jobs",
- "platform_code": "linkedin",
- "platform_type": "social",
- "api_key": "encrypted_api_key",
- "api_secret": "encrypted_api_secret",
- "is_active": true,
- "is_free": false,
- "cost_per_posting": 250,
- "billing_period": "per_posting",
- "max_postings_per_period": 100,
- "features": {
- "supports_bulk_posting": true,
- "supports_analytics": true,
- "requires_company_verification": false
}, - "integration_status": "api_integrated"
}{- "id": "string",
- "tenant_id": "string",
- "platform_name": "string",
- "platform_code": "string",
- "platform_type": "string",
- "website_url": "string",
- "api_endpoint": "string",
- "is_active": true,
- "is_free": true,
- "cost_per_posting": 0,
- "billing_period": "string",
- "max_postings_per_period": 0,
- "features": { },
- "integration_status": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "active_postings_count": 0,
- "total_postings_count": 0
}| platform_type | string |
| is_active | boolean |
| limit | number |
| page | number |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "platform_name": "string",
- "platform_code": "string",
- "platform_type": "string",
- "website_url": "string",
- "api_endpoint": "string",
- "is_active": true,
- "is_free": true,
- "cost_per_posting": 0,
- "billing_period": "string",
- "max_postings_per_period": 0,
- "features": { },
- "integration_status": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "active_postings_count": 0,
- "total_postings_count": 0
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "platform_id": "string",
- "platform_name": "string",
- "total_postings": 0,
- "active_postings": 0,
- "total_views": 0,
- "total_clicks": 0,
- "total_applications": 0,
- "average_conversion_rate": 0,
- "total_cost": 0,
- "cost_per_application": 0,
- "performance_by_month": [
- "string"
]
}
]{- "id": "string",
- "tenant_id": "string",
- "platform_name": "string",
- "platform_code": "string",
- "platform_type": "string",
- "website_url": "string",
- "api_endpoint": "string",
- "is_active": true,
- "is_free": true,
- "cost_per_posting": 0,
- "billing_period": "string",
- "max_postings_per_period": 0,
- "features": { },
- "integration_status": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "active_postings_count": 0,
- "total_postings_count": 0
}| id required | string |
| platform_name | string |
| platform_type | string Enum: "social" "job_board" "internal" "agency" "government" "university" "other" |
| website_url | string |
| api_endpoint | string |
| api_key | string |
| api_secret | string |
| is_active | boolean |
| is_free | boolean |
| cost_per_posting | number |
| billing_period | string Enum: "per_posting" "daily" "weekly" "monthly" "quarterly" "annual" |
| max_postings_per_period | number |
| features | object |
| integration_status | string Enum: "manual" "api_integrated" "webhook" |
{- "platform_name": "LinkedIn Jobs Premium",
- "platform_type": "social",
- "api_key": "string",
- "api_secret": "string",
- "is_active": true,
- "is_free": false,
- "cost_per_posting": 350,
- "billing_period": "per_posting",
- "max_postings_per_period": 150,
- "features": { },
- "integration_status": "manual"
}{- "id": "string",
- "tenant_id": "string",
- "platform_name": "string",
- "platform_code": "string",
- "platform_type": "string",
- "website_url": "string",
- "api_endpoint": "string",
- "is_active": true,
- "is_free": true,
- "cost_per_posting": 0,
- "billing_period": "string",
- "max_postings_per_period": 0,
- "features": { },
- "integration_status": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "active_postings_count": 0,
- "total_postings_count": 0
}| job_posting_id required | string |
| platform_id required | string |
| publication_status | string Enum: "pending" "published" "expired" "removed" "failed" "scheduled" |
| scheduled_publish_date | string |
| expiry_date | string |
| external_posting_id | string |
| external_posting_url | string |
| posting_cost | number |
| currency | string |
| auto_renew | boolean |
| publication_data | object |
{- "job_posting_id": "uuid",
- "platform_id": "uuid",
- "publication_status": "pending",
- "scheduled_publish_date": "2024-01-15",
- "expiry_date": "2024-02-15",
- "external_posting_id": "EXT-123456",
- "posting_cost": 250,
- "currency": "GBP",
- "auto_renew": false,
- "publication_data": {
- "targeting": {
- "industries": [
- "Technology",
- "Finance"
], - "experience_level": "Senior",
- "location_radius": 50
}
}
}{- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}| auto_renew | boolean |
| expiring_before | string |
| published_before | string |
| published_after | string |
| job_posting_id | string |
| platform_id | string |
| status | string Enum: "pending" "published" "expired" "removed" "failed" "scheduled" |
| limit | number |
| page | number |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| job_posting_id required | string |
| platform_ids required | Array of strings Array of platform IDs to publish to |
| scheduled_publish_date | string |
| expiry_date | string |
| auto_renew | boolean |
{- "job_posting_id": "uuid",
- "platform_ids": [
- "uuid1",
- "uuid2",
- "uuid3"
], - "scheduled_publish_date": "2024-01-15",
- "expiry_date": "2024-02-15",
- "auto_renew": false
}[- {
- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}
]| jobPostingId required | string |
{- "job_posting_id": "string",
- "posting_title": "string",
- "total_platforms": 0,
- "active_platforms": 0,
- "total_cost": 0,
- "total_views": 0,
- "total_clicks": 0,
- "total_applications": 0,
- "average_conversion_rate": 0,
- "platform_breakdown": [
- {
- "platform_name": "string",
- "status": "string",
- "views": 0,
- "applications": 0,
- "cost": 0
}
]
}{- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}| id required | string |
| publication_status | string Enum: "pending" "published" "expired" "removed" "failed" "scheduled" |
| published_at | string |
| expiry_date | string |
| actual_expiry_date | string |
| external_posting_id | string |
| external_posting_url | string |
| posting_cost | number |
| auto_renew | boolean |
| performance_metrics | object |
| publication_data | object |
| error_message | string |
{- "publication_status": "pending",
- "published_at": "2024-01-20",
- "expiry_date": "2024-02-20",
- "actual_expiry_date": "2024-02-25",
- "external_posting_id": "EXT-789012",
- "posting_cost": 300,
- "auto_renew": true,
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "Failed to authenticate with platform API"
}{- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}| id required | string |
| view_count | number |
| click_count | number |
| application_count | number |
| conversion_rate | number |
{- "view_count": 1500,
- "click_count": 150,
- "application_count": 25,
- "conversion_rate": 1.67
}{- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}| id required | string |
{- "id": "string",
- "tenant_id": "string",
- "job_posting_id": "string",
- "platform_id": "string",
- "publication_status": "string",
- "published_at": "2019-08-24T14:15:22Z",
- "scheduled_publish_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "actual_expiry_date": "2019-08-24T14:15:22Z",
- "external_posting_id": "string",
- "external_posting_url": "string",
- "posting_cost": 0,
- "currency": "string",
- "performance_metrics": { },
- "publication_data": { },
- "error_message": "string",
- "auto_renew": true,
- "renewal_count": 0,
- "last_sync_at": "2019-08-24T14:15:22Z",
- "view_count": 0,
- "click_count": 0,
- "application_count": 0,
- "conversion_rate": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": "string",
- "updated_by": "string",
- "platform": { },
- "job_posting": { }
}| employee_id required | string Employee ID |
| shift_id | string Scheduled shift ID |
| clock_in required | string Clock in time |
| clock_out | string Clock out time |
| source | string Default: "TERMINAL" Enum: "MOBILE" "TERMINAL" "WEB" "MANUAL" "OTHER" Attendance source |
| latitude | number Latitude for location tracking |
| longitude | number Longitude for location tracking |
| flagged | boolean Whether the record is flagged for review |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "shift_id": "550e8400-e29b-41d4-a716-446655440000",
- "clock_in": "2024-01-15T09:00:00.000Z",
- "clock_out": "2024-01-15T17:00:00.000Z",
- "source": "MOBILE",
- "latitude": 51.5074,
- "longitude": -0.1278,
- "flagged": false
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}| employeeId | string Filter by employee ID |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}
]| employee_id required | string Employee ID |
| shift_id | string Scheduled shift ID |
| source | string Default: "TERMINAL" Enum: "MOBILE" "TERMINAL" "WEB" "MANUAL" "OTHER" Attendance source |
| latitude | number Latitude for location tracking |
| longitude | number Longitude for location tracking |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "shift_id": "550e8400-e29b-41d4-a716-446655440000",
- "source": "MOBILE",
- "latitude": 51.5074,
- "longitude": -0.1278
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}| id required | string |
| latitude | number Latitude for location tracking |
| longitude | number Longitude for location tracking |
{- "latitude": 51.5074,
- "longitude": -0.1278
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}| employeeId required | string |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}| id required | string |
| clock_in | string Clock in time |
| clock_out | string Clock out time |
| source | string Enum: "MOBILE" "TERMINAL" "WEB" "MANUAL" "OTHER" Attendance source |
| latitude | number Latitude for location tracking |
| longitude | number Longitude for location tracking |
| flagged | boolean Whether the record is flagged for review |
{- "clock_in": "2024-01-15T09:00:00.000Z",
- "clock_out": "2024-01-15T17:00:00.000Z",
- "source": "MOBILE",
- "latitude": 51.5074,
- "longitude": -0.1278,
- "flagged": false
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_id": { },
- "clock_in": "2019-08-24T14:15:22Z",
- "clock_out": { },
- "source": "MOBILE",
- "latitude": { },
- "longitude": { },
- "flagged": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "scheduled_shift": { }
}| employee_id required | string Employee ID |
| period_start required | string Period start date |
| period_end required | string Period end date |
| total_work_hours required | number >= 0 Total work hours |
| total_overtime_hours required | number >= 0 Total overtime hours |
| total_leave_hours required | number >= 0 Total leave hours |
| status | string Default: "OPEN" Enum: "OPEN" "SUBMITTED" "APPROVED" "LOCKED" Timesheet status |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "period_start": "2024-01-01T00:00:00.000Z",
- "period_end": "2024-01-07T23:59:59.000Z",
- "total_work_hours": 40,
- "total_overtime_hours": 5,
- "total_leave_hours": 8,
- "status": "OPEN"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| employeeId | string Filter by employee ID |
| status | string Enum: "OPEN" "SUBMITTED" "APPROVED" "LOCKED" Filter by status |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}
]| employee_id required | string Employee ID |
| period_start required | string Period start date |
| period_end required | string Period end date |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "period_start": "2024-01-01T00:00:00.000Z",
- "period_end": "2024-01-07T23:59:59.000Z"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| employeeId required | string |
| status | string Enum: "OPEN" "SUBMITTED" "APPROVED" "LOCKED" Filter by status |
| year | number Filter by year |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}
]| employeeId required | string |
| year | number Year for statistics (default: current year) |
{- "totalTimesheets": 0,
- "draftTimesheets": 0,
- "submittedTimesheets": 0,
- "approvedTimesheets": 0,
- "rejectedTimesheets": 0,
- "totalApprovedHours": 0,
- "totalOvertimeHours": 0,
- "averageHoursPerTimesheet": 0
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| id required | string |
| period_start | string Period start date |
| period_end | string Period end date |
| total_work_hours | number >= 0 Total work hours |
| total_overtime_hours | number >= 0 Total overtime hours |
| total_leave_hours | number >= 0 Total leave hours |
| status | string Enum: "OPEN" "SUBMITTED" "APPROVED" "LOCKED" Timesheet status |
{- "period_start": "2024-01-01T00:00:00.000Z",
- "period_end": "2024-01-07T23:59:59.000Z",
- "total_work_hours": 40,
- "total_overtime_hours": 5,
- "total_leave_hours": 8,
- "status": "OPEN"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| id required | string |
| comments | string Comments for submission |
{- "comments": "Ready for approval"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| id required | string |
| status required | string Enum: "APPROVED" "LOCKED" Approval status |
| comments | string Approval comments |
{- "status": "APPROVED",
- "comments": "Approved for payroll processing"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "total_work_hours": 0,
- "total_overtime_hours": 0,
- "total_leave_hours": 0,
- "status": "OPEN",
- "locked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| code required | string [ 1 .. 50 ] characters Short code for the leave type |
| name required | string [ 1 .. 255 ] characters Human-readable name |
| statutory | boolean Default: false Whether the leave is statutory under UK law |
| max_days_per_year | number >= 0 Maximum entitlement in days per leave year |
| accrual_based | boolean Default: false Whether entitlement accrues over time |
| paid | boolean Default: true Whether the leave is normally paid |
| hr_rate_code | string <= 50 characters Reference into HR_RATE table for pay calculation |
| description | string <= 1000 characters Description of the leave type |
| template_id | string Reference to the template it was created from |
| custom_rules | object Default: {} Custom rules specific to this tenant |
| is_active | boolean Default: true Whether the leave type is active |
{- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "custom_rules": {
- "min_notice_days": 7,
- "max_consecutive_days": 14
}, - "is_active": true
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "custom_rules": { },
- "is_active": true,
- "created_at": "2024-01-01T00:00:00Z",
- "updated_at": "2024-01-01T00:00:00Z",
- "created_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "updated_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "created_by": "admin@example.com",
- "updated_by": "admin@example.com"
}[- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "custom_rules": { },
- "is_active": true,
- "created_at": "2024-01-01T00:00:00Z",
- "updated_at": "2024-01-01T00:00:00Z",
- "created_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "updated_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "created_by": "admin@example.com",
- "updated_by": "admin@example.com"
}
]| id required | string <uuid> Leave type ID |
{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "custom_rules": { },
- "is_active": true,
- "created_at": "2024-01-01T00:00:00Z",
- "updated_at": "2024-01-01T00:00:00Z",
- "created_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "updated_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "created_by": "admin@example.com",
- "updated_by": "admin@example.com"
}| id required | string <uuid> Leave type ID |
| name | string [ 1 .. 255 ] characters Human-readable name |
| statutory | boolean Whether the leave is statutory under UK law |
| max_days_per_year | number >= 0 Maximum entitlement in days per leave year |
| accrual_based | boolean Whether entitlement accrues over time |
| paid | boolean Whether the leave is normally paid |
| hr_rate_code | string <= 50 characters Reference into HR_RATE table for pay calculation |
| description | string <= 1000 characters Description of the leave type |
| custom_rules | object Custom rules specific to this tenant |
| is_active | boolean Whether the leave type is active |
{- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "custom_rules": {
- "min_notice_days": 7,
- "max_consecutive_days": 14
}, - "is_active": true
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "custom_rules": { },
- "is_active": true,
- "created_at": "2024-01-01T00:00:00Z",
- "updated_at": "2024-01-01T00:00:00Z",
- "created_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "updated_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "created_by": "admin@example.com",
- "updated_by": "admin@example.com"
}| code required | string Leave type code |
{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "SSP",
- "description": "UK statutory annual leave entitlement",
- "custom_rules": { },
- "is_active": true,
- "created_at": "2024-01-01T00:00:00Z",
- "updated_at": "2024-01-01T00:00:00Z",
- "created_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "updated_by_id": "123e4567-e89b-12d3-a456-426614174000",
- "created_by": "admin@example.com",
- "updated_by": "admin@example.com"
}| leave_type_id required | string |
| start_date required | string |
| end_date required | string |
| duration_hours required | number |
| comments | string |
{- "leave_type_id": "uuid",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "comments": "Family vacation"
}{- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}| employeeId | string Filter by employee ID |
| status | string Enum: "PENDING" "APPROVED" "REJECTED" "CANCELLED" Filter by status |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}
]| employeeId required | string |
[- {
- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}
]| employeeId required | string |
| year | number Year for statistics (default: current year) |
{- "totalRequests": 0,
- "pendingRequests": 0,
- "approvedRequests": 0,
- "rejectedRequests": 0,
- "totalApprovedHours": 0,
- "totalPendingHours": 0
}{- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}| id required | string |
| start_datetime | string Leave start date and time |
| end_datetime | string Leave end date and time |
| duration_hours | number >= 0.1 Duration in hours |
| comments | string Comments for the leave request |
{- "start_datetime": "2024-01-15T09:00:00.000Z",
- "end_datetime": "2024-01-19T17:00:00.000Z",
- "duration_hours": 40,
- "comments": "Family vacation"
}{- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}| id required | string |
| status required | string Enum: "APPROVED" "REJECTED" Approval status |
| comments | string Approval comments |
{- "status": "APPROVED",
- "comments": "Approved for the requested dates"
}{- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}{- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}| employee_id required | string Employee ID |
| start_datetime required | string Overtime start date and time |
| end_datetime required | string Overtime end date and time |
| hours required | number >= 0.1 Overtime hours |
| reason | string Reason for overtime |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "start_datetime": "2024-01-15T18:00:00.000Z",
- "end_datetime": "2024-01-15T20:00:00.000Z",
- "hours": 2,
- "reason": "Project deadline"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| employeeId | string Filter by employee ID |
| status | string Enum: "PENDING" "APPROVED" "REJECTED" "CANCELLED" Filter by status |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}
]| employeeId required | string |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}
]| employeeId required | string |
| year | number Year for statistics (default: current year) |
{- "totalRequests": 0,
- "pendingRequests": 0,
- "approvedRequests": 0,
- "rejectedRequests": 0,
- "totalApprovedHours": 0,
- "totalPendingHours": 0
}| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
{- "totalRequests": 0,
- "totalApprovedHours": 0,
- "averageHoursPerRequest": 0,
- "employeeCount": 0
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| id required | string |
| start_datetime | string Overtime start date and time |
| end_datetime | string Overtime end date and time |
| hours | number >= 0.1 Overtime hours |
| reason | string Reason for overtime |
{- "start_datetime": "2024-01-15T18:00:00.000Z",
- "end_datetime": "2024-01-15T20:00:00.000Z",
- "hours": 2,
- "reason": "Project deadline"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| id required | string |
| status required | string Enum: "APPROVED" "REJECTED" Approval status |
| comments | string Approval comments |
{- "status": "APPROVED",
- "comments": "Approved for overtime work"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "hours": 0,
- "status": "PENDING",
- "approver_id": { },
- "approved_at": { },
- "reason": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { }
}| company_id required | string Company ID |
| name required | string [ 1 .. 255 ] characters Template name |
| start_minutes required | number [ 0 .. 1440 ] Shift start time as minutes from 00:00 |
| end_minutes required | number [ 0 .. 2880 ] Shift end time as minutes from 00:00 (wrap > 1440 for overnight) |
| break_minutes | number Default: 0 Paid/unpaid break length in minutes |
| weekly_pattern | string Weekly pattern in ISO-8601 RRULE or cron-like string |
| is_night_shift | boolean Default: false Whether this is a night shift |
| notes | string Additional notes |
{- "company_id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "Early Shift",
- "start_minutes": 540,
- "end_minutes": 1020,
- "break_minutes": 30,
- "weekly_pattern": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
- "is_night_shift": false,
- "notes": "Standard office hours"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "start_minutes": 0,
- "end_minutes": 0,
- "break_minutes": 0,
- "weekly_pattern": { },
- "is_night_shift": true,
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| companyId | string Filter by company ID |
[- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "start_minutes": 0,
- "end_minutes": 0,
- "break_minutes": 0,
- "weekly_pattern": { },
- "is_night_shift": true,
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
]| id required | string <uuid> Shift template ID |
{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "start_minutes": 0,
- "end_minutes": 0,
- "break_minutes": 0,
- "weekly_pattern": { },
- "is_night_shift": true,
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| id required | string <uuid> Shift template ID |
| name | string [ 1 .. 255 ] characters Template name |
| start_minutes | number [ 0 .. 1440 ] Shift start time as minutes from 00:00 |
| end_minutes | number [ 0 .. 2880 ] Shift end time as minutes from 00:00 (wrap > 1440 for overnight) |
| break_minutes | number Paid/unpaid break length in minutes |
| weekly_pattern | string Weekly pattern in ISO-8601 RRULE or cron-like string |
| is_night_shift | boolean Whether this is a night shift |
| notes | string Additional notes |
{- "name": "Early Shift",
- "start_minutes": 540,
- "end_minutes": 1020,
- "break_minutes": 30,
- "weekly_pattern": "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR",
- "is_night_shift": false,
- "notes": "Standard office hours"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "start_minutes": 0,
- "end_minutes": 0,
- "break_minutes": 0,
- "weekly_pattern": { },
- "is_night_shift": true,
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| employee_id required | string Employee ID |
| shift_template_id required | string Shift template ID |
| start_datetime required | string Shift start datetime |
| end_datetime required | string Shift end datetime |
| status | string Default: "PLANNED" Enum: "PLANNED" "CONFIRMED" "COMPLETED" "CANCELLED" Shift status |
| remarks | string Special remarks for this shift |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "shift_template_id": "550e8400-e29b-41d4-a716-446655440000",
- "start_datetime": "2024-01-15T09:00:00.000Z",
- "end_datetime": "2024-01-15T17:00:00.000Z",
- "status": "PLANNED",
- "remarks": "Training session at 2 PM"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_template_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "status": "PLANNED",
- "remarks": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "shift_template": { }
}| employeeId | string Filter by employee ID |
| shiftTemplateId | string Filter by shift template ID |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_template_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "status": "PLANNED",
- "remarks": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "shift_template": { }
}
][- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_template_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "status": "PLANNED",
- "remarks": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "shift_template": { }
}
]| employeeId required | string |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_template_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "status": "PLANNED",
- "remarks": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "shift_template": { }
}
]| employeeId | string Filter by employee ID |
| startDate | string Filter by start date (ISO string) |
| endDate | string Filter by end date (ISO string) |
{- "totalShifts": 0,
- "totalHours": 0,
- "averageHoursPerShift": 0,
- "employeeCount": 0
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_template_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "status": "PLANNED",
- "remarks": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "shift_template": { }
}| id required | string |
| start_datetime | string Shift start datetime |
| end_datetime | string Shift end datetime |
| status | string Enum: "PLANNED" "CONFIRMED" "COMPLETED" "CANCELLED" Shift status |
| remarks | string Special remarks for this shift |
{- "start_datetime": "2024-01-15T09:00:00.000Z",
- "end_datetime": "2024-01-15T17:00:00.000Z",
- "status": "PLANNED",
- "remarks": "Training session at 2 PM"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "shift_template_id": "string",
- "start_datetime": "2019-08-24T14:15:22Z",
- "end_datetime": "2019-08-24T14:15:22Z",
- "status": "PLANNED",
- "remarks": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "shift_template": { }
}| employee_id required | string Employee ID |
| cycle_id required | string Performance cycle ID |
| template_id required | string Review template ID |
| review_type required | string Enum: "SELF" "MANAGER" "PEER" "SUBORDINATE" "CUSTOMER" Type of review |
| reviewer_id required | string Reviewer ID |
| review_period_start | string Review period start date |
| review_period_end | string Review period end date |
| due_date | string Due date for review completion |
{- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "string",
- "review_period_end": "string",
- "due_date": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| employee_id | string Filter by employee ID |
| cycle_id | string Filter by cycle ID |
| reviewer_id | string Filter by reviewer ID |
| review_type | string Enum: "SELF" "MANAGER" "PEER" "SUBORDINATE" "CUSTOMER" Filter by review type |
| status | string Enum: "DRAFT" "IN_PROGRESS" "SUBMITTED" "COMPLETED" "APPROVED" Filter by status |
| search | string Search by employee name |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| id required | string |
| employee_id | string Employee ID |
| cycle_id | string Performance cycle ID |
| template_id | string Review template ID |
| review_type | string Enum: "SELF" "MANAGER" "PEER" "SUBORDINATE" "CUSTOMER" Type of review |
| reviewer_id | string Reviewer ID |
| review_period_start | string Review period start date |
| review_period_end | string Review period end date |
| due_date | string Due date for review completion |
| status | string Enum: "DRAFT" "IN_PROGRESS" "SUBMITTED" "COMPLETED" "APPROVED" Review status |
| overall_rating | number [ 1 .. 5 ] Overall rating |
| goal_achievement_score | number [ 0 .. 100 ] Goal achievement score |
| competency_score | number [ 0 .. 100 ] Competency score |
| behavioral_score | number [ 0 .. 100 ] Behavioral score |
| strengths | string Strengths identified |
| areas_for_improvement | string Areas for improvement |
| development_recommendations | string Development recommendations |
| manager_comments | string Manager comments |
| employee_comments | string Employee comments |
{- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "string",
- "review_period_end": "string",
- "due_date": "string",
- "status": "DRAFT",
- "overall_rating": 1,
- "goal_achievement_score": 100,
- "competency_score": 100,
- "behavioral_score": 100,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| id required | string |
required | Array of objects (ReviewResponseDto) Review responses | ||||||||||||||||
Array
| |||||||||||||||||
{- "responses": [
- {
- "question_id": "string",
- "section_name": "string",
- "question_text": "string",
- "response_type": "string",
- "response_value": "string",
- "rating_score": 1,
- "weight": 0,
- "comments": "string"
}
]
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| id required | string |
| comments | string Final comments |
{- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| id required | string |
| comments | string Approval comments |
{- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| id required | string |
| reason required | string Rejection reason |
| comments | string Additional comments |
{- "reason": "string",
- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "template_id": "string",
- "review_type": "SELF",
- "reviewer_id": "string",
- "review_period_start": "2019-08-24T14:15:22Z",
- "review_period_end": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "overall_rating": 0,
- "goal_achievement_score": 0,
- "competency_score": 0,
- "behavioral_score": 0,
- "strengths": "string",
- "areas_for_improvement": "string",
- "development_recommendations": "string",
- "manager_comments": "string",
- "employee_comments": "string",
- "submitted_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "due_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "reviewer": { },
- "cycle": { }
}| reviewId required | string |
| review_id | string Filter by review ID |
| section_name | string Filter by section name |
| response_type | string Filter by response type |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "review_id": "string",
- "question_id": "string",
- "section_name": "string",
- "question_text": "string",
- "response_type": "string",
- "response_value": "string",
- "rating_score": 0,
- "weight": 0,
- "comments": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| responseId required | string |
{- "id": "string",
- "tenant_id": "string",
- "review_id": "string",
- "question_id": "string",
- "section_name": "string",
- "question_text": "string",
- "response_type": "string",
- "response_value": "string",
- "rating_score": 0,
- "weight": 0,
- "comments": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}| responseId required | string |
| response_value | string Response value |
| rating_score | number [ 1 .. 5 ] Rating score |
| weight | number Weight |
| comments | string Comments |
{- "response_value": "string",
- "rating_score": 1,
- "weight": 0,
- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "review_id": "string",
- "question_id": "string",
- "section_name": "string",
- "question_text": "string",
- "response_type": "string",
- "response_value": "string",
- "rating_score": 0,
- "weight": 0,
- "comments": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}| employee_id required | string Employee ID |
| cycle_id required | string Performance cycle ID |
| goal_category required | string Enum: "STRATEGIC" "OPERATIONAL" "PERSONAL_DEVELOPMENT" "BEHAVIORAL" Goal category |
| title required | string Goal title |
| description | string Goal description |
| success_criteria | string Success criteria |
| measurement_method | string Measurement method |
| target_value | number Target value |
| unit | string Unit of measurement |
| weight_percentage | number [ 0 .. 100 ] Goal weight percentage |
| priority | string Enum: "HIGH" "MEDIUM" "LOW" Goal priority |
| due_date | string Due date |
| manager_id | string Manager ID |
{- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "unit": "string",
- "weight_percentage": 100,
- "priority": "HIGH",
- "due_date": "string",
- "manager_id": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}| employee_id | string Filter by employee ID |
| cycle_id | string Filter by cycle ID |
| goal_category | string Enum: "STRATEGIC" "OPERATIONAL" "PERSONAL_DEVELOPMENT" "BEHAVIORAL" Filter by goal category |
| status | string Enum: "DRAFT" "ACTIVE" "IN_PROGRESS" "COMPLETED" "CANCELLED" "OVERDUE" Filter by status |
| priority | string Enum: "HIGH" "MEDIUM" "LOW" Filter by priority |
| search | string Search by title or description |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}| id required | string |
| employee_id | string Employee ID |
| cycle_id | string Performance cycle ID |
| goal_category | string Enum: "STRATEGIC" "OPERATIONAL" "PERSONAL_DEVELOPMENT" "BEHAVIORAL" Goal category |
| title | string Goal title |
| description | string Goal description |
| success_criteria | string Success criteria |
| measurement_method | string Measurement method |
| target_value | number Target value |
| unit | string Unit of measurement |
| weight_percentage | number [ 0 .. 100 ] Goal weight percentage |
| priority | string Enum: "HIGH" "MEDIUM" "LOW" Goal priority |
| due_date | string Due date |
| manager_id | string Manager ID |
| status | string Enum: "DRAFT" "ACTIVE" "IN_PROGRESS" "COMPLETED" "CANCELLED" "OVERDUE" Goal status |
| current_value | number Current value |
| progress_percentage | number [ 0 .. 100 ] Progress percentage |
{- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "unit": "string",
- "weight_percentage": 100,
- "priority": "HIGH",
- "due_date": "string",
- "manager_id": "string",
- "status": "DRAFT",
- "current_value": 0,
- "progress_percentage": 100
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}| id required | string |
| new_value | number New value |
| progress_percentage | number [ 0 .. 100 ] Progress percentage |
| update_notes | string Update notes |
{- "new_value": 0,
- "progress_percentage": 100,
- "update_notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}| id required | string |
| comments | string Approval comments |
{- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}| id required | string |
| final_value required | number Final value achieved |
| notes | string Completion notes |
{- "final_value": 0,
- "notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "goal_category": "STRATEGIC",
- "title": "string",
- "description": "string",
- "success_criteria": "string",
- "measurement_method": "string",
- "target_value": 0,
- "current_value": 0,
- "unit": "string",
- "weight_percentage": 0,
- "priority": "HIGH",
- "status": "DRAFT",
- "progress_percentage": 0,
- "due_date": "2019-08-24T14:15:22Z",
- "manager_id": "string",
- "approved_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "manager": { },
- "cycle": { }
}| employee_id required | string Employee ID receiving feedback |
| feedback_type required | string Enum: "PRAISE" "CONSTRUCTIVE" "COACHING" "GOAL_PROGRESS" Type of feedback |
| category | string Feedback category |
| title | string Feedback title |
| feedback_content required | string Feedback content |
| visibility | string Default: "PRIVATE" Enum: "PRIVATE" "MANAGER" "TEAM" "PUBLIC" Feedback visibility |
| is_anonymous | boolean Default: false Whether feedback is anonymous |
| tags | Array of strings Tags for categorization |
| related_goal_id | string Related goal ID |
{- "employee_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": false,
- "tags": [
- "string"
], - "related_goal_id": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "feedback_giver_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": true,
- "acknowledged": true,
- "tags": { },
- "related_goal_id": "string",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "feedback_giver": { },
- "related_goal": { }
}| employee_id | string Filter by employee ID |
| feedback_giver_id | string Filter by feedback giver ID |
| feedback_type | string Enum: "PRAISE" "CONSTRUCTIVE" "COACHING" "GOAL_PROGRESS" Filter by feedback type |
| category | string Filter by category |
| visibility | string Enum: "PRIVATE" "MANAGER" "TEAM" "PUBLIC" Filter by visibility |
| is_anonymous | boolean Filter by anonymous status |
| search | string Search in title and content |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "feedback_giver_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": true,
- "acknowledged": true,
- "tags": { },
- "related_goal_id": "string",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "feedback_giver": { },
- "related_goal": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "feedback_giver_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": true,
- "acknowledged": true,
- "tags": { },
- "related_goal_id": "string",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "feedback_giver": { },
- "related_goal": { }
}| id required | string |
| employee_id | string Employee ID receiving feedback |
| feedback_type | string Enum: "PRAISE" "CONSTRUCTIVE" "COACHING" "GOAL_PROGRESS" Type of feedback |
| category | string Feedback category |
| title | string Feedback title |
| feedback_content | string Feedback content |
| visibility | string Default: "PRIVATE" Enum: "PRIVATE" "MANAGER" "TEAM" "PUBLIC" Feedback visibility |
| is_anonymous | boolean Default: false Whether feedback is anonymous |
| tags | Array of strings Tags for categorization |
| related_goal_id | string Related goal ID |
{- "employee_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": false,
- "tags": [
- "string"
], - "related_goal_id": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "feedback_giver_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": true,
- "acknowledged": true,
- "tags": { },
- "related_goal_id": "string",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "feedback_giver": { },
- "related_goal": { }
}| id required | string |
| notes | string Acknowledgment notes |
{- "notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "feedback_giver_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": true,
- "acknowledged": true,
- "tags": { },
- "related_goal_id": "string",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "feedback_giver": { },
- "related_goal": { }
}| id required | string |
| response required | string Response content |
{- "response": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "feedback_giver_id": "string",
- "feedback_type": "PRAISE",
- "category": "string",
- "title": "string",
- "feedback_content": "string",
- "visibility": "PRIVATE",
- "is_anonymous": true,
- "acknowledged": true,
- "tags": { },
- "related_goal_id": "string",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "feedback_giver": { },
- "related_goal": { }
}| employee_id required | string Employee ID |
| cycle_id required | string Performance cycle ID |
| feedback_round_name | string Feedback round name |
| nomination_deadline | string <date> Nomination deadline |
| feedback_deadline | string <date> Feedback deadline |
| peer_nominees | object Peer nominees |
| subordinate_nominees | object Subordinate nominees |
| customer_nominees | object Customer nominees |
{- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "nomination_deadline": "2019-08-24",
- "feedback_deadline": "2019-08-24",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "nomination_deadline": "2019-08-24T14:15:22Z",
- "feedback_deadline": "2019-08-24T14:15:22Z",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "feedback_summary": { },
- "overall_360_score": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "cycle": { },
- "self_assessment": { },
- "manager_review": { }
}| employee_id | string Filter by employee ID |
| cycle_id | string Filter by cycle ID |
| status | string Enum: "SETUP" "NOMINATION" "FEEDBACK_COLLECTION" "COMPLETED" Filter by status |
| search | string Search in feedback round name |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "nomination_deadline": "2019-08-24T14:15:22Z",
- "feedback_deadline": "2019-08-24T14:15:22Z",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "feedback_summary": { },
- "overall_360_score": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "cycle": { },
- "self_assessment": { },
- "manager_review": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "nomination_deadline": "2019-08-24T14:15:22Z",
- "feedback_deadline": "2019-08-24T14:15:22Z",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "feedback_summary": { },
- "overall_360_score": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "cycle": { },
- "self_assessment": { },
- "manager_review": { }
}| id required | string |
| employee_id | string Employee ID |
| cycle_id | string Performance cycle ID |
| feedback_round_name | string Feedback round name |
| nomination_deadline | string <date> Nomination deadline |
| feedback_deadline | string <date> Feedback deadline |
| peer_nominees | object Peer nominees |
| subordinate_nominees | object Subordinate nominees |
| customer_nominees | object Customer nominees |
| status | string Enum: "SETUP" "NOMINATION" "FEEDBACK_COLLECTION" "COMPLETED" Feedback status |
| self_assessment_id | string Self assessment ID |
| manager_review_id | string Manager review ID |
| feedback_summary | object Feedback summary |
| overall_360_score | number [ 0 .. 5 ] Overall 360 score |
{- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "nomination_deadline": "2019-08-24",
- "feedback_deadline": "2019-08-24",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "feedback_summary": { },
- "overall_360_score": 5
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "nomination_deadline": "2019-08-24T14:15:22Z",
- "feedback_deadline": "2019-08-24T14:15:22Z",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "feedback_summary": { },
- "overall_360_score": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "cycle": { },
- "self_assessment": { },
- "manager_review": { }
}| id required | string |
| peer_nominees | Array of strings Peer nominees to add |
| subordinate_nominees | Array of strings Subordinate nominees to add |
| customer_nominees | Array of strings Customer nominees to add |
{- "peer_nominees": [
- "string"
], - "subordinate_nominees": [
- "string"
], - "customer_nominees": [
- "string"
]
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "nomination_deadline": "2019-08-24T14:15:22Z",
- "feedback_deadline": "2019-08-24T14:15:22Z",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "feedback_summary": { },
- "overall_360_score": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "cycle": { },
- "self_assessment": { },
- "manager_review": { }
}| id required | string |
| status required | string Enum: "SETUP" "NOMINATION" "FEEDBACK_COLLECTION" "COMPLETED" New status |
{- "status": "SETUP"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "feedback_round_name": "string",
- "status": "SETUP",
- "self_assessment_id": "string",
- "manager_review_id": "string",
- "nomination_deadline": "2019-08-24T14:15:22Z",
- "feedback_deadline": "2019-08-24T14:15:22Z",
- "peer_nominees": { },
- "subordinate_nominees": { },
- "customer_nominees": { },
- "feedback_summary": { },
- "overall_360_score": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "cycle": { },
- "self_assessment": { },
- "manager_review": { }
}| employee_id required | string Employee ID |
| manager_id required | string Manager ID |
| hr_id | string HR representative ID |
| performance_issues required | string Performance issues description |
| root_cause_analysis | string Root cause analysis |
| improvement_goals required | object Improvement goals |
| action_steps required | object Action steps |
| support_provided | object Support provided |
| success_criteria | string Success criteria |
| review_schedule | object Review schedule |
| plan_duration_months | number [ 1 .. 12 ] Default: 3 Plan duration in months |
| start_date required | string <date> Start date |
| end_date required | string <date> End date |
{- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 3,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}| employee_id | string Filter by employee ID |
| manager_id | string Filter by manager ID |
| status | string Enum: "ACTIVE" "COMPLETED" "EXTENDED" "TERMINATED" Filter by status |
| outcome | string Enum: "SUCCESSFUL" "PARTIALLY_SUCCESSFUL" "UNSUCCESSFUL" Filter by outcome |
| search | string Search in performance issues |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}| id required | string |
| employee_id | string Employee ID |
| manager_id | string Manager ID |
| hr_id | string HR representative ID |
| performance_issues | string Performance issues description |
| root_cause_analysis | string Root cause analysis |
| improvement_goals | object Improvement goals |
| action_steps | object Action steps |
| support_provided | object Support provided |
| success_criteria | string Success criteria |
| review_schedule | object Review schedule |
| plan_duration_months | number [ 1 .. 12 ] Default: 3 Plan duration in months |
| start_date | string <date> Start date |
| end_date | string <date> End date |
| status | string Enum: "ACTIVE" "COMPLETED" "EXTENDED" "TERMINATED" PIP status |
| outcome | string Enum: "SUCCESSFUL" "PARTIALLY_SUCCESSFUL" "UNSUCCESSFUL" PIP outcome |
| final_review_date | string <date> Final review date |
| employee_acknowledgment | boolean Employee acknowledgment |
| employee_signature_date | string <date> Employee signature date |
{- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 3,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "final_review_date": "2019-08-24",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}| id required | string |
| acknowledged required | boolean Employee acknowledgment |
| comments | string Employee comments |
{- "acknowledged": true,
- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}| id required | string |
| status required | string Enum: "ACTIVE" "COMPLETED" "EXTENDED" "TERMINATED" New status |
| outcome | string Enum: "SUCCESSFUL" "PARTIALLY_SUCCESSFUL" "UNSUCCESSFUL" PIP outcome (required when completing) |
| notes | string Status update notes |
{- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}| id required | string |
| progress_update required | string Progress update |
| improvements | string Areas of improvement |
| concerns | string Remaining concerns |
| next_steps | string Next steps |
{- "progress_update": "string",
- "improvements": "string",
- "concerns": "string",
- "next_steps": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "manager_id": "string",
- "hr_id": "string",
- "performance_issues": "string",
- "root_cause_analysis": "string",
- "improvement_goals": { },
- "action_steps": { },
- "support_provided": { },
- "success_criteria": "string",
- "review_schedule": { },
- "plan_duration_months": 0,
- "status": "ACTIVE",
- "outcome": "SUCCESSFUL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "final_review_date": "2019-08-24T14:15:22Z",
- "employee_acknowledgment": true,
- "employee_signature_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "manager": { },
- "hr": { }
}| name required | string Performance cycle name |
| cycle_type required | string Enum: "ANNUAL" "SEMI_ANNUAL" "QUARTERLY" "MONTHLY" Type of performance cycle |
| start_date required | string Cycle start date |
| end_date required | string Cycle end date |
| goal_setting_deadline | string Goal setting deadline |
| mid_review_date | string Mid-cycle review date |
| final_review_deadline | string Final review deadline |
| description | string Cycle description |
{- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "string",
- "end_date": "string",
- "goal_setting_deadline": "string",
- "mid_review_date": "string",
- "final_review_deadline": "string",
- "description": "string"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}| status | string Enum: "PLANNING" "ACTIVE" "REVIEW_PERIOD" "CALIBRATION" "COMPLETED" "CANCELLED" Filter by status |
| cycle_type | string Enum: "ANNUAL" "SEMI_ANNUAL" "QUARTERLY" "MONTHLY" Filter by cycle type |
| year | number Filter by year |
| search | string Search by name |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}| id required | string |
| name | string Performance cycle name |
| cycle_type | string Enum: "ANNUAL" "SEMI_ANNUAL" "QUARTERLY" "MONTHLY" Type of performance cycle |
| start_date | string Cycle start date |
| end_date | string Cycle end date |
| goal_setting_deadline | string Goal setting deadline |
| mid_review_date | string Mid-cycle review date |
| final_review_deadline | string Final review deadline |
| description | string Cycle description |
| status | string Enum: "PLANNING" "ACTIVE" "REVIEW_PERIOD" "CALIBRATION" "COMPLETED" "CANCELLED" Cycle status |
{- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "string",
- "end_date": "string",
- "goal_setting_deadline": "string",
- "mid_review_date": "string",
- "final_review_deadline": "string",
- "description": "string",
- "status": "PLANNING"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}| id required | string |
| notes | string Activation notes |
{- "notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}| id required | string |
| notes | string Completion notes |
{- "notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "cycle_type": "ANNUAL",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "goal_setting_deadline": "2019-08-24T14:15:22Z",
- "mid_review_date": "2019-08-24T14:15:22Z",
- "final_review_deadline": "2019-08-24T14:15:22Z",
- "status": "PLANNING",
- "description": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "total_goals": 0,
- "total_reviews": 0,
- "completed_reviews": 0
}| session_name required | string Session name |
| cycle_id required | string Performance cycle ID |
| department_id | string Department ID (optional for cross-department sessions) |
| session_date | string Session date and time |
| facilitator_id | string Facilitator employee ID |
| participants | object List of participants (JSON array) |
| employees_discussed | object Employees to be discussed (JSON array) |
| rating_distributions | object Rating distributions (JSON object) |
| session_notes | string Session notes |
{- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "string",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "session_notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| cycle_id | string Filter by cycle ID |
| department_id | string Filter by department ID |
| facilitator_id | string Filter by facilitator ID |
| status | string Enum: "PLANNED" "IN_PROGRESS" "COMPLETED" Filter by status |
| date_from | string Filter by session date (from) |
| date_to | string Filter by session date (to) |
| search | string Search by session name |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| session_name | string Session name |
| cycle_id | string Performance cycle ID |
| department_id | string Department ID (optional for cross-department sessions) |
| session_date | string Session date and time |
| facilitator_id | string Facilitator employee ID |
| participants | object List of participants (JSON array) |
| employees_discussed | object Employees to be discussed (JSON array) |
| rating_distributions | object Rating distributions (JSON object) |
| session_notes | string Session notes |
| status | string Enum: "PLANNED" "IN_PROGRESS" "COMPLETED" Session status |
| calibration_adjustments | object Calibration adjustments made (JSON array) |
{- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "string",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "session_notes": "string",
- "status": "PLANNED",
- "calibration_adjustments": { }
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| start_notes | string Session start notes |
{- "start_notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| final_notes required | string Final session notes |
| final_adjustments | object Final calibration adjustments |
| final_distributions | object Final rating distributions |
{- "final_notes": "string",
- "final_adjustments": { },
- "final_distributions": { }
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| employee_id required | string Employee ID to add as participant |
| role required | string Participant role in session |
{- "employee_id": "string",
- "role": "string"
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| employee_id required | string Employee ID to remove from participants |
{- "employee_id": "string"
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| employee_id required | string Employee ID to add to discussion |
| current_rating required | string Current performance rating |
| proposed_rating | string Proposed rating after discussion |
| notes | string Discussion notes |
{- "employee_id": "string",
- "current_rating": "string",
- "proposed_rating": "string",
- "notes": "string"
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}| id required | string |
| employeeId required | string |
| proposed_rating | string Updated proposed rating |
| notes | string Updated discussion notes |
| calibration_decision | string Calibration decision |
{- "proposed_rating": "string",
- "notes": "string",
- "calibration_decision": "string"
}{- "id": "string",
- "tenant_id": "string",
- "session_name": "string",
- "cycle_id": "string",
- "department_id": "string",
- "session_date": "2019-08-24T14:15:22Z",
- "facilitator_id": "string",
- "participants": { },
- "employees_discussed": { },
- "rating_distributions": { },
- "calibration_adjustments": { },
- "session_notes": "string",
- "status": "PLANNED",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "cycle": { },
- "department": { },
- "facilitator": { }
}{- "session_id": "string",
- "session_name": "string",
- "total_participants": 0,
- "total_employees_discussed": 0,
- "calibration_adjustments_made": 0,
- "session_duration_minutes": 0,
- "rating_distribution_before": { },
- "rating_distribution_after": { },
- "status": "string"
}| employee_id required | string Employee ID |
| cycle_id required | string Performance cycle ID |
| plan_name | string Plan name or title |
| career_aspirations | string Career aspirations description |
| development_areas | object Development areas (JSON array) |
| learning_objectives | object Learning objectives (JSON array) |
| action_items | object Action items (JSON array) |
| success_metrics | object Success metrics (JSON array) |
| timeline_months | number [ 1 .. 36 ] Default: 12 Timeline in months |
| last_reviewed_date | string Last reviewed date |
{- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 12,
- "last_reviewed_date": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| employee_id | string Filter by employee ID |
| cycle_id | string Filter by cycle ID |
| status | string Enum: "DRAFT" "ACTIVE" "COMPLETED" "ON_HOLD" Filter by status |
| manager_approval | boolean Filter by manager approval status |
| employee_commitment | boolean Filter by employee commitment status |
| search | string Search by plan name or employee name |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| id required | string |
| employee_id | string Employee ID |
| cycle_id | string Performance cycle ID |
| plan_name | string Plan name or title |
| career_aspirations | string Career aspirations description |
| development_areas | object Development areas (JSON array) |
| learning_objectives | object Learning objectives (JSON array) |
| action_items | object Action items (JSON array) |
| success_metrics | object Success metrics (JSON array) |
| timeline_months | number [ 1 .. 36 ] Default: 12 Timeline in months |
| last_reviewed_date | string Last reviewed date |
| status | string Enum: "DRAFT" "ACTIVE" "COMPLETED" "ON_HOLD" Development plan status |
| manager_approval | boolean Manager approval status |
| employee_commitment | boolean Employee commitment status |
{- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 12,
- "last_reviewed_date": "string",
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| id required | string |
| comments | string Approval comments |
{- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| id required | string |
| reason required | string Rejection reason |
| comments | string Additional comments |
{- "reason": "string",
- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| id required | string |
| comments | string Employee commitment comments |
{- "comments": "string"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| id required | string |
| review_comments | string Review comments |
| progress_update | string Progress update |
| updated_action_items | object Updated action items |
| updated_success_metrics | object Updated success metrics |
{- "review_comments": "string",
- "progress_update": "string",
- "updated_action_items": { },
- "updated_success_metrics": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "cycle_id": "string",
- "plan_name": "string",
- "career_aspirations": "string",
- "development_areas": { },
- "learning_objectives": { },
- "action_items": { },
- "success_metrics": { },
- "timeline_months": 0,
- "status": "DRAFT",
- "manager_approval": true,
- "employee_commitment": true,
- "last_reviewed_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "employee": { },
- "cycle": { }
}| name required | string Template name |
| template_type required | string Template type (annual, mid_year, quarterly, probation) |
| applicable_job_levels | object Applicable job levels |
| applicable_departments | object Applicable departments |
| sections required | object Review sections configuration |
| rating_scale required | object Rating scale configuration |
| questions required | object Review questions |
| competencies | object Competency model |
| active | boolean Default: true Is template active |
{- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}| template_type | string Filter by template type |
| active | boolean Filter by active status |
| search | string Search in name |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}
]{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}| id required | string |
| name | string Template name |
| template_type | string Template type (annual, mid_year, quarterly, probation) |
| applicable_job_levels | object Applicable job levels |
| applicable_departments | object Applicable departments |
| sections | object Review sections configuration |
| rating_scale | object Rating scale configuration |
| questions | object Review questions |
| competencies | object Competency model |
| active | boolean Default: true Is template active |
{- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}| id required | string |
| new_name required | string New template name |
| modifications | object Modifications to apply |
{- "new_name": "string",
- "modifications": { }
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "template_type": "string",
- "applicable_job_levels": { },
- "applicable_departments": { },
- "sections": { },
- "rating_scale": { },
- "questions": { },
- "competencies": { },
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string"
}| title required | string |
| description | string |
| course_type | string Enum: "INTERNAL" "EXTERNAL" "ONLINE" "VENDOR" |
| delivery_method | string Enum: "CLASSROOM" "ONLINE" "BLENDED" "SELF_PACED" "ON_THE_JOB" |
| duration_hours | number |
| max_participants | number |
| prerequisites | Array of strings |
| learning_objectives | Array of strings |
| target_skills | Array of strings |
| content_outline | string |
| materials_required | Array of strings |
| cost_per_person | number |
| currency | string |
| provider_name | string |
| provider_contact | object |
| status | string Enum: "DRAFT" "ACTIVE" "PAUSED" "RETIRED" "ARCHIVED" |
| approval_required | boolean |
| certificate_awarded | boolean |
| cpd_points | number |
{- "title": "Introduction to TypeScript",
- "description": "Learn the fundamentals of TypeScript programming",
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": 16.5,
- "max_participants": 20,
- "prerequisites": [
- "Basic JavaScript knowledge",
- "Computer with Node.js installed"
], - "learning_objectives": [
- "Understand TypeScript basics",
- "Write type-safe code",
- "Use interfaces and generics"
], - "target_skills": [
- "skill-uuid-1",
- "skill-uuid-2"
], - "content_outline": "Module 1: Introduction\nModule 2: Types\nModule 3: Advanced Features",
- "materials_required": [
- "Laptop",
- "Course materials",
- "Notebook"
], - "cost_per_person": 250,
- "currency": "GBP",
- "provider_name": "Tech Training Ltd",
- "provider_contact": {
- "name": "John Doe",
- "email": "john@techtraining.com",
- "phone": "+44 20 1234 5678"
}, - "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": 12.5
}{- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| course_type | string Enum: "INTERNAL" "EXTERNAL" "ONLINE" "VENDOR" Example: course_type=INTERNAL |
| delivery_method | string Enum: "CLASSROOM" "ONLINE" "BLENDED" "SELF_PACED" "ON_THE_JOB" Example: delivery_method=ONLINE |
| status | string Enum: "DRAFT" "ACTIVE" "PAUSED" "RETIRED" "ARCHIVED" Example: status=ACTIVE |
| certificate_awarded | boolean Example: certificate_awarded=true |
| search | string Example: search=TypeScript |
| skill_id | string Example: skill_id=uuid-of-skill |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}[- {
- "id": "string",
- "title": "string",
- "description": "string",
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": 0,
- "cost_per_person": 0,
- "currency": "string",
- "certificate_awarded": true,
- "cpd_points": 0,
- "upcoming_sessions": 0,
- "next_session_date": "2019-08-24T14:15:22Z"
}
]{- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}| id required | string |
| title | string |
| description | string |
| course_type | string Enum: "INTERNAL" "EXTERNAL" "ONLINE" "VENDOR" |
| delivery_method | string Enum: "CLASSROOM" "ONLINE" "BLENDED" "SELF_PACED" "ON_THE_JOB" |
| duration_hours | number |
| max_participants | number |
| prerequisites | Array of strings |
| learning_objectives | Array of strings |
| target_skills | Array of strings |
| content_outline | string |
| materials_required | Array of strings |
| cost_per_person | number |
| currency | string |
| provider_name | string |
| provider_contact | object |
| status | string Enum: "DRAFT" "ACTIVE" "PAUSED" "RETIRED" "ARCHIVED" |
| approval_required | boolean |
| certificate_awarded | boolean |
| cpd_points | number |
{- "title": "Advanced TypeScript",
- "description": "Master advanced TypeScript concepts",
- "course_type": "INTERNAL",
- "delivery_method": "ONLINE",
- "duration_hours": 24,
- "max_participants": 30,
- "prerequisites": [
- "string"
], - "learning_objectives": [
- "string"
], - "target_skills": [
- "string"
], - "content_outline": "string",
- "materials_required": [
- "string"
], - "cost_per_person": 350,
- "currency": "GBP",
- "provider_name": "string",
- "provider_contact": { },
- "status": "ACTIVE",
- "approval_required": false,
- "certificate_awarded": true,
- "cpd_points": 15
}{- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}{- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}{- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}[- {
- "id": "string",
- "tenant_id": "string",
- "title": "string",
- "description": { },
- "course_type": "INTERNAL",
- "delivery_method": "CLASSROOM",
- "duration_hours": { },
- "max_participants": { },
- "prerequisites": { },
- "learning_objectives": { },
- "target_skills": { },
- "content_outline": { },
- "materials_required": { },
- "cost_per_person": { },
- "currency": "string",
- "provider_name": { },
- "provider_contact": { },
- "provider_website": { },
- "accreditation_body": { },
- "certification_validity_months": { },
- "status": "DRAFT",
- "approval_required": true,
- "certificate_awarded": true,
- "cpd_points": { },
- "target_audience": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "sessions": [
- "string"
]
}
]| course_id required | string |
| session_name | string |
| start_date required | string |
| end_date required | string |
| location | string |
| virtual_meeting_link | string |
| instructor_id | string |
| external_instructor_name | string |
| max_capacity | number |
| status | string Enum: "SCHEDULED" "IN_PROGRESS" "COMPLETED" "CANCELLED" "POSTPONED" |
| session_notes | string |
{- "course_id": "uuid-of-course",
- "session_name": "January 2024 Session",
- "start_date": "2024-01-15T09:00:00Z",
- "end_date": "2024-01-17T17:00:00Z",
- "location": "Training Room A, Building 2",
- "instructor_id": "uuid-of-instructor",
- "external_instructor_name": "Dr. Jane Smith",
- "max_capacity": 20,
- "status": "SCHEDULED",
- "session_notes": "Please bring laptops with Node.js installed"
}{- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| course_id | string Example: course_id=uuid-of-course |
| instructor_id | string Example: instructor_id=uuid-of-instructor |
| status | string Enum: "SCHEDULED" "IN_PROGRESS" "COMPLETED" "CANCELLED" "POSTPONED" Example: status=SCHEDULED |
| start_date_from | string Example: start_date_from=2024-01-01 |
| start_date_to | string Example: start_date_to=2024-12-31 |
| search | string Example: search=TypeScript |
| available_only | boolean Example: available_only=true |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}
]{- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}| id required | string |
| session_name | string |
| start_date | string |
| end_date | string |
| location | string |
| virtual_meeting_link | string |
| instructor_id | string |
| external_instructor_name | string |
| max_capacity | number |
| status | string Enum: "SCHEDULED" "IN_PROGRESS" "COMPLETED" "CANCELLED" "POSTPONED" |
| session_notes | string |
{- "session_name": "February 2024 Session",
- "start_date": "2024-02-15T09:00:00Z",
- "end_date": "2024-02-17T17:00:00Z",
- "location": "Conference Room B",
- "instructor_id": "uuid-of-instructor",
- "external_instructor_name": "Prof. John Doe",
- "max_capacity": 25,
- "status": "IN_PROGRESS",
- "session_notes": "Session rescheduled due to instructor availability"
}{- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}{- "session_id": "string",
- "course_title": "string",
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "max_capacity": 0,
- "current_enrollment": 0,
- "available_seats": 0,
- "is_full": true,
- "is_waitlist_available": true
}{- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}[- {
- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}
]| id required | string |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| course_id | string Example: course_id=uuid-of-course |
| instructor_id | string Example: instructor_id=uuid-of-instructor |
| status | string Enum: "SCHEDULED" "IN_PROGRESS" "COMPLETED" "CANCELLED" "POSTPONED" Example: status=SCHEDULED |
| start_date_from | string Example: start_date_from=2024-01-01 |
| start_date_to | string Example: start_date_to=2024-12-31 |
| search | string Example: search=TypeScript |
| available_only | boolean Example: available_only=true |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "course_id": "string",
- "session_name": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": "2019-08-24T14:15:22Z",
- "location": { },
- "virtual_meeting_link": { },
- "instructor_id": { },
- "external_instructor_name": { },
- "max_capacity": { },
- "current_enrollment": 0,
- "status": "SCHEDULED",
- "session_notes": { },
- "evaluation_form_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "course": { },
- "instructor": { },
- "session_enrollments": [
- "string"
]
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| name required | string |
| description | string |
| parent_id | string |
| display_order | number |
| active | boolean |
{- "name": "Technical Skills",
- "description": "Technical competencies required for engineering roles",
- "parent_id": "uuid-of-parent-category",
- "display_order": 1,
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "parent_id": { },
- "display_order": 0,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "parent": { },
- "children": [
- { }
]
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| active | boolean Example: active=true |
| parent_id | string Example: parent_id=uuid-of-parent-category |
| search | string Example: search=Technical |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "parent_id": { },
- "display_order": 0,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "parent": { },
- "children": [
- { }
]
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "parent_id": { },
- "display_order": 0,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "parent": { },
- "children": [
- { }
]
}
]{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "parent_id": { },
- "display_order": 0,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "parent": { },
- "children": [
- { }
]
}| id required | string |
| name | string |
| description | string |
| parent_id | string |
| display_order | number |
| active | boolean |
{- "name": "Technical Skills",
- "description": "Technical competencies required for engineering roles",
- "parent_id": "uuid-of-parent-category",
- "display_order": 1,
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "parent_id": { },
- "display_order": 0,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "parent": { },
- "children": [
- { }
]
}| name required | string |
| category_id | string |
| description | string |
| skill_type | string Enum: "TECHNICAL" "SOFT" "LEADERSHIP" "FUNCTIONAL" "COMPLIANCE" |
| proficiency_levels | object |
| assessment_criteria | object |
| market_demand | string Enum: "HIGH" "MEDIUM" "LOW" |
| active | boolean |
{- "name": "TypeScript",
- "category_id": "uuid-of-category",
- "description": "JavaScript superset with static typing",
- "skill_type": "TECHNICAL",
- "proficiency_levels": {
- "levels": [
- {
- "level": 1,
- "name": "Beginner",
- "description": "Basic understanding"
}, - {
- "level": 2,
- "name": "Intermediate",
- "description": "Working knowledge"
}, - {
- "level": 3,
- "name": "Advanced",
- "description": "Expert knowledge"
}
]
}, - "assessment_criteria": {
- "criteria": [
- "Can write basic TypeScript code",
- "Understands type system",
- "Can create complex types"
]
}, - "market_demand": "HIGH",
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "category_id": { },
- "name": "string",
- "description": { },
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category": { }
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| active | boolean Example: active=true |
| category_id | string Example: category_id=uuid-of-category |
| skill_type | string Enum: "TECHNICAL" "SOFT" "LEADERSHIP" "FUNCTIONAL" "COMPLIANCE" Example: skill_type=TECHNICAL |
| market_demand | string Enum: "HIGH" "MEDIUM" "LOW" Example: market_demand=HIGH |
| search | string Example: search=TypeScript |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "category_id": { },
- "name": "string",
- "description": { },
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category": { }
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "category_id": { },
- "name": "string",
- "description": { },
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "category_id": { },
- "name": "string",
- "description": { },
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category": { }
}| id required | string |
| name | string |
| category_id | string |
| description | string |
| skill_type | string Enum: "TECHNICAL" "SOFT" "LEADERSHIP" "FUNCTIONAL" "COMPLIANCE" |
| proficiency_levels | object |
| assessment_criteria | object |
| market_demand | string Enum: "HIGH" "MEDIUM" "LOW" |
| active | boolean |
{- "name": "TypeScript",
- "category_id": "uuid-of-category",
- "description": "JavaScript superset with static typing",
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "category_id": { },
- "name": "string",
- "description": { },
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category": { }
}[- {
- "id": "string",
- "tenant_id": "string",
- "category_id": { },
- "name": "string",
- "description": { },
- "skill_type": "TECHNICAL",
- "proficiency_levels": { },
- "assessment_criteria": { },
- "market_demand": "HIGH",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "category": { }
}
]| employee_id required | string |
| skill_id required | string |
| current_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| target_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| notes | string |
{- "employee_id": "uuid-of-employee",
- "skill_id": "uuid-of-skill",
- "current_level": "BEGINNER",
- "target_level": "COMPETENT",
- "notes": "Employee has demonstrated strong skills in this area"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "skill_id": "string",
- "current_level": "BEGINNER",
- "target_level": "BEGINNER",
- "self_assessment": "BEGINNER",
- "manager_assessment": "BEGINNER",
- "verified_level": "BEGINNER",
- "last_assessed_date": { },
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "skill": { }
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| employee_id | string Example: employee_id=uuid-of-employee |
| skill_id | string Example: skill_id=uuid-of-skill |
| current_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" Example: current_level=COMPETENT |
| target_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" Example: target_level=EXPERT |
| search | string Example: search=TypeScript |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "skill_id": "string",
- "current_level": "BEGINNER",
- "target_level": "BEGINNER",
- "self_assessment": "BEGINNER",
- "manager_assessment": "BEGINNER",
- "verified_level": "BEGINNER",
- "last_assessed_date": { },
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "skill": { }
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}{- "employee_id": "string",
- "employee_name": "string",
- "department": "string",
- "job_title": "string",
- "skills": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "skill_id": "string",
- "current_level": "BEGINNER",
- "target_level": "BEGINNER",
- "self_assessment": "BEGINNER",
- "manager_assessment": "BEGINNER",
- "verified_level": "BEGINNER",
- "last_assessed_date": { },
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "skill": { }
}
], - "skill_summary": { }
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "skill_id": "string",
- "current_level": "BEGINNER",
- "target_level": "BEGINNER",
- "self_assessment": "BEGINNER",
- "manager_assessment": "BEGINNER",
- "verified_level": "BEGINNER",
- "last_assessed_date": { },
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "skill": { }
}| id required | string |
| current_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| target_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| self_assessment | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| manager_assessment | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| verified_level | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| last_assessed_date | string |
| notes | string |
{- "current_level": "DEVELOPING",
- "target_level": "PROFICIENT",
- "self_assessment": "DEVELOPING",
- "manager_assessment": "COMPETENT",
- "verified_level": "COMPETENT",
- "last_assessed_date": "2024-01-15",
- "notes": "Updated assessment notes"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "skill_id": "string",
- "current_level": "BEGINNER",
- "target_level": "BEGINNER",
- "self_assessment": "BEGINNER",
- "manager_assessment": "BEGINNER",
- "verified_level": "BEGINNER",
- "last_assessed_date": { },
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "skill": { }
}| id required | string |
| assessment_level required | string Enum: "BEGINNER" "DEVELOPING" "COMPETENT" "PROFICIENT" "EXPERT" |
| assessment_type required | string Enum: "self" "manager" "verified" |
| notes | string |
{- "assessment_level": "COMPETENT",
- "assessment_type": "self",
- "notes": "Assessment notes and comments"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "skill_id": "string",
- "current_level": "BEGINNER",
- "target_level": "BEGINNER",
- "self_assessment": "BEGINNER",
- "manager_assessment": "BEGINNER",
- "verified_level": "BEGINNER",
- "last_assessed_date": { },
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "employee": { },
- "skill": { }
}| template_id | string Reference to template ID |
| code required | string Content code |
| title required | string Content title |
| description | string Content description |
| content_type required | string Enum: "VIDEO" "DOCUMENT" "PRESENTATION" "INTERACTIVE" "ASSESSMENT" "WEBINAR" "COURSE" Content type |
| category required | string Content category |
| learning_level | string Default: "BEGINNER" Enum: "BEGINNER" "INTERMEDIATE" "ADVANCED" "EXPERT" Learning level |
| target_audience required | Array of strings Target audience |
| estimated_duration_minutes | number Default: 30 Estimated duration in minutes |
| primary_file_path | string Primary file path |
| learning_objectives | Array of strings Default: [] Learning objectives |
| has_assessment | boolean Default: false Has assessment |
| certification_available | boolean Default: false Certification available |
| mandatory_for_roles required | Array of strings Mandatory for roles |
| compliance_requirement | boolean Default: false Compliance requirement |
| custom_content | object Default: {} Custom content (JSON) |
| is_active | boolean Default: true Is active |
{- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 30,
- "primary_file_path": "string",
- "learning_objectives": [ ],
- "has_assessment": false,
- "certification_available": false,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": false,
- "custom_content": { },
- "is_active": true
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}| template_id | string Filter by template ID |
| content_type | string Enum: "VIDEO" "DOCUMENT" "PRESENTATION" "INTERACTIVE" "ASSESSMENT" "WEBINAR" "COURSE" Filter by content type |
| category | string Filter by category |
| learning_level | string Enum: "BEGINNER" "INTERMEDIATE" "ADVANCED" "EXPERT" Filter by learning level |
| is_active | boolean Filter by active status |
| compliance_requirement | boolean Filter by compliance requirement |
| search | string Search in title and description |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}
][- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}
][- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}
]{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}| id required | string |
| template_id | string Reference to template ID |
| code | string Content code |
| title | string Content title |
| description | string Content description |
| content_type | string Enum: "VIDEO" "DOCUMENT" "PRESENTATION" "INTERACTIVE" "ASSESSMENT" "WEBINAR" "COURSE" Content type |
| category | string Content category |
| learning_level | string Default: "BEGINNER" Enum: "BEGINNER" "INTERMEDIATE" "ADVANCED" "EXPERT" Learning level |
| target_audience | Array of strings Target audience |
| estimated_duration_minutes | number Default: 30 Estimated duration in minutes |
| primary_file_path | string Primary file path |
| learning_objectives | Array of strings Default: [] Learning objectives |
| has_assessment | boolean Default: false Has assessment |
| certification_available | boolean Default: false Certification available |
| mandatory_for_roles | Array of strings Mandatory for roles |
| compliance_requirement | boolean Default: false Compliance requirement |
| custom_content | object Default: {} Custom content (JSON) |
| is_active | boolean Default: true Is active |
{- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 30,
- "primary_file_path": "string",
- "learning_objectives": [ ],
- "has_assessment": false,
- "certification_available": false,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": false,
- "custom_content": { },
- "is_active": true
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}| id required | string |
| new_code required | string New content code |
| new_title required | string New content title |
| modifications | object Modifications to apply |
{- "new_code": "string",
- "new_title": "string",
- "modifications": { }
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "custom_content": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
], - "tenant_learning_progress": [
- "string"
]
}| template_id | string Reference to template ID |
| code required | string Path code |
| title required | string Path title |
| description | string Path description |
| path_type required | string Path type |
| target_audience required | Array of strings Target audience |
| estimated_duration_hours required | number Estimated duration in hours |
| certification_available | boolean Default: false Certification available |
| mandatory | boolean Default: false Is mandatory |
| modules required | object Default: [] Modules (JSON array) |
| custom_modules | object Default: {} Custom modules (JSON) |
| is_active | boolean Default: true Is active |
{- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": false,
- "mandatory": false,
- "modules": [ ],
- "custom_modules": { },
- "is_active": true
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}| template_id | string Filter by template ID |
| path_type | string Filter by path type |
| mandatory | boolean Filter by mandatory status |
| certification_available | boolean Filter by certification availability |
| is_active | boolean Filter by active status |
| search | string Search in title and description |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}
][- {
- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}
]{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}| id required | string |
| template_id | string Reference to template ID |
| code | string Path code |
| title | string Path title |
| description | string Path description |
| path_type | string Path type |
| target_audience | Array of strings Target audience |
| estimated_duration_hours | number Estimated duration in hours |
| certification_available | boolean Default: false Certification available |
| mandatory | boolean Default: false Is mandatory |
| modules | object Default: [] Modules (JSON array) |
| custom_modules | object Default: {} Custom modules (JSON) |
| is_active | boolean Default: true Is active |
{- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": false,
- "mandatory": false,
- "modules": [ ],
- "custom_modules": { },
- "is_active": true
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}| id required | string |
| new_code required | string New path code |
| new_title required | string New path title |
| modifications | object Modifications to apply |
{- "new_code": "string",
- "new_title": "string",
- "modifications": { }
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}| id required | string |
| module_name required | string Module name |
| content_id required | string Module content ID |
| sequence required | number Module sequence |
| is_mandatory | boolean Default: true Is mandatory module |
| duration_hours | number Module duration in hours |
{- "module_name": "string",
- "content_id": "string",
- "sequence": 0,
- "is_mandatory": true,
- "duration_hours": 0
}{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}| id required | string |
| moduleId required | string |
{- "id": "string",
- "tenant_id": "string",
- "template_id": "string",
- "code": "string",
- "title": "string",
- "description": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "custom_modules": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": "string",
- "updated_by_id": "string",
- "created_by": "string",
- "updated_by": "string",
- "template": { },
- "training_enrollments": [
- "string"
]
}| code required | string Rate group code |
| title required | string Rate group title |
| category required | string Enum: "NMW" "SSP" "SMP" "SPP" "ShPP" "SPBP" "TAX_BAND" "NI_THRESHOLD" "NI_RATE" "PENSION_AE" "LEVY" "HOLIDAY_DAYS" "WORKING_TIME_MAX" |
| description | string Description |
| unit required | string Enum: "HOURLY" "WEEKLY" "MONTHLY" "YEARLY" "PERCENT" "CURRENCY" "DAYS" "HOURS" |
| jurisdiction | string Default: "UK" Enum: "UK" "ENGLAND" "WALES" "SCOTLAND" "N_IRELAND" |
{- "code": "string",
- "title": "string",
- "category": "NMW",
- "description": "string",
- "unit": "HOURLY",
- "jurisdiction": "UK"
}{- "id": "string",
- "code": "string",
- "title": "string",
- "category": "NMW",
- "description": { },
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| category | string Filter by category |
| unit | string Filter by unit |
| jurisdiction | string Filter by jurisdiction |
| search | string Search in code and title |
[- {
- "id": "string",
- "code": "string",
- "title": "string",
- "category": "NMW",
- "description": { },
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| category required | string Rate category |
[- {
- "id": "string",
- "code": "string",
- "title": "string",
- "category": "NMW",
- "description": { },
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| id required | string Rate Group ID |
{- "id": "string",
- "code": "string",
- "title": "string",
- "category": "NMW",
- "description": { },
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string Rate Group ID |
| title | string Rate group title |
| description | string Description |
| unit | string Enum: "HOURLY" "WEEKLY" "MONTHLY" "YEARLY" "PERCENT" "CURRENCY" "DAYS" "HOURS" |
| jurisdiction | string Enum: "UK" "ENGLAND" "WALES" "SCOTLAND" "N_IRELAND" |
{- "title": "string",
- "description": "string",
- "unit": "HOURLY",
- "jurisdiction": "UK"
}{- "id": "string",
- "code": "string",
- "title": "string",
- "category": "NMW",
- "description": { },
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| groupId required | string <uuid> Rate Group ID |
| startsAt required | string Effective start date |
| endsAt | string Effective end date |
| params | object Flexible dimension parameters (JSON) |
| valueDecimal | string Rate value (decimal) |
| valueText | string Rate value (text) |
| notes | string Additional notes |
| citation required | string Legal citation |
| url required | string Reference URL |
{- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "startsAt": "2024-01-01",
- "endsAt": "2024-12-31",
- "params": "{\"ageBand\":\"21-22\",\"taxYear\":\"2025/26\"}",
- "valueDecimal": "10.42",
- "valueText": "90% of AWE",
- "notes": "string",
- "citation": "NMW Act 1998 – s.1",
}{- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| groupId | string <uuid> Filter by rate group ID |
| effectiveOn | string Example: effectiveOn=2024-01-01 Filter by effective date |
| startsFrom | string Example: startsFrom=2024-01-01 Filter by start date from |
| startsTo | string Example: startsTo=2024-12-31 Filter by start date to |
| paramsFilter | object (Object) Filter by parameters (JSON object) |
[- {
- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]| groupId required | string Rate Group ID |
| effectiveDate | string Effective date (ISO string) |
[- {
- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
]| groupId required | string Rate Group ID |
| params | string Parameters filter (JSON string) |
| effectiveDate | string Effective date (ISO string) |
{- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| id required | string Rate Entry ID |
{- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| id required | string Rate Entry ID |
| endsAt | string Effective end date |
| params | object Flexible dimension parameters (JSON) |
| valueDecimal | string Rate value (decimal) |
| valueText | string Rate value (text) |
| notes | string Additional notes |
| citation | string Legal citation |
| url | string Reference URL |
{- "endsAt": "2024-12-31",
- "params": "{\"ageBand\":\"21-22\",\"taxYear\":\"2025/26\"}",
- "valueDecimal": "10.42",
- "valueText": "90% of AWE",
- "notes": "string",
- "citation": "string",
- "url": "string"
}{- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| id required | string Rate Entry ID |
{- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "group": { }
}| id required | string Rate Entry ID |
| endDate | string End date (ISO string) |
{- "id": "string",
- "groupId": "string",
- "startsAt": "2019-08-24T14:15:22Z",
- "endsAt": { },
- "params": { },
- "valueDecimal": { },
- "valueText": { },
- "notes": { },
- "citation": "string",
- "url": "string",
- "created_at": "2019-08-24T14:15:22Z"
}| name required | string [ 2 .. 100 ] characters Pay element name |
| code required | string [ 2 .. 50 ] characters Pay element code (unique) |
| type required | string Enum: "EARNING" "DEDUCTION" "BENEFIT" Pay element type |
| taxable | boolean Default: true Whether this element is taxable |
| subject_to_ni | boolean Default: true Whether this element is subject to National Insurance |
| subject_to_pension | boolean Default: false Whether this element is subject to pension contributions |
| default_amount | number >= 0 Default amount for this pay element |
{- "name": "Basic Salary",
- "code": "BASIC_SALARY",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": false,
- "default_amount": 3000
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| type | string Enum: "EARNING" "DEDUCTION" "BENEFIT" Example: type=EARNING Filter by pay element type |
| taxable | boolean Example: taxable=true Filter by taxable status |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 50,
- "total_pages": 5,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
][- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| id required | string |
| name | string [ 2 .. 100 ] characters Pay element name |
| type | string Enum: "EARNING" "DEDUCTION" "BENEFIT" Pay element type |
| taxable | boolean Whether this element is taxable |
| subject_to_ni | boolean Whether this element is subject to National Insurance |
| subject_to_pension | boolean Whether this element is subject to pension contributions |
| default_amount | number >= 0 Default amount for this pay element |
{- "name": "Basic Salary Updated",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": false,
- "default_amount": 3500
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "code": "string",
- "type": "EARNING",
- "taxable": true,
- "subject_to_ni": true,
- "subject_to_pension": true,
- "default_amount": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| employee_id required | string Employee ID |
| pay_element_id required | string Pay element ID |
| amount required | number >= 0 Assignment amount |
| effective_from required | string Effective from date |
| effective_to | string Effective to date (null for open-ended) |
| frequency required | string Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Pay frequency |
| paye_scheme_id | string PAYE scheme ID |
{- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "pay_element_id": "550e8400-e29b-41d4-a716-446655440000",
- "amount": 3000,
- "effective_from": "2024-01-01",
- "effective_to": "2024-12-31",
- "frequency": "MONTHLY",
- "paye_scheme_id": "550e8400-e29b-41d4-a716-446655440000"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "pay_element_id": "string",
- "amount": 0,
- "effective_from": "2019-08-24T14:15:22Z",
- "effective_to": { },
- "frequency": "MONTHLY",
- "paye_scheme_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "pay_element": { },
- "paye_scheme": { }
}| employeeId | string Example: employeeId=550e8400-e29b-41d4-a716-446655440000 Filter by employee ID |
| payElementId | string Example: payElementId=550e8400-e29b-41d4-a716-446655440000 Filter by pay element ID |
| frequency | string Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Example: frequency=MONTHLY Filter by pay frequency |
| activeOnly | boolean Example: activeOnly=true Show only active assignments |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "pay_element_id": "string",
- "amount": 0,
- "effective_from": "2019-08-24T14:15:22Z",
- "effective_to": { },
- "frequency": "MONTHLY",
- "paye_scheme_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "pay_element": { },
- "paye_scheme": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 50,
- "total_pages": 5,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| employeeId required | string |
| asOfDate | string Check assignments as of this date (YYYY-MM-DD) |
[- {
- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "pay_element_id": "string",
- "amount": 0,
- "effective_from": "2019-08-24T14:15:22Z",
- "effective_to": { },
- "frequency": "MONTHLY",
- "paye_scheme_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "pay_element": { },
- "paye_scheme": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "pay_element_id": "string",
- "amount": 0,
- "effective_from": "2019-08-24T14:15:22Z",
- "effective_to": { },
- "frequency": "MONTHLY",
- "paye_scheme_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "pay_element": { },
- "paye_scheme": { }
}| id required | string |
| amount | number >= 0 Assignment amount |
| effective_from | string Effective from date |
| effective_to | string Effective to date (null for open-ended) |
| frequency | string Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Pay frequency |
| paye_scheme_id | string PAYE scheme ID |
| updated_by_id | string Updated by user ID |
| updated_by | string Updated by user email |
{- "amount": 3500,
- "effective_from": "2024-02-01",
- "effective_to": "2024-12-31",
- "frequency": "MONTHLY",
- "paye_scheme_id": "550e8400-e29b-41d4-a716-446655440000",
- "updated_by_id": "550e8400-e29b-41d4-a716-446655440000",
- "updated_by": "john.doe@example.com"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "pay_element_id": "string",
- "amount": 0,
- "effective_from": "2019-08-24T14:15:22Z",
- "effective_to": { },
- "frequency": "MONTHLY",
- "paye_scheme_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "pay_element": { },
- "paye_scheme": { }
}| id required | string |
| effective_to required | string Termination date |
| reason | string <= 500 characters Termination reason |
{- "effective_to": "2024-06-30",
- "reason": "Employee resignation"
}{- "id": "string",
- "tenant_id": "string",
- "employee_id": "string",
- "pay_element_id": "string",
- "amount": 0,
- "effective_from": "2019-08-24T14:15:22Z",
- "effective_to": { },
- "frequency": "MONTHLY",
- "paye_scheme_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "employee": { },
- "pay_element": { },
- "paye_scheme": { }
}| company_id required | string Company ID |
| name required | string [ 1 .. 255 ] characters Pay schedule name |
| frequency required | string Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Pay frequency |
| pay_day | number [ 1 .. 31 ] Pay day of month (for monthly/yearly frequencies) |
| week_day | number [ 1 .. 7 ] Pay day of week (for weekly/biweekly frequencies) |
| start_date required | string Schedule start date |
| end_date | string Schedule end date |
{- "company_id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "Monthly Payroll",
- "frequency": "MONTHLY",
- "pay_day": 25,
- "week_day": 5,
- "start_date": "2024-01-01T00:00:00.000Z",
- "end_date": "2024-12-31T23:59:59.000Z"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}| frequency | string Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Filter by pay frequency |
| activeOnly | boolean Example: activeOnly=true Filter to show only active pay schedules |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 50,
- "total_pages": 5,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}
]| frequency required | string |
| activeOnly | boolean Filter to show only active pay schedules |
[- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}| id required | string |
| name | string [ 1 .. 255 ] characters Pay schedule name |
| frequency | string Enum: "WEEKLY" "BIWEEKLY" "MONTHLY" "YEARLY" "HOURLY" Pay frequency |
| pay_day | number [ 1 .. 31 ] Pay day of month (for monthly/yearly frequencies) |
| week_day | number [ 1 .. 7 ] Pay day of week (for weekly/biweekly frequencies) |
| start_date | string Schedule start date |
| end_date | string Schedule end date |
{- "name": "Monthly Payroll",
- "frequency": "WEEKLY",
- "pay_day": 25,
- "week_day": 5,
- "start_date": "2024-01-01T00:00:00.000Z",
- "end_date": "2024-12-31T23:59:59.000Z"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "name": "string",
- "frequency": "WEEKLY",
- "pay_day": { },
- "week_day": { },
- "start_date": "2019-08-24T14:15:22Z",
- "end_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "company": { }
}| company_id required | string Company ID |
| pay_schedule_id required | string Pay schedule ID |
| name required | string <= 255 characters Pay run name |
| period_start required | string Pay period start date |
| period_end required | string Pay period end date |
| pay_date required | string Pay date |
| status | string Default: "DRAFT" Enum: "DRAFT" "PROCESSING" "APPROVED" "SUBMITTED" "FILED" "CLOSED" Pay run status |
| description | string <= 1000 characters Pay run description |
{- "company_id": "550e8400-e29b-41d4-a716-446655440000",
- "pay_schedule_id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "January 2024 Monthly Payroll",
- "period_start": "2024-01-01T00:00:00.000Z",
- "period_end": "2024-01-31T23:59:59.000Z",
- "pay_date": "2024-02-05T00:00:00.000Z",
- "status": "DRAFT",
- "description": "Monthly payroll for January 2024"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}| status | string Enum: "DRAFT" "PROCESSING" "APPROVED" "SUBMITTED" "FILED" "CLOSED" Filter by pay run status |
| payScheduleId | string Example: payScheduleId=550e8400-e29b-41d4-a716-446655440000 Filter by pay schedule ID |
| startDate | string Example: startDate=2024-01-01 Filter by pay period start date (YYYY-MM-DD) |
| endDate | string Example: endDate=2024-01-31 Filter by pay period end date (YYYY-MM-DD) |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 50,
- "total_pages": 5,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}
]| year | number Year for statistics (defaults to current year) |
{- "totalPayRuns": 0,
- "draftPayRuns": 0,
- "processingPayRuns": 0,
- "completedPayRuns": 0,
- "failedPayRuns": 0,
- "cancelledPayRuns": 0,
- "totalGrossPay": 0,
- "totalNetPay": 0,
- "totalEmployeesPaid": 0
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}| id required | string |
| name | string <= 255 characters Pay run name |
| period_start | string Pay period start date |
| period_end | string Pay period end date |
| pay_date | string Pay date |
| status | string Enum: "DRAFT" "PROCESSING" "APPROVED" "SUBMITTED" "FILED" "CLOSED" Pay run status |
| description | string <= 1000 characters Pay run description |
{- "name": "January 2024 Monthly Payroll - Updated",
- "period_start": "2024-01-01T00:00:00.000Z",
- "period_end": "2024-01-31T23:59:59.000Z",
- "pay_date": "2024-02-05T00:00:00.000Z",
- "status": "DRAFT",
- "description": "Updated monthly payroll description"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}| id required | string |
| force_process | boolean Default: false Force processing even if validation fails |
| processed_notes | string <= 500 characters Processing comments |
{- "force_process": false,
- "processed_notes": "Approved for processing"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}| id required | string |
| status required | string Enum: "DRAFT" "PROCESSING" "APPROVED" "SUBMITTED" "FILED" "CLOSED" Approval status |
| approved_notes | string <= 500 characters Approval comments |
{- "status": "APPROVED",
- "approved_notes": "Approved for payment"
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}| id required | string |
{- "id": "string",
- "tenant_id": "string",
- "company_id": "string",
- "pay_schedule_id": "string",
- "name": "string",
- "period_start": "2019-08-24T14:15:22Z",
- "period_end": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "hmrc_submission_id": { },
- "submitted_at": { },
- "description": { },
- "total_gross_amount": 0,
- "total_net_amount": 0,
- "total_deductions_amount": 0,
- "employee_count": 0,
- "processed_at": { },
- "approved_at": { },
- "approved_by_id": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_schedule": { }
}| pay_run_id required | string Pay run ID |
| employee_id required | string Employee ID |
| pay_period_start_date required | string Pay period start date |
| pay_period_end_date required | string Pay period end date |
| pay_date required | string Pay date |
| notes | string <= 1000 characters Payslip notes |
{- "pay_run_id": "550e8400-e29b-41d4-a716-446655440000",
- "employee_id": "550e8400-e29b-41d4-a716-446655440000",
- "pay_period_start_date": "2024-01-01T00:00:00.000Z",
- "pay_period_end_date": "2024-01-31T23:59:59.000Z",
- "pay_date": "2024-02-05T00:00:00.000Z",
- "notes": "Standard monthly payslip"
}{- "id": "string",
- "tenant_id": "string",
- "pay_run_id": "string",
- "employee_id": "string",
- "gross_pay": 0,
- "total_deductions": 0,
- "net_pay": 0,
- "ni_employee": 0,
- "ni_employer": 0,
- "income_tax": 0,
- "student_loan": 0,
- "other_deductions": 0,
- "paye_scheme_id": { },
- "pay_period_start_date": "2019-08-24T14:15:22Z",
- "pay_period_end_date": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_run": { },
- "employee": { }
}| payRunId | string Example: payRunId=550e8400-e29b-41d4-a716-446655440000 Filter by pay run ID |
| employeeId | string Example: employeeId=550e8400-e29b-41d4-a716-446655440000 Filter by employee ID |
| payDate | string Example: payDate=2024-01-31 Filter by pay date (YYYY-MM-DD) |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "pay_run_id": "string",
- "employee_id": "string",
- "gross_pay": 0,
- "total_deductions": 0,
- "net_pay": 0,
- "ni_employee": 0,
- "ni_employer": 0,
- "income_tax": 0,
- "student_loan": 0,
- "other_deductions": 0,
- "paye_scheme_id": { },
- "pay_period_start_date": "2019-08-24T14:15:22Z",
- "pay_period_end_date": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_run": { },
- "employee": { }
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 50,
- "total_pages": 5,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| pay_run_id required | string Pay run ID |
| employee_ids required | Array of strings Array of employee IDs |
| auto_calculate | boolean Auto-calculate payslip amounts |
| notes | string <= 1000 characters Bulk creation notes |
{- "pay_run_id": "550e8400-e29b-41d4-a716-446655440000",
- "employee_ids": [
- "550e8400-e29b-41d4-a716-446655440000",
- "660e8400-e29b-41d4-a716-446655440001"
], - "auto_calculate": true,
- "notes": "Bulk payslip creation for monthly run"
}{- "created": 0,
- "skipped": 0,
- "errors": [
- "string"
]
}{- "id": "string",
- "tenant_id": "string",
- "pay_run_id": "string",
- "employee_id": "string",
- "gross_pay": 0,
- "total_deductions": 0,
- "net_pay": 0,
- "ni_employee": 0,
- "ni_employer": 0,
- "income_tax": 0,
- "student_loan": 0,
- "other_deductions": 0,
- "paye_scheme_id": { },
- "pay_period_start_date": "2019-08-24T14:15:22Z",
- "pay_period_end_date": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_run": { },
- "employee": { }
}| id required | string |
| pay_run_id | string Pay run ID |
| pay_period_start_date | string Pay period start date |
| pay_period_end_date | string Pay period end date |
| pay_date | string Pay date |
| notes | string <= 1000 characters Payslip notes |
{- "pay_run_id": "550e8400-e29b-41d4-a716-446655440000",
- "pay_period_start_date": "2024-01-01T00:00:00.000Z",
- "pay_period_end_date": "2024-01-31T23:59:59.000Z",
- "pay_date": "2024-02-05T00:00:00.000Z",
- "notes": "Updated payslip with overtime"
}{- "id": "string",
- "tenant_id": "string",
- "pay_run_id": "string",
- "employee_id": "string",
- "gross_pay": 0,
- "total_deductions": 0,
- "net_pay": 0,
- "ni_employee": 0,
- "ni_employer": 0,
- "income_tax": 0,
- "student_loan": 0,
- "other_deductions": 0,
- "paye_scheme_id": { },
- "pay_period_start_date": "2019-08-24T14:15:22Z",
- "pay_period_end_date": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_run": { },
- "employee": { }
}| id required | string |
| notes | string <= 1000 characters Additional notes for calculation |
{- "notes": "Include overtime calculation"
}{- "id": "string",
- "tenant_id": "string",
- "pay_run_id": "string",
- "employee_id": "string",
- "gross_pay": 0,
- "total_deductions": 0,
- "net_pay": 0,
- "ni_employee": 0,
- "ni_employer": 0,
- "income_tax": 0,
- "student_loan": 0,
- "other_deductions": 0,
- "paye_scheme_id": { },
- "pay_period_start_date": "2019-08-24T14:15:22Z",
- "pay_period_end_date": "2019-08-24T14:15:22Z",
- "pay_date": "2019-08-24T14:15:22Z",
- "notes": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { },
- "pay_run": { },
- "employee": { }
}| template_code required | string |
| template_name required | string |
| inspection_type_ids | Array of strings |
| checklist_items required | object |
| evidence_requirements required | object |
| automation_rules | object |
| quality_checks | object |
| output_templates | object |
| is_system_template | boolean |
{- "template_code": "HMRC_PAYE_CHECKLIST",
- "template_name": "HMRC PAYE Compliance Checklist",
- "inspection_type_ids": [
- "uuid1",
- "uuid2"
], - "checklist_items": [
- {
- "item": "Verify RTI submissions",
- "required": true
}, - {
- "item": "Check NIC calculations",
- "required": true
}
], - "evidence_requirements": {
- "documents": [
- "Payslips",
- "P60s",
- "P45s"
], - "time_period": "Last 6 years"
}, - "automation_rules": { },
- "quality_checks": { },
- "output_templates": { },
- "is_system_template": false
}| inspection_type_id required | string |
| regulator_reference required | string |
| notice_received_date required | string |
| response_deadline required | string |
| inspection_date | string |
| scope_parameters required | object |
| specific_allegations | Array of strings |
| inspection_officer_details | object |
| assigned_to | string |
| internal_notes | string |
{- "inspection_type_id": "uuid-of-inspection-type",
- "regulator_reference": "HMRC-2024-001",
- "notice_received_date": "2024-01-15",
- "response_deadline": "2024-02-05",
- "inspection_date": "2024-01-30",
- "scope_parameters": {
- "date_range": {
- "start": "2023-04-01",
- "end": "2024-03-31"
}, - "employee_ids": [
- "uuid1",
- "uuid2"
], - "department_ids": [
- "dept1"
]
}, - "specific_allegations": [
- "Incorrect PAYE calculations",
- "Missing RTI submissions"
], - "inspection_officer_details": {
- "officer_name": "John Smith",
- "officer_id": "OFF123"
}, - "assigned_to": "uuid-of-user",
- "internal_notes": "Initial PAYE compliance check for tax year 2023-24"
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| status | string Enum: "NOTICE_RECEIVED" "EVIDENCE_GATHERING" "PACKAGE_GENERATED" "SUBMITTED" "UNDER_REVIEW" "CONCLUDED" Example: status=NOTICE_RECEIVED |
| inspection_type_id | string Example: inspection_type_id=uuid-of-inspection-type |
| assigned_to | string Example: assigned_to=uuid-of-assignee |
| notice_from | string Example: notice_from=2024-01-01 |
| notice_to | string Example: notice_to=2024-12-31 |
| deadline_before | string Example: deadline_before=2024-02-01 |
| search | string Example: search=HMRC |
| id required | string |
| status required | string Enum: "NOTICE_RECEIVED" "EVIDENCE_GATHERING" "PACKAGE_GENERATED" "SUBMITTED" "UNDER_REVIEW" "CONCLUDED" |
| current_stage | string |
| progress_percentage | number |
| notes | string |
{- "status": "EVIDENCE_GATHERING",
- "current_stage": "Document Collection",
- "progress_percentage": 45,
- "notes": "Completed initial document review"
}| id required | string |
| inspection_outcome required | string Enum: "SATISFACTORY" "MINOR_ISSUES" "MAJOR_ISSUES" "PENALTIES_IMPOSED" |
| penalties_imposed | number |
| follow_up_actions | Array of strings |
| conclusion_date | string |
| external_correspondence | object |
{- "inspection_outcome": "MINOR_ISSUES",
- "penalties_imposed": 5000,
- "follow_up_actions": [
- "Implement new payroll procedures",
- "Provide additional training"
], - "conclusion_date": "2024-02-15",
- "external_correspondence": {
- "findings": "Minor discrepancies found",
- "recommendations": [ ]
}
}| inspection_case_id required | string |
| package_type required | string Enum: "INITIAL_RESPONSE" "SUPPLEMENTARY" "FINAL_SUBMISSION" |
| generation_config required | object |
| scope_parameters required | object |
| package_format | string Enum: "DIGITAL" "PHYSICAL" "HYBRID" |
| delivery_method | string Enum: "SECURE_PORTAL" "EMAIL" "PHYSICAL_DELIVERY" |
| authentication_method | string Enum: "DIGITAL_SIGNATURE" "NOTARIZATION" "BLOCKCHAIN_TIMESTAMP" |
{- "inspection_case_id": "uuid-of-inspection-case",
- "package_type": "INITIAL_RESPONSE",
- "generation_config": {
- "include_all_evidence": true,
- "priority_order": [
- "PAYROLL_RECORDS",
- "EMPLOYMENT_CONTRACTS"
], - "completeness_check": true,
- "cross_reference_validation": true
}, - "scope_parameters": {
- "date_range": {
- "start": "2023-04-01",
- "end": "2024-03-31"
}, - "employee_ids": [
- "uuid1",
- "uuid2"
], - "department_ids": [
- "dept1"
]
}, - "package_format": "DIGITAL",
- "delivery_method": "SECURE_PORTAL",
- "authentication_method": "DIGITAL_SIGNATURE"
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| inspection_case_id | string Example: inspection_case_id=uuid-of-inspection-case |
| collection_status | string Enum: "PENDING" "COLLECTING" "PROCESSING" "PACKAGING" "COMPLETED" "FAILED" Example: collection_status=COMPLETED |
| package_type | string Enum: "INITIAL_RESPONSE" "SUPPLEMENTARY" "FINAL_SUBMISSION" Example: package_type=INITIAL_RESPONSE |
| created_from | string Example: created_from=2024-01-01 |
| created_to | string Example: created_to=2024-12-31 |
| search | string Example: search=PKG-2024 |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| evidence_package_id required | string Example: evidence_package_id=uuid-of-evidence-package |
| event_date_from | string Example: event_date_from=2023-04-01 |
| event_date_to | string Example: event_date_to=2024-03-31 |
| event_type | string Example: event_type=PAYROLL_CHANGE |
| event_significance | string Example: event_significance=CRITICAL |
| compliance_impact | string Example: compliance_impact=HIGH |
| company_id required | string |
| inspection_type required | string Enum: "FIRE_SAFETY" "EQUIPMENT_CHECK" "WORKPLACE_ASSESSMENT" "ELECTRICAL_SAFETY" "MANUAL_HANDLING" "DSE_ASSESSMENT" "COSHH" "OTHER" |
| inspection_title required | string |
| inspection_date required | string |
| location | string |
| areas_covered | Array of strings |
| equipment_checked | Array of strings |
| inspector_id | string |
| external_inspector | string |
| inspector_qualification | string |
| overall_result required | string Enum: "PASS" "FAIL" "CONDITIONAL_PASS" "PENDING" |
| score | number [ 0 .. 100 ] |
| issues_found | object |
| high_risk_issues | Array of strings |
| medium_risk_issues | Array of strings |
| low_risk_issues | Array of strings |
| remedial_actions_required | object |
| completion_deadline | string |
| next_inspection_due | string |
| inspection_report_path | string |
| photos | object |
{- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "Annual Fire Safety Inspection",
- "inspection_date": "string",
- "location": "Main Office Building",
- "areas_covered": [
- "Reception",
- "Office Floor 1"
], - "equipment_checked": [
- "Fire Extinguishers",
- "Emergency Exits"
], - "inspector_id": "string",
- "external_inspector": "ABC Safety Consultants",
- "inspector_qualification": "NEBOSH Certificate",
- "overall_result": "PASS",
- "score": 100,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "string",
- "next_inspection_due": "string",
- "inspection_report_path": "string",
- "photos": { }
}{- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}| companyId required | string Company ID |
| inspection_type | string Enum: "FIRE_SAFETY" "EQUIPMENT_CHECK" "WORKPLACE_ASSESSMENT" "ELECTRICAL_SAFETY" "MANUAL_HANDLING" "DSE_ASSESSMENT" "COSHH" "OTHER" |
| overall_result | string Enum: "PASS" "FAIL" "CONDITIONAL_PASS" "PENDING" |
| company_id | string |
| inspector_id | string |
| location | string |
| inspection_date_from | string |
| inspection_date_to | string |
| next_due_from | string |
| next_due_to | string |
| page | number Default: 1 |
| limit | number Default: 20 |
| to_date | string |
| from_date | string |
{- "data": [
- [ ]
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| companyId required | string Company ID |
[- {
- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}
][- {
- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}
]| inspectionId required | string Safety inspection ID |
{- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}| inspectionId required | string Safety inspection ID |
| overall_result | string Enum: "PASS" "FAIL" "CONDITIONAL_PASS" "PENDING" |
| score | number |
| issues_found | object |
| high_risk_issues | Array of strings |
| medium_risk_issues | Array of strings |
| low_risk_issues | Array of strings |
| remedial_actions_required | object |
| completion_deadline | string |
| next_inspection_due | string |
| inspection_report_path | string |
| photos | object |
{- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "string",
- "next_inspection_due": "string",
- "inspection_report_path": "string",
- "photos": { }
}{- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}| inspectionId required | string Safety inspection ID |
{- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}| inspectionId required | string Safety inspection ID |
{- "id": "string",
- "company_id": "string",
- "inspection_type": "FIRE_SAFETY",
- "inspection_title": "string",
- "inspection_date": "2019-08-24T14:15:22Z",
- "location": "string",
- "areas_covered": [
- "string"
], - "equipment_checked": [
- "string"
], - "inspector_id": "string",
- "external_inspector": "string",
- "inspector_qualification": "string",
- "overall_result": "PASS",
- "score": 0,
- "issues_found": { },
- "high_risk_issues": [
- "string"
], - "medium_risk_issues": [
- "string"
], - "low_risk_issues": [
- "string"
], - "remedial_actions_required": { },
- "completion_deadline": "2019-08-24T14:15:22Z",
- "next_inspection_due": "2019-08-24T14:15:22Z",
- "inspection_report_path": "string",
- "photos": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "inspector": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_issues_count": 0,
- "critical_issues_count": 0
}| company_id required | string |
| assessment_type required | string Enum: "WORKPLACE" "FIRE" "MANUAL_HANDLING" "DSE" "COSHH" "LONE_WORKING" "YOUNG_PERSON" "NEW_MOTHER" "STRESS" "NOISE" "VIBRATION" "GENERAL" |
| assessment_title required | string |
| assessment_description required | string |
| department_id | string |
| location required | string |
| areas_covered | Array of strings |
| activities_covered | Array of strings |
| assessor_id required | string |
| assessor_qualification | string |
| assessment_date required | string |
required | Array of objects (RiskItemDto) |
| overall_risk_rating | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| control_measures | object |
| emergency_procedures | object |
| review_date | string |
| next_assessment_date required | string |
| status | string Default: "DRAFT" Enum: "DRAFT" "IN_REVIEW" "APPROVED" "EXPIRED" "ARCHIVED" |
| assessment_report_path | string |
{- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "Office Risk Assessment 2024",
- "assessment_description": "Annual workplace risk assessment for main office",
- "department_id": "string",
- "location": "Main Office Building",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "string",
- "risks_identified": [
- {
- "hazard_description": "Slips and trips",
- "hazard_details": "Wet floor in kitchen area",
- "people_at_risk": [
- "All staff",
- "Visitors"
], - "severity_before_controls": "NEGLIGIBLE",
- "likelihood_before_controls": "RARE",
- "existing_controls": [
- "Wet floor signs",
- "Non-slip mats"
], - "severity_after_controls": "NEGLIGIBLE",
- "likelihood_after_controls": "RARE",
- "additional_controls_required": [
- "string"
], - "responsible_person_id": "string",
- "target_completion_date": "string"
}
], - "overall_risk_rating": "LOW",
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "string",
- "next_assessment_date": "string",
- "status": "DRAFT",
- "assessment_report_path": "string"
}{- "id": "string",
- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "string",
- "assessment_description": "string",
- "department_id": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "2019-08-24T14:15:22Z",
- "risks_identified": { },
- "overall_risk_rating": "LOW",
- "risk_score": 0,
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "2019-08-24T14:15:22Z",
- "next_assessment_date": "2019-08-24T14:15:22Z",
- "approved_by_id": "string",
- "approval_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "assessment_report_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "assessor": { },
- "approved_by": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_risks_count": 0,
- "high_risks_count": 0,
- "medium_risks_count": 0,
- "low_risks_count": 0
}| companyId required | string Company ID |
| assessment_type | string Enum: "WORKPLACE" "FIRE" "MANUAL_HANDLING" "DSE" "COSHH" "LONE_WORKING" "YOUNG_PERSON" "NEW_MOTHER" "STRESS" "NOISE" "VIBRATION" "GENERAL" |
| status | string Enum: "DRAFT" "IN_REVIEW" "APPROVED" "EXPIRED" "ARCHIVED" |
| overall_risk_rating | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| department_id | string |
| assessor_id | string |
| location | string |
| assessment_date_from | string |
| assessment_date_to | string |
| next_assessment_from | string |
| next_assessment_to | string |
| include_expired | boolean |
| page | number Default: 1 |
| limit | number Default: 20 |
| overall_risk_level | string |
{- "data": [
- [ ]
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| companyId required | string Company ID |
[- {
- "id": "string",
- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "string",
- "assessment_description": "string",
- "department_id": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "2019-08-24T14:15:22Z",
- "risks_identified": { },
- "overall_risk_rating": "LOW",
- "risk_score": 0,
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "2019-08-24T14:15:22Z",
- "next_assessment_date": "2019-08-24T14:15:22Z",
- "approved_by_id": "string",
- "approval_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "assessment_report_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "assessor": { },
- "approved_by": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_risks_count": 0,
- "high_risks_count": 0,
- "medium_risks_count": 0,
- "low_risks_count": 0
}
]| companyId | string |
| days | number Days to look ahead (default: 30) |
[- {
- "id": "string",
- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "string",
- "assessment_description": "string",
- "department_id": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "2019-08-24T14:15:22Z",
- "risks_identified": { },
- "overall_risk_rating": "LOW",
- "risk_score": 0,
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "2019-08-24T14:15:22Z",
- "next_assessment_date": "2019-08-24T14:15:22Z",
- "approved_by_id": "string",
- "approval_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "assessment_report_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "assessor": { },
- "approved_by": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_risks_count": 0,
- "high_risks_count": 0,
- "medium_risks_count": 0,
- "low_risks_count": 0
}
]| assessmentId required | string Risk assessment ID |
{- "id": "string",
- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "string",
- "assessment_description": "string",
- "department_id": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "2019-08-24T14:15:22Z",
- "risks_identified": { },
- "overall_risk_rating": "LOW",
- "risk_score": 0,
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "2019-08-24T14:15:22Z",
- "next_assessment_date": "2019-08-24T14:15:22Z",
- "approved_by_id": "string",
- "approval_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "assessment_report_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "assessor": { },
- "approved_by": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_risks_count": 0,
- "high_risks_count": 0,
- "medium_risks_count": 0,
- "low_risks_count": 0
}| assessmentId required | string Risk assessment ID |
| assessment_description | string |
| location | string |
| areas_covered | Array of strings |
| activities_covered | Array of strings |
Array of objects (RiskItemDto) | |
| overall_risk_rating | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| control_measures | object |
| emergency_procedures | object |
| review_date | string |
| next_assessment_date | string |
| status | string Enum: "DRAFT" "IN_REVIEW" "APPROVED" "EXPIRED" "ARCHIVED" |
| assessment_report_path | string |
{- "assessment_description": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "risks_identified": [
- {
- "hazard_description": "Slips and trips",
- "hazard_details": "Wet floor in kitchen area",
- "people_at_risk": [
- "All staff",
- "Visitors"
], - "severity_before_controls": "NEGLIGIBLE",
- "likelihood_before_controls": "RARE",
- "existing_controls": [
- "Wet floor signs",
- "Non-slip mats"
], - "severity_after_controls": "NEGLIGIBLE",
- "likelihood_after_controls": "RARE",
- "additional_controls_required": [
- "string"
], - "responsible_person_id": "string",
- "target_completion_date": "string"
}
], - "overall_risk_rating": "LOW",
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "string",
- "next_assessment_date": "string",
- "status": "DRAFT",
- "assessment_report_path": "string"
}{- "id": "string",
- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "string",
- "assessment_description": "string",
- "department_id": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "2019-08-24T14:15:22Z",
- "risks_identified": { },
- "overall_risk_rating": "LOW",
- "risk_score": 0,
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "2019-08-24T14:15:22Z",
- "next_assessment_date": "2019-08-24T14:15:22Z",
- "approved_by_id": "string",
- "approval_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "assessment_report_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "assessor": { },
- "approved_by": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_risks_count": 0,
- "high_risks_count": 0,
- "medium_risks_count": 0,
- "low_risks_count": 0
}| assessmentId required | string Risk assessment ID |
{- "id": "string",
- "company_id": "string",
- "assessment_type": "WORKPLACE",
- "assessment_title": "string",
- "assessment_description": "string",
- "department_id": "string",
- "location": "string",
- "areas_covered": [
- "string"
], - "activities_covered": [
- "string"
], - "assessor_id": "string",
- "assessor_qualification": "string",
- "assessment_date": "2019-08-24T14:15:22Z",
- "risks_identified": { },
- "overall_risk_rating": "LOW",
- "risk_score": 0,
- "control_measures": { },
- "emergency_procedures": { },
- "review_date": "2019-08-24T14:15:22Z",
- "next_assessment_date": "2019-08-24T14:15:22Z",
- "approved_by_id": "string",
- "approval_date": "2019-08-24T14:15:22Z",
- "status": "DRAFT",
- "assessment_report_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "assessor": { },
- "approved_by": { },
- "days_until_next": 0,
- "is_overdue": true,
- "total_risks_count": 0,
- "high_risks_count": 0,
- "medium_risks_count": 0,
- "low_risks_count": 0
}| assessmentId required | string Risk assessment ID |
[- "string"
]{- "total_assessments": 0,
- "active_assessments": 0,
- "expired_assessments": 0,
- "assessments_due_soon": 0,
- "risk_distribution": { },
- "assessments_by_type": { },
- "risk_matrix": { },
- "high_priority_risks": [
- { }
], - "upcoming_assessments": [
- { }
], - "overdue_assessments": [
- { }
]
}| assessmentId required | string Risk assessment ID |
| tasks required | Array of arrays |
| deadline | string |
| notes | string |
{- "tasks": [
- [ ]
], - "deadline": "string",
- "notes": "string"
}{- "tasks": [
- [ ]
], - "deadline": "string",
- "notes": "string"
}| company_id required | string |
| policy_type required | string Enum: "EMPLOYERS_LIABILITY" "PUBLIC_LIABILITY" "PROFESSIONAL_INDEMNITY" "PROPERTY" "VEHICLE" "CYBER" "OTHER" |
| policy_number required | string |
| insurer_name required | string |
| broker_name | string |
| coverage_amount | number |
| currency | string Default: "GBP" |
| coverage_details | object |
| policy_start_date required | string |
| policy_end_date required | string |
| renewal_date | string |
| premium_amount | number |
| payment_frequency | string Enum: "ANNUAL" "QUARTERLY" "MONTHLY" |
| status | string Default: "ACTIVE" Enum: "ACTIVE" "EXPIRED" "CANCELLED" "PENDING_RENEWAL" |
| policy_document_path | string |
| certificate_path | string |
{- "company_id": "string",
- "policy_type": "EMPLOYERS_LIABILITY",
- "policy_number": "POL-2024-001",
- "insurer_name": "ABC Insurance Ltd",
- "broker_name": "XYZ Brokers",
- "coverage_amount": 5000000,
- "currency": "GBP",
- "coverage_details": { },
- "policy_start_date": "string",
- "policy_end_date": "string",
- "renewal_date": "string",
- "premium_amount": 1200.5,
- "payment_frequency": "ANNUAL",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string"
}{- "id": "string",
- "company_id": "string",
- "policy_type": "EMPLOYERS_LIABILITY",
- "policy_number": "string",
- "insurer_name": "string",
- "broker_name": "string",
- "coverage_amount": 0,
- "currency": "string",
- "coverage_details": { },
- "policy_start_date": "2019-08-24T14:15:22Z",
- "policy_end_date": "2019-08-24T14:15:22Z",
- "renewal_date": "2019-08-24T14:15:22Z",
- "premium_amount": 0,
- "payment_frequency": "string",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "days_until_expiry": 0,
- "is_expiring_soon": true,
- "is_expired": true
}| companyId required | string Company ID |
| policy_type | string Enum: "EMPLOYERS_LIABILITY" "PUBLIC_LIABILITY" "PROFESSIONAL_INDEMNITY" "PROPERTY" "VEHICLE" "CYBER" "OTHER" |
| status | string Enum: "ACTIVE" "EXPIRED" "CANCELLED" "PENDING_RENEWAL" |
| company_id | string |
| expiry_date_from | string |
| expiry_date_to | string |
| insurer_name | string |
| page | number Default: 1 |
| limit | number Default: 20 |
{- "data": [
- [ ]
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| days | number Number of days to look ahead (default: 90) |
| companyId | string |
[- {
- "id": "string",
- "company_id": "string",
- "policy_type": "EMPLOYERS_LIABILITY",
- "policy_number": "string",
- "insurer_name": "string",
- "broker_name": "string",
- "coverage_amount": 0,
- "currency": "string",
- "coverage_details": { },
- "policy_start_date": "2019-08-24T14:15:22Z",
- "policy_end_date": "2019-08-24T14:15:22Z",
- "renewal_date": "2019-08-24T14:15:22Z",
- "premium_amount": 0,
- "payment_frequency": "string",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "days_until_expiry": 0,
- "is_expiring_soon": true,
- "is_expired": true
}
]| policyId required | string Insurance policy ID |
{- "id": "string",
- "company_id": "string",
- "policy_type": "EMPLOYERS_LIABILITY",
- "policy_number": "string",
- "insurer_name": "string",
- "broker_name": "string",
- "coverage_amount": 0,
- "currency": "string",
- "coverage_details": { },
- "policy_start_date": "2019-08-24T14:15:22Z",
- "policy_end_date": "2019-08-24T14:15:22Z",
- "renewal_date": "2019-08-24T14:15:22Z",
- "premium_amount": 0,
- "payment_frequency": "string",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "days_until_expiry": 0,
- "is_expiring_soon": true,
- "is_expired": true
}| policyId required | string Insurance policy ID |
| broker_name | string |
| coverage_amount | number |
| coverage_details | object |
| policy_start_date | string |
| policy_end_date | string |
| renewal_date | string |
| premium_amount | number |
| payment_frequency | string Enum: "ANNUAL" "QUARTERLY" "MONTHLY" |
| status | string Enum: "ACTIVE" "EXPIRED" "CANCELLED" "PENDING_RENEWAL" |
| policy_document_path | string |
| certificate_path | string |
{- "broker_name": "XYZ Brokers",
- "coverage_amount": 5000000,
- "coverage_details": { },
- "policy_start_date": "string",
- "policy_end_date": "string",
- "renewal_date": "string",
- "premium_amount": 1200.5,
- "payment_frequency": "ANNUAL",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string"
}{- "id": "string",
- "company_id": "string",
- "policy_type": "EMPLOYERS_LIABILITY",
- "policy_number": "string",
- "insurer_name": "string",
- "broker_name": "string",
- "coverage_amount": 0,
- "currency": "string",
- "coverage_details": { },
- "policy_start_date": "2019-08-24T14:15:22Z",
- "policy_end_date": "2019-08-24T14:15:22Z",
- "renewal_date": "2019-08-24T14:15:22Z",
- "premium_amount": 0,
- "payment_frequency": "string",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "days_until_expiry": 0,
- "is_expiring_soon": true,
- "is_expired": true
}| policyId required | string Insurance policy ID |
| new_policy_number required | string |
| new_start_date required | string |
| new_end_date required | string |
| new_coverage_amount | number |
| new_premium_amount | number |
| updated_coverage_details | object |
| renewal_notes | string |
{- "new_policy_number": "string",
- "new_start_date": "string",
- "new_end_date": "string",
- "new_coverage_amount": 0,
- "new_premium_amount": 0,
- "updated_coverage_details": { },
- "renewal_notes": "string"
}{- "id": "string",
- "company_id": "string",
- "policy_type": "EMPLOYERS_LIABILITY",
- "policy_number": "string",
- "insurer_name": "string",
- "broker_name": "string",
- "coverage_amount": 0,
- "currency": "string",
- "coverage_details": { },
- "policy_start_date": "2019-08-24T14:15:22Z",
- "policy_end_date": "2019-08-24T14:15:22Z",
- "renewal_date": "2019-08-24T14:15:22Z",
- "premium_amount": 0,
- "payment_frequency": "string",
- "status": "ACTIVE",
- "policy_document_path": "string",
- "certificate_path": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "days_until_expiry": 0,
- "is_expiring_soon": true,
- "is_expired": true
}| tenant_id | string |
| company_id required | string |
| accident_date required | string |
| accident_time | string |
| location required | string |
| department_id | string |
| affected_employee_id | string |
| affected_employee_name | string |
| accident_type required | string Enum: "SLIP_TRIP_FALL" "MANUAL_HANDLING" "STRUCK_BY_OBJECT" "MACHINERY" "VEHICLE" "ELECTRICAL" "CHEMICAL" "BURN" "CUT_LACERATION" "ERGONOMIC" "VIOLENCE" "OTHER" |
| injury_type | string |
| injury_severity required | string Enum: "NO_INJURY" "MINOR" "MODERATE" "MAJOR" "FATAL" |
| injury_description | string |
| body_parts_affected | Array of strings |
| accident_description required | string |
| immediate_action_taken | string |
| witness_names | Array of strings |
| witness_statements | string |
| reported_by required | string |
| reported_date | string |
| riddor_reportable | boolean |
| riddor_reference | string |
| days_lost | number |
| medical_treatment_required | boolean |
| hospital_visit | boolean |
| photos | Array of strings |
| documents | Array of strings |
{- "tenant_id": "string",
- "company_id": "string",
- "accident_date": "2024-01-15",
- "accident_time": "14:30",
- "location": "Warehouse Floor Area B",
- "department_id": "string",
- "affected_employee_id": "string",
- "affected_employee_name": "string",
- "accident_type": "SLIP_TRIP_FALL",
- "injury_type": "string",
- "injury_severity": "NO_INJURY",
- "injury_description": "string",
- "body_parts_affected": [
- "string"
], - "accident_description": "string",
- "immediate_action_taken": "string",
- "witness_names": [
- "string"
], - "witness_statements": "string",
- "reported_by": "string",
- "reported_date": "string",
- "riddor_reportable": true,
- "riddor_reference": "string",
- "days_lost": 0,
- "medical_treatment_required": true,
- "hospital_visit": true,
- "photos": [
- "string"
], - "documents": [
- "string"
]
}{- "id": "string",
- "company_id": "string",
- "report_number": "string",
- "accident_date": "2019-08-24T14:15:22Z",
- "accident_time": "2019-08-24T14:15:22Z",
- "location": "string",
- "department_id": "string",
- "affected_employee_id": "string",
- "affected_employee_name": "string",
- "accident_type": "SLIP_TRIP_FALL",
- "injury_type": "string",
- "injury_severity": "string",
- "injury_description": "string",
- "body_parts_affected": [
- "string"
], - "accident_description": "string",
- "immediate_action_taken": "string",
- "witness_names": [
- "string"
], - "witness_statements": "string",
- "reported_by": "string",
- "reported_date": "2019-08-24T14:15:22Z",
- "riddor_reportable": true,
- "riddor_reference": "string",
- "days_lost": 0,
- "medical_treatment_required": true,
- "hospital_visit": true,
- "investigation_date": "2019-08-24T14:15:22Z",
- "investigated_by": "string",
- "root_causes": [
- "string"
], - "contributing_factors": [
- "string"
], - "corrective_actions": [
- { }
], - "preventive_actions": [
- { }
], - "investigation_findings": "string",
- "recommendations": [
- "string"
], - "action_plan": "string",
- "status": "PENDING",
- "closure_date": "2019-08-24T14:15:22Z",
- "closure_notes": "string",
- "photos": [
- "string"
], - "documents": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "affected_employee": { },
- "days_since_accident": 0,
- "requires_riddor": true,
- "investigation_overdue": true
}| companyId required | string |
| year required | number |
{- "total_accidents": 0,
- "riddor_reportable": 0,
- "total_days_lost": 0,
- "accidents_by_severity": { },
- "accidents_by_type": { },
- "accidents_by_department": { },
- "accidents_by_month": [
- { }
], - "frequency_rate": 0,
- "severity_rate": 0,
- "open_investigations": 0,
- "completed_investigations": 0,
- "most_common_injuries": [
- { }
], - "most_affected_body_parts": [
- { }
]
}| id required | string |
| location | string |
| department_id | string |
| injury_type | string |
| injury_severity | string Enum: "NO_INJURY" "MINOR" "MODERATE" "MAJOR" "FATAL" |
| injury_description | string |
| body_parts_affected | Array of strings |
| accident_description | string |
| immediate_action_taken | string |
| witness_names | Array of strings |
| witness_statements | string |
| riddor_reportable | boolean |
| riddor_reference | string |
| days_lost | number |
| medical_treatment_required | boolean |
| hospital_visit | boolean |
| status | string Enum: "PENDING" "REPORTED" "UNDER_INVESTIGATION" "INVESTIGATED" "CLOSED" |
| photos | Array of strings |
| documents | Array of strings |
{- "location": "string",
- "department_id": "string",
- "injury_type": "string",
- "injury_severity": "NO_INJURY",
- "injury_description": "string",
- "body_parts_affected": [
- "string"
], - "accident_description": "string",
- "immediate_action_taken": "string",
- "witness_names": [
- "string"
], - "witness_statements": "string",
- "riddor_reportable": true,
- "riddor_reference": "string",
- "days_lost": 0,
- "medical_treatment_required": true,
- "hospital_visit": true,
- "status": "PENDING",
- "photos": [
- "string"
], - "documents": [
- "string"
]
}{- "id": "string",
- "company_id": "string",
- "report_number": "string",
- "accident_date": "2019-08-24T14:15:22Z",
- "accident_time": "2019-08-24T14:15:22Z",
- "location": "string",
- "department_id": "string",
- "affected_employee_id": "string",
- "affected_employee_name": "string",
- "accident_type": "SLIP_TRIP_FALL",
- "injury_type": "string",
- "injury_severity": "string",
- "injury_description": "string",
- "body_parts_affected": [
- "string"
], - "accident_description": "string",
- "immediate_action_taken": "string",
- "witness_names": [
- "string"
], - "witness_statements": "string",
- "reported_by": "string",
- "reported_date": "2019-08-24T14:15:22Z",
- "riddor_reportable": true,
- "riddor_reference": "string",
- "days_lost": 0,
- "medical_treatment_required": true,
- "hospital_visit": true,
- "investigation_date": "2019-08-24T14:15:22Z",
- "investigated_by": "string",
- "root_causes": [
- "string"
], - "contributing_factors": [
- "string"
], - "corrective_actions": [
- { }
], - "preventive_actions": [
- { }
], - "investigation_findings": "string",
- "recommendations": [
- "string"
], - "action_plan": "string",
- "status": "PENDING",
- "closure_date": "2019-08-24T14:15:22Z",
- "closure_notes": "string",
- "photos": [
- "string"
], - "documents": [
- "string"
], - "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "department": { },
- "affected_employee": { },
- "days_since_accident": 0,
- "requires_riddor": true,
- "investigation_overdue": true
}| tenant_id | string |
| certificate_type required | string Enum: "FOOD_HYGIENE" "WASTE_CARRIER" "PREMISES_LICENSE" "ALCOHOL_LICENSE" "GAMBLING_LICENSE" "ENTERTAINMENT_LICENSE" "TRADING_STANDARDS" "HEALTH_SAFETY" "ENVIRONMENTAL" "PROFESSIONAL" "VEHICLE" "EQUIPMENT" "OTHER" |
| certificate_name required | string |
| certificate_number | string |
| issuing_authority required | string |
| applies_to_type required | string |
| applies_to_id required | string |
| issue_date required | string |
| expiry_date | string |
| is_permanent | boolean |
| renewal_required | boolean |
| renewal_process_days | number |
| status | string Enum: "PENDING" "ACTIVE" "EXPIRED" "SUSPENDED" "REVOKED" "INVALID" "ARCHIVED" |
| verification_date | string |
| verified_by | string |
| certificate_document_path | string |
| notes | string |
{- "tenant_id": "string",
- "certificate_type": "FOOD_HYGIENE",
- "certificate_name": "Food Hygiene Certificate Level 2",
- "certificate_number": "CERT-2024-001",
- "issuing_authority": "Local Council",
- "applies_to_type": "COMPANY",
- "applies_to_id": "string",
- "issue_date": "2024-01-15",
- "expiry_date": "2025-01-15",
- "is_permanent": true,
- "renewal_required": true,
- "renewal_process_days": 0,
- "status": "PENDING",
- "verification_date": "string",
- "verified_by": "string",
- "certificate_document_path": "string",
- "notes": "string"
}{- "id": "string",
- "certificate_type": "FOOD_HYGIENE",
- "certificate_name": "string",
- "certificate_number": "string",
- "issuing_authority": "string",
- "applies_to_type": "string",
- "applies_to_id": "string",
- "issue_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "is_permanent": true,
- "renewal_required": true,
- "renewal_process_days": 0,
- "status": "PENDING",
- "verification_date": "2019-08-24T14:15:22Z",
- "verified_by": "string",
- "certificate_document_path": "string",
- "notes": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "days_until_expiry": 0,
- "is_expiring_soon": true,
- "is_expired": true
}| certificateNumber required | string |
{- "certificate_number": "string",
- "is_valid": true,
- "verified_at": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "holder_name": "string",
- "issuing_authority": "string"
}| tenant_id | string |
| company_id required | string |
| employee_id required | string |
| training_type required | string Enum: "HEALTH_SAFETY" "FIRE_SAFETY" "FIRST_AID" "MANUAL_HANDLING" "GDPR" "ANTI_BRIBERY" "DIVERSITY_INCLUSION" "MENTAL_HEALTH" "EMERGENCY_EVACUATION" "FOOD_HYGIENE" "SAFEGUARDING" "TECHNICAL" "PROFESSIONAL" "OTHER" |
| training_name required | string |
| provider_name required | string |
| is_mandatory required | boolean |
| completion_date | string |
| expiry_date | string |
| certificate_number | string |
| training_hours | number |
| cost | number |
| status | string Enum: "NOT_STARTED" "IN_PROGRESS" "COMPLETED" "EXPIRED" "EXEMPT" "FAILED" |
| next_renewal_date | string |
| certificate_path | string |
{- "tenant_id": "string",
- "company_id": "string",
- "employee_id": "string",
- "training_type": "HEALTH_SAFETY",
- "training_name": "string",
- "provider_name": "string",
- "is_mandatory": true,
- "completion_date": "string",
- "expiry_date": "string",
- "certificate_number": "string",
- "training_hours": 0,
- "cost": 0,
- "status": "NOT_STARTED",
- "next_renewal_date": "string",
- "certificate_path": "string"
}{- "id": "string",
- "company_id": "string",
- "employee_id": "string",
- "training_type": "HEALTH_SAFETY",
- "training_name": "string",
- "training_description": "string",
- "priority": "MANDATORY",
- "provider_name": "string",
- "is_mandatory": true,
- "delivery_method": "IN_PERSON",
- "scheduled_date": "2019-08-24T14:15:22Z",
- "completion_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "score": 0,
- "passed": true,
- "certificate_number": "string",
- "certificate_path": "string",
- "status": "NOT_STARTED",
- "duration_hours": 0,
- "cost": 0,
- "notes": "string",
- "next_renewal_date": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "company": { },
- "employee": { },
- "days_until_expiry": 0,
- "is_expired": true,
- "is_due_soon": true,
- "is_expiring_soon": true,
- "is_overdue": true,
- "renewal_required": true
}| tenant_id | string |
| reminder_type required | string |
| related_record_type required | string |
| related_record_id required | string |
| title required | string |
| message required | string |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "URGENT" |
| due_date required | string |
| reminder_date required | string |
| recipient_ids | Array of strings |
| recipient_roles | Array of strings |
| recurring | boolean |
| recurring_pattern | string |
| auto_generated | boolean |
{- "tenant_id": "string",
- "reminder_type": "TRAINING",
- "related_record_type": "training_compliance",
- "related_record_id": "string",
- "title": "Training Renewal Required",
- "message": "Your fire safety training expires in 30 days",
- "priority": "LOW",
- "due_date": "2024-02-15",
- "reminder_date": "2024-02-01",
- "recipient_ids": [
- "string"
], - "recipient_roles": [
- "string"
], - "recurring": true,
- "recurring_pattern": "MONTHLY",
- "auto_generated": true
}{- "id": "string",
- "reminder_type": "string",
- "related_record_type": "string",
- "related_record_id": "string",
- "title": "string",
- "message": "string",
- "priority": "LOW",
- "due_date": "2019-08-24T14:15:22Z",
- "reminder_date": "2019-08-24T14:15:22Z",
- "recipient_ids": [
- "string"
], - "recipient_roles": [
- "string"
], - "auto_generated": true,
- "recurring": true,
- "recurring_pattern": "string",
- "status": "PENDING",
- "sent_at": "2019-08-24T14:15:22Z",
- "acknowledged_at": "2019-08-24T14:15:22Z",
- "acknowledged_by": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "days_until_due": 0,
- "is_overdue": true,
- "is_urgent": true
}| companyId required | string Company ID |
{- "overallComplianceScore": 0,
- "totalCompliantItems": 0,
- "totalNonCompliantItems": 0,
- "urgentActionItems": [
- { }
], - "upcomingRenewals": [
- { }
], - "recentInspections": [
- { }
], - "riskDistribution": { },
- "complianceByCategory": [
- { }
]
}| companyId required | string Company ID |
| includeCategories | Array of strings |
| excludeCategories | Array of strings |
| generateReport | boolean |
| sendNotifications | boolean |
{- "includeCategories": [
- "string"
], - "excludeCategories": [
- "string"
], - "generateReport": true,
- "sendNotifications": true
}{- "checkDate": "2019-08-24T14:15:22Z",
- "overallResult": "string",
- "itemResults": [
- { }
], - "reportPath": "string",
- "nextCheckDate": "2019-08-24T14:15:22Z"
}| compliance_code required | string |
| compliance_name required | string |
| compliance_category required | string Enum: "INSURANCE" "SAFETY" "TRAINING" "CERTIFICATION" |
| description | string |
| legal_requirement required | object |
| regulatory_body | string |
| is_mandatory | boolean Default: true |
| applies_to_company_size | string Enum: "ALL" "SMALL" "MEDIUM" "LARGE" |
| applies_to_industry | Array of strings |
| check_frequency | string Enum: "DAILY" "WEEKLY" "MONTHLY" "QUARTERLY" "ANNUAL" |
| advance_notice_days | number Default: 30 |
| grace_period_days | number Default: 0 |
{- "compliance_code": "ELI_INSURANCE",
- "compliance_name": "Employer's Liability Insurance",
- "compliance_category": "INSURANCE",
- "description": "string",
- "legal_requirement": { },
- "regulatory_body": "string",
- "is_mandatory": true,
- "applies_to_company_size": "ALL",
- "applies_to_industry": [
- "string"
], - "check_frequency": "DAILY",
- "advance_notice_days": 30,
- "grace_period_days": 0
}{- "id": "string",
- "compliance_code": "string",
- "compliance_name": "string",
- "compliance_category": "INSURANCE",
- "description": "string",
- "legal_requirement": { },
- "regulatory_body": "string",
- "is_mandatory": true,
- "applies_to_company_size": "string",
- "applies_to_industry": [
- "string"
], - "check_frequency": "string",
- "advance_notice_days": 0,
- "grace_period_days": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| itemId required | string Compliance item ID |
{- "id": "string",
- "compliance_code": "string",
- "compliance_name": "string",
- "compliance_category": "INSURANCE",
- "description": "string",
- "legal_requirement": { },
- "regulatory_body": "string",
- "is_mandatory": true,
- "applies_to_company_size": "string",
- "applies_to_industry": [
- "string"
], - "check_frequency": "string",
- "advance_notice_days": 0,
- "grace_period_days": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| itemId required | string Compliance item ID |
| compliance_name | string |
| compliance_category | string Enum: "INSURANCE" "SAFETY" "TRAINING" "CERTIFICATION" |
| description | string |
| legal_requirement | object |
| regulatory_body | string |
| is_mandatory | boolean |
| applies_to_company_size | string Enum: "ALL" "SMALL" "MEDIUM" "LARGE" |
| applies_to_industry | Array of strings |
| check_frequency | string Enum: "DAILY" "WEEKLY" "MONTHLY" "QUARTERLY" "ANNUAL" |
| advance_notice_days | number |
| grace_period_days | number |
| is_active | boolean |
{- "compliance_name": "string",
- "compliance_category": "INSURANCE",
- "description": "string",
- "legal_requirement": { },
- "regulatory_body": "string",
- "is_mandatory": true,
- "applies_to_company_size": "ALL",
- "applies_to_industry": [
- "string"
], - "check_frequency": "DAILY",
- "advance_notice_days": 0,
- "grace_period_days": 0,
- "is_active": true
}{- "id": "string",
- "compliance_code": "string",
- "compliance_name": "string",
- "compliance_category": "INSURANCE",
- "description": "string",
- "legal_requirement": { },
- "regulatory_body": "string",
- "is_mandatory": true,
- "applies_to_company_size": "string",
- "applies_to_industry": [
- "string"
], - "check_frequency": "string",
- "advance_notice_days": 0,
- "grace_period_days": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| companyId required | string Company ID |
| status | string Enum: "COMPLIANT" "NON_COMPLIANT" "OVERDUE" "PENDING" |
| category | string Enum: "INSURANCE" "SAFETY" "TRAINING" "CERTIFICATION" |
| risk_level | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| responsible_person_id | string |
| due_date_from | string |
| due_date_to | string |
| page | number Default: 1 |
| limit | number Default: 20 |
{- "data": [
- [ ]
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| company_id required | string |
| compliance_item_id required | string |
| current_status required | string Enum: "COMPLIANT" "NON_COMPLIANT" "OVERDUE" "PENDING" |
| compliance_level | string Enum: "FULL" "PARTIAL" "NONE" |
| last_check_date | string |
| next_due_date required | string |
| expiry_date | string |
| responsible_person_id | string |
| responsible_department_id | string |
| evidence_documents | Array of strings |
| certificates | object |
| risk_level | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| non_compliance_impact | string |
| notes | string |
{- "company_id": "string",
- "compliance_item_id": "string",
- "current_status": "COMPLIANT",
- "compliance_level": "FULL",
- "last_check_date": "string",
- "next_due_date": "string",
- "expiry_date": "string",
- "responsible_person_id": "string",
- "responsible_department_id": "string",
- "evidence_documents": [
- "string"
], - "certificates": { },
- "risk_level": "LOW",
- "non_compliance_impact": "string",
- "notes": "string"
}{- "id": "string",
- "company_id": "string",
- "compliance_item_id": "string",
- "current_status": "COMPLIANT",
- "compliance_level": "FULL",
- "last_check_date": "2019-08-24T14:15:22Z",
- "next_due_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "responsible_person_id": "string",
- "responsible_department_id": "string",
- "evidence_documents": [
- "string"
], - "certificates": { },
- "risk_level": "LOW",
- "non_compliance_impact": "string",
- "notes": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "compliance_item": { },
- "company": { }
}| statusId required | string Compliance status ID |
| current_status | string Enum: "COMPLIANT" "NON_COMPLIANT" "OVERDUE" "PENDING" |
| compliance_level | string Enum: "FULL" "PARTIAL" "NONE" |
| last_check_date | string |
| next_due_date | string |
| expiry_date | string |
| responsible_person_id | string |
| responsible_department_id | string |
| evidence_documents | Array of strings |
| certificates | object |
| risk_level | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| non_compliance_impact | string |
| notes | string |
{- "current_status": "COMPLIANT",
- "compliance_level": "FULL",
- "last_check_date": "string",
- "next_due_date": "string",
- "expiry_date": "string",
- "responsible_person_id": "string",
- "responsible_department_id": "string",
- "evidence_documents": [
- "string"
], - "certificates": { },
- "risk_level": "LOW",
- "non_compliance_impact": "string",
- "notes": "string"
}{- "id": "string",
- "company_id": "string",
- "compliance_item_id": "string",
- "current_status": "COMPLIANT",
- "compliance_level": "FULL",
- "last_check_date": "2019-08-24T14:15:22Z",
- "next_due_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "responsible_person_id": "string",
- "responsible_department_id": "string",
- "evidence_documents": [
- "string"
], - "certificates": { },
- "risk_level": "LOW",
- "non_compliance_impact": "string",
- "notes": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "compliance_item": { },
- "company": { }
}| days required | number Number of days to look ahead |
| companyId | string |
[- {
- "id": "string",
- "company_id": "string",
- "compliance_item_id": "string",
- "current_status": "COMPLIANT",
- "compliance_level": "FULL",
- "last_check_date": "2019-08-24T14:15:22Z",
- "next_due_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "responsible_person_id": "string",
- "responsible_department_id": "string",
- "evidence_documents": [
- "string"
], - "certificates": { },
- "risk_level": "LOW",
- "non_compliance_impact": "string",
- "notes": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "compliance_item": { },
- "company": { }
}
][- {
- "id": "string",
- "company_id": "string",
- "compliance_item_id": "string",
- "current_status": "COMPLIANT",
- "compliance_level": "FULL",
- "last_check_date": "2019-08-24T14:15:22Z",
- "next_due_date": "2019-08-24T14:15:22Z",
- "expiry_date": "2019-08-24T14:15:22Z",
- "responsible_person_id": "string",
- "responsible_department_id": "string",
- "evidence_documents": [
- "string"
], - "certificates": { },
- "risk_level": "LOW",
- "non_compliance_impact": "string",
- "notes": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "compliance_item": { },
- "company": { }
}
]Retrieve the authenticated employee's profile information for self-service access
{- "id": "uuid",
- "employee_no": "EMP001",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john.doe@example.com",
- "phone": "07700900123",
- "address": "123 Main Street, London",
- "postcode": "SW1A 1AA",
- "emergency_contact_name": "Jane Doe",
- "emergency_contact_phone": "07800123456",
- "bank_name": "Barclays Bank",
- "bank_account_no": "12345678",
- "bank_sort_code": "20-00-00",
- "current_position": "Software Engineer",
- "current_department": "Engineering Department"
}Update the authenticated employee's personal information. Only certain fields can be updated via self-service.
Personal information fields to update
| phone | string |
| address | string |
| postcode | string |
| emergency_contact_name | string |
| emergency_contact_phone | string |
| bank_name | string |
| bank_account_no | string |
| bank_sort_code | string |
{- "phone": "07700900123",
- "address": "123 Main Street, London",
- "postcode": "SW1A 1AA",
- "emergency_contact_name": "John Doe",
- "emergency_contact_phone": "07800123456",
- "bank_name": "Barclays Bank",
- "bank_account_no": "12345678",
- "bank_sort_code": "20-00-00"
}{- "id": "uuid",
- "employee_no": "EMP001",
- "first_name": "John",
- "last_name": "Doe",
- "email": "john.doe@example.com",
- "phone": "07700900123",
- "address": "123 Main Street, London",
- "postcode": "SW1A 1AA",
- "emergency_contact_name": "Jane Doe",
- "emergency_contact_phone": "07800123456",
- "bank_name": "Barclays Bank",
- "bank_account_no": "12345678",
- "bank_sort_code": "20-00-00",
- "current_position": "Software Engineer",
- "current_department": "Engineering Department"
}Upload a personal document such as passport, visa, certificate, etc. Maximum file size is 10MB.
Document upload
| file | string <binary> Document file (PDF, JPG, PNG) |
| type | string Enum: "passport" "visa" "certificate" "contract" "other" Document type |
| name | string Document name |
| expiryDate | string <date> Document expiry date (optional) |
{- "id": "uuid",
- "document_type": "passport",
- "document_name": "UK Passport",
- "file_path": "documents/employee/uuid/passport.pdf",
- "file_size": 1024000,
- "mime_type": "application/pdf",
- "upload_date": "2024-01-15T10:30:00Z",
- "expiry_date": "2030-12-31",
- "status": "active"
}Retrieve all documents uploaded by the authenticated employee
[- {
- "id": "uuid",
- "document_type": "passport",
- "document_name": "UK Passport",
- "file_path": "documents/employee/uuid/passport.pdf",
- "file_size": 1024000,
- "mime_type": "application/pdf",
- "upload_date": "2024-01-15T10:30:00Z",
- "expiry_date": "2030-12-31",
- "status": "active"
}
]Submit a new leave request. The system will check leave balance and conflicts before creating the request.
Leave request details
| leave_type_id required | string |
| start_date required | string |
| end_date required | string |
| duration_hours required | number |
| comments | string |
{- "leave_type_id": "uuid",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "comments": "Family vacation"
}{- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}Retrieve all leave requests for the authenticated employee, ordered by most recent first
[- {
- "id": "uuid",
- "leave_type": "Annual Leave",
- "start_date": "2024-03-15",
- "end_date": "2024-03-17",
- "duration_hours": 24,
- "status": "PENDING",
- "comments": "Family vacation",
- "submitted_at": "2024-03-10T09:00:00Z",
- "approved_at": "2024-03-11T14:30:00Z"
}
]Get the authenticated employee's leave balance for all leave types, including used, remaining, and pending days
[- {
- "leave_type": "Annual Leave",
- "entitlement_days": 25,
- "used_days": 10,
- "remaining_days": 15,
- "pending_days": 2
}
]Retrieve the authenticated employee's payslip history with optional filtering by year/month
| year | number Example: year=2024 Filter by year |
| month | number Example: month=1 Filter by month (1-12) |
| limit | number Example: limit=10 Maximum number of payslips to return |
[- {
- "id": "uuid",
- "pay_period": "2024-01",
- "gross_pay": 3500,
- "net_pay": 2800,
- "pay_date": "2024-01-31",
- "status": "PAID"
}
]Get the authenticated employee's year-to-date payroll summary including total gross pay, tax, and NI contributions
| year | number Year for summary (defaults to current year) |
{- "total_gross_pay": 42000,
- "total_net_pay": 33600,
- "total_tax": 8400,
- "total_ni": 4200,
- "year": 2024
}| title required | string |
| description required | string |
| category_id required | string |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| severity | string |
| reported_by required | string |
| assigned_to | string |
| affected_employees | Array of strings |
| case_data | object |
| due_date | string |
{- "title": "Employee Grievance - Workplace Conflict",
- "description": "Detailed description of the case...",
- "category_id": "uuid-of-category",
- "priority": "HIGH",
- "severity": "high",
- "reported_by": "uuid-of-reporter",
- "assigned_to": "uuid-of-assignee",
- "affected_employees": [
- "uuid1",
- "uuid2"
], - "case_data": {
- "additional_info": "value"
}, - "due_date": "2024-12-31"
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| status | string Enum: "OPEN" "IN_PROGRESS" "RESOLVED" "CLOSED" "CANCELLED" Example: status=OPEN |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" Example: priority=HIGH |
| category_id | string Example: category_id=uuid-of-category |
| assigned_to | string Example: assigned_to=uuid-of-assignee |
| reported_by | string Example: reported_by=uuid-of-reporter |
| created_from | string Example: created_from=2024-01-01 |
| created_to | string Example: created_to=2024-12-31 |
| search | string Example: search=search term |
| id required | string |
| title | string |
| description | string |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| severity | string |
| status | string Enum: "OPEN" "IN_PROGRESS" "RESOLVED" "CLOSED" "CANCELLED" |
| assigned_to | string |
| affected_employees | Array of strings |
| case_data | object |
| due_date | string |
{- "title": "Updated title",
- "description": "Updated description",
- "priority": "MEDIUM",
- "severity": "medium",
- "status": "IN_PROGRESS",
- "assigned_to": "uuid-of-assignee",
- "affected_employees": [
- "uuid1",
- "uuid2"
], - "case_data": {
- "additional_info": "value"
}, - "due_date": "2024-12-31"
}| id required | string |
| resolution required | string |
| outcome_details | string |
{- "resolution": "Case resolved with warning issued",
- "outcome_details": "Detailed outcome of the case..."
}| category_name required | string |
| description | string |
| severity_levels | Array of strings |
| default_priority | string |
| sla_hours | number |
| escalation_rules | object |
| required_fields | object |
| is_active | boolean |
{- "category_name": "Disciplinary",
- "description": "Cases related to disciplinary actions",
- "severity_levels": [
- "low",
- "medium",
- "high",
- "critical"
], - "default_priority": "medium",
- "sla_hours": 48,
- "escalation_rules": {
- "escalate_after": 24
}, - "required_fields": [
- "description",
- "incident_date"
], - "is_active": true
}| id required | string |
| category_name | string |
| description | string |
| severity_levels | Array of strings |
| default_priority | string |
| sla_hours | number |
| escalation_rules | object |
| required_fields | object |
| is_active | boolean |
{- "category_name": "Updated Category Name",
- "description": "Updated description",
- "severity_levels": [
- "low",
- "medium",
- "high"
], - "default_priority": "high",
- "sla_hours": 72,
- "escalation_rules": {
- "escalate_after": 48
}, - "required_fields": [
- "description"
], - "is_active": false
}| case_id required | string |
| activity_type required | string |
| title | string |
| description | string |
| performed_by required | string |
| activity_data | object |
| is_internal | boolean |
{- "case_id": "uuid-of-case",
- "activity_type": "NOTE",
- "title": "Initial meeting with involved parties",
- "description": "Detailed description of the activity...",
- "performed_by": "uuid-of-performer",
- "activity_data": {
- "participants": [
- "John Doe",
- "Jane Smith"
]
}, - "is_internal": false
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| case_id required | string Example: case_id=uuid-of-case |
| activity_type | string Enum: "NOTE" "MEETING" "DOCUMENT" "DECISION" "INVESTIGATION" "INTERVIEW" "EVIDENCE" "ESCALATION" Example: activity_type=MEETING |
| search | string Example: search=search term |
| id required | string |
| title | string |
| description | string |
| activity_data | object |
| is_internal | boolean |
{- "title": "Updated title",
- "description": "Updated description",
- "activity_data": {
- "participants": [
- "John Doe"
]
}, - "is_internal": true
}| type required | string Enum: "employee_list" "employee_detail" "payroll_summary" "payroll_detail" "leave_summary" "leave_balance" "attendance_report" "department_summary" "audit_log" "compliance_report" "performance_review" "headcount_report" "turnover_report" "training_report" Type of report to generate |
| format required | string Enum: "pdf" "excel" "csv" "json" Output format for the report |
| title | string |
| description | string |
| filters | object Filters to apply to the report data |
object (ReportSortDto) | |
| includeCharts | boolean |
| includeSummary | boolean |
| includeTimestamp | boolean |
object (CompanyInfoDto) |
{- "type": "employee_list",
- "format": "pdf",
- "title": "Monthly Employee Report",
- "description": "Employee report for December 2024",
- "filters": {
- "department_id": "uuid",
- "status": "active"
}, - "sort": {
- "field": "created_at",
- "order": "desc"
}, - "includeCharts": true,
- "includeSummary": true,
- "includeTimestamp": true,
- "companyInfo": {
- "name": "Acme Corporation",
- "address": "123 Business St, London, UK",
- "registration_number": "12345678",
- "vat_number": "GB123456789"
}
}| type | string Enum: "employee_list" "employee_detail" "payroll_summary" "payroll_detail" "leave_summary" "leave_balance" "attendance_report" "department_summary" "audit_log" "compliance_report" "performance_review" "headcount_report" "turnover_report" "training_report" Example: type=employee_list |
| format | string Enum: "pdf" "excel" "csv" "json" Example: format=pdf |
| status | string Enum: "pending" "processing" "completed" "failed" Example: status=completed |
| start_date | string Example: start_date=2024-01-01 |
| end_date | string Example: end_date=2024-12-31 |
| page | number >= 1 Example: page=1 |
| limit | number [ 1 .. 100 ] Example: limit=20 |
| report_type required | string Enum: "employee_list" "employee_detail" "payroll_summary" "payroll_detail" "leave_summary" "leave_balance" "attendance_report" "department_summary" "audit_log" "compliance_report" "performance_review" "headcount_report" "turnover_report" "training_report" |
required | object (GenerateReportDto) |
| schedule required | string Cron expression for schedule |
| recipients required | Array of strings Email addresses to send the report to |
| enabled | boolean |
{- "report_type": "payroll_summary",
- "report_options": {
- "type": "employee_list",
- "format": "pdf",
- "title": "Monthly Employee Report",
- "description": "Employee report for December 2024",
- "filters": {
- "department_id": "uuid",
- "status": "active"
}, - "sort": {
- "field": "created_at",
- "order": "desc"
}, - "includeCharts": true,
- "includeSummary": true,
- "includeTimestamp": true,
- "companyInfo": {
- "name": "Acme Corporation",
- "address": "123 Business St, London, UK",
- "registration_number": "12345678",
- "vat_number": "GB123456789"
}
}, - "schedule": "0 9 * * MON",
- "recipients": [
- "hr@example.com",
- "manager@example.com"
], - "enabled": true
}| scheduleId required | string |
object (GenerateReportDto) | |
| schedule | string Cron expression for schedule |
| recipients | Array of strings Email addresses to send the report to |
| enabled | boolean |
{- "report_options": {
- "type": "employee_list",
- "format": "pdf",
- "title": "Monthly Employee Report",
- "description": "Employee report for December 2024",
- "filters": {
- "department_id": "uuid",
- "status": "active"
}, - "sort": {
- "field": "created_at",
- "order": "desc"
}, - "includeCharts": true,
- "includeSummary": true,
- "includeTimestamp": true,
- "companyInfo": {
- "name": "Acme Corporation",
- "address": "123 Business St, London, UK",
- "registration_number": "12345678",
- "vat_number": "GB123456789"
}
}, - "schedule": "0 9 * * MON",
- "recipients": [
- "hr@example.com"
], - "enabled": false
}| name required | string |
| description | string |
| dashboard_type | string Enum: "OVERVIEW" "DEPARTMENT" "EXECUTIVE" "OPERATIONAL" "CUSTOM" |
| layout required | object |
| widgets required | object |
| refresh_interval | number |
| access_permissions | object |
| is_default | boolean |
| active | boolean |
{- "name": "HR Overview Dashboard",
- "description": "Main HR metrics and KPIs dashboard",
- "dashboard_type": "OVERVIEW",
- "layout": {
- "rows": 3,
- "columns": 4,
- "breakpoints": {
- "lg": 1200,
- "md": 996,
- "sm": 768
}
}, - "widgets": [
- {
- "id": "widget1",
- "type": "chart",
- "title": "Employee Count",
- "config": {
- "chartType": "line"
}
}
], - "refresh_interval": 300,
- "access_permissions": {
- "roles": [
- "HR_MANAGER",
- "ADMIN"
], - "departments": [
- "HR"
]
}, - "is_default": false,
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "dashboard_type": "OVERVIEW",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "created_by": { },
- "updated_by_id": { },
- "updated_by": { }
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| dashboard_type | string Enum: "OVERVIEW" "DEPARTMENT" "EXECUTIVE" "OPERATIONAL" "CUSTOM" Example: dashboard_type=OVERVIEW |
| is_default | boolean Example: is_default=true |
| active | boolean Example: active=true |
| search | string Example: search=overview |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "dashboard_type": "OVERVIEW",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "created_by": { },
- "updated_by_id": { },
- "updated_by": { }
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "dashboard_type": "OVERVIEW",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "created_by": { },
- "updated_by_id": { },
- "updated_by": { }
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "dashboard_type": "OVERVIEW",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "created_by": { },
- "updated_by_id": { },
- "updated_by": { }
}| id required | string |
| name | string |
| description | string |
| dashboard_type | string Enum: "OVERVIEW" "DEPARTMENT" "EXECUTIVE" "OPERATIONAL" "CUSTOM" |
| layout | object |
| widgets | object |
| refresh_interval | number |
| access_permissions | object |
| is_default | boolean |
| active | boolean |
{- "name": "Updated Dashboard Name",
- "description": "string",
- "dashboard_type": "EXECUTIVE",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "dashboard_type": "OVERVIEW",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "created_by": { },
- "updated_by_id": { },
- "updated_by": { }
}{- "dashboard_id": "string",
- "dashboard_name": "string",
- "widgets": [
- {
- "widget_id": "string",
- "widget_type": "string",
- "title": "string",
- "data": { },
- "last_updated": "2019-08-24T14:15:22Z",
- "error": "string"
}
], - "generated_at": "2019-08-24T14:15:22Z",
- "next_refresh": "2019-08-24T14:15:22Z"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "description": { },
- "dashboard_type": "OVERVIEW",
- "layout": { },
- "widgets": { },
- "refresh_interval": 0,
- "access_permissions": { },
- "is_default": true,
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "created_by": { },
- "updated_by_id": { },
- "updated_by": { }
}| name required | string |
| category | string Enum: "EMPLOYEE" "PERFORMANCE" "PAYROLL" "RECRUITMENT" "ATTENDANCE" "LEAVE" "TRAINING" "CUSTOM" |
| description | string |
| report_type | string Enum: "STANDARD" "CUSTOM" "DASHBOARD" |
| data_sources | object |
| fields | object |
| filters | object |
| chart_config | object |
| layout_config | object |
| schedule_config | object |
| access_level | string Enum: "PRIVATE" "DEPARTMENT" "COMPANY" "PUBLIC" |
| active | boolean |
{- "name": "Monthly Payroll Report",
- "category": "PAYROLL",
- "description": "Monthly payroll summary with department breakdown",
- "report_type": "STANDARD",
- "data_sources": {
- "tables": [
- "employees",
- "payroll_runs"
], - "joins": [
- "department",
- "job"
]
}, - "fields": {
- "columns": [
- "employee_name",
- "department",
- "salary",
- "deductions"
]
}, - "filters": {
- "date_range": "last_month",
- "department_id": null
}, - "chart_config": {
- "type": "bar",
- "x_axis": "department",
- "y_axis": "total_salary"
}, - "layout_config": {
- "orientation": "portrait",
- "include_logo": true
}, - "schedule_config": {
- "frequency": "monthly",
- "day_of_month": 1
}, - "access_level": "DEPARTMENT",
- "active": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "category": "EMPLOYEE",
- "description": { },
- "report_type": "STANDARD",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "PRIVATE",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| category | string Enum: "EMPLOYEE" "PERFORMANCE" "PAYROLL" "RECRUITMENT" "ATTENDANCE" "LEAVE" "TRAINING" "CUSTOM" Example: category=PAYROLL |
| report_type | string Enum: "STANDARD" "CUSTOM" "DASHBOARD" Example: report_type=STANDARD |
| access_level | string Enum: "PRIVATE" "DEPARTMENT" "COMPANY" "PUBLIC" Example: access_level=DEPARTMENT |
| active | boolean Example: active=true |
| search | string Example: search=payroll |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "category": "EMPLOYEE",
- "description": { },
- "report_type": "STANDARD",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "PRIVATE",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}[- {
- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "category": "EMPLOYEE",
- "description": { },
- "report_type": "STANDARD",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "PRIVATE",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "category": "EMPLOYEE",
- "description": { },
- "report_type": "STANDARD",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "PRIVATE",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| id required | string |
| name | string |
| category | string Enum: "EMPLOYEE" "PERFORMANCE" "PAYROLL" "RECRUITMENT" "ATTENDANCE" "LEAVE" "TRAINING" "CUSTOM" |
| description | string |
| report_type | string Enum: "STANDARD" "CUSTOM" "DASHBOARD" |
| data_sources | object |
| fields | object |
| filters | object |
| chart_config | object |
| layout_config | object |
| schedule_config | object |
| access_level | string Enum: "PRIVATE" "DEPARTMENT" "COMPANY" "PUBLIC" |
| active | boolean |
{- "name": "Updated Report Name",
- "category": "EMPLOYEE",
- "description": "string",
- "report_type": "CUSTOM",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "COMPANY",
- "active": false
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "category": "EMPLOYEE",
- "description": { },
- "report_type": "STANDARD",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "PRIVATE",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "category": "EMPLOYEE",
- "description": { },
- "report_type": "STANDARD",
- "data_sources": { },
- "fields": { },
- "filters": { },
- "chart_config": { },
- "layout_config": { },
- "schedule_config": { },
- "access_level": "PRIVATE",
- "active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by_id": { },
- "updated_by_id": { },
- "created_by": { },
- "updated_by": { }
}| template_id | string |
| report_name required | string |
| parameters | object |
| file_format | string Enum: "PDF" "EXCEL" "CSV" "JSON" |
| expires_at | string |
{- "template_id": "uuid-of-template",
- "report_name": "Q1 Sales Report 2024",
- "parameters": {
- "date_from": "2024-01-01",
- "date_to": "2024-03-31",
- "department_id": "uuid"
}, - "file_format": "PDF",
- "expires_at": "2024-12-31T23:59:59Z"
}{- "id": "string",
- "tenant_id": "string",
- "template_id": { },
- "report_name": "string",
- "parameters": { },
- "status": "PENDING",
- "file_path": { },
- "file_format": "PDF",
- "file_size": { },
- "generated_at": { },
- "generated_by_id": { },
- "generated_by": { },
- "expires_at": { },
- "download_count": 0,
- "last_downloaded": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "template": { }
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| template_id | string Example: template_id=uuid-of-template |
| status | string Enum: "PENDING" "GENERATING" "COMPLETED" "FAILED" "EXPIRED" Example: status=COMPLETED |
| file_format | string Enum: "PDF" "EXCEL" "CSV" "JSON" Example: file_format=PDF |
| generated_from | string Example: generated_from=2024-01-01 |
| generated_to | string Example: generated_to=2024-12-31 |
| search | string Example: search=sales |
{- "data": [
- {
- "id": "string",
- "tenant_id": "string",
- "template_id": { },
- "report_name": "string",
- "parameters": { },
- "status": "PENDING",
- "file_path": { },
- "file_format": "PDF",
- "file_size": { },
- "generated_at": { },
- "generated_by_id": { },
- "generated_by": { },
- "expires_at": { },
- "download_count": 0,
- "last_downloaded": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "template": { }
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| limit required | number |
[- {
- "id": "string",
- "tenant_id": "string",
- "template_id": { },
- "report_name": "string",
- "parameters": { },
- "status": "PENDING",
- "file_path": { },
- "file_format": "PDF",
- "file_size": { },
- "generated_at": { },
- "generated_by_id": { },
- "generated_by": { },
- "expires_at": { },
- "download_count": 0,
- "last_downloaded": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "template": { }
}
]{- "id": "string",
- "tenant_id": "string",
- "template_id": { },
- "report_name": "string",
- "parameters": { },
- "status": "PENDING",
- "file_path": { },
- "file_format": "PDF",
- "file_size": { },
- "generated_at": { },
- "generated_by_id": { },
- "generated_by": { },
- "expires_at": { },
- "download_count": 0,
- "last_downloaded": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "template": { }
}Search the Companies House register for companies matching the provided name
| company_name required | string Example: company_name=Dark Horse Company name to search for |
{- "items": [
- {
- "company_name": "DARK HORSE LIMITED",
- "company_number": "12345678",
- "company_status": "active",
- "company_type": "ltd",
- "date_of_creation": "2020-01-15",
- "registered_office_address": "string"
}
], - "total_results": 10
}Fetch detailed company information from Companies House using the company registration number
| company_number required | string Example: 12345678 Companies House registration number |
{- "company_name": "DARK HORSE LIMITED",
- "company_number": "12345678",
- "company_status": "active",
- "company_type": "ltd",
- "date_of_creation": "2020-01-15",
- "registered_office_address": "string",
- "sic_codes": [
- "62020",
- "62090"
], - "officers": [
- {
- "name": "string",
- "officer_role": "string",
- "appointed_on": "string"
}
]
}Fetch company data from Companies House and create a new company record in the system
| company_number required | string Companies House registration number |
| utr_number | string Unique Taxpayer Reference number |
| vat_number | string VAT registration number |
| paye_reference | string PAYE reference |
| account_office_reference | string Accounts Office reference |
| website | string Company website |
string Company email | |
| phone | string Company phone number |
{- "company_number": "12345678",
- "utr_number": "1234567890",
- "vat_number": "GB123456789",
- "paye_reference": "123/AB456",
- "account_office_reference": "123PA12345678",
- "email": "info@example.com",
- "phone": "02012345678"
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}Update an existing company record with the latest data from Companies House
| id required | string Company ID |
| company_number | string Companies House registration number (if different from existing) |
| sync_basic_info | boolean Default: true Sync basic company information (name, status, type) |
| sync_address | boolean Default: true Sync registered office address |
| sync_officers | boolean Default: true Sync company officers (directors and secretary) |
| sync_sic_codes | boolean Default: true Sync SIC codes |
{- "company_number": "12345678",
- "sync_basic_info": true,
- "sync_address": true,
- "sync_officers": true,
- "sync_sic_codes": true
}{- "id": "string",
- "tenant_id": "string",
- "name": "string",
- "company_number": "string",
- "company_type": "LIMITED",
- "company_status": "ACTIVE",
- "incorporation_date": { },
- "registered_office_address": { },
- "company_director": { },
- "company_secretary": { },
- "shareholders": { },
- "utr_number": { },
- "vat_number": { },
- "paye_reference": { },
- "account_office_reference": { },
- "sic_code": { },
- "website": { },
- "email": { },
- "phone": { },
- "updated_at": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}Sync multiple existing companies with the latest data from Companies House. Each company will be synced with its own registered company number unless overridden.
[- {
- "status": "success",
- "fields_updated": 5,
- "updated_fields": [
- "name",
- "registered_office_address",
- "company_director"
], - "error": "string"
}
]Retrieve historical filing records including annual returns, accounts, and other statutory documents
| company_number required | string Example: 12345678 Companies House registration number |
| items_per_page | number Number of items per page (default: 100) |
Download a specific filing document in PDF or XHTML format from Companies House
| company_number required | string Example: 12345678 Companies House registration number |
| transaction_id required | string Example: MzM3NTI0MzU0OWFkaXF6a2N4 Filing history transaction ID |
| format | string Enum: "pdf" "xhtml" Document format (default: pdf) |
Download a document directly using its document ID
| document_id required | string Example: HMsKGYRQ0a12waWa3LG2zhcwXkujPWQ671cSMFZNVsU Document ID from Companies House |
| format | string Enum: "pdf" "xhtml" Document format (default: pdf) |
| companyId required | string Company ID |
| page | number Page number (starts from 1) |
| limit | number Number of items per page (max 100) |
{- "data": [
- {
- "id": "string",
- "company_id": "string",
- "transaction_id": { },
- "filing_type": "string",
- "filing_category": { },
- "filing_subcategory": { },
- "filing_description": { },
- "filing_date": "2019-08-24T14:15:22Z",
- "document_links": { },
- "barcode": { },
- "paper_filed": true,
- "resolution_category": { },
- "resolution_subcategory": { },
- "resolution_description": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| page | number Page number (starts from 1) |
| limit | number Number of items per page (max 100) |
| companyId | string Filter by company ID |
| daysAhead | number Number of days to look ahead (default: 90) |
{- "data": [
- {
- "id": "string",
- "company_id": "string",
- "filing_type": "string",
- "filing_description": { },
- "due_date": "2019-08-24T14:15:22Z",
- "period_start_date": { },
- "period_end_date": { },
- "status": "PENDING",
- "filed_date": { },
- "filing_reference": { },
- "reminder_enabled": true,
- "reminder_days_before": { },
- "last_reminder_sent": { },
- "notes": { },
- "ch_deadline_type": { },
- "ch_original_deadline": { },
- "company": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| deadlineId required | string Deadline ID |
| page | number Page number (starts from 1) |
| limit | number Number of items per page (max 100) |
{- "data": [
- {
- "id": "string",
- "company_id": "string",
- "deadline_id": { },
- "reminder_type": "string",
- "reminder_date": "2019-08-24T14:15:22Z",
- "reminder_status": "string",
- "recipients": { },
- "subject": { },
- "message": { },
- "sent_at": { },
- "failed_at": { },
- "failure_reason": { },
- "clicked_at": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "meta": {
- "currentPage": 1,
- "itemsPerPage": 10,
- "totalItems": 100,
- "total_pages": 10,
- "hasNextPage": true,
- "hasPreviousPage": false
}
}| template_id required | string |
| recipient_id required | string |
| variables required | object |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| scheduled_at | string |
| metadata | object |
{- "template_id": "uuid-of-template",
- "recipient_id": "uuid-of-recipient",
- "variables": {
- "employeeName": "John Doe",
- "dueDate": "2024-12-31"
}, - "priority": "HIGH",
- "scheduled_at": "2024-12-25T10:00:00Z",
- "metadata": {
- "cc": [
- "manager@example.com"
]
}
}| template_id required | string |
| recipient_ids required | Array of strings |
| variables required | object |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" |
| scheduled_at | string |
{- "template_id": "uuid-of-template",
- "recipient_ids": [
- "uuid1",
- "uuid2",
- "uuid3"
], - "variables": {
- "defaultVar": "value"
}, - "priority": "MEDIUM",
- "scheduled_at": "2024-12-25T10:00:00Z"
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| status | string Enum: "PENDING" "SENT" "FAILED" "DELIVERED" "READ" Example: status=PENDING |
| channel | string Enum: "EMAIL" "IN_APP" "SMS" "SLACK" Example: channel=EMAIL |
| priority | string Enum: "LOW" "MEDIUM" "HIGH" "CRITICAL" Example: priority=HIGH |
| recipient_id | string Example: recipient_id=uuid-of-recipient |
| created_from | string Example: created_from=2024-01-01 |
| created_to | string Example: created_to=2024-12-31 |
| search | string Example: search=search term |
| template_name required | string |
| template_type required | string |
| channel required | string Enum: "EMAIL" "IN_APP" "SMS" "SLACK" |
| subject_template | string |
| body_template required | string |
| variables | Array of strings |
| conditions | object |
| is_active | boolean |
{- "template_name": "performance_review_reminder",
- "template_type": "PERFORMANCE_REVIEW",
- "channel": "EMAIL",
- "subject_template": "Performance Review Due: {{employeeName}}",
- "body_template": "Dear {{managerName}}, Performance review for {{employeeName}} is due on {{dueDate}}.",
- "variables": [
- "employeeName",
- "managerName",
- "dueDate"
], - "conditions": {
- "department": "HR",
- "role": "MANAGER"
}, - "is_active": true
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| template_type | string Example: template_type=PERFORMANCE_REVIEW |
| channel | string Enum: "EMAIL" "IN_APP" "SMS" "SLACK" Example: channel=EMAIL |
| is_active | boolean Example: is_active=true |
| search | string Example: search=review |
| id required | string |
| template_name | string |
| template_type | string |
| channel | string Enum: "EMAIL" "IN_APP" "SMS" "SLACK" |
| subject_template | string |
| body_template | string |
| variables | Array of strings |
| conditions | object |
| is_active | boolean |
{- "template_name": "updated_template_name",
- "template_type": "UPDATED_TYPE",
- "channel": "SMS",
- "subject_template": "Updated Subject",
- "body_template": "Updated body template",
- "variables": [
- "var1",
- "var2"
], - "conditions": {
- "updated": true
}, - "is_active": false
}| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| category | string Enum: "NMW" "SSP" "SMP" "SPP" "ShPP" "SPBP" "TAX_BAND" "NI_THRESHOLD" "NI_RATE" "PENSION_AE" "LEVY" "HOLIDAY_DAYS" "WORKING_TIME_MAX" Rate category filter |
| jurisdiction | string Enum: "UK" "ENGLAND" "WALES" "SCOTLAND" "N_IRELAND" Jurisdiction filter |
| search | string Example: search=NMW Search term |
{- "data": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "NMW_25_26",
- "title": "National Minimum Wage 2025-2026",
- "category": "NMW",
- "description": "UK National Minimum Wage rates for 2025-2026 tax year",
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2025-01-01T00:00:00.000Z",
- "updated_at": "2025-01-01T00:00:00.000Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| code required | string Unique code for the rate group |
| title required | string Display title for the rate group |
| category required | string Enum: "NMW" "SSP" "SMP" "SPP" "ShPP" "SPBP" "TAX_BAND" "NI_THRESHOLD" "NI_RATE" "PENSION_AE" "LEVY" "HOLIDAY_DAYS" "WORKING_TIME_MAX" Category of the rate |
| description | string Description of the rate group |
| unit required | string Enum: "HOURLY" "WEEKLY" "MONTHLY" "YEARLY" "PERCENT" "CURRENCY" "DAYS" "HOURS" Unit of measurement for the rate |
| jurisdiction required | string Default: "UK" Enum: "UK" "ENGLAND" "WALES" "SCOTLAND" "N_IRELAND" Jurisdiction the rate applies to |
{- "code": "NMW_25_26",
- "title": "National Minimum Wage 2025-2026",
- "category": "NMW",
- "description": "UK National Minimum Wage rates for 2025-2026 tax year",
- "unit": "HOURLY",
- "jurisdiction": "UK"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "NMW_25_26",
- "title": "National Minimum Wage 2025-2026",
- "category": "NMW",
- "description": "UK National Minimum Wage rates for 2025-2026 tax year",
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2025-01-01T00:00:00.000Z",
- "updated_at": "2025-01-01T00:00:00.000Z"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "NMW_25_26",
- "title": "National Minimum Wage 2025-2026",
- "category": "NMW",
- "description": "UK National Minimum Wage rates for 2025-2026 tax year",
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2025-01-01T00:00:00.000Z",
- "updated_at": "2025-01-01T00:00:00.000Z"
}| id required | string |
| title | string Display title for the rate group |
| category | string Enum: "NMW" "SSP" "SMP" "SPP" "ShPP" "SPBP" "TAX_BAND" "NI_THRESHOLD" "NI_RATE" "PENSION_AE" "LEVY" "HOLIDAY_DAYS" "WORKING_TIME_MAX" Category of the rate |
| description | string Description of the rate group |
| unit required | string Enum: "HOURLY" "WEEKLY" "MONTHLY" "YEARLY" "PERCENT" "CURRENCY" "DAYS" "HOURS" Unit of measurement for the rate |
| jurisdiction | string Enum: "UK" "ENGLAND" "WALES" "SCOTLAND" "N_IRELAND" Jurisdiction the rate applies to |
{- "title": "National Minimum Wage 2025-2026",
- "category": "NMW",
- "description": "UK National Minimum Wage rates for 2025-2026 tax year",
- "unit": "HOURLY",
- "jurisdiction": "UK"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "NMW_25_26",
- "title": "National Minimum Wage 2025-2026",
- "category": "NMW",
- "description": "UK National Minimum Wage rates for 2025-2026 tax year",
- "unit": "HOURLY",
- "jurisdiction": "UK",
- "created_at": "2025-01-01T00:00:00.000Z",
- "updated_at": "2025-01-01T00:00:00.000Z"
}| format required | string |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| category | string Enum: "NMW" "SSP" "SMP" "SPP" "ShPP" "SPBP" "TAX_BAND" "NI_THRESHOLD" "NI_RATE" "PENSION_AE" "LEVY" "HOLIDAY_DAYS" "WORKING_TIME_MAX" Rate category filter |
| jurisdiction | string Enum: "UK" "ENGLAND" "WALES" "SCOTLAND" "N_IRELAND" Jurisdiction filter |
| search | string Example: search=NMW Search term |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| groupId | string Example: groupId=123e4567-e89b-12d3-a456-426614174000 Rate group ID filter |
| startsAt | string Example: startsAt=2025-04-01 Effective from date filter (YYYY-MM-DD) |
| endsAt | string Example: endsAt=2025-03-31 Effective to date filter (YYYY-MM-DD) |
{- "data": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "group_id": "123e4567-e89b-12d3-a456-426614174000",
- "starts_at": "2025-04-01T00:00:00.000Z",
- "ends_at": "2026-03-31T23:59:59.999Z",
- "params": {
- "ageBand": "21-22",
- "taxYear": "2025/26"
}, - "value_decimal": "11.44",
- "value_text": "90% of AWE",
- "notes": { },
- "citation": "NMW Act 1998 – s.1",
- "created_at": "2025-01-01T00:00:00.000Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| group_id required | string Rate group ID |
| starts_at required | string Effective start date (inclusive) |
| ends_at | string Effective end date (null = open-ended) |
| params | object Parameters for the rate entry (age band, tax year, etc.) |
| value_decimal | object Decimal value for the rate |
| value_text | string Text value for complex rates |
| notes | string Additional notes |
| citation required | string Legal citation |
| url required | string Reference URL |
{- "group_id": "123e4567-e89b-12d3-a456-426614174000",
- "starts_at": "2025-04-01T00:00:00.000Z",
- "ends_at": "2026-03-31T23:59:59.999Z",
- "params": {
- "ageBand": "21-22",
- "taxYear": "2025/26"
}, - "value_decimal": "11.44",
- "value_text": "90% of AWE",
- "notes": "Rate for apprentices under 19 or in first year",
- "citation": "NMW Act 1998 – s.1",
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "group_id": "123e4567-e89b-12d3-a456-426614174000",
- "starts_at": "2025-04-01T00:00:00.000Z",
- "ends_at": "2026-03-31T23:59:59.999Z",
- "params": {
- "ageBand": "21-22",
- "taxYear": "2025/26"
}, - "value_decimal": "11.44",
- "value_text": "90% of AWE",
- "notes": { },
- "citation": "NMW Act 1998 – s.1",
- "created_at": "2025-01-01T00:00:00.000Z"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "group_id": "123e4567-e89b-12d3-a456-426614174000",
- "starts_at": "2025-04-01T00:00:00.000Z",
- "ends_at": "2026-03-31T23:59:59.999Z",
- "params": {
- "ageBand": "21-22",
- "taxYear": "2025/26"
}, - "value_decimal": "11.44",
- "value_text": "90% of AWE",
- "notes": { },
- "citation": "NMW Act 1998 – s.1",
- "created_at": "2025-01-01T00:00:00.000Z"
}| id required | string |
| ends_at | string Effective end date (null = open-ended) |
| params | object Parameters for the rate entry (age band, tax year, etc.) |
| value_decimal | object Decimal value for the rate |
| value_text | string Text value for complex rates |
| notes | string Additional notes |
| citation | string Legal citation |
| url | string Reference URL |
{- "ends_at": "2026-03-31T23:59:59.999Z",
- "params": {
- "ageBand": "21-22",
- "taxYear": "2025/26"
}, - "value_decimal": "11.44",
- "value_text": "90% of AWE",
- "notes": "Rate for apprentices under 19 or in first year",
- "citation": "NMW Act 1998 – s.1",
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "group_id": "123e4567-e89b-12d3-a456-426614174000",
- "starts_at": "2025-04-01T00:00:00.000Z",
- "ends_at": "2026-03-31T23:59:59.999Z",
- "params": {
- "ageBand": "21-22",
- "taxYear": "2025/26"
}, - "value_decimal": "11.44",
- "value_text": "90% of AWE",
- "notes": { },
- "citation": "NMW Act 1998 – s.1",
- "created_at": "2025-01-01T00:00:00.000Z"
}| format required | string |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| groupId | string Example: groupId=123e4567-e89b-12d3-a456-426614174000 Rate group ID filter |
| startsAt | string Example: startsAt=2025-04-01 Effective from date filter (YYYY-MM-DD) |
| endsAt | string Example: endsAt=2025-03-31 Effective to date filter (YYYY-MM-DD) |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| region | string Example: region=England & Wales Region filter |
| year | number Example: year=2025 Year filter |
| date | string Example: date=2025-12-25 Date filter (YYYY-MM-DD) |
{- "data": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "region": "England & Wales",
- "date": "2025-12-25T00:00:00.000Z",
- "name": "Christmas Day",
- "description": "Christmas Day is a public holiday celebrating the birth of Jesus Christ",
- "year": 2025
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| region required | string Region the holiday applies to |
| date required | string Calendar date of the public holiday |
| name required | string Official holiday name |
| description | string Additional description of the holiday |
| year required | number Year of the holiday |
{- "region": "England & Wales",
- "date": "2025-12-25",
- "name": "Christmas Day",
- "description": "Christmas Day is a public holiday celebrating the birth of Jesus Christ",
- "year": 2025
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "region": "England & Wales",
- "date": "2025-12-25T00:00:00.000Z",
- "name": "Christmas Day",
- "description": "Christmas Day is a public holiday celebrating the birth of Jesus Christ",
- "year": 2025
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "region": "England & Wales",
- "date": "2025-12-25T00:00:00.000Z",
- "name": "Christmas Day",
- "description": "Christmas Day is a public holiday celebrating the birth of Jesus Christ",
- "year": 2025
}| id required | string |
| region | string Region the holiday applies to |
| date | string Calendar date of the public holiday |
| name | string Official holiday name |
| description | string Additional description of the holiday |
| year | number Year of the holiday |
{- "region": "England & Wales",
- "date": "2025-12-25",
- "name": "Christmas Day",
- "description": "Christmas Day is a public holiday celebrating the birth of Jesus Christ",
- "year": 2025
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "region": "England & Wales",
- "date": "2025-12-25T00:00:00.000Z",
- "name": "Christmas Day",
- "description": "Christmas Day is a public holiday celebrating the birth of Jesus Christ",
- "year": 2025
}| format required | string |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| region | string Example: region=England & Wales Region filter |
| year | number Example: year=2025 Year filter |
| date | string Example: date=2025-12-25 Date filter (YYYY-MM-DD) |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
{- "data": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "name": "UK Working Time Regulations 1998",
- "max_avg_weekly_hours": 48,
- "averaging_period_weeks": 17,
- "min_daily_rest_hours": 11,
- "min_weekly_rest_hours": 24,
- "min_break_minutes_per_shift": 20,
- "legal_source": "The Working Time Regulations 1998 (SI 1998/1833)",
- "updated_at": "2025-01-01T00:00:00.000Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| name required | string Name of the working hour rule |
| max_avg_weekly_hours required | number Maximum average weekly hours allowed |
| averaging_period_weeks required | number Number of weeks over which the average is calculated |
| min_daily_rest_hours required | number Minimum uninterrupted rest between shifts (hours) |
| min_weekly_rest_hours required | number Minimum uninterrupted rest each week (hours) |
| min_break_minutes_per_shift required | number Minimum break during a shift (>6 h) in minutes |
| legal_source required | string Source or legal citation (for audit trail) |
{- "name": "UK Working Time Regulations 1998",
- "max_avg_weekly_hours": 48,
- "averaging_period_weeks": 17,
- "min_daily_rest_hours": 11,
- "min_weekly_rest_hours": 24,
- "min_break_minutes_per_shift": 20,
- "legal_source": "The Working Time Regulations 1998 (SI 1998/1833)"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "name": "UK Working Time Regulations 1998",
- "max_avg_weekly_hours": 48,
- "averaging_period_weeks": 17,
- "min_daily_rest_hours": 11,
- "min_weekly_rest_hours": 24,
- "min_break_minutes_per_shift": 20,
- "legal_source": "The Working Time Regulations 1998 (SI 1998/1833)",
- "updated_at": "2025-01-01T00:00:00.000Z"
}| id required | string |
{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "name": "UK Working Time Regulations 1998",
- "max_avg_weekly_hours": 48,
- "averaging_period_weeks": 17,
- "min_daily_rest_hours": 11,
- "min_weekly_rest_hours": 24,
- "min_break_minutes_per_shift": 20,
- "legal_source": "The Working Time Regulations 1998 (SI 1998/1833)",
- "updated_at": "2025-01-01T00:00:00.000Z"
}| id required | string |
| name | string Name of the working hour rule |
| max_avg_weekly_hours | number Maximum average weekly hours allowed |
| averaging_period_weeks | number Number of weeks over which the average is calculated |
| min_daily_rest_hours | number Minimum uninterrupted rest between shifts (hours) |
| min_weekly_rest_hours | number Minimum uninterrupted rest each week (hours) |
| min_break_minutes_per_shift | number Minimum break during a shift (>6 h) in minutes |
| legal_source | string Source or legal citation (for audit trail) |
{- "name": "UK Working Time Regulations 1998",
- "max_avg_weekly_hours": 48,
- "averaging_period_weeks": 17,
- "min_daily_rest_hours": 11,
- "min_weekly_rest_hours": 24,
- "min_break_minutes_per_shift": 20,
- "legal_source": "The Working Time Regulations 1998 (SI 1998/1833)"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "name": "UK Working Time Regulations 1998",
- "max_avg_weekly_hours": 48,
- "averaging_period_weeks": 17,
- "min_daily_rest_hours": 11,
- "min_weekly_rest_hours": 24,
- "min_break_minutes_per_shift": 20,
- "legal_source": "The Working Time Regulations 1998 (SI 1998/1833)",
- "updated_at": "2025-01-01T00:00:00.000Z"
}| format required | string |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| code | string Example: code=OVERTIME_1_5X Code filter |
| effective_from | string Example: effective_from=2025-04-01 Effective from date filter (YYYY-MM-DD) |
| effective_to | string Example: effective_to=2025-03-31 Effective to date filter (YYYY-MM-DD) |
{- "data": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "OVERTIME_1_5X",
- "name": "Overtime 1.5x",
- "rate_multiplier": "1.50",
- "effective_from": "2025-04-01T00:00:00.000Z",
- "effective_to": "2026-03-31T00:00:00.000Z",
- "legal_source": "Working Time Regulations 1998"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| code required | string Code matching HR_RATE.code |
| name required | string Descriptive label for the pay rate |
| rate_multiplier required | string Multiplier applied to basic hourly rate |
| effective_from required | string Valid-from date |
| effective_to | string Valid-to date (null = open-ended) |
| legal_source | string Legal source or citation |
{- "code": "OVERTIME_1_5X",
- "name": "Overtime 1.5x",
- "rate_multiplier": "1.50",
- "effective_from": "2025-04-01",
- "effective_to": "2026-03-31",
- "legal_source": "Working Time Regulations 1998"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "OVERTIME_1_5X",
- "name": "Overtime 1.5x",
- "rate_multiplier": "1.50",
- "effective_from": "2025-04-01T00:00:00.000Z",
- "effective_to": "2026-03-31T00:00:00.000Z",
- "legal_source": "Working Time Regulations 1998"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "OVERTIME_1_5X",
- "name": "Overtime 1.5x",
- "rate_multiplier": "1.50",
- "effective_from": "2025-04-01T00:00:00.000Z",
- "effective_to": "2026-03-31T00:00:00.000Z",
- "legal_source": "Working Time Regulations 1998"
}| id required | string |
| name | string Descriptive label for the pay rate |
| rate_multiplier | string Multiplier applied to basic hourly rate |
| effective_from | string Valid-from date |
| effective_to | string Valid-to date (null = open-ended) |
| legal_source | string Legal source or citation |
{- "name": "Overtime 1.5x",
- "rate_multiplier": "1.50",
- "effective_from": "2025-04-01",
- "effective_to": "2026-03-31",
- "legal_source": "Working Time Regulations 1998"
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "OVERTIME_1_5X",
- "name": "Overtime 1.5x",
- "rate_multiplier": "1.50",
- "effective_from": "2025-04-01T00:00:00.000Z",
- "effective_to": "2026-03-31T00:00:00.000Z",
- "legal_source": "Working Time Regulations 1998"
}| format required | string |
| page | number Default: 1 Example: page=1 Page number |
| limit | number Default: 20 Example: limit=20 Items per page |
| search | string Example: search=National Minimum Wage Search term |
| code | string Example: code=OVERTIME_1_5X Code filter |
| effective_from | string Example: effective_from=2025-04-01 Effective from date filter (YYYY-MM-DD) |
| effective_to | string Example: effective_to=2025-03-31 Effective to date filter (YYYY-MM-DD) |
| code | string Example: code=ANNUAL Filter by code (partial match) |
| name | string Example: name=Leave Filter by name (partial match) |
| statutory | boolean Example: statutory=true Filter by statutory status |
| paid | boolean Example: paid=true Filter by paid status |
| jurisdiction | string Example: jurisdiction=England Filter by jurisdiction |
| is_active | boolean Example: is_active=true Filter by active status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "STATUTORY_SICK_PAY",
- "description": { },
- "jurisdictions": [
- "string"
], - "version": "1.0.0",
- "last_review_date": "2024-01-01T00:00:00.000Z",
- "is_active": true,
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T00:00:00.000Z",
- "tenant_usage_count": 10
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| code required | string Short code for the leave type (e.g. "ANNUAL", "SICK") |
| name required | string Human-readable name |
| statutory | boolean Default: false Whether the leave is statutory under UK law |
| max_days_per_year | number Maximum entitlement in days per leave year |
| accrual_based | boolean Default: false Whether entitlement accrues over time |
| paid | boolean Default: true Whether the leave is normally paid |
| hr_rate_code | string Reference into HR_RATE table for pay calculation |
| description | string Description of the leave type |
| jurisdictions | Array of strings Default: ["UK"] Which jurisdictions this applies to |
| version | string Default: "1.0.0" Version tracking for regulatory updates |
| last_review_date | string When this template was last reviewed for compliance |
| is_active | boolean Default: true Whether the template is active |
{- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": false,
- "max_days_per_year": 28,
- "accrual_based": false,
- "paid": true,
- "hr_rate_code": "STATUTORY_SICK_PAY",
- "description": "Standard annual leave entitlement for UK employees",
- "jurisdictions": [
- "England",
- "Scotland",
- "Wales",
- "Northern Ireland"
], - "version": "1.0.0",
- "last_review_date": "2024-01-01",
- "is_active": true
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "STATUTORY_SICK_PAY",
- "description": { },
- "jurisdictions": [
- "string"
], - "version": "1.0.0",
- "last_review_date": "2024-01-01T00:00:00.000Z",
- "is_active": true,
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T00:00:00.000Z",
- "tenant_usage_count": 10
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "STATUTORY_SICK_PAY",
- "description": { },
- "jurisdictions": [
- "string"
], - "version": "1.0.0",
- "last_review_date": "2024-01-01T00:00:00.000Z",
- "is_active": true,
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T00:00:00.000Z",
- "tenant_usage_count": 10
}| id required | string |
| name | string Human-readable name |
| statutory | boolean Whether the leave is statutory under UK law |
| max_days_per_year | number Maximum entitlement in days per leave year |
| accrual_based | boolean Whether entitlement accrues over time |
| paid | boolean Whether the leave is normally paid |
| hr_rate_code | string Reference into HR_RATE table for pay calculation |
| description | string Description of the leave type |
| jurisdictions | Array of strings Which jurisdictions this applies to |
| version | string Version tracking for regulatory updates |
| last_review_date | string When this template was last reviewed for compliance |
| is_active | boolean Whether the template is active |
{- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "STATUTORY_SICK_PAY",
- "description": "string",
- "jurisdictions": [
- "England",
- "Scotland",
- "Wales",
- "Northern Ireland"
], - "version": "1.0.1",
- "last_review_date": "2024-01-01",
- "is_active": true
}{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "code": "ANNUAL",
- "name": "Annual Leave",
- "statutory": true,
- "max_days_per_year": 28,
- "accrual_based": true,
- "paid": true,
- "hr_rate_code": "STATUTORY_SICK_PAY",
- "description": { },
- "jurisdictions": [
- "string"
], - "version": "1.0.0",
- "last_review_date": "2024-01-01T00:00:00.000Z",
- "is_active": true,
- "created_at": "2024-01-01T00:00:00.000Z",
- "updated_at": "2024-01-01T00:00:00.000Z",
- "tenant_usage_count": 10
}| update_existing | boolean Default: false Whether to update existing templates with the same code |
| skip_invalid | boolean Default: true Whether to skip invalid rows and continue importing |
| format required | string |
| code | string Example: code=ANNUAL Filter by code (partial match) |
| name | string Example: name=Leave Filter by name (partial match) |
| statutory | boolean Example: statutory=true Filter by statutory status |
| paid | boolean Example: paid=true Filter by paid status |
| jurisdiction | string Example: jurisdiction=England Filter by jurisdiction |
| is_active | boolean Example: is_active=true Filter by active status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
| id required | string |
| tenant_ids required | Array of strings List of tenant IDs to deploy the template to |
| overwrite | boolean Default: false Whether to overwrite existing leave types with the same code |
| activate | boolean Default: true Whether to make the deployed leave type active immediately |
{- "tenant_ids": [
- "tenant-1",
- "tenant-2"
], - "overwrite": false,
- "activate": true
}| code | string Filter by code |
| title | string Filter by title |
| content_type | string Enum: "VIDEO" "DOCUMENT" "PRESENTATION" "INTERACTIVE" "ASSESSMENT" "WEBINAR" "COURSE" Filter by content type |
| category | string Filter by category |
| learning_level | string Enum: "BEGINNER" "INTERMEDIATE" "ADVANCED" "EXPERT" Filter by learning level |
| compliance_requirement | boolean Filter by compliance requirement |
| is_active | boolean Filter by active status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": { },
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| code required | string Unique code for the learning content |
| title_en required | string Title in English |
| description_en | string Description in English |
| content_type required | string Enum: "VIDEO" "DOCUMENT" "PRESENTATION" "INTERACTIVE" "ASSESSMENT" "WEBINAR" "COURSE" Type of learning content |
| category required | string Category of the content |
| learning_level | string Default: "BEGINNER" Enum: "BEGINNER" "INTERMEDIATE" "ADVANCED" "EXPERT" Learning level |
| target_audience required | Array of strings Target audience roles |
| estimated_duration_minutes | number Default: 30 Estimated duration in minutes |
| primary_file_path | string Path to primary file |
| learning_objectives | Array of strings Default: [] Learning objectives |
| has_assessment | boolean Default: false Whether content has assessment |
| certification_available | boolean Default: false Whether certification is available |
| mandatory_for_roles required | Array of strings Roles for which this is mandatory |
| compliance_requirement | boolean Default: false Whether this is a compliance requirement |
| version | string Default: "1.0.0" Version of the content |
| last_review_date | string Last review date |
| is_active | boolean Default: true Whether the template is active |
{- "code": "UK_GDPR_BASICS",
- "title_en": "UK GDPR Basics",
- "description_en": "Introduction to UK GDPR compliance requirements",
- "content_type": "VIDEO",
- "category": "Compliance",
- "learning_level": "BEGINNER",
- "target_audience": [
- "HR_MANAGER",
- "EMPLOYEE"
], - "estimated_duration_minutes": 45,
- "primary_file_path": "/content/uk-gdpr-basics.mp4",
- "learning_objectives": [
- "Understand GDPR principles",
- "Know data subject rights"
], - "has_assessment": false,
- "certification_available": false,
- "mandatory_for_roles": [
- "DATA_PROCESSOR"
], - "compliance_requirement": false,
- "version": "1.0.0",
- "last_review_date": "2024-01-01",
- "is_active": true
}{- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": { },
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}| id required | string |
{- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": { },
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}| id required | string |
| title_en | string Title in English |
| description_en | string Description in English |
| content_type | string Enum: "VIDEO" "DOCUMENT" "PRESENTATION" "INTERACTIVE" "ASSESSMENT" "WEBINAR" "COURSE" Type of learning content |
| category | string Category of the content |
| learning_level | string Enum: "BEGINNER" "INTERMEDIATE" "ADVANCED" "EXPERT" Learning level |
| target_audience | Array of strings Target audience roles |
| estimated_duration_minutes | number Estimated duration in minutes |
| primary_file_path | string Path to primary file |
| learning_objectives | Array of strings Learning objectives |
| has_assessment | boolean Whether content has assessment |
| certification_available | boolean Whether certification is available |
| mandatory_for_roles | Array of strings Roles for which this is mandatory |
| compliance_requirement | boolean Whether this is a compliance requirement |
| version | string Version of the content |
| last_review_date | string Last review date |
| is_active | boolean Whether the template is active |
{- "title_en": "UK GDPR Basics",
- "description_en": "string",
- "content_type": "VIDEO",
- "category": "Compliance",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": "string",
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "version": "string",
- "last_review_date": "string",
- "is_active": true
}{- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_type": "VIDEO",
- "category": "string",
- "learning_level": "BEGINNER",
- "target_audience": [
- "string"
], - "estimated_duration_minutes": 0,
- "primary_file_path": { },
- "learning_objectives": [
- "string"
], - "has_assessment": true,
- "certification_available": true,
- "mandatory_for_roles": [
- "string"
], - "compliance_requirement": true,
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}| code | string Filter by code |
| title | string Filter by title |
| path_type | string Filter by path type |
| mandatory | boolean Filter by mandatory status |
| certification_available | boolean Filter by certification availability |
| is_active | boolean Filter by active status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| code required | string Unique code for the learning path |
| title_en required | string Title in English |
| description_en | string Description in English |
| path_type required | string Type of learning path |
| target_audience required | Array of strings Target audience roles |
| estimated_duration_hours required | number Estimated duration in hours |
| certification_available | boolean Default: false Whether certification is available upon completion |
| mandatory | boolean Default: false Whether this path is mandatory |
| modules | object Default: [] Learning modules in the path |
| version | string Default: "1.0.0" Version of the path |
| last_review_date | string Last review date |
| is_active | boolean Default: true Whether the template is active |
{- "code": "UK_HR_ONBOARDING",
- "title_en": "UK HR Onboarding Path",
- "description_en": "Complete onboarding path for new HR employees in UK",
- "path_type": "ONBOARDING",
- "target_audience": [
- "HR_MANAGER",
- "HR_ASSISTANT"
], - "estimated_duration_hours": 8,
- "certification_available": false,
- "mandatory": false,
- "modules": [
- {
- "id": "1",
- "title": "Introduction",
- "order": 1,
- "contentIds": [
- "content1",
- "content2"
]
}, - {
- "id": "2",
- "title": "Core Training",
- "order": 2,
- "contentIds": [
- "content3"
]
}
], - "version": "1.0.0",
- "last_review_date": "2024-01-01",
- "is_active": true
}{- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}| id required | string |
{- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}| id required | string |
| title_en | string Title in English |
| description_en | string Description in English |
| path_type | string Type of learning path |
| target_audience | Array of strings Target audience roles |
| estimated_duration_hours | number Estimated duration in hours |
| certification_available | boolean Whether certification is available upon completion |
| mandatory | boolean Whether this path is mandatory |
| modules | object Learning modules in the path |
| version | string Version of the path |
| last_review_date | string Last review date |
| is_active | boolean Whether the template is active |
{- "title_en": "string",
- "description_en": "string",
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "version": "string",
- "last_review_date": "string",
- "is_active": true
}{- "id": "string",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "path_type": "string",
- "target_audience": [
- "string"
], - "estimated_duration_hours": 0,
- "certification_available": true,
- "mandatory": true,
- "modules": { },
- "version": "string",
- "last_review_date": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "tenant_usage_count": 0
}| template_code | string Filter by template code |
| template_name | string Filter by template name |
| is_system_template | boolean Filter by system template status |
| is_active | boolean Filter by active status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "template_code": "string",
- "template_name": "string",
- "inspection_type_ids": [
- "string"
], - "checklist_items": { },
- "evidence_requirements": { },
- "automation_rules": { },
- "quality_checks": { },
- "output_templates": { },
- "version": "string",
- "is_active": true,
- "is_system_template": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": { }
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| template_code required | string <= 100 characters Unique template code |
| template_name required | string <= 200 characters Template name |
| inspection_type_ids required | Array of strings Applicable inspection type IDs |
| checklist_items required | object Checklist items configuration |
| evidence_requirements required | object Evidence requirements configuration |
| automation_rules | object Automation processing rules |
| quality_checks | object Quality check rules |
| output_templates | object Output document templates |
| version | string <= 20 characters Default: "1.0.0" Version of the template |
| is_active | boolean Default: true Whether the template is active |
| is_system_template | boolean Default: false Whether this is a system template |
{- "template_code": "UK_FIRE_SAFETY_CHECK",
- "template_name": "UK Fire Safety Compliance Check",
- "inspection_type_ids": [
- "type-1",
- "type-2"
], - "checklist_items": [
- {
- "id": "1",
- "title": "Fire exits clear",
- "required": true
}, - {
- "id": "2",
- "title": "Extinguishers in date",
- "required": true
}
], - "evidence_requirements": [
- {
- "type": "PHOTO",
- "description": "Photo of fire exit",
- "required": true
}, - {
- "type": "DOCUMENT",
- "description": "Inspection certificate",
- "required": false
}
], - "automation_rules": {
- "autoApprove": false,
- "notificationRules": { }
}, - "quality_checks": {
- "minPhotos": 2,
- "requireSignature": true
}, - "output_templates": {
- "certificateTemplate": "template-1",
- "reportTemplate": "template-2"
}, - "version": "1.0.0",
- "is_active": true,
- "is_system_template": false
}{- "id": "string",
- "template_code": "string",
- "template_name": "string",
- "inspection_type_ids": [
- "string"
], - "checklist_items": { },
- "evidence_requirements": { },
- "automation_rules": { },
- "quality_checks": { },
- "output_templates": { },
- "version": "string",
- "is_active": true,
- "is_system_template": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": { }
}| id required | string |
{- "id": "string",
- "template_code": "string",
- "template_name": "string",
- "inspection_type_ids": [
- "string"
], - "checklist_items": { },
- "evidence_requirements": { },
- "automation_rules": { },
- "quality_checks": { },
- "output_templates": { },
- "version": "string",
- "is_active": true,
- "is_system_template": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": { }
}| id required | string |
| template_name | string <= 200 characters Template name |
| inspection_type_ids | Array of strings Applicable inspection type IDs |
| checklist_items | object Checklist items configuration |
| evidence_requirements | object Evidence requirements configuration |
| automation_rules | object Automation processing rules |
| quality_checks | object Quality check rules |
| output_templates | object Output document templates |
| version | string <= 20 characters Version of the template |
| is_active | boolean Whether the template is active |
| is_system_template | boolean Whether this is a system template |
{- "template_name": "string",
- "inspection_type_ids": [
- "string"
], - "checklist_items": { },
- "evidence_requirements": { },
- "automation_rules": { },
- "quality_checks": { },
- "output_templates": { },
- "version": "string",
- "is_active": true,
- "is_system_template": true
}{- "id": "string",
- "template_code": "string",
- "template_name": "string",
- "inspection_type_ids": [
- "string"
], - "checklist_items": { },
- "evidence_requirements": { },
- "automation_rules": { },
- "quality_checks": { },
- "output_templates": { },
- "version": "string",
- "is_active": true,
- "is_system_template": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "created_by": { }
}{- "system_health": [
- {
- "component": "Database",
- "status": "healthy",
- "response_time_ms": 45,
- "last_checked": "2019-08-24T14:15:22Z",
- "details": { }
}
], - "key_metrics": [
- {
- "metric_name": "total_employees",
- "value": 1250,
- "change_percentage": 12.5,
- "timestamp": "2019-08-24T14:15:22Z"
}
], - "tenant_statistics": {
- "total_tenants": 0,
- "active_tenants": 0,
- "total_employees": 0,
- "total_departments": 0,
- "total_leave_requests": 0,
- "total_payroll_runs": 0,
- "avg_employees_per_tenant": 0,
- "total_storage_gb": 0,
- "tenant_breakdown": [
- {
- "tenant_id": "string",
- "tenant_name": "string",
- "employee_count": 0,
- "active_employees": 0,
- "department_count": 0,
- "leave_request_count": 0,
- "pending_leave_requests": 0,
- "payroll_run_count": 0,
- "storage_used_mb": 0,
- "last_activity": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}, - "template_usage": [
- {
- "template_type": "LeaveTypeTemplate",
- "template_id": "string",
- "template_code": "string",
- "template_name": "string",
- "tenant_count": 0,
- "usage_percentage": 0,
- "last_deployed": "2019-08-24T14:15:22Z",
- "tenant_ids": [
- "string"
]
}
], - "compliance_overview": {
- "total_compliance_checks": 0,
- "active_checks": 0,
- "system_checks": 0,
- "tenant_checks": 0,
- "avg_compliance_score": 0,
- "fully_compliant_tenants": 0,
- "non_compliant_tenants": 0,
- "common_issues": [
- {
- "issue": "string",
- "count": 0
}
]
}, - "payroll_statistics": {
- "total_payroll_runs": 0,
- "successful_runs": 0,
- "failed_runs": 0,
- "total_gross_pay": 0,
- "total_net_pay": 0,
- "total_tax_deducted": 0,
- "avg_pay_per_employee": 0,
- "frequency_breakdown": { }
}, - "generated_at": "2019-08-24T14:15:22Z"
}| start_date | string Example: start_date=2024-01-01 Start date for analytics |
| end_date | string Example: end_date=2024-12-31 End date for analytics |
| period | string Default: "MONTHLY" Enum: "DAILY" "WEEKLY" "MONTHLY" "QUARTERLY" "YEARLY" Period for grouping analytics |
| metric | string Specific metric to retrieve |
[- {
- "metric_name": "total_employees",
- "value": 1250,
- "change_percentage": 12.5,
- "timestamp": "2019-08-24T14:15:22Z"
}
]| tenant_id | string Filter by tenant ID |
| active_only | boolean Filter by active status |
| include_details | boolean Default: false Include detailed breakdown |
| page | number Default: 1 Page number |
| limit | number Default: 20 Items per page |
{- "total_tenants": 0,
- "active_tenants": 0,
- "total_employees": 0,
- "total_departments": 0,
- "total_leave_requests": 0,
- "total_payroll_runs": 0,
- "avg_employees_per_tenant": 0,
- "total_storage_gb": 0,
- "tenant_breakdown": [
- {
- "tenant_id": "string",
- "tenant_name": "string",
- "employee_count": 0,
- "active_employees": 0,
- "department_count": 0,
- "leave_request_count": 0,
- "pending_leave_requests": 0,
- "payroll_run_count": 0,
- "storage_used_mb": 0,
- "last_activity": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}
]
}| tenantId required | string |
{- "tenant_id": "string",
- "tenant_name": "string",
- "employee_count": 0,
- "active_employees": 0,
- "department_count": 0,
- "leave_request_count": 0,
- "pending_leave_requests": 0,
- "payroll_run_count": 0,
- "storage_used_mb": 0,
- "last_activity": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z"
}[- {
- "template_type": "LeaveTypeTemplate",
- "template_id": "string",
- "template_code": "string",
- "template_name": "string",
- "tenant_count": 0,
- "usage_percentage": 0,
- "last_deployed": "2019-08-24T14:15:22Z",
- "tenant_ids": [
- "string"
]
}
]{- "total_compliance_checks": 0,
- "active_checks": 0,
- "system_checks": 0,
- "tenant_checks": 0,
- "avg_compliance_score": 0,
- "fully_compliant_tenants": 0,
- "non_compliant_tenants": 0,
- "common_issues": [
- {
- "issue": "string",
- "count": 0
}
]
}| start_date | string Example: start_date=2024-01-01 Start date for analytics |
| end_date | string Example: end_date=2024-12-31 End date for analytics |
| period | string Default: "MONTHLY" Enum: "DAILY" "WEEKLY" "MONTHLY" "QUARTERLY" "YEARLY" Period for grouping analytics |
| metric | string Specific metric to retrieve |
{- "total_payroll_runs": 0,
- "successful_runs": 0,
- "failed_runs": 0,
- "total_gross_pay": 0,
- "total_net_pay": 0,
- "total_tax_deducted": 0,
- "avg_pay_per_employee": 0,
- "frequency_breakdown": { }
}| start_date | string Example: start_date=2024-01-01 Start date for analytics |
| end_date | string Example: end_date=2024-12-31 End date for analytics |
| period | string Default: "MONTHLY" Enum: "DAILY" "WEEKLY" "MONTHLY" "QUARTERLY" "YEARLY" Period for grouping analytics |
| metric | string Specific metric to retrieve |
| template_id | string Filter by template ID |
| template_type | string Filter by template type |
| customization_level | string Enum: "BASIC" "INTERMEDIATE" "ADVANCED" "EXPERT" Filter by customization level |
| version_control_enabled | boolean Filter by version control enabled |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "template_id": "string",
- "template_type": "string",
- "customization_level": "BASIC",
- "supported_customizations": [
- "string"
], - "customizable_elements": { },
- "element_constraints": { },
- "conditional_logic": { },
- "validation_schema": { },
- "preview_template": { },
- "version_control_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| template_id required | string Template ID this configuration is for |
| template_type required | string Type of template |
| customization_level | string Default: "BASIC" Enum: "BASIC" "INTERMEDIATE" "ADVANCED" "EXPERT" Customization level |
| supported_customizations required | Array of strings List of supported customization types |
required | object Elements that can be customized |
object Constraints on element customization | |
object Conditional logic for customizations | |
object Validation schema for customizations | |
object Preview template for customizations | |
| version_control_enabled | boolean Default: true Enable version control for customizations |
{- "template_id": "123e4567-e89b-12d3-a456-426614174000",
- "template_type": "LeaveTypeTemplate",
- "customization_level": "BASIC",
- "supported_customizations": [
- "fields",
- "workflow",
- "notifications"
], - "customizable_elements": {
- "fields": [
- "max_days",
- "accrual_rate"
], - "workflow": [
- "approval_steps",
- "notifications"
]
}, - "element_constraints": {
- "max_days": {
- "min": 1,
- "max": 365
}, - "approval_steps": {
- "max": 5
}
}, - "conditional_logic": { },
- "validation_schema": { },
- "preview_template": { },
- "version_control_enabled": true
}{- "id": "string",
- "template_id": "string",
- "template_type": "string",
- "customization_level": "BASIC",
- "supported_customizations": [
- "string"
], - "customizable_elements": { },
- "element_constraints": { },
- "conditional_logic": { },
- "validation_schema": { },
- "preview_template": { },
- "version_control_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
{- "id": "string",
- "template_id": "string",
- "template_type": "string",
- "customization_level": "BASIC",
- "supported_customizations": [
- "string"
], - "customizable_elements": { },
- "element_constraints": { },
- "conditional_logic": { },
- "validation_schema": { },
- "preview_template": { },
- "version_control_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| template_type | string Type of template |
| customization_level | string Enum: "BASIC" "INTERMEDIATE" "ADVANCED" "EXPERT" Customization level |
| supported_customizations | Array of strings List of supported customization types |
object Elements that can be customized | |
object Constraints on element customization | |
object Conditional logic for customizations | |
object Validation schema for customizations | |
object Preview template for customizations | |
| version_control_enabled | boolean Enable version control for customizations |
{- "template_type": "string",
- "customization_level": "BASIC",
- "supported_customizations": [
- "string"
], - "customizable_elements": { },
- "element_constraints": { },
- "conditional_logic": { },
- "validation_schema": { },
- "preview_template": { },
- "version_control_enabled": true
}{- "id": "string",
- "template_id": "string",
- "template_type": "string",
- "customization_level": "BASIC",
- "supported_customizations": [
- "string"
], - "customizable_elements": { },
- "element_constraints": { },
- "conditional_logic": { },
- "validation_schema": { },
- "preview_template": { },
- "version_control_enabled": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| inspection_code | string Filter by inspection code |
| regulator_name | string Filter by regulator name |
| risk_level | string Filter by risk level |
| is_active | boolean Filter by active status |
| search | string Search in inspection name |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "inspection_code": "string",
- "inspection_name": "string",
- "regulator_name": "string",
- "scope_definition": { },
- "legal_framework": { },
- "typical_notice_period_days": 0,
- "standard_response_days": 0,
- "response_requirements": { },
- "required_evidence_types": [
- "string"
], - "optional_evidence_types": [
- "string"
], - "risk_level": "string",
- "potential_penalties": { },
- "is_active": true,
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| inspection_code required | string <= 100 characters Unique inspection code |
| inspection_name required | string <= 200 characters Inspection name |
| regulator_name required | string <= 100 characters Name of the regulatory body |
required | object Inspection scope definition |
required | object Legal framework and regulations |
| typical_notice_period_days | number >= 0 Default: 21 Typical notice period in days |
| standard_response_days | number >= 0 Default: 14 Standard response time in days |
object Response requirements | |
| required_evidence_types required | Array of strings Required evidence type IDs |
| optional_evidence_types | Array of strings Default: [] Optional evidence type IDs |
| risk_level | string Default: "MEDIUM" Risk level |
object Potential penalties and consequences | |
| is_active | boolean Default: true Active status |
| version | string <= 20 characters Default: "1.0.0" Version |
{- "inspection_code": "HSE_ANNUAL_2024",
- "inspection_name": "Annual Health & Safety Executive Inspection",
- "regulator_name": "Health and Safety Executive",
- "scope_definition": {
- "scope": "workplace_safety",
- "timeRange": "annual",
- "entityTypes": [
- "office",
- "warehouse",
- "factory"
]
}, - "legal_framework": {
- "legalBasis": "Health and Safety at Work Act 1974",
- "regulations": [
- "CDM 2015",
- "RIDDOR 2013"
], - "guidance": [
- "HSG65",
- "L153"
]
}, - "typical_notice_period_days": 21,
- "standard_response_days": 14,
- "response_requirements": {
- "format": "digital",
- "submissionMethods": [
- "email",
- "portal"
], - "requiredSections": [
- "risk_assessment",
- "incident_log"
]
}, - "required_evidence_types": [
- "risk_assessment",
- "training_records"
], - "optional_evidence_types": [
- "improvement_plans",
- "audit_reports"
], - "risk_level": "HIGH",
- "potential_penalties": {
- "monetary": "£10,000 - £50,000",
- "operational": "Suspension of operations"
}, - "is_active": true,
- "version": "1.0.0"
}{- "id": "string",
- "inspection_code": "string",
- "inspection_name": "string",
- "regulator_name": "string",
- "scope_definition": { },
- "legal_framework": { },
- "typical_notice_period_days": 0,
- "standard_response_days": 0,
- "response_requirements": { },
- "required_evidence_types": [
- "string"
], - "optional_evidence_types": [
- "string"
], - "risk_level": "string",
- "potential_penalties": { },
- "is_active": true,
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
{- "id": "string",
- "inspection_code": "string",
- "inspection_name": "string",
- "regulator_name": "string",
- "scope_definition": { },
- "legal_framework": { },
- "typical_notice_period_days": 0,
- "standard_response_days": 0,
- "response_requirements": { },
- "required_evidence_types": [
- "string"
], - "optional_evidence_types": [
- "string"
], - "risk_level": "string",
- "potential_penalties": { },
- "is_active": true,
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| inspection_name | string <= 200 characters Inspection name |
| regulator_name | string <= 100 characters Name of the regulatory body |
object Inspection scope definition | |
object Legal framework and regulations | |
| typical_notice_period_days | number >= 0 Typical notice period in days |
| standard_response_days | number >= 0 Standard response time in days |
object Response requirements | |
| required_evidence_types | Array of strings Required evidence type IDs |
| optional_evidence_types | Array of strings Optional evidence type IDs |
| risk_level | string Risk level |
object Potential penalties and consequences | |
| is_active | boolean Active status |
| version | string <= 20 characters Version |
{- "inspection_name": "string",
- "regulator_name": "string",
- "scope_definition": { },
- "legal_framework": { },
- "typical_notice_period_days": 0,
- "standard_response_days": 0,
- "response_requirements": { },
- "required_evidence_types": [
- "string"
], - "optional_evidence_types": [
- "string"
], - "risk_level": "string",
- "potential_penalties": { },
- "is_active": true,
- "version": "string"
}{- "id": "string",
- "inspection_code": "string",
- "inspection_name": "string",
- "regulator_name": "string",
- "scope_definition": { },
- "legal_framework": { },
- "typical_notice_period_days": 0,
- "standard_response_days": 0,
- "response_requirements": { },
- "required_evidence_types": [
- "string"
], - "optional_evidence_types": [
- "string"
], - "risk_level": "string",
- "potential_penalties": { },
- "is_active": true,
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| evidence_code | string Filter by evidence code |
| evidence_category | string Filter by evidence category |
| legal_significance | string Enum: "CRITICAL" "IMPORTANT" "STANDARD" "LOW" Filter by legal significance |
| processing_complexity | string Enum: "SIMPLE" "MODERATE" "COMPLEX" "VERY_COMPLEX" Filter by processing complexity |
| is_active | boolean Filter by active status |
| search | string Search in name and description |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "evidence_code": "string",
- "evidence_name": "string",
- "evidence_category": "string",
- "description": { },
- "data_sources": { },
- "extraction_rules": { },
- "output_format": { },
- "legal_significance": "string",
- "retention_period_years": 0,
- "processing_complexity": "string",
- "estimated_generation_time_minutes": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| evidence_code required | string <= 100 characters Unique evidence code |
| evidence_name required | string <= 200 characters Evidence name |
| evidence_category required | string <= 50 characters Evidence category |
| description | string Description of the evidence type |
required | object Data sources configuration |
required | object Extraction rules |
required | object Output format configuration |
| legal_significance | string <= 20 characters Default: "IMPORTANT" Enum: "CRITICAL" "IMPORTANT" "STANDARD" "LOW" Legal significance level |
| retention_period_years | number >= 0 Default: 6 Retention period in years |
| processing_complexity | string <= 20 characters Default: "SIMPLE" Enum: "SIMPLE" "MODERATE" "COMPLEX" "VERY_COMPLEX" Processing complexity |
| estimated_generation_time_minutes | number >= 0 Default: 5 Estimated generation time in minutes |
| is_active | boolean Default: true Is active |
{- "evidence_code": "RISK_ASSESSMENT_DOC",
- "evidence_name": "Risk Assessment Documentation",
- "evidence_category": "SAFETY",
- "description": "Comprehensive risk assessment documentation for workplace hazards",
- "data_sources": {
- "primaryTable": "risk_assessments",
- "relatedTables": [
- "risk_controls",
- "risk_reviews"
], - "joinConditions": [
- "risk_assessment_id"
]
}, - "extraction_rules": {
- "extractionRules": [
- "active_only",
- "last_12_months"
], - "sorting": "date_desc",
- "grouping": "by_department"
}, - "output_format": {
- "fileType": "pdf",
- "template": "risk_assessment_template",
- "mergeStrategy": "single_document"
}, - "legal_significance": "CRITICAL",
- "retention_period_years": 6,
- "processing_complexity": "SIMPLE",
- "estimated_generation_time_minutes": 5,
- "is_active": true
}{- "id": "string",
- "evidence_code": "string",
- "evidence_name": "string",
- "evidence_category": "string",
- "description": { },
- "data_sources": { },
- "extraction_rules": { },
- "output_format": { },
- "legal_significance": "string",
- "retention_period_years": 0,
- "processing_complexity": "string",
- "estimated_generation_time_minutes": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "id": "string",
- "evidence_code": "string",
- "evidence_name": "string",
- "evidence_category": "string",
- "description": { },
- "data_sources": { },
- "extraction_rules": { },
- "output_format": { },
- "legal_significance": "string",
- "retention_period_years": 0,
- "processing_complexity": "string",
- "estimated_generation_time_minutes": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| evidence_name | string <= 200 characters Evidence name |
| evidence_category | string <= 50 characters Evidence category |
| description | string Description of the evidence type |
object Data sources configuration | |
object Extraction rules | |
object Output format configuration | |
| legal_significance | string <= 20 characters Enum: "CRITICAL" "IMPORTANT" "STANDARD" "LOW" Legal significance level |
| retention_period_years | number >= 0 Retention period in years |
| processing_complexity | string <= 20 characters Enum: "SIMPLE" "MODERATE" "COMPLEX" "VERY_COMPLEX" Processing complexity |
| estimated_generation_time_minutes | number >= 0 Estimated generation time in minutes |
| is_active | boolean Is active |
{- "evidence_name": "string",
- "evidence_category": "string",
- "description": "string",
- "data_sources": { },
- "extraction_rules": { },
- "output_format": { },
- "legal_significance": "CRITICAL",
- "retention_period_years": 0,
- "processing_complexity": "SIMPLE",
- "estimated_generation_time_minutes": 0,
- "is_active": true
}{- "id": "string",
- "evidence_code": "string",
- "evidence_name": "string",
- "evidence_category": "string",
- "description": { },
- "data_sources": { },
- "extraction_rules": { },
- "output_format": { },
- "legal_significance": "string",
- "retention_period_years": 0,
- "processing_complexity": "string",
- "estimated_generation_time_minutes": 0,
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| cache_key | string Filter by cache key |
| query_hash | string Filter by query hash |
| status | string Default: "all" Enum: "active" "expired" "all" Filter by expiration status (active/expired) |
| min_hit_count | number >= 0 Minimum hit count |
| sort_by | string Default: "last_accessed" Enum: "created_at" "last_accessed" "hit_count" "expires_at" Sort by field |
| order | string Default: "desc" Enum: "asc" "desc" Sort order |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "cache_key": "string",
- "query_hash": "string",
- "result_data": { },
- "expires_at": "2019-08-24T14:15:22Z",
- "hit_count": 0,
- "last_accessed": "2019-08-24T14:15:22Z",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}{- "total_entries": 0,
- "active_entries": 0,
- "expired_entries": 0,
- "total_hits": 0,
- "avg_hit_count": 0,
- "hit_rate": 0,
- "total_size_bytes": 0,
- "top_accessed": [
- {
- "cache_key": "string",
- "hit_count": 0,
- "last_accessed": "2019-08-24T14:15:22Z"
}
], - "generated_at": "2019-08-24T14:15:22Z"
}| expired_only | boolean Default: false Clear only expired entries |
| older_than | string Clear entries older than this date |
| hit_count_less_than | number >= 0 Clear entries with hit count less than this value |
| cache_keys | Array of strings Specific cache keys to clear |
{- "expired_only": false,
- "older_than": "string",
- "hit_count_less_than": 0,
- "cache_keys": [
- "string"
]
}| remove_low_hit | boolean Default: true Remove entries with low hit count |
| min_hit_count | number >= 0 Default: 5 Minimum hit count to keep |
| remove_expired | boolean Default: true Remove expired entries |
| compact_large_entries | boolean Default: false Compact large entries |
| max_age_days | number >= 1 Maximum age in days to keep |
{- "remove_low_hit": true,
- "min_hit_count": 5,
- "remove_expired": true,
- "compact_large_entries": false,
- "max_age_days": 1
}| component | string Filter by component |
| update_type | string Filter by update type |
| trigger_type | string Enum: "MANUAL" "SCHEDULED" "SYSTEM_UPDATE" "CONTENT_CHANGE" "COMPLIANCE_UPDATE" Filter by trigger type |
| status | string Enum: "QUEUED" "RUNNING" "COMPLETED" "FAILED" "CANCELLED" Filter by status |
| priority | string Filter by priority |
| started_after | string Filter logs started after this date |
| started_before | string Filter logs started before this date |
| with_errors | boolean Default: false Include only logs with errors |
| sort_by | string Default: "started_at" Enum: "started_at" "completed_at" "status" "priority" Sort by field |
| order | string Default: "desc" Enum: "asc" "desc" Sort order |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "update_id": "string",
- "component": "string",
- "update_type": "string",
- "from_version": { },
- "to_version": "string",
- "trigger_type": "MANUAL",
- "trigger_source": { },
- "priority": "medium",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": { },
- "status": "QUEUED",
- "total_items": 0,
- "processed_items": 0,
- "created_items": 0,
- "updated_items": 0,
- "deleted_items": 0,
- "failed_items": 0,
- "execution_details": { },
- "error_details": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}{- "total_logs": 0,
- "by_status": { },
- "by_component": { },
- "by_trigger_type": { },
- "avg_execution_time_seconds": 0,
- "success_rate": 0,
- "total_items_processed": 0,
- "recent_failures": [
- {
- "update_id": "string",
- "component": "string",
- "started_at": "2019-08-24T14:15:22Z",
- "error_summary": "string"
}
], - "generated_at": "2019-08-24T14:15:22Z"
}| older_than_days | number >= 1 Default: 90 Delete logs older than this many days |
| keep_latest_per_component | number >= 1 Keep only the latest N logs per component |
| statuses | Array of strings Items Enum: "QUEUED" "RUNNING" "COMPLETED" "FAILED" "CANCELLED" Delete only logs with these statuses |
| components | Array of strings Delete logs for specific components only |
| preserve_errors | boolean Default: true Preserve logs with errors |
{- "older_than_days": 90,
- "keep_latest_per_component": 1,
- "statuses": [
- "QUEUED"
], - "components": [
- "string"
], - "preserve_errors": true
}| content_type | string Filter by content type |
| content_code | string Filter by content code |
| action | string Enum: "CREATE" "UPDATE" "DELETE" "DEPLOY" Filter by action |
| status | string Enum: "QUEUED" "RUNNING" "COMPLETED" "FAILED" "CANCELLED" Filter by status |
| priority | string Enum: "low" "medium" "high" "critical" Filter by priority |
| scheduled_before | string Include only items scheduled before this date |
| ready_to_process | boolean Default: false Include items ready for processing |
| retriable | boolean Default: false Include failed items that can be retried |
| sort_by | string Default: "scheduled_at" Enum: "scheduled_at" "priority" "created_at" "status" Sort by field |
| order | string Default: "asc" Enum: "asc" "desc" Sort order |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "content_type": "string",
- "content_code": "string",
- "action": "string",
- "priority": "string",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "content_data": { },
- "previous_version": { },
- "target_version": "string",
- "dependencies": [
- "string"
], - "status": "QUEUED",
- "retry_count": 0,
- "max_retries": 0,
- "started_at": { },
- "completed_at": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| content_type required | string Type of content to update |
| content_code required | string Content code identifier |
| action required | string Enum: "CREATE" "UPDATE" "DELETE" "DEPLOY" Action to perform |
| priority | string Default: "medium" Enum: "low" "medium" "high" "critical" Priority level |
| scheduled_at | string Default: "now" Scheduled execution time |
required | object Content data to process |
| previous_version | string Previous version identifier |
| target_version required | string Target version identifier |
| dependencies | Array of strings Default: [] List of dependency content codes |
| max_retries | number [ 0 .. 10 ] Default: 3 Maximum retry attempts |
{- "content_type": "LeaveTypeTemplate",
- "content_code": "ANNUAL_LEAVE",
- "action": "CREATE",
- "priority": "low",
- "scheduled_at": "now",
- "content_data": { },
- "previous_version": "string",
- "target_version": "2.0.0",
- "dependencies": [ ],
- "max_retries": 3
}{- "id": "string",
- "content_type": "string",
- "content_code": "string",
- "action": "string",
- "priority": "string",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "content_data": { },
- "previous_version": { },
- "target_version": "string",
- "dependencies": [
- "string"
], - "status": "QUEUED",
- "retry_count": 0,
- "max_retries": 0,
- "started_at": { },
- "completed_at": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "total_items": 0,
- "by_status": { },
- "by_priority": { },
- "by_content_type": { },
- "ready_to_process": 0,
- "retriable_failures": 0,
- "avg_wait_time_seconds": 0,
- "next_item": { },
- "generated_at": "2019-08-24T14:15:22Z"
}| id required | string |
{- "id": "string",
- "content_type": "string",
- "content_code": "string",
- "action": "string",
- "priority": "string",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "content_data": { },
- "previous_version": { },
- "target_version": "string",
- "dependencies": [
- "string"
], - "status": "QUEUED",
- "retry_count": 0,
- "max_retries": 0,
- "started_at": { },
- "completed_at": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| priority | string Enum: "low" "medium" "high" "critical" Priority level |
| scheduled_at | string Scheduled execution time |
| status | string Enum: "QUEUED" "RUNNING" "COMPLETED" "FAILED" "CANCELLED" Status |
| max_retries | number [ 0 .. 10 ] Maximum retry attempts |
{- "priority": "low",
- "scheduled_at": "string",
- "status": "QUEUED",
- "max_retries": 10
}{- "id": "string",
- "content_type": "string",
- "content_code": "string",
- "action": "string",
- "priority": "string",
- "scheduled_at": "2019-08-24T14:15:22Z",
- "content_data": { },
- "previous_version": { },
- "target_version": "string",
- "dependencies": [
- "string"
], - "status": "QUEUED",
- "retry_count": 0,
- "max_retries": 0,
- "started_at": { },
- "completed_at": { },
- "error_message": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| batch_size | number [ 1 .. 100 ] Default: 10 Maximum items to process |
| min_priority | string Enum: "low" "medium" "high" "critical" Process only items with this priority or higher |
| content_types | Array of strings Process specific content types only |
| dry_run | boolean Default: false Process items in dry run mode |
{- "batch_size": 10,
- "min_priority": "low",
- "content_types": [
- "string"
], - "dry_run": false
}| content_type | string Enum: "contract" "policy" "document" "form" "training" Filter by content type |
| code | string Filter by code |
| status | string Enum: "DRAFT" "ACTIVE" "ARCHIVED" "DEPRECATED" Filter by status |
| is_system_default | boolean Filter by system default |
| jurisdiction | string Filter by jurisdiction |
| search | string Search in title and description |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "content_type": "contract",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_data": { },
- "localization_data": { },
- "version": "string",
- "status": "DRAFT",
- "is_system_default": true,
- "jurisdictions": [
- "string"
], - "last_review_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| content_type required | string Enum: "contract" "policy" "document" "form" "training" Type of content |
| code required | string <= 100 characters Unique content code |
| title_en required | string <= 200 characters Title in English |
| description_en | string Description in English |
required | object Main content data |
object Default: {} Localization data for multiple languages | |
| version | string Default: "1.0.0" Content version |
| status | string Default: "ACTIVE" Enum: "DRAFT" "ACTIVE" "ARCHIVED" "DEPRECATED" Content status |
| is_system_default | boolean Default: false Is system default content |
| jurisdictions | Array of strings Default: ["UK"] Jurisdictions this content applies to |
| last_review_date | string Last compliance review date |
{- "content_type": "contract",
- "code": "EMPLOYMENT_CONTRACT_STANDARD",
- "title_en": "Standard Employment Contract",
- "description_en": "Standard employment contract template for permanent employees",
- "content_data": {
- "template": "contract template content",
- "fields": [
- "employee_name",
- "start_date",
- "salary"
], - "sections": [
- "terms",
- "conditions",
- "benefits"
]
}, - "localization_data": {
- "cy": {
- "title": "Cytundeb Cyflogaeth Safonol"
}, - "gd": {
- "title": "Cùmhnant Cosnaidh Àbhaisteach"
}
}, - "version": "1.0.0",
- "status": "DRAFT",
- "is_system_default": false,
- "jurisdictions": [
- "UK",
- "Scotland",
- "Wales",
- "Northern Ireland"
], - "last_review_date": "2024-01-01"
}{- "id": "string",
- "content_type": "contract",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_data": { },
- "localization_data": { },
- "version": "string",
- "status": "DRAFT",
- "is_system_default": true,
- "jurisdictions": [
- "string"
], - "last_review_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "id": "string",
- "content_type": "contract",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_data": { },
- "localization_data": { },
- "version": "string",
- "status": "DRAFT",
- "is_system_default": true,
- "jurisdictions": [
- "string"
], - "last_review_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| title_en | string <= 200 characters Title in English |
| description_en | string Description in English |
object Main content data | |
object Localization data for multiple languages | |
| version | string Content version |
| status | string Enum: "DRAFT" "ACTIVE" "ARCHIVED" "DEPRECATED" Content status |
| is_system_default | boolean Is system default content |
| jurisdictions | Array of strings Jurisdictions this content applies to |
| last_review_date | string Last compliance review date |
{- "title_en": "string",
- "description_en": "string",
- "content_data": { },
- "localization_data": { },
- "version": "string",
- "status": "DRAFT",
- "is_system_default": true,
- "jurisdictions": [
- "string"
], - "last_review_date": "string"
}{- "id": "string",
- "content_type": "contract",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_data": { },
- "localization_data": { },
- "version": "string",
- "status": "DRAFT",
- "is_system_default": true,
- "jurisdictions": [
- "string"
], - "last_review_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}required | Array of objects (AdminCreatePresetContentDto) Array of preset content to import |
| update_existing | boolean Default: false Update existing items with same code |
{- "items": [
- {
- "content_type": "contract",
- "code": "EMPLOYMENT_CONTRACT_STANDARD",
- "title_en": "Standard Employment Contract",
- "description_en": "Standard employment contract template for permanent employees",
- "content_data": {
- "template": "contract template content",
- "fields": [
- "employee_name",
- "start_date",
- "salary"
], - "sections": [
- "terms",
- "conditions",
- "benefits"
]
}, - "localization_data": {
- "cy": {
- "title": "Cytundeb Cyflogaeth Safonol"
}, - "gd": {
- "title": "Cùmhnant Cosnaidh Àbhaisteach"
}
}, - "version": "1.0.0",
- "status": "DRAFT",
- "is_system_default": false,
- "jurisdictions": [
- "UK",
- "Scotland",
- "Wales",
- "Northern Ireland"
], - "last_review_date": "2024-01-01"
}
], - "update_existing": false
}| id required | string |
| new_code required | string New unique code for cloned content |
| new_title required | string New title for cloned content |
| new_description | string New description for cloned content |
| reset_version | boolean Default: true Reset version to 1.0.0 |
{- "new_code": "EMPLOYMENT_CONTRACT_EXECUTIVE",
- "new_title": "Executive Employment Contract",
- "new_description": "string",
- "reset_version": true
}{- "id": "string",
- "content_type": "contract",
- "code": "string",
- "title_en": "string",
- "description_en": { },
- "content_data": { },
- "localization_data": { },
- "version": "string",
- "status": "DRAFT",
- "is_system_default": true,
- "jurisdictions": [
- "string"
], - "last_review_date": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| tenant_ids required | Array of strings List of tenant IDs to deploy to |
| override_existing | boolean Default: false Override existing content |
| target_jurisdictions | Array of strings Deploy only to tenants in specific jurisdictions |
{- "tenant_ids": [
- "tenant-1",
- "tenant-2"
], - "override_existing": false,
- "target_jurisdictions": [
- "string"
]
}| localization_code | string Filter by localization code |
| language_code | string Filter by language code |
| country_code | string Filter by country code |
| is_active | boolean Filter by active status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "localization_code": "string",
- "display_name": "string",
- "language_code": "string",
- "country_code": { },
- "region": { },
- "date_format": "string",
- "currency_code": "string",
- "currency_symbol": "string",
- "number_format": { },
- "legal_framework": { },
- "compliance_requirements": [
- "string"
], - "cultural_preferences": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "translation_count": 150
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| localization_code required | string Unique localization code |
| display_name required | string Display name for the localization |
| language_code required | string Language code |
| country_code | string Country code |
| region | string Region |
| date_format | string Default: "DD/MM/YYYY" Date format |
| currency_code | string Default: "GBP" Currency code |
| currency_symbol | string Default: "£" Currency symbol |
| number_format | object Default: {"decimal_separator":".","thousand_separator":","} Number format configuration |
| legal_framework | object Legal framework configuration |
| compliance_requirements | Array of strings Default: [] Compliance requirements |
| cultural_preferences | object Cultural preferences |
| is_active | boolean Default: true Whether the configuration is active |
{- "localization_code": "en_GB",
- "display_name": "English (United Kingdom)",
- "language_code": "en",
- "country_code": "GB",
- "region": "Europe",
- "date_format": "DD/MM/YYYY",
- "currency_code": "GBP",
- "currency_symbol": "£",
- "number_format": {
- "decimal_separator": ".",
- "thousand_separator": ","
}, - "legal_framework": {
- "employment_law": "UK Employment Act",
- "data_protection": "UK GDPR"
}, - "compliance_requirements": [
- "GDPR",
- "IR35",
- "AWR"
], - "cultural_preferences": {
- "working_week_start": "Monday",
- "time_format": "24h"
}, - "is_active": true
}{- "id": "string",
- "localization_code": "string",
- "display_name": "string",
- "language_code": "string",
- "country_code": { },
- "region": { },
- "date_format": "string",
- "currency_code": "string",
- "currency_symbol": "string",
- "number_format": { },
- "legal_framework": { },
- "compliance_requirements": [
- "string"
], - "cultural_preferences": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "translation_count": 150
}| id required | string |
{- "id": "string",
- "localization_code": "string",
- "display_name": "string",
- "language_code": "string",
- "country_code": { },
- "region": { },
- "date_format": "string",
- "currency_code": "string",
- "currency_symbol": "string",
- "number_format": { },
- "legal_framework": { },
- "compliance_requirements": [
- "string"
], - "cultural_preferences": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "translation_count": 150
}| id required | string |
| display_name | string Display name for the localization |
| language_code | string Language code |
| country_code | string Country code |
| region | string Region |
| date_format | string Date format |
| currency_code | string Currency code |
| currency_symbol | string Currency symbol |
| number_format | object Number format configuration |
| legal_framework | object Legal framework configuration |
| compliance_requirements | Array of strings Compliance requirements |
| cultural_preferences | object Cultural preferences |
| is_active | boolean Whether the configuration is active |
{- "display_name": "string",
- "language_code": "string",
- "country_code": "string",
- "region": "string",
- "date_format": "string",
- "currency_code": "string",
- "currency_symbol": "string",
- "number_format": { },
- "legal_framework": { },
- "compliance_requirements": [
- "string"
], - "cultural_preferences": { },
- "is_active": true
}{- "id": "string",
- "localization_code": "string",
- "display_name": "string",
- "language_code": "string",
- "country_code": { },
- "region": { },
- "date_format": "string",
- "currency_code": "string",
- "currency_symbol": "string",
- "number_format": { },
- "legal_framework": { },
- "compliance_requirements": [
- "string"
], - "cultural_preferences": { },
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "translation_count": 150
}| localization_id | string Filter by localization ID |
| translation_key | string Filter by translation key |
| translation_quality | string Enum: "draft" "reviewed" "approved" "needs_review" Filter by translation quality |
| search | string Search in translated text |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "localization_id": "string",
- "translation_key": "string",
- "translation_context": { },
- "translated_text": "string",
- "alternative_translations": [
- "string"
], - "translation_quality": "string",
- "translator": { },
- "reviewer": { },
- "translation_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| localization_id required | string Localization configuration ID |
| translation_key required | string Translation key |
| translation_context | string Translation context |
| translated_text required | string Translated text |
| alternative_translations | Array of strings Default: [] Alternative translations |
| translation_quality | string Default: "reviewed" Enum: "draft" "reviewed" "approved" "needs_review" Translation quality |
| translator | string Translator name or ID |
| reviewer | string Reviewer name or ID |
| translation_version | string Default: "1.0.0" Translation version |
{- "localization_id": "123e4567-e89b-12d3-a456-426614174000",
- "translation_key": "common.button.submit",
- "translation_context": "Used for form submission buttons",
- "translated_text": "Submit",
- "alternative_translations": [
- "Send",
- "Confirm"
], - "translation_quality": "reviewed",
- "translator": "John Doe",
- "reviewer": "Jane Smith",
- "translation_version": "1.0.0"
}{- "id": "string",
- "localization_id": "string",
- "translation_key": "string",
- "translation_context": { },
- "translated_text": "string",
- "alternative_translations": [
- "string"
], - "translation_quality": "string",
- "translator": { },
- "reviewer": { },
- "translation_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
{- "id": "string",
- "localization_id": "string",
- "translation_key": "string",
- "translation_context": { },
- "translated_text": "string",
- "alternative_translations": [
- "string"
], - "translation_quality": "string",
- "translator": { },
- "reviewer": { },
- "translation_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string |
| translation_context | string Translation context |
| translated_text | string Translated text |
| alternative_translations | Array of strings Alternative translations |
| translation_quality | string Enum: "draft" "reviewed" "approved" "needs_review" Translation quality |
| translator | string Translator name or ID |
| reviewer | string Reviewer name or ID |
| translation_version | string Translation version |
{- "translation_context": "string",
- "translated_text": "string",
- "alternative_translations": [
- "string"
], - "translation_quality": "draft",
- "translator": "string",
- "reviewer": "string",
- "translation_version": "string"
}{- "id": "string",
- "localization_id": "string",
- "translation_key": "string",
- "translation_context": { },
- "translated_text": "string",
- "alternative_translations": [
- "string"
], - "translation_quality": "string",
- "translator": { },
- "reviewer": { },
- "translation_version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| component | string Filter by component name |
| is_initialized | boolean Filter by initialization status |
| status | string Example: status=completed Filter by status |
| page | number >= 1 Default: 1 Page number |
| limit | number [ 1 .. 100 ] Default: 20 Items per page |
{- "data": [
- {
- "id": "string",
- "component": "string",
- "is_initialized": true,
- "initialization_version": { },
- "initialization_date": { },
- "last_update_version": { },
- "last_update_date": { },
- "status": "string",
- "error_message": { },
- "total_items": 0,
- "processed_items": 0,
- "failed_items": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "progress_percentage": 75.5
}
], - "pagination": {
- "page": 1,
- "limit": 20,
- "total": 100,
- "total_pages": 5
}
}| component required | string |
{- "id": "string",
- "component": "string",
- "is_initialized": true,
- "initialization_version": { },
- "initialization_date": { },
- "last_update_version": { },
- "last_update_date": { },
- "status": "string",
- "error_message": { },
- "total_items": 0,
- "processed_items": 0,
- "failed_items": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "progress_percentage": 75.5
}| component required | string |
| is_initialized | boolean Whether the component is initialized |
| initialization_version | string Initialization version |
| last_update_version | string Last update version |
| last_update_date | string Last update date |
| status | string Status of the initialization |
| error_message | string Error message if any |
| total_items | number Total items to process |
| processed_items | number Processed items count |
| failed_items | number Failed items count |
{- "is_initialized": true,
- "initialization_version": "string",
- "last_update_version": "string",
- "last_update_date": "string",
- "status": "string",
- "error_message": "string",
- "total_items": 0,
- "processed_items": 0,
- "failed_items": 0
}{- "id": "string",
- "component": "string",
- "is_initialized": true,
- "initialization_version": { },
- "initialization_date": { },
- "last_update_version": { },
- "last_update_date": { },
- "status": "string",
- "error_message": { },
- "total_items": 0,
- "processed_items": 0,
- "failed_items": 0,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "progress_percentage": 75.5
}| tenant_ids required | Array of strings List of tenant IDs to update |
| entity_type required | string Type of entity to update |
required | object Update data to apply |
object Filter criteria for selective update | |
| dry_run | boolean Default: false Run in dry-run mode to preview changes |
| create_backup | boolean Default: true Create backup before update |
{- "tenant_ids": [
- "tenant-1",
- "tenant-2"
], - "entity_type": "leave_policy",
- "update_data": {
- "max_days": 30,
- "carry_forward": true
}, - "filter_criteria": { },
- "dry_run": false,
- "create_backup": true
}{- "operation_id": "string",
- "operation_type": "BULK_UPDATE",
- "status": "PENDING",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "total_tenants": 0,
- "successful_tenants": 0,
- "failed_tenants": 0,
- "details": { },
- "tenant_results": [
- { }
]
}| source_tenant_id required | string Source tenant ID |
| target_tenant_ids required | Array of strings Target tenant IDs |
| data_types required | Array of strings Data types to migrate |
object Default: {} Migration options | |
| start_date | string Start date for data migration |
| end_date | string End date for data migration |
{- "source_tenant_id": "tenant-source",
- "target_tenant_ids": [
- "tenant-target-1",
- "tenant-target-2"
], - "data_types": [
- "policies",
- "templates",
- "configurations"
], - "migration_options": {
- "overwrite_existing": false,
- "merge_data": true
}, - "start_date": "string",
- "end_date": "string"
}{- "operation_id": "string",
- "operation_type": "BULK_UPDATE",
- "status": "PENDING",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "total_tenants": 0,
- "successful_tenants": 0,
- "failed_tenants": 0,
- "details": { },
- "tenant_results": [
- { }
]
}| tenant_ids required | Array of strings Tenant IDs to cleanup |
| cleanup_types required | Array of strings Types of data to cleanup |
| retention_days | number [ 1 .. 365 ] Default: 90 Retention period in days |
| dry_run | boolean Default: false Run in dry-run mode |
| force | boolean Default: false Force cleanup even for active data |
{- "tenant_ids": [
- "tenant-1",
- "tenant-2"
], - "cleanup_types": [
- "old_logs",
- "archived_records",
- "temp_files"
], - "retention_days": 90,
- "dry_run": false,
- "force": false
}{- "operation_id": "string",
- "operation_type": "BULK_UPDATE",
- "status": "PENDING",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "total_tenants": 0,
- "successful_tenants": 0,
- "failed_tenants": 0,
- "details": { },
- "tenant_results": [
- { }
]
}[- {
- "tenant_id": "string",
- "tenant_name": "string",
- "status": "string",
- "database_status": "string",
- "last_activity": "2019-08-24T14:15:22Z",
- "employee_count": 0,
- "storage_used_mb": 0,
- "api_calls_today": 0,
- "warnings": [
- "string"
], - "errors": [
- "string"
], - "checked_at": "2019-08-24T14:15:22Z"
}
][- {
- "update_type": "MINIMUM_WAGE",
- "current_version": "string",
- "latest_version": "string",
- "update_available": true,
- "last_updated": "2019-08-24T14:15:22Z",
- "next_update_date": "2019-08-24T14:15:22Z",
- "description": "string",
- "changes": [
- "string"
], - "mandatory": true,
- "effective_date": "2019-08-24T14:15:22Z"
}
]| update_types required | Array of strings Items Enum: "MINIMUM_WAGE" "STATUTORY_RATES" "TAX_CODES" "PUBLIC_HOLIDAYS" "PENSION_RATES" "EMPLOYMENT_LAW" "HEALTH_SAFETY" Types of regulatory updates to apply |
| tenant_ids | Array of strings Apply to specific tenants only |
| scheduled_date | string Schedule update for future date |
| create_backup | boolean Default: true Create backup before applying |
| notify_tenants | boolean Default: true Send notifications to affected tenants |
{- "update_types": [
- "MINIMUM_WAGE",
- "STATUTORY_RATES"
], - "tenant_ids": [
- "string"
], - "scheduled_date": "string",
- "create_backup": true,
- "notify_tenants": true
}{- "operation_id": "string",
- "operation_type": "BULK_UPDATE",
- "status": "PENDING",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "total_tenants": 0,
- "successful_tenants": 0,
- "failed_tenants": 0,
- "details": { },
- "tenant_results": [
- { }
]
}[- {
- "id": "string",
- "update_type": "MINIMUM_WAGE",
- "version": "string",
- "applied_at": "2019-08-24T14:15:22Z",
- "applied_by": "string",
- "affected_tenants": 0,
- "status": "PENDING",
- "changes_applied": { },
- "rollback_available": true,
- "notes": "string"
}
]| update_id required | string Update history ID to rollback |
| reason | string Reason for rollback |
| tenant_ids | Array of strings Apply to specific tenants only |
{- "update_id": "update-123",
- "reason": "Incorrect values applied",
- "tenant_ids": [
- "string"
]
}{- "operation_id": "string",
- "operation_type": "BULK_UPDATE",
- "status": "PENDING",
- "started_at": "2019-08-24T14:15:22Z",
- "completed_at": "2019-08-24T14:15:22Z",
- "total_tenants": 0,
- "successful_tenants": 0,
- "failed_tenants": 0,
- "details": { },
- "tenant_results": [
- { }
]
}[- {
- "id": "string",
- "preset_type": "string",
- "name": "string",
- "description": "string",
- "is_active": true,
- "is_default": true,
- "configuration": { },
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| name | string Preset name |
| description | string Preset description |
| is_active | boolean Is active |
object Preset configuration | |
| version | string Version |
{- "name": "string",
- "description": "string",
- "is_active": true,
- "configuration": { },
- "version": "string"
}{- "id": "string",
- "preset_type": "string",
- "name": "string",
- "description": "string",
- "is_active": true,
- "is_default": true,
- "configuration": { },
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}[- {
- "id": "string",
- "preset_type": "string",
- "name": "string",
- "description": "string",
- "is_active": true,
- "is_default": true,
- "configuration": { },
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| name | string Preset name |
| description | string Preset description |
| is_active | boolean Is active |
object Preset configuration | |
| version | string Version |
{- "name": "string",
- "description": "string",
- "is_active": true,
- "configuration": { },
- "version": "string"
}{- "id": "string",
- "preset_type": "string",
- "name": "string",
- "description": "string",
- "is_active": true,
- "is_default": true,
- "configuration": { },
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}[- {
- "id": "string",
- "preset_type": "string",
- "name": "string",
- "description": "string",
- "is_active": true,
- "is_default": true,
- "configuration": { },
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]| name | string Preset name |
| description | string Preset description |
| is_active | boolean Is active |
object Preset configuration | |
| version | string Version |
{- "name": "string",
- "description": "string",
- "is_active": true,
- "configuration": { },
- "version": "string"
}{- "id": "string",
- "preset_type": "string",
- "name": "string",
- "description": "string",
- "is_active": true,
- "is_default": true,
- "configuration": { },
- "version": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| user_id | string Example: user_id=123e4567-e89b-12d3-a456-426614174000 Filter by user ID |
| action | string Enum: "CREATE" "UPDATE" "DELETE" "VIEW" "EXPORT" "LOGIN" "LOGOUT" "APPROVE" "REJECT" "ASSIGN" "UNASSIGN" Filter by action |
| resource_type | string Example: resource_type=Employee Filter by resource type |
| resource_id | string Example: resource_id=123e4567-e89b-12d3-a456-426614174000 Filter by resource ID |
| start_date | string Example: start_date=2024-01-01T00:00:00Z Start date for filtering |
| end_date | string Example: end_date=2024-12-31T23:59:59Z End date for filtering |
| page | number Default: 1 Example: page=1 Page number for pagination |
| limit | number Default: 20 Example: limit=20 Number of items per page |
[- {
- "id": "string",
- "tenant_id": "string",
- "user_id": "string",
- "user_email": "string",
- "action": "CREATE",
- "resource_type": "string",
- "resource_id": "string",
- "resource_name": "string",
- "old_values": { },
- "new_values": { },
- "changes": { },
- "metadata": { },
- "ip_address": "string",
- "user_agent": "string",
- "session_id": "string",
- "success": true,
- "error_message": "string",
- "performed_at": "2019-08-24T14:15:22Z"
}
]| resourceType required | string Example: Employee Type of resource |
| resourceId required | string <uuid> ID of the resource |
[- {
- "id": "string",
- "tenant_id": "string",
- "user_id": "string",
- "user_email": "string",
- "action": "CREATE",
- "resource_type": "string",
- "resource_id": "string",
- "resource_name": "string",
- "old_values": { },
- "new_values": { },
- "changes": { },
- "metadata": { },
- "ip_address": "string",
- "user_agent": "string",
- "session_id": "string",
- "success": true,
- "error_message": "string",
- "performed_at": "2019-08-24T14:15:22Z"
}
]| userId required | string <uuid> ID of the user |
| start_date required | string |
| end_date required | string |
[- {
- "id": "string",
- "tenant_id": "string",
- "user_id": "string",
- "user_email": "string",
- "action": "CREATE",
- "resource_type": "string",
- "resource_id": "string",
- "resource_name": "string",
- "old_values": { },
- "new_values": { },
- "changes": { },
- "metadata": { },
- "ip_address": "string",
- "user_agent": "string",
- "session_id": "string",
- "success": true,
- "error_message": "string",
- "performed_at": "2019-08-24T14:15:22Z"
}
]