Dynamic System API Endpoints - cURL Format
This document contains all the API endpoints for the dynamic insurer configuration system in cURL format, ready to be used in Postman or any HTTP client.
🏢 Insurance Provider Management Endpoints
1. Create Insurance Provider
curl --location 'http://localhost:8000/api/v1/private/howden/insurance-provider/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"name": "New Insurance Provider",
"address": "123 Insurance Street, City, Country",
"number": "+1-234-567-8900"
}'2. Get All Insurance Providers
curl --location 'http://localhost:8000/api/v1/private/howden/insurance-provider/' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'3. Get Insurance Provider by UUID
curl --location 'http://localhost:8000/api/v1/private/howden/insurance-provider/PROVIDER_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'4. Get Insurance Provider by Name
curl --location 'http://localhost:8000/api/v1/private/howden/insurance-provider/name/PROVIDER_NAME' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'5. Update Insurance Provider
curl --location --request PUT 'http://localhost:8000/api/v1/private/howden/insurance-provider/PROVIDER_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"name": "Updated Insurance Provider Name",
"address": "456 Updated Street, City, Country",
"number": "+1-234-567-8901"
}'6. Delete Insurance Provider
curl --location --request DELETE 'http://localhost:8000/api/v1/private/howden/insurance-provider/PROVIDER_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'🔗 Dynamic Insurer Configuration Endpoints
7. Create Insurer Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/insurer/maxicare/configurations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configType": "civil_status",
"configName": "Single",
"configValue": "Single",
"configMetadata": {
"description": "Single marital status"
},
"sortOrder": 1
}'8. Get Insurer Configurations
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/insurer/maxicare/configurations' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'9. Update Insurer Configuration
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/insurer/configurations/CONFIG_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configName": "Updated Single",
"configValue": "Updated Single",
"isActive": true
}'10. Delete Insurer Configuration
curl --location --request DELETE 'http://localhost:8000/api/v1/private/dynamic/insurer/configurations/CONFIG_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'11. Get Insurer Configuration Schema
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/insurer/maxicare/schema' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'12. Bulk Create Insurer Configurations
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/insurer/maxicare/configurations/bulk' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configurations": [
{
"configType": "civil_status",
"configName": "Single",
"configValue": "Single",
"sortOrder": 1
},
{
"configType": "civil_status",
"configName": "Married",
"configValue": "Married",
"sortOrder": 2
}
]
}'🏢 Company Plan Configuration Endpoints
13. Get Available Insurer Configurations for Company
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/available-configurations' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'14. Get Company Plan Configurations
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/plan-configurations' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'15. Add Configuration to Company Plan
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/add-configuration' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configUuid": "CONFIG_UUID",
"planName": "Single Employee Plan",
"planDescription": "Plan for single employees",
"planMetadata": {
"premium": 1000,
"coverage": "basic"
},
"sortOrder": 1
}'16. Update Company Plan Configuration
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/company-plan/plan-configuration/PLAN_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"planName": "Updated Plan Name",
"planDescription": "Updated description",
"planMetadata": {
"premium": 1200,
"coverage": "enhanced"
},
"sortOrder": 2,
"isActive": true
}'17. Remove Configuration from Company Plan
curl --location --request DELETE 'http://localhost:8000/api/v1/private/dynamic/company-plan/plan-configuration/PLAN_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'18. Bulk Add Configurations to Company Plan
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/bulk-add-configurations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configurations": [
{
"configUuid": "CONFIG_UUID_1",
"planName": "Single Plan",
"planDescription": "For single employees"
},
{
"configUuid": "CONFIG_UUID_2",
"planName": "Married Plan",
"planDescription": "For married employees"
}
]
}'19. Get Company Plan Summary
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/plan-summary' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'20. Validate Company Plan
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/validate-plan' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'21. Get Available Configuration Types
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/configuration-types' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'22. Get Configuration Options for Specific Type
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/configuration-options/civil_status' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'23. Toggle Configuration Selection
curl --location 'http://localhost:8000/api/v1/private/dynamic/company-plan/company/COMPANY_UUID/toggle-configuration' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configUuid": "CONFIG_UUID",
"planName": "Custom Plan Name",
"planDescription": "Custom plan description",
"planMetadata": {
"customField": "value"
}
}'📁 File Upload Configuration Endpoints
24. Create File Upload Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/company/COMPANY_UUID/file-upload-configurations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"insurerId": "maxicare",
"uploadType": "new_members",
"configName": "Standard New Members Upload",
"description": "Standard configuration for new member uploads",
"templateSettings": {
"sheetIndex": 1,
"range": 1,
"headerRow": 2,
"dataStartRow": 3,
"maxRows": 1000
},
"validationRules": {
"requiredFields": ["EmpNo", "LastName", "FirstName", "Email"],
"uniqueFields": ["EmpNo", "Email"],
"customValidations": [
{
"field": "Email",
"rule": "email_format",
"message": "Invalid email format"
}
]
},
"headers": [
{
"headerName": "EmpNo",
"displayName": "Employee Number",
"dataType": "string",
"isRequired": true,
"isUnique": true,
"columnIndex": 0,
"validationRules": {
"minLength": 3,
"maxLength": 20,
"pattern": "^[A-Z0-9]+$"
},
"description": "Unique employee identifier"
},
{
"headerName": "LastName",
"displayName": "Last Name",
"dataType": "string",
"isRequired": true,
"isUnique": false,
"columnIndex": 1,
"validationRules": {
"minLength": 2,
"maxLength": 50
},
"description": "Employee last name"
}
]
}'25. Get Company File Upload Configurations
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/company/COMPANY_UUID/file-upload-configurations?uploadType=new_members' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'26. Get File Upload Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/file-upload-configuration/CONFIG_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'27. Update File Upload Configuration
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/file-upload/file-upload-configuration/CONFIG_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"configName": "Updated Configuration Name",
"description": "Updated description",
"isActive": true,
"isDefault": false,
"sortOrder": 1
}'28. Add Header to Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/file-upload-configuration/CONFIG_UUID/headers' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"headerName": "Department",
"displayName": "Department",
"dataType": "string",
"isRequired": false,
"isUnique": false,
"columnIndex": 6,
"validationRules": {
"allowedValues": ["IT", "HR", "Finance", "Operations"]
},
"description": "Employee department"
}'29. Update Header Configuration
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/file-upload/header/HEADER_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"displayName": "Updated Display Name",
"isRequired": true,
"validationRules": {
"minLength": 5,
"maxLength": 100
}
}'30. Remove Header from Configuration
curl --location --request DELETE 'http://localhost:8000/api/v1/private/dynamic/file-upload/header/HEADER_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'31. Get Available Upload Types
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/company/COMPANY_UUID/available-upload-types' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'32. Generate Excel Template
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/file-upload-configuration/CONFIG_UUID/excel-template' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'33. Validate File Against Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/file-upload-configuration/CONFIG_UUID/validate-file' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"fileData": [
{
"EmpNo": "EMP001",
"LastName": "Doe",
"FirstName": "John",
"Email": "john.doe@company.com",
"BirthDate": "1990-01-01",
"Salary": 50000
}
],
"headers": ["EmpNo", "LastName", "FirstName", "Email", "BirthDate", "Salary"]
}'34. Upload File with Dynamic Validation
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/file-upload-configuration/CONFIG_UUID/upload-file' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"fileData": [
{
"EmpNo": "EMP001",
"LastName": "Doe",
"FirstName": "John",
"Email": "john.doe@company.com",
"BirthDate": "1990-01-01",
"Salary": 50000
}
],
"headers": ["EmpNo", "LastName", "FirstName", "Email", "BirthDate", "Salary"]
}'35. Get Configuration Statistics
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/company/COMPANY_UUID/file-upload-statistics' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'36. Clone Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/file-upload/company/COMPANY_UUID/clone-configuration' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"sourceConfigUuid": "SOURCE_CONFIG_UUID",
"newConfigName": "Cloned Configuration",
"newDescription": "Configuration cloned from another company"
}'🎛️ UI Button Configuration Endpoints
37. Create UI Button Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/insurer/maxicare/ui-buttons' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"buttonKey": "upload_new_members",
"buttonLabel": "Upload New Members",
"description": "Upload new member data from Excel file",
"buttonType": "upload",
"uploadType": "new_members",
"icon": "user-plus",
"color": "primary",
"size": "medium",
"buttonConfig": {
"apiEndpoint": "/api/v1/private/dynamic/file-upload/file-upload-configuration/{configUuid}/upload-file",
"method": "POST",
"requiresFile": true,
"fileTypes": [".xlsx", ".xls"],
"maxFileSize": 10485760,
"confirmationMessage": "Are you sure you want to upload new members?",
"successMessage": "New members uploaded successfully",
"errorMessage": "Failed to upload new members",
"showProgress": true,
"allowMultipleFiles": false
},
"uiConfig": {
"position": 1,
"category": "member_management",
"isVisible": true,
"isEnabled": true,
"tooltip": "Upload new member data from Excel file",
"modal": {
"title": "Upload New Members",
"size": "large",
"showFooter": true
}
},
"permissions": [
{
"role": "HR",
"permissionType": "upload",
"isAllowed": true,
"description": "HR can upload new members"
},
{
"role": "PRINCIPAL",
"permissionType": "upload",
"isAllowed": true,
"description": "Principal can upload new members"
},
{
"role": "BROKER",
"permissionType": "view",
"isAllowed": true,
"description": "Broker can view upload button"
}
]
}'38. Get Insurer UI Button Configurations
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/insurer/maxicare/ui-buttons?userRole=HR' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'39. Get Company UI Buttons (Filtered by Role)
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/company/COMPANY_UUID/ui-buttons?userRole=HR' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'40. Get UI Button Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/ui-button/BUTTON_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'41. Update UI Button Configuration
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/ui-button/BUTTON_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"buttonLabel": "Updated Button Label",
"description": "Updated description",
"isActive": true,
"isDefault": false,
"sortOrder": 1
}'42. Add Permission to Button
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/ui-button/BUTTON_UUID/permissions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"role": "BROKER",
"permissionType": "view",
"isAllowed": true,
"conditions": {
"companyTypes": ["corporate"],
"userLevels": ["senior"]
},
"description": "Senior brokers can view this button for corporate clients"
}'43. Update Button Permission
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/button-permission/PERMISSION_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"isAllowed": false,
"description": "Temporarily disabled for this role"
}'44. Remove Button Permission
curl --location --request DELETE 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/button-permission/PERMISSION_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'45. Validate File Upload Against Button
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/ui-button/BUTTON_UUID/validate-upload' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"fileData": [
{
"EmpNo": "EMP001",
"LastName": "Doe",
"FirstName": "John",
"Email": "john.doe@company.com",
"BirthDate": "1990-01-01"
}
],
"headers": ["EmpNo", "LastName", "FirstName", "Email", "BirthDate"]
}'46. Get Button Statistics
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/insurer/maxicare/button-statistics' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'47. Clone Button Configuration
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/ui-button/SOURCE_BUTTON_UUID/clone' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"targetInsurerId": "icare",
"newButtonKey": "upload_new_members_icare",
"newButtonLabel": "Upload New Members (Icare)"
}'48. Get Available Button Types
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/button-types' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'49. Get Available Roles
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/roles' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'50. Get Button Configuration Template
curl --location 'http://localhost:8000/api/v1/private/dynamic/ui-buttons/button-template/upload_new_members' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'📝 Data Table Endpoints
51. Get Data Table Entries
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/company/COMPANY_UUID/data-table?insurerId=maxicare&page=1&pageSize=10' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'52. Create Data Table Entry
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/company/COMPANY_UUID/data-table' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"insurerId": "maxicare",
"memberData": {
"EmpNo": "EMP001",
"LastName": "Doe",
"FirstName": "John",
"Email": "john.doe@company.com",
"BirthDate": "1990-01-01",
"Salary": 50000
},
"memberStatus": "Active"
}'53. Update Data Table Entry
curl --location --request PUT 'http://localhost:8000/api/v1/private/dynamic/insurer/data-table/DATA_TABLE_UUID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"memberData": {
"EmpNo": "EMP001",
"LastName": "Doe Updated",
"FirstName": "John Updated",
"Email": "john.doe.updated@company.com"
},
"memberStatus": "Active"
}'54. Delete Data Table Entry
curl --location --request DELETE 'http://localhost:8000/api/v1/private/dynamic/insurer/data-table/DATA_TABLE_UUID' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'55. Bulk Upload Data Table Entries
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/company/COMPANY_UUID/insurer/maxicare/data-table/bulk-upload' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--data '{
"entries": [
{
"EmpNo": "EMP001",
"LastName": "Doe",
"FirstName": "John",
"Email": "john.doe@company.com"
},
{
"EmpNo": "EMP002",
"LastName": "Smith",
"FirstName": "Jane",
"Email": "jane.smith@company.com"
}
]
}'56. Get Data Table Statistics
curl --location 'http://localhost:8000/api/v1/private/dynamic/insurer/company/COMPANY_UUID/data-table/statistics?insurerId=maxicare' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN'🔧 Important Notes for Postman
Replace Placeholders:
YOUR_JWT_TOKEN- Your actual JWT tokenCOMPANY_UUID- Actual company UUIDCONFIG_UUID- Actual configuration UUIDBUTTON_UUID- Actual button UUIDHEADER_UUID- Actual header UUIDPERMISSION_UUID- Actual permission UUIDDATA_TABLE_UUID- Actual data table UUIDPLAN_UUID- Actual plan UUIDSOURCE_BUTTON_UUID- Source button UUID for cloningSOURCE_CONFIG_UUID- Source config UUID for cloning
Base URL:
Change http://localhost:8000 to your actual server URL
Headers:
All requests require the Authorization: Bearer YOUR_JWT_TOKEN header
Content-Type:
Use application/json for POST/PUT requests with body data
UUIDs:
You’ll get UUIDs from previous API calls (create operations return UUIDs)
Query Parameters:
userRole- HR, BROKER, PRINCIPAL, ADMIN, ALLuploadType- new_members, renewal, cancellation, etc.page- Page number for paginationpageSize- Number of items per pageinsurerId- Insurance provider ID
Common Response Format:
{
"success": true,
"data": { ... },
"message": "Operation completed successfully"
}Error Response Format:
{
"success": false,
"message": "Error description",
"errors": [ ... ]
}🚀 Quick Start Guide
- Get JWT Token - Login to get your JWT token
- Create Insurance Provider - Create a new insurance provider (if needed)
- Create Insurer Configurations - Set up basic configurations for your insurer
- Create File Upload Configuration - Define file upload formats and validation
- Create UI Buttons - Set up dynamic UI buttons with permissions
- Test with Company - Use company-specific endpoints to test the system
All 56 curl commands are ready to paste directly into Postman! 🎯
Last updated on