PUT request/esa/solar/partner/quote

Request Information

URI Parameters

None.

Body Parameters

QuoteESASolarUpdateRequest
NameDescriptionTypeAdditional information
Calculations

CostCaluclationModelPut

None.

Electricity

ElectricityModel

None.

Gas

GasModel

None.

Installation

Collection of InstallationDataPut

None.

isRecalc

boolean

None.

MoveInDate

date

None.

PropertyTypeId

byte

None.

QuoteId

string

None.

ReferrerBranch

string

None.

Solar

SolarModelPut

None.

Request Formats

application/json, text/json

Sample:
{
  "propertyTypeId": 64,
  "referrerBranch": "sample string 2",
  "quoteId": "sample string 3",
  "moveInDate": "2026-07-08T09:50:25.830424+00:00",
  "isRecalc": true,
  "electricity": {
    "tariffId": 1,
    "paymentType": "MonthlyDirectDebit",
    "consumption": 1.0,
    "smartMeterConsent": true,
    "moveInDate": "2026-07-08T09:50:25.830424+00:00"
  },
  "gas": {
    "consumption": 1.0,
    "tariffId": 1
  },
  "solar": {
    "batteryIncluded": true,
    "numberOfPanels": 1,
    "panelSize": 1.0,
    "panelProductCode": "sample string 1",
    "numberOfInverters": 1,
    "inverterSize": 1.0,
    "inverterProductCode": "sample string 2",
    "numberOfBattery": 1,
    "batterySize": 1.0,
    "batteryProductCode": "sample string 3",
    "occupancyArcheType": "sample string 4",
    "solarDegradationFirst": 1.0,
    "solarDegradationNext": 1.0,
    "batteryDegradation": 1.0,
    "batteryUsagePct": 1.0,
    "batteryChargeRate": 1.0,
    "batteryDischargeRate": 1.0
  },
  "installation": [
    {
      "numberofPanels": 1,
      "roofOrientation": 2,
      "slope": 3,
      "shade": 4.0
    },
    {
      "numberofPanels": 1,
      "roofOrientation": 2,
      "slope": 3,
      "shade": 4.0
    }
  ],
  "calculations": {
    "panels": {
      "costPerPanel": 1.0,
      "newAdditions": [
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        },
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        }
      ]
    },
    "materials": {
      "costPerInverter": 1.0,
      "costPerBattery": 1.0,
      "meterCost": 1.0,
      "pvCablingConsumablesCost": 1.0,
      "costPerOptimiser": 1.0,
      "costPerBirdProofing": 1.0,
      "costPerRoofMounting": 1.0,
      "electricalandAncillariesCost": 1.0,
      "newAdditions": [
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        },
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        }
      ]
    },
    "installation": {
      "labourCost": 1.0,
      "deliveryCost": 1.0,
      "rooferCost": 1.0,
      "scaffoldingCost": 1.0,
      "newAdditions": [
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        },
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        }
      ]
    },
    "costofSale": {
      "salesCommission": 1.0,
      "marketing": 1.0,
      "leadGeneration": 1.0,
      "compliance": 1.0,
      "planning": 1.0,
      "newAdditions": [
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        },
        {
          "description": "sample string 1",
          "numberOfUnit": 64,
          "costPerUnit": 3.0
        }
      ]
    },
    "agreedTerm": 1,
    "vatPct": 1.0,
    "inflationPct": 1.0,
    "yieldMarginPct": 1.0
  }
}

application/xml, text/xml

