Skip to content

home

Electric Reservations Payload

Defined in: electrificationReservation.schema.json Type: object Additional Properties Allowed: False

Property Type Required Conditional Required Format Title
address_id string ✅ uuid Address id
allow_requested_reservation_amount_reduction boolean Allow requested reservation amount reduction
applicant_id string ✅ Applicant id
building_project_type enum ✅ Building project type
claimant_type enum ✅ Claimant type
construction_type enum ✅ Construction type
contractor_dac_incentive number ⚙ Contractor DAC incentive
contractor_incentive number ⚙ Contractor incentive
dwelling_unit_income_bucket enum ⚙ Dwelling unit income bucket
energy_data_evaluation_permission boolean ✅ Energy data evaluation permission
external_rebate_id string External rebate id
installation_type enum ✅ Installation type
is_disadvantaged_community boolean Is disadvantaged community
mf_building_income_bucket enum ⚙ Multifamily building income bucket
mf_conditioned_floor_area integer ⚙ Multifamily conditioned floor area
mf_num_bedrooms integer ⚙ Multifamily num bedrooms
num_occupied_units integer ⚙ Num occupied units
num_units integer ⚙ Num units
num_units_meeting_income_bucket integer ⚙ Num units meeting income bucket
original_component_details original_component_details ⚙ Original Component Details
project_id string ⚙ Project id
reservation_amount number Requested reservation amount
sf_conditioned_floor_area enum ⚙ Single-family conditioned floor area
sf_num_bedrooms integer ⚙ Single-family num bedrooms
state_attests_proof_of_identity_ownership_income boolean ✅ State attests proof of identity ownership income
unit_name_or_number string ⚙ Unit name or number
upgrade_type enum ✅ Upgrade type
vendor_id string Vendor id
upgrade_subtype string Upgrade suptype

allOf Requirement

Conditional Validation

if then should be present should not be present comment
building_project_type is MULTIFAMILY_CENTRAL mf_building_income_bucket
num_occupied_units
num_units
num_units_meeting_income_bucket
dwelling_unit_income_bucket
unit_name_or_number
Determine which fields are required or not allowed when building_project_type is MULTIFAMILY_CENTRAL
building_project_type is MULTIFAMILY_IN_UNIT_PART_OF_BUILDING_PROJECT mf_building_income_bucket
num_occupied_units
num_units
num_units_meeting_income_bucket
project_id
unit_name_or_number
dwelling_unit_income_bucket Determine which fields are required or not allowed when building_project_type is MULTIFAMILY_IN_UNIT_PART_OF_BUILDING_PROJECT
building_project_type is MULTIFAMILY_IN_UNIT dwelling_unit_income_bucket
unit_name_or_number
mf_building_income_bucket
num_occupied_units
num_units_meeting_income_bucket
Determine which fields are required or not allowed when building_project_type is MULTIFAMILY_IN_UNIT
building_project_type is one of [MANUFACTURED, SINGLE_FAMILY_ATTACHED, SINGLE_FAMILY_DETACHED] dwelling_unit_income_bucket mf_building_income_bucket
num_occupied_units
num_units
num_units_meeting_income_bucket
Determine which fields are required or not allowed for single family building_project_type
upgrade_type is HEAT_PUMP_CLOTHES_DRYER original_component_details The appropriate schema must be used for original_component_details depending on upgrade_type.
upgrade_type is ELECTRIC_COOKING_APPLIANCE original_component_details
upgrade_type is HEAT_PUMP_FOR_SPACE_HEATING_OR_COOLING original_component_details
upgrade_type is ELECTRICAL_PANEL original_component_details
upgrade_type is INSULATION_AIR_SEALING_VENTILATION original_component_details
upgrade_type is HEAT_PUMP_WATER_HEATER original_component_details
upgrade_type is ELECTRIC_WIRING original_component_details
installation_type is CONTRACTOR_INSTALLED contractor_incentive Determine when contractor_dac_incentive and contractor_incentive are required or not allowed
installation_type is not CONTRACTOR_INSTALLED contractor_dac_incentive
contractor_incentive
Determine when contractor_dac_incentive and contractor_incentive are required or not allowed
upgrade_type is one of [HEAT_PUMP_FOR_SPACE_HEATING_OR_COOLING, INSULATION_AIR_SEALING_VENTILATION] AND building_project_type is MULTIFAMILY_CENTRAL mf_conditioned_floor_area
upgrade_type is one of [HEAT_PUMP_FOR_SPACE_HEATING_OR_COOLING, INSULATION_AIR_SEALING_VENTILATION] AND building_project_type is not MULTIFAMILY_CENTRAL sf_conditioned_floor_area
upgrade_type is one of [HEAT_PUMP_CLOTHES_DRYER, HEAT_PUMP_WATER_HEATER] AND building_project_type is MULTIFAMILY_CENTRAL mf_num_bedrooms
upgrade_type is one of [HEAT_PUMP_CLOTHES_DRYER, HEAT_PUMP_WATER_HEATER] AND building_project_type is not MULTIFAMILY_CENTRAL sf_num_bedrooms

