| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Overview
This endpoint manages the association between a proposal and a line of business. If the specified line does not yet exist on the proposal, it is created. If it already exists, the association is left unchanged — no duplicate is created. In either case, the optional lineCompleted query parameter can mark the line's data as finalized or incomplete.
Additionally, any fields provided in the request body are applied as partial updates to the Proposal entity (not the line association), using the same domain mapper as the PATCH: /api/Quotes/Proposals/{id} endpoint. This allows you to ensure a line exists and update related proposal data in a single atomic transaction.
Both operations succeed or fail together. If the proposal field update causes a validation error, the policy line is not added. If the policy line code is invalid, the proposal field updates are rolled back.
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 with
"Proposal cannot be modified.". - Its status is Bound (
-
The
policyLineCodemust match an existing policy line'sDisplayCode. If not, the endpoint returns"Unknown Policy Line Code: <code>".
Examples
Scenario 1: Line does not exist on the proposal. Add it and mark completed. Creates the WC association on proposal 12345 and flags its line-specific data as finalized.
PATCH /api/Quotes/Proposals/12345/PolicyLines/WC?lineCompleted=true{
"IsSuccessful": true,
"RecordID": 12345,
"Message": "Updated Proposal Policy Line WC with id 12345 successfully.",
"Warnings": ""
}Scenario 2: Line already exists on the proposal. Mark it as completed. The WC association already exists, so no new record is created. The existing association's completion status is set to true.
PATCH /api/Quotes/Proposals/12345/PolicyLines/WC?lineCompleted=true{
"IsSuccessful": true,
"RecordID": 12345,
"Message": "Updated Proposal Policy Line WC with id 12345 successfully.",
"Warnings": ""
}Scenario 3: Line does not exist. Add it and mark it incomplete. Creates the WC association and explicitly flags it as incomplete (line-specific data is not yet finalized).
PATCH /api/Quotes/Proposals/12345/PolicyLines/WC?lineCompleted=false{
"IsSuccessful": true,
"RecordID": 12345,
"Message": "Updated Proposal Policy Line WC with id 12345 successfully.",
"Warnings": ""
}Scenario 4: Line already exists. Mark it incomplete. No new association is created. The existing WC line's completion status is set to false.
PATCH /api/Quotes/Proposals/12345/PolicyLines/WC?lineCompleted=false{
"IsSuccessful": true,
"RecordID": 12345,
"Message": "Updated Proposal Policy Line WC with id 12345 successfully.",
"Warnings": ""
}Scenario 5: Line does not exist. Add it without setting completion status. Creates the WC association. Completion status is left unset.
PATCH /api/Quotes/Proposals/12345/PolicyLines/WC{
"IsSuccessful": true,
"RecordID": 12345,
"Message": "Updated Proposal Policy Line WC with id 12345 successfully.",
"Warnings": ""
}Scenario 6: Combine with proposal field updates. Ensures WC exists, marks it completed, and updates the proposal's Premium field.
PATCH /api/Quotes/Proposals/12345/PolicyLines/WC?lineCompleted=true
Content-Type: application/json
{
"Premium": 15000.00
}{
"IsSuccessful": true,
"RecordID": 12345,
"Message": "Updated Proposal Policy Line WC with id 12345 successfully.",
"Warnings": ""
}