Skip to main content

Exclusions & Templates

Overview

Exclusions define work that is explicitly NOT included in a bid. They are added to PDF proposals to clarify scope boundaries. Templates allow reusing common exclusions across multiple bids.

Exclusion Templates

List Templates

GET /api/exclusion-templates
Cookie: sAccessToken=...; sRefreshToken=...

Roles: ADMIN, ESTIMATOR, PM


Get Template

GET /api/exclusion-templates/:id
Cookie: sAccessToken=...; sRefreshToken=...

Roles: ADMIN, ESTIMATOR, PM


Create Template

POST /api/exclusion-templates
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json

{
"name": "Foundation Exclusions",
"description": "Standard exclusions for foundation work",
"exclusions": [
"Soil testing",
"Permits",
"Utility locates"
]
}

Roles: ADMIN


Update Template

PUT /api/exclusion-templates/:id
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json

{
"exclusions": [
"Soil testing and geotechnical reports",
"Permits and inspections",
"Utility locates and relocations",
"Dewatering"
]
}

Roles: ADMIN


Delete Template

DELETE /api/exclusion-templates/:id
Cookie: sAccessToken=...; sRefreshToken=...

Roles: ADMIN

Bid Exclusions

List Bid Exclusions

GET /api/bids/:bidId/exclusions
Cookie: sAccessToken=...; sRefreshToken=...

Roles: ADMIN, ESTIMATOR, PM


Update Bid Exclusions

PUT /api/bids/:bidId/exclusions
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json

{
"exclusions": [
"Soil testing",
"Permits",
"Custom exclusion for this bid"
]
}

Roles: ADMIN, ESTIMATOR


Apply Template to Bid

POST /api/bids/:bidId/exclusions/apply-template
Cookie: sAccessToken=...; sRefreshToken=...
Content-Type: application/json

{
"templateId": "uuid"
}

Roles: ADMIN, ESTIMATOR

info

Applying a template replaces existing exclusions. To merge, fetch current exclusions first and combine them.

Data Model

interface ExclusionTemplate {
id: string;
name: string;
description: string;
exclusions: string[];
createdAt: DateTime;
updatedAt: DateTime;
}

interface BidExclusions {
bidId: string;
exclusions: string[];
}
  • Bids - Parent bid entity
  • PDF Export - Exclusions appear in PDF proposals