address_id

A unique identifier associated with the address of the building at which the upgrade(s) will be installed. This id must be obtained using the address-service endpoint.

  • is required
  • Type: string

allow_requested_reservation_amount_reduction

If true, allows the rules engine to reduce the requested reservation amount.

  • is not required
  • Type: boolean

applicant_id

This identifier is unique to the applicant (the building owner or renter that is to benefit from the rebate). It must be obtained from the API /applicant endpoint.

  • is required
  • Type: string

building_project_type

This describes both the type of the building and, in the multifamily case, whether the upgrade in this reservation applies to the whole building or to a single unit. If it applies to a single unit, there is a further distinction between an upgrade that is part of a whole building project and a stand-alone upgrade. For the MULTIFAMILY_IN_UNIT_PART_OF_BUILDING_PROJECT and MULTIFAMILY_CENTRAL cases, the income bucket for the building, mf_income_bucket, is used. Otherwise, the income bucket for the dwelling unit, dwelling_unit_income_bucket, is used.

  • is required
  • Type: enum
Value
MANUFACTURED
MULTIFAMILY_CENTRAL
MULTIFAMILY_IN_UNIT
MULTIFAMILY_IN_UNIT_PART_OF_BUILDING_PROJECT
SINGLE_FAMILY_ATTACHED
SINGLE_FAMILY_DETACHED

claimant_type

The type of person or entity that is initiating the rebate process on behalf of the applicant.

  • is required
  • Type: enum
Value
CONTRACTOR
HOMEOWNER
MULTIFAMILY_BUILDING_OWNER
OTHER
TENANT

construction_type

Set to NEW if the building is less than one year old. Otherwise, set to EXISTING.

  • is required
  • Type: enum
Value
EXISTING
NEW

contractor_dac_incentive

This is the amount the state will pay to a contractor as a disadvantaged-community incentive.

  • is conditionally required
  • Type: number

Must be multiple of: 0.01 Minimum Number: 0

contractor_incentive

This is the amount the state will pay to a contractor as an incentive. This is separate from any contractor DAC incentive.

  • is conditionally required
  • Type: number

Must be multiple of: 0.01 Minimum Number: 0

dwelling_unit_income_bucket

The household income level of the applicant compared to the area median income (AMI).

  • is conditionally required
  • Type: enum
Value
80%_AND_GREATER_BUT_LESS_THAN_150%_AMI
LESS_THAN_80%_AMI

energy_data_evaluation_permission

Set to true if the home/building owner has given their permission to share energy data with the State and the DOE for evaluation purposes.

  • is required
  • Type: boolean

external_rebate_id

This is an optional field that a state can use for their own purposes to identify a rebate or rebate reservation.

  • is not required
  • Type: string

Minimum Length: 1 Maximum Length: 64

installation_type

Indicates who performed the installation.

  • is required
  • Type: enum
Value
CONTRACTOR_INSTALLED
DO_IT_YOURSELF

is_disadvantaged_community

This field should only be used by states that have been approved by the DOE to do so. If provided, this will override the is_disadvantaged_community value from the address-service.

  • is not required
  • Type: boolean

mf_building_income_bucket

Choose the lowest area median income (AMI) range for which at least 50% of the household units fall into the range or lower. For example, consider a five-unit apartment building for which one unit falls in the LESS_THAN_80%_AMI range, two fall in the 80%_AND_GREATER_BUT_LESS_THAN_150%_AMI, and the other two have household incomes above these ranges. Then the 80%_AND_GREATER_BUT_LESS_THAN_150%_AMI range should be chosen because more than half of the units fall into this range or lower.

  • is conditionally required
  • Type: enum
