Company Plan Configuration API
Overview
This API allows companies to configure their insurance plans based on their insurer’s available configurations. Companies can select from their insurer’s predefined options and customize them for their specific needs.
Key Features
- ✅ View available insurer configurations
- ✅ Select and customize plan configurations
- ✅ Bulk operations for plan management
- ✅ Plan validation and recommendations
- ✅ Configuration type management
- ✅ Toggle configuration selections
API Endpoints
Company Plan Management
Get Available Insurer Configurations
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/available-configurationsResponse:
{
"success": true,
"data": {
"insurerId": "maxicare",
"insurerName": "Maxicare",
"configurations": {
"civil_status": [
{
"uuid": "config-uuid-1",
"name": "Single",
"value": "Single",
"metadata": {},
"sortOrder": 1,
"isActive": true
}
],
"plan_type": [
{
"uuid": "config-uuid-2",
"name": "Individual",
"value": "Individual",
"metadata": {},
"sortOrder": 1,
"isActive": true
}
]
}
}
}Get Company’s Current Plan Configurations
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/plan-configurationsAdd Configuration to Company Plan
POST /api/v1/private/dynamic/company-plan/company/{companyUuid}/add-configuration
Content-Type: application/json
{
"configUuid": "config-uuid-1",
"planName": "Single Employee Plan",
"planDescription": "Plan for single employees",
"planMetadata": {
"premium": 1000,
"coverage": "basic"
},
"sortOrder": 1
}Update Company Plan Configuration
PUT /api/v1/private/dynamic/company-plan/plan-configuration/{planUuid}
Content-Type: application/json
{
"planName": "Updated Plan Name",
"planDescription": "Updated description",
"planMetadata": {
"premium": 1200,
"coverage": "enhanced"
},
"sortOrder": 2,
"isActive": true
}Remove Configuration from Company Plan
DELETE /api/v1/private/dynamic/company-plan/plan-configuration/{planUuid}Bulk Add Configurations to Company Plan
POST /api/v1/private/dynamic/company-plan/company/{companyUuid}/bulk-add-configurations
Content-Type: application/json
{
"configurations": [
{
"configUuid": "config-uuid-1",
"planName": "Single Plan",
"planDescription": "For single employees"
},
{
"configUuid": "config-uuid-2",
"planName": "Married Plan",
"planDescription": "For married employees"
}
]
}Plan Analysis and Management
Get Company Plan Summary
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/plan-summaryResponse:
{
"success": true,
"data": {
"insurer": {
"id": "maxicare",
"name": "Maxicare"
},
"availableConfigurations": [
{
"type": "civil_status",
"count": 4,
"options": [...]
}
],
"currentPlan": [
{
"type": "civil_status",
"count": 2,
"plans": [...]
}
],
"statistics": {
"totalAvailableConfigs": 20,
"totalCurrentPlans": 8,
"coveragePercentage": 40
}
}
}Validate Company Plan
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/validate-planResponse:
{
"success": true,
"data": {
"isValid": true,
"warnings": [
"Low plan coverage: 40%"
],
"errors": [],
"recommendations": [
"Consider adding more plan configurations"
]
}
}Get Available Configuration Types
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/configuration-typesResponse:
{
"success": true,
"data": {
"configTypes": [
{
"type": "civil_status",
"displayName": "Civil Status",
"availableCount": 4,
"selectedCount": 2,
"isConfigured": true
}
],
"totalTypes": 8,
"configuredTypes": 3
}
}Get Configuration Options for Specific Type
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/configuration-options/civil_statusResponse:
{
"success": true,
"data": {
"configType": "civil_status",
"availableOptions": [
{
"uuid": "config-uuid-1",
"name": "Single",
"value": "Single",
"isSelected": true,
"selectedPlan": {
"planUuid": "plan-uuid-1",
"planName": "Single Employee Plan"
}
}
],
"totalAvailable": 4,
"totalSelected": 2
}
}Toggle Configuration Selection
POST /api/v1/private/dynamic/company-plan/company/{companyUuid}/toggle-configuration
Content-Type: application/json
{
"configUuid": "config-uuid-1",
"planName": "Custom Plan Name",
"planDescription": "Custom plan description",
"planMetadata": {
"customField": "value"
}
"policyUuid": "policy-uuid-1"
}Get Plan Configuration Details
GET /api/v1/private/dynamic/company-plan/plan-configuration/{planUuid}/detailsWorkflow Example
1. Company Registration with Insurer
When a company registers with an insurer (e.g., Maxicare), they get access to all of that insurer’s configurations.
2. View Available Options
# Get all available configurations from Maxicare
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/available-configurations3. Select Plan Configurations
# Add civil status options
POST /api/v1/private/dynamic/company-plan/company/{companyUuid}/add-configuration
{
"configUuid": "single-config-uuid",
"planName": "Single Employee Plan",
"planDescription": "Plan for single employees"
}
# Add plan types
POST /api/v1/private/dynamic/company-plan/company/{companyUuid}/add-configuration
{
"configUuid": "individual-config-uuid",
"planName": "Individual Plan",
"planDescription": "Individual insurance plan"
}4. Validate and Review
# Check plan completeness
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/validate-plan
# Get summary
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/plan-summary5. Manage Plans
# View current plans
GET /api/v1/private/dynamic/company-plan/company/{companyUuid}/plan-configurations
# Update a plan
PUT /api/v1/private/dynamic/company-plan/plan-configuration/{planUuid}
{
"planName": "Updated Plan Name",
"planDescription": "Updated description"
}Configuration Types
Standard Types
civil_status- Marital status optionsplan_type- Insurance plan typesmember_type- Member categoriesplan_level- Plan levelsrelation_code- Relationship codesmember_status- Member statusbranch_name- Branch locationssite_name- Site locationssub_group- Sub-group classificationsrank- Employee rankslife_rider- Life insurance riderslimit- Coverage limitsroom_board- Room and board optionsclass_number- Class numbersclass_description- Class descriptionstransaction_type- Transaction typesmbl- Maximum Benefit Limits
Benefits
For Companies
- ✅ Self-Service Configuration - Configure plans without developer intervention
- ✅ Flexible Selection - Choose only the configurations they need
- ✅ Custom Naming - Use their own plan names and descriptions
- ✅ Validation - Get recommendations for complete plan setup
- ✅ Easy Management - Toggle configurations on/off as needed
For Insurers
- ✅ Standardized Options - Provide consistent configuration options
- ✅ Easy Updates - Update configurations without affecting companies
- ✅ Analytics - See which configurations are most popular
- ✅ Scalability - Support unlimited companies with same configuration
For System
- ✅ Dynamic - No hardcoded plan structures
- ✅ Scalable - Easy to add new insurers and configurations
- ✅ Maintainable - Single system handles all insurers
- ✅ Flexible - Companies can customize as needed
Example Use Cases
1. New Company Setup
- Company registers with Maxicare
- Views available Maxicare configurations
- Selects relevant configurations for their business
- Customizes plan names and descriptions
- Validates completeness
2. Plan Updates
- Company wants to add new plan options
- Views available configurations they haven’t selected
- Adds new configurations to their plan
- Updates existing configurations as needed
3. Configuration Management
- Company wants to temporarily disable a plan
- Updates the plan to set
isActive: false - Later re-enables by setting
isActive: true
This system provides complete flexibility for companies to configure their insurance plans based on their insurer’s available options while maintaining data integrity and validation.
Last updated on