---
title: "Update Design Pricing"
method: PUT
path: "/tenants/{tenant_id}/designs/{id}/pricing"
tags: ["Pricing"]
---

# Update Design Pricing

`PUT /tenants/{tenant_id}/designs/{id}/pricing`

Update pricing for an existing design.

## Path parameters

- `tenant_id` string, uuid, required
- `id` string, uuid, required

## Request body

- object
  - `pricing` object — Pricing fields to update. At least one field must be provided. `flat_system_price` and `price_per_watt` are mutually exclusive — provide one or the other, not both. `storage_flat_system_price` can be provided alone or alongside either solar pricing field. `heat_pump_flat_system_price` can be provided alone or alongside any other pricing field.
    - `flat_system_price` number — Sets the flat system price for the design and sets the pricing mode to `flat system price`. Cannot be used with `price_per_watt`.
    - `price_per_watt` number — Sets the price per watt for the design and sets the pricing mode to `price per watt`. Cannot be used with `flat_system_price`.
    - `storage_flat_system_price` number — Sets the flat system price for the storage design and sets the storage pricing mode to `flat system price`. Requires the design to have a storage design. Subject to the tenant's configured minimum/maximum storage flat price limits when set — a value outside those limits is rejected with a 422. Can be used alongside `flat_system_price` or `price_per_watt`.
    - `heat_pump_flat_system_price` number — Sets the flat system price for the heat pump and sets the heat pump pricing mode to `flat system price`. Requires the design to have a heat pump. Subject to the tenant's configured minimum/maximum heat pump flat price limits when set — a value outside those limits is rejected with a 422. Can be used alongside any other pricing field.

## Response `200`

Design Pricing successfully updated.