Value
80%_AND_GREATER_BUT_LESS_THAN_150%_AMI
LESS_THAN_80%_AMI

mf_conditioned_floor_area

The conditioned floor area for the entire multifamily building including common areas.

  • is conditionally required
  • Type: integer

Minimum Number: 1000 Maximum Number: 1000000

mf_num_bedrooms

The number of bedrooms for the entire multifamily building.

  • is conditionally required
  • Type: integer

Minimum Number: 0 Maximum Number: 10000

num_occupied_units

This is the number of occupied units in a multifamily building. Note: This field should be used for building_project_type MULTIFAMILY_CENTRAL or MULTIFAMILY_IN_UNIT_PART_OF_BUILDING_PROJECT. Although it is currently optional in these cases, it will be required in a future release.

  • is conditionally required
  • Type: integer

Minimum Number: 0 Maximum Number: 1000

num_units

This is the total number of units in a multifamily building. This field is required when building_project_type is any of the enumerated values that has a "MULTIFAMILY" prefix. Otherwise, the field should be omitted.

  • is conditionally required
  • Type: integer

Minimum Number: 2 Maximum Number: 1000

num_units_meeting_income_bucket

This is the number of occupied units in a multifamily building for which the household income falls within the income range represented by mf_income_bucket or is lower.

  • is conditionally required
  • Type: integer

Minimum Number: 1 Maximum Number: 1000

original_component_details

One Of

project_id

This is a unique string supplied by the API user that is used to associate one or more reservations to a single project. Note: it is recommended that a uuid be used to avoid duplication, but the API user can use any other system that they find convenient, provided that it is unique for the state.

  • is conditionally required
  • Type: string

Minimum Length: 6 Maximum Length: 36

reservation_amount

Optional API user-specified reservation amount. Use this to request a reservation amount for the rebate (do not include incentives) that is less than the otherwise allowed amount. For example, this can be helpful if you need several concurrent reservations to support different parts of a project and need to make sure the total of the reservations will not exceed the $14,000 household cap.

  • is not required
  • Type: number

Must be multiple of: 0.01 Exclusive Minimum: 0

sf_conditioned_floor_area

This is the conditioned floor area for an individual dwelling unit, either a single-family home or a unit in a multifamily building.

  • is conditionally required
  • Type: enum
Value
1500SF_2500SF
500SF_1500SF
GREATER_THAN_2500SF
LESS_THAN_500SF

sf_num_bedrooms

The number of bedrooms in the dwelling unit.

  • is conditionally required
  • Type: integer

Minimum Number: 0 Maximum Number: 20

state_attests_proof_of_identity_ownership_income

The state attests that they have obtained the required proof of identify, proof of ownership, and proof of income for this rebate.

  • is required
  • Type: boolean

Constant: True

unit_name_or_number

This is the unit designator for a unit in a multifamily building. It should also be used in situations where multiple homes share a street address and are distinguished only by a Lot# or other special designation. Do NOT include words or abbreviations such as 'APT' or 'UNIT'. For example, if the unit is referred to as 'APT 7B', then unit_name_or_number should be '7B'.

  • is conditionally required
  • Type: string

Minimum Length: 1 Maximum Length: 32

upgrade_type

The upgrade covered by this reservation. These upgrade types are the ones specifically listed in the IRA legislation.

  • is required
  • Type: enum
Value
ELECTRICAL_PANEL
ELECTRIC_COOKING_APPLIANCE
ELECTRIC_WIRING
HEAT_PUMP_CLOTHES_DRYER
HEAT_PUMP_FOR_SPACE_HEATING_OR_COOLING
HEAT_PUMP_WATER_HEATER
INSULATION_AIR_SEALING_VENTILATION

vendor_id

This is a unique identifier for a vendor that the state will reimburse in connection with a redemption.

  • is not required
  • Type: string

Minimum Length: 6 Maximum Length: 64

upgrade_subtype

The use of this field is state-specific. A state could base a rebate rule on this field value.

  • is not required
  • Type: string

Minimum Length: 0 Maximum Length: 64