Add Items to a Proposal
POST /public/proposals//items — Adds one or more catalog, custom, labor, or fee items to a proposal area option.
Items names a source item, its type, and the area options to put it in — one item is created per area option the entry targets. Area option ids come from get proposal; see reading proposal items for where to find them.
The response is the standard List<PublicAreaItemModel> array of created items.
Item types and their ids
CatalogItemId means a different thing for each ItemType, and each type takes the item’s name in a different field:
Name on a Part, Model on a Labor item — returns 400. SupplierId applies to Part items only; omit it to use the part’s default supplier.
Pricing a new item
OmitSellPrice and SellPercentage and the item inherits the catalog item’s default sell price; the same applies to Cost and CostPercentage. Supply one of each pair to override — an absolute amount, or a whole-percent value plus its basis (15 means 15%).
Send exactly one member of each pair. Unlike update sell price and update cost, this endpoint does not check the pair for you, so a mistake here fails quietly instead of returning a 400. Send both members and the percentage is used, ignoring the absolute amount. Send a percentage without its basis and there is nothing to calculate it from, so the item is created with no price at all.
Per-item SetDefault saves this item’s sell price as the default on the catalog item, so later proposals start with it. It persists nothing else on the item.
Nesting and attachments
ParentProposalItemIds nests the new item under an existing one. Matching is per area option: in each target option, the new item nests under whichever listed parent lives in that same option, and sits at top level where none does. Nesting is read back as parentId, and children’s prices can be folded into the parent’s displayed total with set combined pricing.
IncludeAttachments is separate — it adds the items the catalog item is configured to bring along, nested under the new item. It defaults to true; pass false to skip them. Attachment items are not part of this call’s response and may take a moment to appear, so re-fetch the proposal to read them.
Adding several items at once
items takes any number of entries, and they do not have to be the same type. This call adds a Part and a Labor line to area option 201, with the part nested under the existing item 5000:
5000 because that item sits in option 201; where none of the listed parents lives in a target option, the new item is added at that option’s top level instead. The labor line names no parent, so it starts at top level. Each entry is created once per area option it lists, so adding further proposalAreaOptions entries places copies across several options in the same call.
Authorizations
Portal application identifier used as part of HMAC-authenticated API requests.
Portal user API key used together with the HMAC signature headers.
Timestamp header included in the signed request to prevent replay attacks.
HMAC-SHA256 signature for the request, calculated over the canonical string defined in the authentication docs.
Headers
Accept Header
application/json Path Parameters
Unique ID of the proposal (not the proposal number).
Body
Proposals Service
New items to add to the proposal. At least one item is required.
(Optional) Also add the items attached to each newly created item, nested under it. Defaults to true - pass false to skip. Attachment items are not part of this call's response and may take a moment to appear; re-fetch the proposal to read them.
Response
Success
Unique numeric identifier of the proposal item
Identifier of the catalog, labor, custom, or fee item this proposal item was created from
UTC timestamp when the proposal item was created
Quantity of the proposal item
Identifier of the parent item when this item is nested under another item
Part, Labor, CustomItem, Fee UTC timestamp when the proposal item was last modified
Brand name of the item
Model value of the item
Name of a Labor item
Short description shown for the proposal item
Client-facing note for the proposal item
Image URL of the item
MSRP amount of the item
Sell price for the proposal item
Supplier cost for the proposal item
UTC timestamp when the supplier cost was last updated
Display name of the supplier assigned to the item.
Total amount for a proposal item
Whether the proposal item is tax exempt
Whether the proposal item is a recurring service
Linked orders created from this proposal item