Skip to content

home

Electric Reservations Payload

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

Property Type Required Format Title
address_id string ✅ uuid Address id
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_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_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
num_units
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
unit_name_or_number
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 AND is_disadvantaged_community is True contractor_dac_incentive
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

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. This field is required if the address of the building is within a DAC.

  • is not 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 not 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 not 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 units 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 not 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 not required
  • Type: integer

Minimum Number: 1000
Maximum Number: 1000000

mf_num_bedrooms

The number of bedrooms for the entire multifamily building.

  • is not required
  • Type: integer

Minimum Number: 0
Maximum Number: 10000

num_occupied_units

This is the number of occupied units in a multifamily building.

  • is not 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 not 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 not 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 not required
  • Type: string

Minimum Length: 6
Maximum Length: 36

reservation_amount

Optional API user-specified reservation amount. Use this to request a reservation amount 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 not 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 not 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. 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 not 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