Managing Pricing Outside of Aurora

Many Aurora customers calculate pricing in an external system (i.e. a CRM like Salesforce or Zoho, a partner pricing engine, or an internal quoting tool) and push the final pricing into Aurora. This guide walks through that workflow end-to-end.

If your goal is to configure pricing natively in Aurora, see Stage 6: Configure pricing instead.

📘

Prerequisites

This workflow assumes a design already exists with a completed performance simulation. See Stages 1–5 in Common Workflows.


Overview

The typical flow has five steps:

  1. Pull design data from Aurora to feed your external pricing engine
  2. Set base pricing on the design (flat, price-per-watt, or component-level)
  3. Add adders and discounts for line items like permit fees, labor premiums, or promotional discounts
  4. Add incentives for rebates, tax credits, or other credits applied to the system cost
  5. Retrieve the final pricing to confirm totals and sync back to your CRM

Steps 3 and 4 are optional depending on your pricing model. If your CRM computes a single all-in price, you may only need steps 1, 2, and 5.


Step 1: Pull design data

Your external system may need project and design details to calculate pricing. This can include system size, component quantities, energy production, project location, etc.

What you needEndpoint
System size, component counts, energy productionRetrieve design summary
Current pricing state and component line itemsRetrieve design pricing
Project location (for regional pricing rules)Retrieve project

Feed this data into your CRM or pricing engine to calculate the system price, any adders or discounts, and any applicable incentives.


Step 2: Set base pricing

Push the calculated price to the design. The endpoint accepts three pricing modes:

ModeWhen to useKey field
Flat priceYour CRM produces a single all-in system costflat_system_price
Price per wattYour CRM calculates a per-watt rateprice_per_watt
Component-levelYour CRM prices each component type separately (modules, inverters, storage)line_items

Pricing modes are independent across system types — PV, storage, and heat pumps each have their own mode. For example, you can set a flat_system_price for PV while using line_items for storage in the same design.

Endpoint: Update design pricing


Step 3: Add adders and discounts

If your external system breaks out additional charges or discounts as separate line items (i.e. permit fees, roof complexity surcharges, regional labor premiums, promotional discounts) create them as adders on the design.

ActionEndpoint
Create an adder or discountCreate adder
Remove an adder or discountDelete adder

To create a discount rather than a surcharge, set is_discount: true on the create request along with a negative adder_value.

Create one adder per line item. For example, a regional pricing model might produce:

POST /tenants/{tenant_id}/designs/{design_id}/pricing/adders
{ "adder": { "adder_name": "Northeast Labor Premium", "adder_value": 1500 } }

POST /tenants/{tenant_id}/designs/{design_id}/pricing/adders
{ "adder": { "adder_name": "Steep Roof Surcharge", "adder_value": 800 } }

POST /tenants/{tenant_id}/designs/{design_id}/pricing/adders
{ "adder": { "adder_name": "Promotional Discount", "adder_value": -500, "is_discount": true } }
📘

Adders pushed via the API appear in Sales Mode and on proposals, just like adders created in-app.

⚠️

If your CRM manages all pricing, do not configure automatic adders in Aurora's admin settings. Automatic adders are triggered by Aurora's internal rules and may conflict with prices pushed via the API.


Step 4: Add incentives

If your CRM tracks incentives (tax credits, state rebates, utility incentives), push them to the design so they appear in proposals and financing simulations.

ActionEndpoint
Create an incentiveCreate incentive
Remove an incentiveDelete incentive
POST /tenants/{tenant_id}/designs/{design_id}/pricing/incentives
{ "incentive": { "name": "State Solar Rebate", "amount": 2500, "year_applied": 1 } }

Step 5: Retrieve and verify pricing

After pushing pricing, retrieve the design's computed totals to confirm everything looks correct and sync the final numbers back to your CRM.

Endpoint: Retrieve design pricing

The response includes the base system cost, all adders and discounts, incentives, and the net total — everything your CRM needs to keep its records aligned with what Aurora will show in proposals.