Skip to main content
POST
Updates the client-facing project description for a proposal. This description appears on customer-facing proposal documents sent to the client, so it should describe the project in terms the customer will understand. The request accepts a single Description string and returns the complete updated proposal detail.
A 409 Conflict is returned if the proposal is in a terminal state that prevents editing. Check the proposal’s status field before attempting updates.

Authorizations

X-MSS-API-APPID
string
header
required

Portal application identifier used as part of HMAC-authenticated API requests.

X-MSS-API-USERKEY
string
header
required

Portal user API key used together with the HMAC signature headers.

X-MSS-CUSTOM-DATE
string
header
required

Timestamp header included in the signed request to prevent replay attacks.

X-MSS-SIGNATURE
string
header
required

HMAC-SHA256 signature for the request, calculated over the canonical string defined in the authentication docs.

Headers

Accept
enum<string>
required

Accept Header

Available options:
application/json

Path Parameters

ProposalId
integer<int32>
required

Proposal Id.

Body

application/json

Proposals Service

description
string

Description.

Response

Success

Detailed proposal representation

number
integer<int32>
required

Proposal number unique within the dealer account.

name
string
required

Display name of the proposal.

id
integer<int32>
required

Unique identifier for the proposal. Use this id for subsequent API calls that reference the proposal.

createdDate
string<date-time>
required

UTC timestamp when the proposal was initially created. Returned in ISO 8601 format.

lastModifiedDate
string<date-time>
required

UTC timestamp when the proposal was last modified by any user or system process.

lastModifiedByUserDate
string<date-time>
required

UTC timestamp when the proposal was last modified by a human user (not an automated system update).

status
enum<string>
Available options:
Undefined,
Draft,
Submitted,
ViewedByClient,
Accepted,
Declined,
Delayed,
Completed,
EmailFailed,
Expired
lastSubmittedDate
string<date-time>

UTC timestamp when the proposal was last submitted to the customer.

clientLastOpenedDate
string<date-time>

UTC timestamp when the customer last opened the proposal viewer link.

customer
PublicCustomerModel · object

Customer contact

dealer
PublicDealerModel · object

Dealer information

coverpageImageUrl
string

Absolute URL of the proposal cover image, when one is available.

aboutUs
string

The about us text for the company profile.

projectDescription
string

A description of the project.

areas
PublicAreaModel · object[]

The list of areas.

profit
PublicProfitModel · object

Profit summary for the proposal

recurringServices
PublicRecurringServicesModel · object

Recurring service summary associated with the proposal.

paymentSchedule
PublicPaymentScheduleModel · object

Payment schedule configuration for the proposal, including the customer-facing description and individual payment milestones.

paymentRequests
PublicPaymentRequestModel · object[]

Payment requests already issued for this proposal.

projectTerms
string

The terms and conditions for the project.

lastModifiedUser
PublicUserModel · object

User summary returned within proposal detail responses

clientLastDecisionDate
string<date-time>

UTC timestamp when the client last accepted or declined the proposal. Null if no client decision has been recorded.

lastCompletedDate
string<date-time>

UTC timestamp when the proposal last reached a completed state, if applicable.

financialSummary
PublicFinancialSummaryModel · object

Financial totals, discounts, tax, and currency values for the proposal

changeOrders
PublicChangeOrderModel · object[]

List of change orders associated with this proposal. Each item contains details of scope changes, price adjustments, and approval state.