Skip to content

Business Class Setup

A business class (also called a Line of Business or LOB) is the top-level product category in Workbench — for example, Property, Casualty, or Professional Lines. Each business class is a JSON file in the client config repository.

File location and naming

config/{client}/business-class/{business-class-name}.json

In the base repository, filenames use the descriptive long form (e.g. property-df.json, marine-cargo-mga.json) while typeCode uses the short form (e.g. "PD", "MC"). The filename does not have to match typeCode — it is referenced by typeCode internally. Use a consistent naming convention for your client and confirm the loader's expectations with your delivery lead if in doubt.

Required fields

Based on the verified base repository files:

Field Description
typeCode Internal short code — unique, immutable. Used everywhere to reference the business class (in action filenames, constants, etc.)
name Display label shown to users in the UI
enabledPlacingTypes List of placing type objects available for this class
products Product codes available under this class
duaEnabled true if this class participates in DUA. Set to false for pure Open Market classes

Optional fields

Field Description
sendPasEnabled true to enable PAS (Policy Administration System) integration — required for MGA/DEC placing types
configurations Per-class configuration map (e.g. SECTION_LEVEL_PREMIUMS, BORDEREAU_MAPPING_SUFFICIENT_COVERAGES)
classConstantLists Restricts which business constant values are visible for this LOB. Each entry has a type (e.g. sub_class_1, fac_cover, perils) and a list of constants: [{code}]
limitOfIndemnities LOI codes available for this LOB ([{loiCode}])
retentions Retention codes available for this LOB ([{retentionCode}])
coverages Asset coverage definitions used by asset management and DUA ([{coverageItemCode, coverageValueType, coveragePurpose, coverageGroup, displaySequence, ...}])
facilitySetupVisible Used on coverholder (DUA-CH) classes; typically false

Minimal example

{
  "typeCode": "PD",
  "name": "Open Market Property",
  "duaEnabled": false,
  "enabledPlacingTypes": [
    { "placingType": "OPEN_MARKET" },
    { "placingType": "FAC_RI" }
  ],
  "products": [
    { "productCode": "PD" },
    { "productCode": "PD601" }
  ],
  "limitOfIndemnities": [
    { "loiCode": "LOI_PD" }
  ],
  "retentions": [
    { "retentionCode": "DEDUCTIBLE" },
    { "retentionCode": "EXCESS" }
  ]
}

Adding a user role

Each business class requires a corresponding role so that users can create risks of that class. Without this role, the business class will not appear in the user's permitted classes.

Role naming convention: {client}/{businessClassCode}/{environment}

Example for a PROPERTY class in UAT: acme/property/uat

Role files live at:

config/{client}/role/{environment}/{environment}-roles.json

In local development, insert the role directly into the underwriting.user_roles table.

Warning

Duplicate roles cause the business class to appear twice in the UI. Check for existing entries before inserting.

Verifying the business class

After the Send Partner Portal deployment has completed and Workbench has picked up the config on its next periodic refresh, verify the class is visible in the UI by:

  • Opening the new-risk flow and confirming the business class appears in the class selector for a user with the correct role
  • Using the Underwriting service's Swagger UI to inspect the business class endpoints (consult your delivery lead for the exact paths on your active core platform version)

If the class loads but is not visible in the UI, check that the signed-in user has the correct role mapping for the class and environment.

Next steps