Most proposal workflows start with GET /public/proposals to Search & Get Proposal List, then GET /public/proposals/{ProposalId} to Get Proposal Details.
Returns the proposals for the current account. Supports filtering by status, contact, modified date, search text, and archive state, along with sorting and pagination.
Success
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
{- "proposals": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}
}
], - "proposalCount": 0
}Creates a new proposal for the authenticated account. Supply a salesperson ID from the same account and, optionally, a proposal name. If no name is given, the system assigns a default name using the same logic as the Portal UI. The response includes the full proposal detail, including the new proposal ID, number, status, and financial summary.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
No resource exists with the given ID.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Returns detailed information for the specified proposal. The HTTP response also sets the Last-Modified header from the response LastModifiedDate. Item costs are left out when costs are not available to your account, so a null cost does not mean the item has none. A recurring-service item is left out of its area option's total and counted in that option's totalRecurringService instead. When an item has total.isCombinedPrice true, its amount already includes the totals of the items nested under it, and those nested items still report their own amounts.
Success
Not Authorized to access this endpoint or your HMAC hash was incorrect.
You do not have permission for this API call.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Performs a partial update on an existing proposal. You can update the proposal name, reassign the salesperson, or do both in one request. Both fields are optional, and omitted fields keep their current values. SalesPersonId must reference a user in the same account. The response includes the full updated proposal detail.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal not found.
Proposal state prevents editing
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Updates the client-facing project description of a proposal. This is the description shown on customer-facing proposal documents. The request body accepts a single description string. The response includes the full updated proposal detail.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal not found.
Proposal state prevents editing
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Updates the internal installer notes (installer project description) of a proposal. These notes are visible only to the dealer's team and do not appear on client-facing documents. The request body accepts a single internal notes string. The response includes the full updated proposal detail.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
No resource exists with the given ID.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Returns detailed information for the specified change order. The HTTP response also sets the Last-Modified header from the response LastModifiedDate. Item costs are left out when costs are not available to your account, so a null cost does not mean the item has none. A recurring-service item is left out of its area option's total and counted in that option's totalRecurringService instead. When an item has total.isCombinedPrice true, its amount already includes the totals of the items nested under it, and those nested items still report their own amounts.
Success
Not Authorized to access this endpoint or your HMAC hash was incorrect.
You do not have permission for this API call.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "changeOrderSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Returns the change orders for the specified proposal, including customer details, total, status, and created and modified dates.
Success
Not Authorized to access this endpoint or your HMAC hash was incorrect.
This action requires an active subscription.
You do not have permission for this API call.
[- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
]Creates a new area (room) within a proposal. The area name must be unique within the proposal. The system automatically creates one default option in "Draft" status under the new area. The response includes the full updated proposal detail, including the new area and its default option.
Success
If an area with the same name already exists.
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal not found.
Proposal state prevents editing
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Creates a new option within an existing area. Each area supports a maximum of three options. Client description and internal installer notes are optional at creation time. The new option is created with "Draft" status. The response includes the full updated proposal detail.
Success
Each area supports a maximum of three options.
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal or area not found.
Proposal state prevents editing
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Updates the client-facing description of a specific option. The route includes both the proposal ID and option ID to verify that the option belongs to the specified proposal. The response includes the full updated proposal detail.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal or area option not found.
Proposal is in a state that does not allow editing.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Updates the internal installer notes of a specific option. Like the client description endpoint, the route includes both proposal and option IDs for ownership validation. The response includes the full updated proposal detail.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal or area option not found.
Proposal is in a state that does not allow editing.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}Assigns an existing contact (person/client) to a proposal. The proposal and contact must belong to the same account. If the contact has a single primary location, that location is automatically assigned to the proposal as well. Assigning a contact may trigger tax recalculations based on the contact's location.
No Content
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal or contact not found.
{- "errorCode": "string",
- "stackTrace": "string",
- "contentType": "string",
- "headers": {
- "property1": "string",
- "property2": "string"
}, - "cookies": [
- { }
], - "status": 0,
- "statusCode": "string",
- "statusDescription": "string",
- "response": { },
- "responseFilter": { },
- "requestContext": { },
- "paddingLength": 0,
- "resultScope": { },
- "options": {
- "property1": "string",
- "property2": "string"
}, - "responseStatus": {
- "errorCode": "string",
- "message": "string",
- "stackTrace": "string",
- "errors": [
- {
- "errorCode": "string",
- "fieldName": "string",
- "message": "string",
- "meta": {
- "property1": "string",
- "property2": "string"
}
}
], - "meta": {
- "property1": "string",
- "property2": "string"
}
}, - "targetSite": { },
- "message": "string",
- "data": { },
- "innerException": { },
- "helpLink": "string",
- "source": "string",
- "hResult": 0
}Assigns a location to a proposal that already has a contact assigned. The location must belong to the proposal's assigned contact and to the same account. Assigning a location triggers tax recalculations for the proposal. The response includes the full updated proposal detail.
Success
Not Authorized. Ensure a valid session cookie or HMAC authentication headers are provided.
The dealer's subscription is inactive or expired. An active subscription is required to use this endpoint.
You do not have permission for this action.
Proposal or location not found.
The proposal has no person assigned, so a location cannot be set.
{- "id": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "clientLastDecisionDate": "2019-08-24T14:15:22Z",
- "lastCompletedDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z",
- "financialSummary": {
- "partsSubtotal": 0,
- "partsDiscountType": "Percentage",
- "partsDiscountPercentage": 0,
- "partsDiscount": 0,
- "partsDiscountTaxable": 0,
- "partsDiscountTaxExempt": 0,
- "partsTotal": 0,
- "laborTotal": 0,
- "feeTotal": 0,
- "proposalSubtotal": 0,
- "salesTax": {
- "taxStatus": "Undefined",
- "total": 0,
- "calculation": {
- "method": "ClientLocation",
- "applyTo": [
- "None"
], - "partsTax": 0,
- "partsTaxName": "string",
- "laborTax": 0,
- "laborTaxName": "string",
- "hasMultipleTaxSupport": true,
- "partsTax2": 0,
- "partsTax2Name": "string",
- "laborTax2": 0,
- "laborTax2Name": "string",
- "feeTax": 0,
- "feeTaxName": "string",
- "feeTax2": 0,
- "feeTax2Name": "string",
- "taxLocation": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "isTaxJarAvailable": true,
- "partsTotalTax": 0,
- "laborTotalTax": 0,
- "feeTotalTax": 0
}
}, - "proposalTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "changeOrders": [
- {
- "id": 0,
- "number": 0,
- "name": "string",
- "status": "Undefined",
- "total": {
- "changeOrderTotal": 0,
- "currency": {
- "code": "string",
- "symbol": "string"
}
}, - "customer": {
- "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "lastModifiedByUserDate": "2019-08-24T14:15:22Z"
}
], - "number": 0,
- "name": "string",
- "status": "Undefined",
- "lastSubmittedDate": "2019-08-24T14:15:22Z",
- "clientLastOpenedDate": "2019-08-24T14:15:22Z",
- "customer": {
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "id": 0,
- "partyType": "Undefined",
- "contactType": "Undefined",
- "firstName": "string",
- "lastName": "string",
- "companyName": "string",
- "contactEmail": "string",
- "contactEmailCC": "string",
- "contactPhone": "string"
}, - "dealer": {
- "companyName": "string",
- "location": {
- "id": 0,
- "street": "string",
- "suite": "string",
- "city": "string",
- "postalCode": "string",
- "state": "string",
- "stateAbbrev": "string",
- "country": "string",
- "phone": "string"
}, - "salesperson": {
- "id": 0,
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}, - "webSiteUrl": "string",
- "companyPhone": "string",
- "companyLogoUrl": "string"
}, - "coverpageImageUrl": "string",
- "aboutUs": "string",
- "projectDescription": "string",
- "areas": [
- {
- "id": 0,
- "name": "string",
- "options": [
- {
- "id": 0,
- "status": "Draft",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "clientDescription": "string",
- "installerDescription": "string",
- "items": [
- {
- "id": 0,
- "parentId": 0,
- "itemType": "Part",
- "referencedItemId": 0,
- "createdDate": "2019-08-24T14:15:22Z",
- "lastModifiedDate": "2019-08-24T14:15:22Z",
- "brand": "string",
- "model": "string",
- "description": "string",
- "name": "string",
- "shortDescription": "string",
- "clientNote": "string",
- "imageUrl": "string",
- "msrp": 0,
- "sellPrice": 0,
- "cost": 0,
- "costUpdateDate": "2019-08-24T14:15:22Z",
- "supplier": "string",
- "quantity": 0,
- "total": {
- "amount": null,
- "currency": null,
- "isCombinedPrice": null
}, - "isTaxExempt": true,
- "isRecurringService": true,
- "linkedOrders": [
- null
]
}
], - "total": 0,
- "totalRecurringService": 0
}
]
}
], - "profit": {
- "total": 0,
- "percentage": 0,
- "partTotal": 0,
- "partPercentage": 0,
- "laborTotal": 0,
- "laborPercentage": 0,
- "isProfitIncludeCos": true
}, - "recurringServices": {
- "items": [
- {
- "name": "string",
- "sellPrice": 0,
- "quantity": 0,
- "totalSell": 0
}
], - "totalRecurringService": 0
}, - "paymentSchedule": {
- "customerDescription": "string",
- "payments": [
- {
- "calculation": "string",
- "amount": 0,
- "due": {
- "date": "2019-08-24T14:15:22Z",
- "milestone": "string"
}
}
]
}, - "paymentRequests": [
- {
- "id": 0,
- "status": "Undefined",
- "amount": 0,
- "dueDate": "2019-08-24T14:15:22Z",
- "description": "string",
- "paymentMethod": "string"
}
], - "projectTerms": "string",
- "lastModifiedUser": {
- "firstName": "string",
- "lastName": "string"
}
}