Sample:
<QuoteESASolarUpdateRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyUtilityGenius.Api.Models.Dto">
  <Calculations>
    <AgreedTerm>1</AgreedTerm>
    <CostofSale>
      <Compliance>1</Compliance>
      <LeadGeneration>1</LeadGeneration>
      <Marketing>1</Marketing>
      <NewAdditions>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
      </NewAdditions>
      <Planning>1</Planning>
      <SalesCommission>1</SalesCommission>
    </CostofSale>
    <InflationPct>1</InflationPct>
    <Installation>
      <DeliveryCost>1</DeliveryCost>
      <LabourCost>1</LabourCost>
      <NewAdditions>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
      </NewAdditions>
      <RooferCost>1</RooferCost>
      <ScaffoldingCost>1</ScaffoldingCost>
    </Installation>
    <Materials>
      <CostPerBattery>1</CostPerBattery>
      <CostPerBirdProofing>1</CostPerBirdProofing>
      <CostPerInverter>1</CostPerInverter>
      <CostPerOptimiser>1</CostPerOptimiser>
      <CostPerRoofMounting>1</CostPerRoofMounting>
      <ElectricalandAncillariesCost>1</ElectricalandAncillariesCost>
      <MeterCost>1</MeterCost>
      <NewAdditions>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
      </NewAdditions>
      <PVCablingConsumablesCost>1</PVCablingConsumablesCost>
    </Materials>
    <Panels>
      <CostPerPanel>1</CostPerPanel>
      <NewAdditions>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
        <OtherCostModel>
          <CostPerUnit>3</CostPerUnit>
          <Description>sample string 1</Description>
          <NumberOfUnit>64</NumberOfUnit>
        </OtherCostModel>
      </NewAdditions>
    </Panels>
    <VatPct>1</VatPct>
    <YieldMarginPct>1</YieldMarginPct>
  </Calculations>
  <Electricity>
    <Consumption>1</Consumption>
    <MoveInDate>2026-07-08T09:50:25.830424+00:00</MoveInDate>
    <PaymentType>MonthlyDirectDebit</PaymentType>
    <SmartMeterConsent>true</SmartMeterConsent>
    <TariffId>1</TariffId>
  </Electricity>
  <Gas>
    <Consumption>1</Consumption>
    <TariffId>1</TariffId>
  </Gas>
  <Installation>
    <InstallationDataPut>
      <NumberofPanels>1</NumberofPanels>
      <RoofOrientation>2</RoofOrientation>
      <Shade>4</Shade>
      <Slope>3</Slope>
    </InstallationDataPut>
    <InstallationDataPut>
      <NumberofPanels>1</NumberofPanels>
      <RoofOrientation>2</RoofOrientation>
      <Shade>4</Shade>
      <Slope>3</Slope>
    </InstallationDataPut>
  </Installation>
  <MoveInDate>2026-07-08T09:50:25.830424+00:00</MoveInDate>
  <PropertyTypeId>64</PropertyTypeId>
  <QuoteId>sample string 3</QuoteId>
  <ReferrerBranch>sample string 2</ReferrerBranch>
  <Solar>
    <BatteryChargeRate>1</BatteryChargeRate>
    <BatteryDegradation>1</BatteryDegradation>
    <BatteryDischargeRate>1</BatteryDischargeRate>
    <BatteryIncluded>true</BatteryIncluded>
    <BatteryProductCode>sample string 3</BatteryProductCode>
    <BatterySize>1</BatterySize>
    <BatteryUsagePct>1</BatteryUsagePct>
    <InverterProductCode>sample string 2</InverterProductCode>
    <InverterSize>1</InverterSize>
    <NumberOfBattery>1</NumberOfBattery>
    <NumberOfInverters>1</NumberOfInverters>
    <NumberOfPanels>1</NumberOfPanels>
    <OccupancyArcheType>sample string 4</OccupancyArcheType>
    <PanelProductCode>sample string 1</PanelProductCode>
    <PanelSize>1</PanelSize>
    <SolarDegradationFirst>1</SolarDegradationFirst>
    <SolarDegradationNext>1</SolarDegradationNext>
  </Solar>
  <isRecalc>true</isRecalc>
</QuoteESASolarUpdateRequest>

multipart/form-data

Sample:
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="PropertyTypeId"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="ReferrerBranch"

sample string 2
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="QuoteId"

sample string 3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="MoveInDate"

2026-07-08T09:50:25.8304240+00:00
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="isRecalc"

True
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Electricity.TariffId"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Electricity.PaymentType"

MonthlyDirectDebit
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Electricity.Consumption"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Electricity.SmartMeterConsent"

True
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Electricity.MoveInDate"

2026-07-08T09:50:25.8304240+00:00
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Gas.Consumption"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Gas.TariffId"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatteryIncluded"

True
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.NumberOfPanels"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.PanelSize"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.PanelProductCode"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.NumberOfInverters"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.InverterSize"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.InverterProductCode"

sample string 2
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.NumberOfBattery"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatterySize"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatteryProductCode"

sample string 3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.OccupancyArcheType"

sample string 4
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.SolarDegradationFirst"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.SolarDegradationNext"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatteryDegradation"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatteryUsagePct"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatteryChargeRate"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Solar.BatteryDischargeRate"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[0].NumberofPanels"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[0].RoofOrientation"

2
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[0].Slope"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[0].Shade"

4
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[1].NumberofPanels"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[1].RoofOrientation"

2
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[1].Slope"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Installation[1].Shade"

4
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.CostPerPanel"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[0].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[0].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[0].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[1].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[1].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[1].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.CostPerInverter"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.CostPerBattery"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.MeterCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.PVCablingConsumablesCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.CostPerOptimiser"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.CostPerBirdProofing"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.CostPerRoofMounting"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.ElectricalandAncillariesCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[0].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[0].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[0].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[1].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[1].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[1].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.LabourCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.DeliveryCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.RooferCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.ScaffoldingCost"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[0].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[0].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[0].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[1].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[1].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[1].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.SalesCommission"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.Marketing"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.LeadGeneration"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.Compliance"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.Planning"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[0].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[0].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[0].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[1].Description"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[1].NumberOfUnit"

64
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[1].CostPerUnit"

3
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.AgreedTerm"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.VatPct"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.InflationPct"

1
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="Calculations.YieldMarginPct"

1
--MultipartDataMediaFormatterBoundary1q2w3e--

Response Information

Resource Description

QuoteResponseModel
NameDescriptionTypeAdditional information
QuoteId

string

None.

Response Formats

application/json, text/json

Sample:
{
  "quoteId": "sample string 1"
}

application/xml, text/xml

Sample:
<QuoteResponseModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyUtilityGenius.Api.Models.Dto">
  <QuoteId>sample string 1</QuoteId>
</QuoteResponseModel>

multipart/form-data

Sample:
--MultipartDataMediaFormatterBoundary1q2w3e
Content-Disposition: form-data; name="QuoteId"

sample string 1
--MultipartDataMediaFormatterBoundary1q2w3e--