Skip to main content

Supplier Quotes

Returns structured quote information for a submitted request, including pricing data, estimated delivery date, quote validity, delivery address, and any associated attachments. This endpoint enables systems to retrieve and process finalized quote details prior to order confirmation.

Endpoint​

METHODEndpointDescriptionPath Parameters
GET/suppliers/:org_id/quotes/List quotes for the supplierorg_id
GET/suppliers/:org_id/quotes/:quote_id/Get a single quoteorg_id, quote_id
PUT/suppliers/:org_id/quotes/:quote_id/Update a quoteorg_id, quote_id
PATCH/suppliers/:org_id/quotes/:quote_id/Partially update a quoteorg_id, quote_id
  • :org_id your OpenSolar Organization ID
  • :quote_id - ID number of the quote

List supports ordering (e.g. modified_date, created_date, id, address), search, and filter parameters via the usual query string.

Examples​

Get a single supplier quote​

Request
curl "https://api.opensolar.com/api/suppliers/123/quotes/456/" \
--header "Authorization: Bearer <token>"
Response
{
"id": 456,
"url": "https://api.opensolar.com/api/orgs/100/quotes/456/",
"org": "https://api.opensolar.com/api/orgs/100/",
"system": "https://api.opensolar.com/api/orgs/100/systems/789/",
"org_name": "Acme Solar",
"supplier": "https://api.opensolar.com/api/orgs/123/",
"project_id": 999,
"data": {
"0": {
"code": "12345",
"componentType": "module",
"quantity": 8,
"source": "source_name",
"price": 99.99,
"product_name": "Product Name",
"price_per_watt": "0p",
},
"1": {
"code": "12346",
"componentType": "other",
"quantity": 1,
"source": "source_name",
"price": 89.99,
"product_name": "Product Name",
}
},
"status": "under_review",
"created_date": "2025-02-15T10:00:00Z",
"modified_date": "2025-02-20T14:30:00Z",
"address": "123 Main St",
"zip": "2000",
"state": "NSW",
"locality": "Sydney",
"county": null,
"country": "AU",
"account_managers": ["https://api.opensolar.com/api/orgs/123/roles/1/"],
"account_manager_data": [
{ "display": "Jane Smith", "email": "jane@supplier.com", "phone": "+61 400 000 000" }
],
"estimated_delivery_date": "2025-03-15",
"notes": "Quote valid for 14 days.",
"allow_account_manager_order": false,
"notify_team_members": [],
"custom_data": null,
"lock_pricing": false,
"quote_valid_until": "2025-03-01",
"files": [],
"requested_by": null,
"assignee": null,
"assignee_role_list": [],
"last_status": null,
"order": null
}

List supplier quotes​

Request
curl "https://api.opensolar.com/api/suppliers/123/quotes/?ordering=-modified_date&page_size=20" \
--header "Authorization: Bearer <token>"
Response

Array of quote objects (same shape as the single-quote response). Example:

[
{
"id": 456,
"url": "https://api.opensolar.com/api/orgs/100/quotes/456/",
"org_name": "Acme Solar",
"status": "under_review",
"address": "123 Main St",
"estimated_delivery_date": "2025-03-15",
"modified_date": "2025-02-20T14:30:00Z"
}
]

Update a quote (partial)​

Editable fields include: status (e.g. under_review, awaiting_order), estimated_delivery_date, notes, address, zip, state, locality, county, country, account_managers, allow_account_manager_order, quote_valid_until, and custom_data. The data object (line items) can also be updated.

Request
curl -X PATCH "https://api.opensolar.com/api/suppliers/123/quotes/456/" \
--header "Authorization: Bearer <token>" \
--header "Content-Type: application/json" \
--data '{
"status": "awaiting_order",
"estimated_delivery_date": "2025-03-20",
"notes": "Updated delivery window."
}'
Response

Returns the full updated quote object (same shape as Get a single supplier quote).