Step 1 - Provision a Site
Provision a Site
If this customer was previously presented with a forecast of their potential savings, there will be an account (a.k.a. site) already created for them. Below we show you how to make sure this account is up to date so that you can start calculating actual savings. If an account doesn’t already exist, make sure the data below is set when adding the new account. You can do this in one API call, or several, depending on what works best for your application.
Find the Existing “Potential Customer” Account
The first step is to find the existing account that was created when the customer was a potential customer. You can retrieve the specific account based on the Genability accountId
or your own providerAccountId
, which is the unique ID you may have assigned to the account when it was created. Here are sample requests for retrieving the account by accountId
and providerAccountId
:
GET /rest/v1/accounts/{accountId}
GET /rest/v1/accounts/pid/{providerAccountId}
You can read more in our documentation about how to Get An Account, including how to search for the one that matches if you do not have an ID available in your application.
If the account does not exist, you will need to create an account for the customer now. Visit our documentation more information on how to Add An Account.
Update the Account Type
Next the account type will need to be updated from POTENTIAL
or NULL
to CUSTOMER
. This will enable you to find this account more easily in Dash and via the API. Here is a sample request on how to update the type:
PUT /rest/v1/accounts/pid/{providerAccountId}/properties
1
2
3
4
{
"keyName":"type",
"dataValue":"CUSTOMER"
}
To learn more about how to update the customer type and other properties, take a look at our documentation to Add or Update an Account Property.
Confirm the Site Actual Electric Tariff
After retrieving or creating the account, you will need to confirm the electric tariff and assign the solar tariff for the account. This will allow your calculations to use the appropriate electric and solar prices when calculating actual solar savings.
If you found an existing account from the original proposal, confirm the electric tariff has not changed. Sometimes customers change tariffs when they install solar or storage (or whatever you are measuring). If the customer has chosen a new electric tariff, update the electric tariff including an effective date as to when the tariff was changed. This is most likely on or around the interconnection date.
PUT /rest/v1/accounts/pid/{providerAccountId}/tariffs
1
2
3
4
5
{
"masterTariffId": 522,
"serviceType": "ELECTRICITY",
"effectiveDate": "2015-01-01T00:00-0800"
}
Of course, if you created a new account, you will need to either confirm the default tariff or select an alternate tariff.
Visit our documentation on Account Tariff to read more about how to get available tariffs and how to add or update the tariff on the account. You can also set Contracted Rates to an account for customers in deregulated markets.
Set the Solar Pricing
Next you will add the price the customer pays for solar by selecting a solar tariff for the account. The solar costs will be used to calculate for the customer’s actual savings. For each solar tariff you can set the customer’s specific PPA rate or lease rate by using the CONTRACTED
function as detailed in the examples provided below. You will use the masterTariffId
of the solar tariff to update the account’s solar tariff. An effectiveDate
will be included in the request to specify the date the solar tariff is effective for the account.
Here is an example on how to assign a solar tariff with a PPA rate:
PUT /rest/v1/accounts/pid/{providerAccountId}/tariffs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"masterTariffId": {masterTariffId},
"serviceType": "SOLAR_PV",
"effectiveDate": "2015-06-01T00:00-0700",
"rates": [
{
"rateName": "PPA Rate",
"chargeType": "CONSUMPTION_BASED",
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"rateBands": [
{
"rateAmount": "0.155",
"rateUnit": "COST_PER_UNIT"
}
]
}
]
}
Here is an example on how to assign a solar tariff with a flat monthly PPA:
PUT /rest/v1/accounts/pid/{providerAccountId}/tariffs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"masterTariffId": {masterTariffId},
"serviceType": "SOLAR_PV",
"effectiveDate": "2015-06-01T00:00-0700",
"rates": [
{
"rateName": "Flat Monthly PPA",
"chargeType": "FIXED_PRICE",
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"rateBands": [
{
"rateAmount": "125"
}
]
}
]
}
Here is an example on how to assign a solar tariff with a lease:
PUT /rest/v1/accounts/pid/{providerAccountId}/tariffs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"masterTariffId": {masterTariffId},
"serviceType": "SOLAR_PV",
"effectiveDate": "2015-06-01T00:00-0700",
"rates": [
{
"rateName": "Lease",
"chargeType": "FIXED_PRICE",
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"rateBands": [
{
"rateAmount": "295"
}
]
}
]
}
Here is an example on how to assign a solar tariff with a balanced bill:
PUT /rest/v1/accounts/pid/{providerAccountId}/tariffs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"masterTariffId": {masterTariffId},
"serviceType": "SOLAR_PV",
"effectiveDate": "2015-06-01T00:00-0700",
"rates": [
{
"rateName": "Balanced Bill",
"chargeType": "FIXED_PRICE",
"chargeClass": "CONTRACTED",
"chargePeriod": "MONTHLY",
"rateBands": [
{
"rateAmount": "125"
}
]
}
]
}
In the near future you will be able to set the interconnection date of the solar system. This information will allow us to determine when the net metering true up is expected to occur and will allow us to perform the calculation correctly.