Skip to Content
DocumentationBackendCompany Plan Configuration API

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-configurations

Response:

{ "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-configurations

Add 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-summary

Response:

{ "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-plan

Response:

{ "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-types

Response:

{ "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_status

Response:

{ "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}/details

Workflow 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-configurations

3. 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-summary

5. 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 options
  • plan_type - Insurance plan types
  • member_type - Member categories
  • plan_level - Plan levels
  • relation_code - Relationship codes
  • member_status - Member status
  • branch_name - Branch locations
  • site_name - Site locations
  • sub_group - Sub-group classifications
  • rank - Employee ranks
  • life_rider - Life insurance riders
  • limit - Coverage limits
  • room_board - Room and board options
  • class_number - Class numbers
  • class_description - Class descriptions
  • transaction_type - Transaction types
  • mbl - 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

  1. Company registers with Maxicare
  2. Views available Maxicare configurations
  3. Selects relevant configurations for their business
  4. Customizes plan names and descriptions
  5. Validates completeness

2. Plan Updates

  1. Company wants to add new plan options
  2. Views available configurations they haven’t selected
  3. Adds new configurations to their plan
  4. Updates existing configurations as needed

3. Configuration Management

  1. Company wants to temporarily disable a plan
  2. Updates the plan to set isActive: false
  3. 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