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
| METHOD | Endpoint | Description | Path Parameters |
|---|---|---|---|
| GET | /suppliers/:org_id/quotes/ | List quotes for the supplier | org_id |
| GET | /suppliers/:org_id/quotes/:quote_id/ | Get a single quote | org_id, quote_id |
| PUT | /suppliers/:org_id/quotes/:quote_id/ | Update a quote | org_id, quote_id |
| PATCH | /suppliers/:org_id/quotes/:quote_id/ | Partially update a quote | org_id, quote_id |
:org_idyour 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
Requestcurl "https://api.opensolar.com/api/suppliers/123/quotes/456/" \
--header "Authorization: Bearer <token>"
{
"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
Requestcurl "https://api.opensolar.com/api/suppliers/123/quotes/?ordering=-modified_date&page_size=20" \
--header "Authorization: Bearer <token>"
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.
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."
}'
Returns the full updated quote object (same shape as Get a single supplier quote).