Add Coverage to a Proposal

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Overview

This endpoint adds a new coverage record to a proposal.

On non-endorsement proposals (quotes, applications), the record is inserted directly and business rule triggers fire.

On endorsement proposals, the insert is routed through the policy change mechanism for endorsement tracking.

After insertion, the proposal's modified timestamp is updated.

Preconditions

  • The proposal must be in a modifiable state. A proposal is not modifiable when:

    • Its status is Bound (B), Rejected (R), or Unapplied (0)
    • The proposal set it belongs to is already bound
    • It has a pending expiry date change endorsement

    If not modifiable, the endpoint returns a failure response.

Examples

Scenario 1: Successfully add a coverage:

POST /api/Quotes/Proposals/12345/ProposalCoverage
Content-Type: application/json

{
  "CoverageID": 100,
  "EffectiveDate": "2026-01-01",
  "ExpiryDate": "2027-01-01",
  "Limit": 1000000.00,
  "Deductible": 5000.00,
  "Premium": 15000.00
}
{
  "IsSuccessful": true,
  "RecordID": 5001,
  "Message": "Inserted schedule with id 5001 successfully.",
  "Warnings": ""
}

Scenario 2: Validation error (missing required field):

POST /api/Quotes/Proposals/12345/ProposalCoverage
Content-Type: application/json

{
  "Limit": 1000000.00
}
{
  "IsSuccessful": false,
  "RecordID": 0,
  "Message": "CoverageID is required.",
  "Details": []
}

Scenario 3: Proposal is not modifiable:

POST /api/Quotes/Proposals/12345/ProposalCoverage
Content-Type: application/json

{
  "CoverageID": 100,
  "EffectiveDate": "2026-01-01",
  "ExpiryDate": "2027-01-01"
}
{
  "IsSuccessful": false,
  "RecordID": 0,
  "Message": "Cannot modify Proposal with ID# 12345.",
  "Details": []
}
Path Params
integer
required

The ID of the Proposal that you are adding the coverage to.

Body Params
json
required
Defaults to { "CoverageID": 100, "EffectiveDate": "2026-01-01", "ExpiryDate": "2027-01-01", "Limit": 1000000.00, "Deductible": 5000.00, "Premium": 15000.00}

The request body contains field values for the new ProposalCoverage entity, mapped through the ProposalCoverage domain object. The ProposalID is automatically set from the route parameter and does not need to be included in the body.

POST /api/Quotes/Proposals/12345/ProposalCoverage
Content-Type: application/json

{
  "CoverageID": 100,
  "EffectiveDate": "2026-01-01",
  "ExpiryDate": "2027-01-01",
  "Limit": 1000000.00,
  "Deductible": 5000.00,
  "Premium": 15000.00
}
Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json