Description: Demo Utility is a test utility used to demonstrate our Green Button Connect and benchmarking functionality.
Website: https://greenbutton.demoutility.com/
Utility ID:
DEMOUTILITY
(this is the utility identifier you use in our API)
In order for you to request data from Demo Utility customers, you must register with Demo Utility as a third party company.
As part of their Green Button Connect My Data (GBCMD) program, Demo Utility is using UtilityAPI's EE/DER Engagement Platform to allow third-party companies to request data access from Demo Utility customers. Authorizations use the Green Button OAuth process, which means that third-parties have to be pre-registered with Demo Utility so they can be assigned a client_id.
After registering with Demo Utility as a third party, to request authorizations from Demo Utility customers and test accounts, you can use any of these methods:
DEMOUTILITY
in the
url parameter or when you create a
Form.
Once a customer has authorized, you will see an Authorization appear on your dashboard and via both our JSON API and Green Button API.
When your first register as a third party, your registration status is set to Sandbox mode. This means you can only request data from test accounts, so you can try it out or start building an integration, but real customers won't be able to authorize data sharing with you yet. Demo Utility will review your registration, then you'll get an email letting you know that you can now switch your status to Live mode in your settings.
During the OAuth authorization flow, we offer multiple ways that customers can look up their Demo Utility account. To make things smoother for the customer, you can pre-fill these lookup identifiers (phone number, email, etc.) in the OAuth scope string if you already know it. We'll automatically try to find that user using your provided information so they can skip the lookup step of authentication and go directly to the OTP sending step. If we can't find that user automatically given your prefilled value, we'll fall back using the default authentication flow.
Scope parameter format:
auth-{type}[-{value}]
Full scope string example with authentication option (percent encoded):
scope=FB%3D4_16_51%3BAdditionalScope%3Dauth-test-test_residential
Type | Can Have Value? | Description | Scope String Example |
---|---|---|---|
account |
Yes | Try to lookup the customer via their utility account number. | auth-account-111111111-1 |
phone |
Yes | Try to lookup the customer via the phone number they have on file at the utility. | auth-phone-5554443333 |
email |
Yes | Try to lookup the customer via the email they have on file at the utility. | auth-email-joe%40example.com |
address |
Yes | Try to lookup the customer via their utility billing address. | auth-address-123%20Main%20St%2C%20Anytown%2C%20CA%2012345 |
lastbill |
Yes |
Authenticate using a customer's latest bill date and amount. The prefill value for this authentication type is the customer's account number. |
auth-lastbill-111111111-1 |
test |
Yes | Authenticate using a specific test scenario. | auth-test-test_residential |
The Demo Utility OAuth authorization flow doesn't use usernames or passwords by default. Instead it asks the user to lookup their account via some identifier (e.g. phone number, address, etc.), then sends them a One-Time-Passcode (OTP) to verify their identity.
That means you can't use UtilityAPI's default test usernames to manually simulate a test scenario. Instead, below we have created test identifiers so you can simulate authorizing as a Demo Utility customer under various test scenarios.
When you use these test identifiers, we won't actually send an OTP. Instead, we will display it directly on the authentication page so you can enter it while you're testing. If you'd like to see what the sent OTP messages look like, use the OTP Testing guide.
Try one with your Demo Utility data share link
(you aren't logged into an account that has a registered Demo Utility client)
Account Number | Equivalent Test Scenario | Description |
---|---|---|
111111111-1 |
residential |
A residential customer with 1 account and 3 services. |
222222222-2 |
commercial |
A commercial customer with 2 accounts and 5 services. |
333333333-3 |
badlogin |
Simulate error where we couldn't find that customer. |
Phone Number | Equivalent Test Scenario | Description |
---|---|---|
111-111-1111 |
residential |
A residential customer with 1 account and 3 services. |
222-222-2222 |
commercial |
A commercial customer with 2 accounts and 5 services. |
333-333-3333 |
badlogin |
Simulate error where we couldn't find that customer. |
Email Address | Equivalent Test Scenario | Description |
---|---|---|
uapi-test-residential@example.com |
residential |
A residential customer with 1 account and 3 services. |
uapi-test-commercial@example.com |
commercial |
A commercial customer with 2 accounts and 5 services. |
uapi-test-badlogin@example.com |
badlogin |
Simulate error where we couldn't find that customer. |
Physical Address | Equivalent Test Scenario | Description |
---|---|---|
100 DEMO AVE, ANYTOWN, NY 12345 |
residential |
A residential customer with 1 account and 3 services. |
200 DEMO AVE, ANYTOWN, NY 12345 |
commercial |
A commercial customer with 2 accounts and 5 services. |
300 DEMO AVE, ANYTOWN, NY 12345 |
badlogin |
Simulate error where we couldn't find that customer. |
Account # | Last Bill Amount | Last Bill Date | Equivalent Test Scenario | Description |
---|---|---|---|---|
111111111-1 |
100.00 |
2022-01-01 |
residential |
A residential customer with 1 account and 3 services. |
222222222-2 |
200.00 |
2022-02-02 |
commercial |
A commercial customer with 2 accounts and 5 services. |
333333333-3 |
300.00 |
2022-03-03 |
badlogin |
Simulate error where we couldn't find that customer. |
Username | Password | Equivalent Test Scenario | Description |
---|---|---|---|
test_residential |
test_residential |
residential |
A residential customer with 1 account and 3 services. |
test_commercial |
test_commercial |
commercial |
A commercial customer with 2 accounts and 5 services. |
test_badlogin |
test_badlogin |
badlogin |
Simulate error where we couldn't find that customer. |
Test Account | Equivalent Test Scenario | Description |
---|---|---|
test_residential |
residential |
A residential customer with 1 account and 3 services. |
test_commercial |
commercial |
A commercial customer with 2 accounts and 5 services. |
test_badlogin |
badlogin |
Simulate error where we couldn't find that customer. |
If you want to send a one-time passcode to a real phone number or email to see what it looks like, you can prefix a special string to your phone number or email during lookup time and we'll set that number as the test scenario's OTP contact method. NOTE: These are intended for manual testing and not for automated testing (since they will really send an OTP), so please use our test credentials or the /test-submit API for automated tests.
Format | Equivalent Test Scenario | Description |
---|---|---|
TEST_residential_<your_phone_number> TEST_residential_<your_email>
|
residential |
A residential customer with 1 account and 3 services. |
TEST_commercial_<your_phone_number> TEST_commercial_<your_email>
|
commercial |
A commercial customer with 2 accounts and 5 services. |
TEST_badlogin_<your_phone_number> TEST_badlogin_<your_email>
|
badlogin |
Simulate error where we couldn't find that customer. |
To demonstrate how you can integrate the GBC OAuth authorization process into your apps and websites, we offer a demo third party website that can be configured with any GBC client, so long as it has a specific redirect_uri added. We have also created public, sandbox-only GBC clients that you can try out (see table below).
Client ID | Company Name | Pre-configured Demo Link |
---|---|---|
DEMOUTILITY_ccccccccc |
Test Company | Link |