Skip to Content
DocumentationBackendAPI Endpoints (cURL)

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 token
  • COMPANY_UUID - Actual company UUID
  • CONFIG_UUID - Actual configuration UUID
  • BUTTON_UUID - Actual button UUID
  • HEADER_UUID - Actual header UUID
  • PERMISSION_UUID - Actual permission UUID
  • DATA_TABLE_UUID - Actual data table UUID
  • PLAN_UUID - Actual plan UUID
  • SOURCE_BUTTON_UUID - Source button UUID for cloning
  • SOURCE_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, ALL
  • uploadType - new_members, renewal, cancellation, etc.
  • page - Page number for pagination
  • pageSize - Number of items per page
  • insurerId - 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

  1. Get JWT Token - Login to get your JWT token
  2. Create Insurance Provider - Create a new insurance provider (if needed)
  3. Create Insurer Configurations - Set up basic configurations for your insurer
  4. Create File Upload Configuration - Define file upload formats and validation
  5. Create UI Buttons - Set up dynamic UI buttons with permissions
  6. 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