Requirements
Programs
VPP operators create the programs. Flatpeak offers a device the live programs that match its location, device type, the program’s rules, and the finest sampling interval your account declares in the Console. A paused program shows only to devices already enrolled in it. Read what a device can join with list VPP programs. Four parts of the program decide what an enrollment commits you to.
Each entry in
terms.rewards pays its rate, in the program’s currency_code, on one basis: FIXED per calendar period, EVENT per event delivered in full, DELIVERED_KWH per kWh delivered, or COMMITTED_KWH per kWh of the device’s locked share of an event.
Connect shows the rewards on the Join screen. The enrollment keeps a copy of the terms it joined with, under terms, and a later change to the program applies only to later enrollments.
Enroll in Connect
VPP uses the same sessions, launch and callback as the tariff flow.- Create a Connect session with the
device_id. Addoperator_idto offer one VPP operator’s programs only. - Start it with
flowset toVPP:?connect_session=<connect_session_id>&flow=VPPin a WebView, or"flow": "VPP"on thesession_startroute through the API. - If you build your own UI, implement the VPP pages.
With
flow=VPP, a user with an enrollment lands on VPP summary: review the program, see rewards, skip an event, or unenroll. A user without one lands on VPP Programs.
Managed tariffs
A managed tariff is listed on the Programs page, but the user signs up for it with the VPP operator and consents afterwards.- The user selects the managed tariff. Connect returns
session_redirectwithredirect_typeOPERATOR_SIGNUP. Openredirect_urlin the system browser and close Connect. No enrollment exists yet. - The user signs up on the VPP operator’s site.
- The VPP operator sends the user back to your app by universal link, with a new Connect session. Start it: Connect shows consent, then creates the enrollment.
422 operator_signup_required.
After enrollment
Enrollment continues after the Connect session ends.- Subscribe to the VPP events in Console > Webhooks.
- Send telemetry at the interval the device’s
telemetrygroup sets. - At step
TESTING_DISPATCH, Flatpeak issues a shortTESTevent. Fetch it, confirm it and deliver it. - From
ACTIVE, follow the device’s instructions. See Dispatch.
consents on the device holds what each VPP operator is granted now, and consent history keeps every grant and revocation, each with an ID the VPP operator sees too.
Unenroll
The user unenrolls in Connect, or you call unenroll a device, and the enrollment moves toLEAVING at step UNENROLLING. The VPP operator then approves the request. It cannot refuse, and the enrollment ends within the notice_days of its terms at the latest.
Unenroll before you delete a device. Delete a device returns 409 until the enrollment is ENDED or REJECTED.

