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¶
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:
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¶
- Configure Placing Types & Sub-Types
- Define Product Hierarchy
- Set up Class Constants, LOI & Retentions