- object
  - `pricing` object
    - `pricing_method` 'flat system price' | 'price breakdown' | 'price per watt' — How is the design priced, excluding storage, energy optimization, and heat pump products.
    - `flat_system_price` number, double — The flat price of the system, excluding storage, energy optimization, and heat pump products.
    - `price_per_watt` number, double — The price per watt of the system, excluding storage, energy optimization, and heat pump products.
    - `storage_pricing_method` 'flat system price' | 'price breakdown' — How is the storage design priced.
    - `storage_flat_system_price` number, double — The flat price of the storage system.
    - `heat_pump_pricing_method` 'flat system price' | 'price breakdown', nullable — How the heat pump is priced. `null` when no heat pump is configured on the design.
    - `heat_pump_flat_system_price` number, double, nullable — The flat price of the heat pump system. `null` when no heat pump is configured on the design.
    - `energy_optimization_pricing_method` 'price breakdown' — How the energy optimization components are priced.
    - `pricing_by_component` object[] — The list of physical components which make up the base price of the system.
      - `name` string — The name of the item.
      - `manufacturer_name` string — The name of the manufacturer. Only populated if the item is generated from a component.
      - `price` number, double — The price of the item.
      - `quantity` integer — The number of items included.
      - `component_type` string — Type of component i.e. [`"combiner_boxes"`, `"dc_optimizers"`, `"disconnects"`, `"inverters"`, `"load_centers"`, `"meters"`, `"microinverters"`, `"modules"`, `"service_panels"`, `"batteries"`, `"heat_pump_main_units"`]
    - `incentives` object[] — All incentives applicable to the system.
      - `name` string — Name of the incentive.
      - `incentive_type` 'pbi' | 'cbi' | 'fixed_amount' — Type of the incentive.
      - `amount` number — The value of the incentive, the unit depends on the incentive type. `pbi` are measured in currency / W. `cbi` are measured in percent of system price. `fixed_amount` are measured in tenant currency.
      - `disbursement` 'tax_credit_rebate' | 'cash_grant' — How is the incentive disbursed?
      - `duration` number — How many years is the incentive disbursed over?
      - `cap` number — If provided, the amount the incentive payment is capped to.
      - `incentive_scope` 'national' | 'local' — The scope of the incentive.
      - `apply_local_tax` boolean — Should local tax be applied to the incentive?
      - `apply_national_tax` boolean — Should national tax be applied to the incentive?
      - `system_size_basis` 'ac' | 'stc' | 'ptc' — If the incentive is of type `pbi`, which size rating should be considered?
      - `year_applied` number — Which year (relative to project life, starting with 0) will the incentive be applied in?
    - `adders` object[]
      - `adder_name` string — The name of the adder.
      - `adder_value` number — The value of the adder. The unit depends on the type.
      - `quantity` number — A multiplier for `adder_value`.
      - `is_discount` boolean — Is this a discount?
      - `is_editable` boolean — Is `adder_value` editable on the Pricing page?
      - `is_hidden` boolean — Is the adder hidden from homeowners?
      - `is_quantity_editable` boolean — Is `quantity` editable on the Pricing page?
      - `eligible_for_cbi` boolean — Is the adder eligible for price based incentives like the federal ITC? Assumed to be true if not specified.
      - `prevent_manual_deletion` boolean — Prevent deletion of the adder on the Pricing page?
      - `additional_charges` object[] — Array of additional charges applied to the adder. Each charge includes the name and percentage rate.
        - `name` string — Name of the additional charge.
        - `percentage` number — Percentage rate of the additional charge.
      - `id` string, uuid — Unique ID identifying the adder.
      - `adder_type` 'flat' | 'system_size' | 'percent' — The type of the adder.
    - `system_price_breakdown` object[] — The breakdown of the system price, excluding storage and energy optimization products.
      - `item_type` 'starting_price' | 'base_price' | 'adders' | 'discounts' | 'incentives' — The type of the price component.
      - `item_price` number — The total price of the component.
      - `cumulative_price` number — The cumulative price of the system up to the component.
      - `subcomponents` object[] — Individual items that make up the price component. Only populated if item_type is `adders` or `discounts`.
        - `id` string, uuid — Unique ID identifying the adder.
        - `item_price` number — The price of the subcomponent (includes additional charges for adders).
        - `quantity` number — The quantity used in the price calculation for the adder/discount. The unit depends on the adder type.
        - `adder_name` string — Name of the adder. Only present for adders.
        - `adder_total` number — The base adder total without additional charges. Only present for adders.
        - `additional_charges_total` number — Sum of all additional charges applied to the adder. Only present for adders.
        - `total_with_additional_charges` number — The adder total including additional charges (adder_total + additional_charges_total). Only present for adders.
        - `additional_charges` object[] — Array of additional charges applied to the adder. Only present for adders.
          - `name` string — Name of the additional charge.
          - `percentage` number — Percentage rate of the additional charge.
          - `amount` number — Calculated amount of the additional charge.
    - `storage_system_price_breakdown` object[] — The breakdown of the storage system price.
      - `item_type` 'starting_price' | 'base_price' | 'adders' | 'discounts' | 'incentives' — The type of the price component.
      - `item_price` number — The total price of the component.
      - `cumulative_price` number — The cumulative price of the system up to the component.
      - `subcomponents` object[] — Individual items that make up the price component. Only populated if item_type is `adders` or `discounts`.
        - `id` string, uuid — Unique ID identifying the adder.
        - `item_price` number — The price of the subcomponent (includes additional charges for adders).
        - `quantity` number — The quantity used in the price calculation for the adder/discount. The unit depends on the adder type.
        - `adder_name` string — Name of the adder. Only present for adders.
        - `adder_total` number — The base adder total without additional charges. Only present for adders.
        - `additional_charges_total` number — Sum of all additional charges applied to the adder. Only present for adders.
        - `total_with_additional_charges` number — The adder total including additional charges (adder_total + additional_charges_total). Only present for adders.
        - `additional_charges` object[] — Array of additional charges applied to the adder. Only present for adders.
          - `name` string — Name of the additional charge.
          - `percentage` number — Percentage rate of the additional charge.
          - `amount` number — Calculated amount of the additional charge.
    - `heat_pump_system_price_breakdown` object[] — The breakdown of the heat pump system price. Empty when no heat pump is configured on the design.
      - `item_type` 'starting_price' | 'base_price' | 'adders' | 'discounts' | 'incentives' — The type of the price component.
      - `item_price` number — The total price of the component.
      - `cumulative_price` number — The cumulative price of the system up to the component.
      - `subcomponents` object[] — Individual items that make up the price component. Only populated if item_type is `adders` or `discounts`.
        - `id` string, uuid — Unique ID identifying the adder.
        - `item_price` number — The price of the subcomponent (includes additional charges for adders).
        - `quantity` number — The quantity used in the price calculation for the adder/discount. The unit depends on the adder type.
    - `energy_optimization_price_breakdown` object[] — The breakdown of the energy optimization price.
      - `item_type` 'starting_price' | 'base_price' | 'adders' | 'discounts' | 'incentives' — The type of the price component.
      - `item_price` number — The total price of the component.
      - `cumulative_price` number — The cumulative price of the system up to the component.
      - `subcomponents` object[] — Individual items that make up the price component. Only populated if item_type is `adders` or `discounts`.
        - `id` string, uuid — Unique ID identifying the adder.
        - `item_price` number — The price of the subcomponent (includes additional charges for adders).
        - `quantity` number — The quantity used in the price calculation for the adder/discount. The unit depends on the adder type.
        - `adder_name` string — Name of the adder. Only present for adders.
        - `adder_total` number — The base adder total without additional charges. Only present for adders.
        - `additional_charges_total` number — Sum of all additional charges applied to the adder. Only present for adders.
        - `total_with_additional_charges` number — The adder total including additional charges (adder_total + additional_charges_total). Only present for adders.
        - `additional_charges` object[] — Array of additional charges applied to the adder. Only present for adders.
          - `name` string — Name of the additional charge.
          - `percentage` number — Percentage rate of the additional charge.
          - `amount` number — Calculated amount of the additional charge.
    - `system_price` number — Total price of the system, including storage, energy optimization, and heat pump products.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/aurorasolar/apis/sync-api.md) · [All operations](https://skmtc.net/aurorasolar/apis/sync-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aurorasolar/sync-api/revisions/5b41808d104d/schema)
