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
- is conditionally required
- Type: 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