solarOSsolarOS Docs

Send Quote holds a solar quote for three more reasons (2026-11-01)

A solar quote with too many expansion batteries, a blank agreement value, or estimated production returns 409 CONFLICT.

Org API, Send Quote (POST /api/v1/quotes/{id}/send): a solar quote is held back with 409 and CONFLICT in three more cases. details.reason says which.

  • SOLAR_TOO_MANY_EXPANSIONS: the quote has more expansion batteries than its main batteries take. The message names the count, such as "2 Powerwall 3 take up to 6 expansions; this quote has 7." Remove expansions or add a main battery in solarOS, then send again. A battery product with no limit set never triggers this.
  • AGREEMENT_VALUE_BLANK: the installer agreement goes out for signature by itself when the quote is accepted, and it would print a value blank. details.blockers lists each { code, message }, such as "Customer phone would print blank on the agreement." Set the value with PATCH /api/v1/quotes/{id}/content, or for the customer with PATCH /api/v1/customers/{id}, then send again. A value the agreement prints only on a condition the quote doesn't meet is not counted.
  • SOLAR_PRODUCTION_ESTIMATED: the agreement prints annual production while it is a regional estimate. Run POST /api/v1/quotes/{id}/content/calculate, then send.

A solar quote that still carries the placeholder text from the starter setup is no longer refused with SOLAR_STARTER_TEXT. It is sent, and warnings lists SOLAR_STARTER_TEXT. A payment schedule still named "Mock Starter Payment Schedule" is covered by the same warning, and SOLAR_STARTER_SCHEDULE_NAME is no longer returned. The request body is unchanged, and service quotes send as before.

Was this page helpful?