User Management APIs¶
The User Management APIs provide functionality for managing users, reporting, and user-related operations in the Stratpoint Timesheet Application. These APIs are designed for business-specific operations with complex filtering, reporting capabilities, and permission-based access control.
Authentication Headers¶
All user management endpoints require authentication:
Core User Operations¶
Get Users with Advanced Filtering¶
Retrieves users with complex business-specific filtering options.
/api/v2/users/index
Permission Required: Permission ID 26 or 162
Request Body:
{
"userId": 123,
"email": "user@stratpoint.com",
"firstname": "John",
"lastname": "Doe",
"employmentStatus": ["Employed", "Inactive"],
"selectCompany": "1,2,3",
"selectBusinessLine": "1,2",
"selectBusinessUnit": "1,2",
"selectEmploymentType": "1,2",
"selectUserPriority": "1,2",
"selectJobFamily": "1,2",
"selectSkillsetId": "1,2,3",
"selectIntercoBillPosition": "1,2",
"selectCapability": "1,2"
}
Employment Status Options:
- Employed: Active employees
- Resigned: Former employees
- Pre-Employment: Future employees
- Resigning: Employees in resignation process
- Inactive: Inactive employees
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "Data Successfully Retrieved"
},
"body": {
"data": [
{
"id": 123,
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@stratpoint.com",
"fullName": "Doe, John M.",
"roleName": "Senior Developer",
"companyBookingName": "Stratpoint Technologies Inc. (STI)",
"employmentTypeName": "Regular",
"businessUnitName": "Technology",
"startDate": "2023-01-15",
"endDate": null,
"isActive": 1,
"currentHourlyCost": "25.00",
"paygradeLevel": "P4",
"careerMentorName": "Smith, Jane A.",
"techMentorName": "Brown, Mike B.",
"skillStr": "PHP, JavaScript, React, MySQL",
"permission_ids": "1,2,3,57,72"
}
]
}
}
Get User Details¶
Retrieves detailed information about a specific user.
/api/v2/users/{id}
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "Data Successfully Retrieved"
},
"body": {
"data": {
"id": 123,
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@stratpoint.com",
"startDate": "2023-01-15",
"endDate": null,
"employmentType": "Regular",
"businessUnit": "Technology",
"approverUser_id": 456,
"techMentorUserId": 789,
"currentHourlyCost": "25.00",
"paygradeLevel": "P4",
"designation_id": 12,
"job_family_id": 5,
"capability_id": 3,
"isActive": 1,
"isCadet": 0,
"isSeniorLeader": 0,
"defaultTimelogLocation": "Office"
}
}
}
Get Current User Profile¶
Retrieves the authenticated user's profile information.
/api/v2/users/getProfile
Permission Required: Permission ID 160
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "Data Successfully Retrieved"
},
"body": {
"data": {
"id": 123,
"email": "john.doe@stratpoint.com",
"startDate": "2023-01-15",
"endDate": null,
"regularizationDate": "2023-07-15",
"roleName": "Senior Developer",
"companyBookingName": "Stratpoint Technologies Inc. (STI)",
"employmentTypeName": "Regular",
"businessUnitName": "Technology",
"fullName": "Doe, John M.",
"careerMentorName": "Smith, Jane A.",
"techMentorName": "Brown, Mike B.",
"jobCategoryName": "ENG - Senior Developer IV",
"skillStr": "PHP, JavaScript, React, MySQL"
}
}
}
Activate/Deactivate User Access¶
Controls user access to the system.
/api/v2/users/activateUserAccess/{userId}/{newValue}
Permission Required: Permission ID 134
Parameters:
- userId: User ID (required)
- newValue: 1 for active, 0 for inactive (required)
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "User access updated successfully"
},
"body": {
"data": {
"id": 123,
"isActive": 1,
"updated_at": "2024-01-15T10:30:00Z"
}
}
}
Utilization and Reporting APIs¶
Get Utilization Report by Month¶
Retrieves monthly utilization report for users.
/api/v2/users/getUtilizationReportByMonth
Request Body:
{
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"userId": 123,
"businessUnitId": 1,
"projectId": 456
}
Get Utilization Report by Week¶
Retrieves weekly utilization report for a specific user.
/api/v2/users/getUtilizationReportByWeek/{userId}/{yearMonth}/{reportTypes}/{cadetInclusion?}
Parameters:
- userId: User ID (required)
- yearMonth: Year and month in YYYY-MM format (required)
- reportTypes: Report type filter (required)
- cadetInclusion: Include cadet data (optional)
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "Data Successfully Retrieved"
},
"body": {
"data": {
"weeklyData": [
{
"week": "2024-01-01",
"totalHours": 40.0,
"targetHours": 40.0,
"utilization": 100.0,
"projectBreakdown": [
{
"projectId": 456,
"projectName": "Client Portal Development",
"hours": 32.0
}
]
}
]
}
}
}
Get Project Utilization Report¶
Retrieves project utilization data.
/api/v2/users/getProjectUtilizationReport
Get Project Utilization Report Filters¶
Retrieves filter options for project utilization reports.
/api/v2/users/project-utilization-report-filters
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "Data Successfully Retrieved"
},
"body": {
"data": {
"users": [
{
"id": 123,
"name": "Doe, John M.",
"isActive": 1
}
],
"projects": [
{
"id": 456,
"name": "Client Portal Development",
"isActive": 1
}
],
"businessUnits": [
{
"id": 1,
"name": "Technology"
}
]
}
}
}
Advanced Reporting APIs¶
Get Timelog Deficiency Report¶
Retrieves report of users with timelog deficiencies.
/api/v2/users/timelogDeficiencyReport
Get Deficiency Snapshot Report¶
Retrieves snapshot of deficiency data.
/api/v2/users/getDeficiencySnapshotReport
Get Deficiency Snapshot Report by Approver¶
Retrieves deficiency snapshot filtered by approver.
/api/v2/users/getDeficiencySnapshotReportByApprover
Create Deficiency Snapshot by Approver¶
Creates deficiency snapshot for specific approver.
/api/v2/users/createDeficiencySnapshotByApprover
Get Timelog Excess Report¶
Retrieves report of users with excess timelog hours.
/api/v2/users/timelogExcessReport
All Detailed Task Report¶
Retrieves comprehensive task report for all users.
/api/v2/users/allDetailedTaskReport
Timeline Report¶
Retrieves timeline-based user activity report.
/api/v2/users/timelineReport
Financial and Billing Reports¶
Get Inter-Company Billing Report¶
Retrieves inter-company billing data.
/api/v2/users/getReportInterCompanyBilling
Get Intra-Company Billing Report¶
Retrieves intra-company billing data.
/api/v2/users/getReportIntraCompanyBilling
Get Project Company Booking Reports¶
Detailed and summary reports for project company bookings.
/api/v2/users/getReportByProjectCompanyBookingDetailed
/api/v2/users/getReportByProjectCompanyBookingSummary
User Management Operations¶
Update User Permissions¶
Updates permissions for a specific user.
/api/v2/users/updatepermissions/{id}
Request Body:
Save User Tags¶
Saves tags for user categorization.
/api/v2/users/saveTags
Send Reset Password¶
Sends password reset email to user.
/api/v2/users/sendResetPassword
Get Head Count Reports¶
Retrieves head count data with various filtering options.
/api/v2/users/getHeadCount/{type}
Types: - Various head count report types available
Career Mentors and Mentees¶
Retrieves mentorship relationship data.
/api/v2/users/career_mentors_mentees
Response:
{
"header": {
"status": 200,
"title": "User",
"description": "Data Successfully Retrieved"
},
"body": {
"data": {
"mentors": [
{
"id": 999,
"name": "Smith, Jane A.",
"mentees": [
{
"id": 123,
"name": "Doe, John M."
}
]
}
]
}
}
}
Cost and Financial Management¶
Get User Hourly Cost¶
Retrieves hourly cost information for users.
/api/v2/users/getUserHourlyCost
Extract User Hourly Cost History¶
Retrieves historical cost data for users.
/api/v2/users/extractUserHourlyCostHistory
Save Mass Change Cost Positions¶
Updates cost positions for multiple users.
/api/v2/users/saveMassChangeCostPositions
NetSuite Integration¶
Save NetSuite Fields¶
Updates NetSuite-related user fields.
/api/v2/users/saveNetSuiteFields
Export NetSuite Inter-Company Invoice Vendor Bill¶
Exports NetSuite inter-company data.
/api/v2/users/exportNetSuiteIntercoInvoiceVendorBill
Export NetSuite Intra-Company JE for Inter-Company¶
Exports NetSuite intra-company journal entries.
/api/v2/users/exportNetSuiteIntracoJEForInterco
Export Operations¶
Export All Detailed Task Report¶
Exports comprehensive task reports in various formats.
/api/v2/users/exportAllDetailedTaskReport/{extension}
Parameters:
- extension: File format (csv, xlsx, pdf)
Export Head Count Reports¶
Various head count export operations.
/api/v2/users/exportHeadCountPerUser/{type?}
/api/v2/users/exportHeadCountPerUserLocationAndAssignment/{type?}
Email and Notification Operations¶
Email Deficiencies¶
Sends deficiency notifications to users.
/api/v2/users/emailDeficiencies
Manually Send Deficiency Memo¶
Sends manual deficiency memo to specific users.
/api/v2/users/manuallySendDeficiencyMemo
Specialized Reports¶
Bench Ageing Report¶
Retrieves bench ageing data for resource management.
/api/v2/users/benchAgeingReport
Utilization Dashboard¶
Retrieves utilization dashboard data.
/api/v2/users/getUtilizationDashboard
Import Mass Update¶
Performs bulk user updates via import.
/api/v2/users/import_mass_update
Standard Resource Operations¶
The User resource also supports standard CRUD operations:
/api/v2/users
/api/v2/users
/api/v2/users/{id}
/api/v2/users/{id}
/api/v2/users/{id}
Business Rules and Constraints¶
Employment Status Logic¶
Employment status filtering uses complex business logic:
- Employed: isActive = 1 AND current date between start/end dates
- Resigned: endDate is not null AND endDate < current_date
- Inactive: isActive = 0 AND current date between start/end dates
- Pre-Employment: startDate > current_date
- Resigning: Complex query involving resignation processes
Permission Requirements¶
Basic Operations: - Permission 26: Can view all users - Permission 162: Alternative user viewing permission - Permission 160: Can view user profile - Permission 134: Can activate/deactivate user access
Data Structure Notes¶
- Permission Storage: Permissions stored as comma-separated string in
permission_ids - Hourly Cost Encryption: User hourly costs are encrypted using EncryptableTrait
- Employment Tracking: Complex employment history via UserEmployment model
- Mentorship: Both career mentors (
approverUser_id) and tech mentors (techMentorUserId) - Business Units: Users linked to business units for organizational structure
- Capabilities: Users assigned to capability groups for skill tracking
Error Handling¶
Common Error Responses¶
Access Denied:
Validation Error:
{
"header": {
"status": 412,
"title": "User",
"description": "Validation error encountered"
},
"body": {
"errors": {
"email": ["The email field is required"],
"employmentStatus": ["Invalid employment status values"]
}
}
}
User Not Found:
Key Implementation Notes¶
- Business-Centric Design: APIs focused on business operations rather than generic CRUD
- Complex Filtering: Advanced filtering with comma-separated integer arrays and employment status logic
- Reporting Focus: Heavy emphasis on utilization and deficiency reporting
- Financial Integration: Deep integration with NetSuite and cost management
- Permission-Based Access: Granular permissions control access to different operations
- Email Integration: Built-in email functionality for deficiency notifications
- Export Capabilities: Multiple export formats for various report types
- Mentorship Support: Dual mentorship system (career and technical mentors)
This User Management API is designed for enterprise human resource management with comprehensive reporting, cost tracking, and business rule enforcement.