Skip to main content
POST
/
public
/
proposals
/
{ProposalId}
/
internalnotes
curl -i -X POST \
  'https://sandbox.api.portal.io/public/proposals/1042/internalnotes' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE' \
  -d 'InternalNotes=Pre-wire+complete.+Confirm+rack+location+with+homeowner+before+rough-in.'
{
  "id": 1042,
  "createdDate": "2026-03-10T14:00:00Z",
  "lastModifiedDate": "2026-04-06T00:22:19Z",
  "lastModifiedByUserDate": "2026-04-06T00:22:19Z",
  "financialSummary": {
    "partsSubtotal": 8000.00,
    "partsTotal": 8000.00,
    "laborTotal": 2500.00,
    "feeTotal": 0,
    "proposalSubtotal": 10500.00,
    "salesTax": {
      "taxStatus": "Ok",
      "total": 892.50
    },
    "proposalTotal": 11392.50
  }
}
Updates the internal notes (installer project description) on a proposal. These notes are visible only to your team and are never shown on client-facing proposal documents. Use this field to record installation details, site conditions, or coordination notes that are relevant to your crew but not appropriate for customer documents. The response returns the complete updated proposal detail.
Internal notes are strictly dealer-side content. They are never included in proposal PDFs or portal views that are shared with customers.
curl -i -X POST \
  'https://sandbox.api.portal.io/public/proposals/1042/internalnotes' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'X-MSS-API-APPID: YOUR_APP_ID' \
  -H 'X-MSS-API-USERKEY: YOUR_USER_KEY' \
  -H 'X-MSS-CUSTOM-DATE: Mon, 06 Apr 2026 00:22:19 GMT' \
  -H 'X-MSS-SIGNATURE: BASE64_SIGNATURE' \
  -d 'InternalNotes=Pre-wire+complete.+Confirm+rack+location+with+homeowner+before+rough-in.'
{
  "id": 1042,
  "createdDate": "2026-03-10T14:00:00Z",
  "lastModifiedDate": "2026-04-06T00:22:19Z",
  "lastModifiedByUserDate": "2026-04-06T00:22:19Z",
  "financialSummary": {
    "partsSubtotal": 8000.00,
    "partsTotal": 8000.00,
    "laborTotal": 2500.00,
    "feeTotal": 0,
    "proposalSubtotal": 10500.00,
    "salesTax": {
      "taxStatus": "Ok",
      "total": 892.50
    },
    "proposalTotal": 11392.50
  }
}

Headers

Accept
enum<string>
required

Accept Header

Available options:
application/json
X-MSS-API-APPID
string
required

Application Id

X-MSS-CUSTOM-DATE
string
required

A date timestamp of the request

X-MSS-SIGNATURE
string
required

A signature for the request

X-MSS-API-USERKEY
string
required

User API Key

Path Parameters

ProposalId
integer<int32>
required

Body

application/x-www-form-urlencoded
InternalNotes
string

New internal notes (installer project description) to save on the proposal.

Response

Success

Detailed proposal representation

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).

financialSummary
PublicFinancialSummaryModel · object
required

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

number
integer<int32>
required

Proposal number unique within the dealer account.

name
string
required

Display name of the proposal.

status
enum<string>
required

The current status of the resource.

Available options:
Undefined,
Draft,
Submitted,
ViewedByClient,
Accepted,
Declined,
Delayed,
Completed,
EmailFailed,
Expired
dealer
PublicDealerModel · object
required

Dealer information

lastModifiedUser
PublicUserModel · object
required

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.

changeOrders
PublicChangeOrderModel · object[]

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

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

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.