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
- is not 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 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