participation_state action.
A request moves through a series of states, from the first request through to fully enrolled, or through to unenrolled. Where supported, participation details can be updated before the request is finalised. The states, the order they run in, and the message shown to the customer at each step are documented below.
View Enrolment flow diagram (important)
View Enrolment flow diagram (important)
- Preview
- Code

Participation states explained
Enrolment
Enrolment
| State | Kind | Description | Customer-facing message |
|---|---|---|---|
ENROLMENT_REQUESTED | Transient | Enrolment request received. | We’ve received your request to join the programme. |
AWAITING_CONSENT | Resting | Awaiting dispatch consent from the customer. | We need your permission to control your device during programme events. Please give consent to continue. |
AWAITING_TELEMETRY | Resting | Waiting for the device to send telemetry for the first time. Controllability cannot be confirmed until it arrives. | We’re waiting to receive data from your device. Please check it’s switched on and connected to the internet. |
AWAITING_METER_ACCESS | Resting | Optional. Awaiting boundary meter access. Skipped when meter access is already available or not required. | We need access to your meter to continue. Please add your meter details to proceed. |
CONFIRMING_DISPATCH | Transient | Confirming the device can be controlled. | We’re checking we can control your device. |
AWAITING_ELIGIBILITY | Resting | Awaiting eligibility confirmation from the programme operator. | We’re checking whether your home and devices qualify. |
AWAITING_REGISTRATION | Resting | Awaiting registration confirmation from the programme operator. | We’re registering your device with the programme. |
REGISTERED | Transient | Registration confirmed. | Good news, your device is registered. |
INELIGIBLE | Terminal | Did not qualify at the eligibility check. Recoverable only if site properties change. | Unfortunately your home or devices don’t currently qualify. This may change if your setup changes. |
Participation
Participation
| State | Kind | Description | Customer-facing message |
|---|---|---|---|
ACTIVE | Resting | Dispatchable and participating in the programme, including VPP events where applicable. | Your device is active and taking part in the programme. |
SUSPENDED | Resting | Enrolled but temporarily not dispatchable. Active causes are listed in suspension_reasons. Returns to ACTIVE once all are resolved. | Your participation is paused. The active reasons are shown below. |
Each value below can appear in
suspension_reasons, and more than one can be active at once. The enrolment returns to ACTIVE only when every reason has cleared.| Reason | When | Recovers | Customer-facing message |
|---|---|---|---|
AWAITING_TELEMETRY | Device telemetry is no longer being received. | Automatically when telemetry resumes. | Your participation is paused because we’ve stopped receiving data from your device. Please check it’s switched on and connected. We’ll resume automatically once data returns. |
AWAITING_DISPATCH | Control of the device can no longer be confirmed. | When control is restored. | Your participation is paused because we can’t currently control your device. Please check it’s online and responding. We’ll resume once control is restored. |
AWAITING_CONSENT | Dispatch consent is missing or has expired. | When consent is renewed. | Your participation is paused because we need your permission to control your device. Please renew your consent to resume. |
OPERATOR_REQUEST | Participation has been paused by the programme operator. | When the operator removes the suspension. | Your participation is paused by the programme operator. We’ll resume once this is resolved. |
CUSTOMER_REQUEST | Participation has been paused by the customer. | When the customer resumes participation. | Your participation is paused at your request. You can resume at any time. |
Unenrolment
Unenrolment
| State | Kind | Description | Customer-facing message |
|---|---|---|---|
UNENROLMENT_REQUESTED | Transient | Customer or operator has requested unenrolment. | We’ve received your request to leave the programme. |
WINDING_DOWN | Transient | Serving notice and settling outstanding rewards. | We’re wrapping things up. Your device is no longer joining new events and any outstanding rewards are being settled. |
UNENROLLED | Resting | No longer participating in the programme. Records are retained. | You’ve left the programme. Your records are kept for your reference. |
OFFBOARDED | Terminal | Site and associated assets have been removed from the programme. | Your home and devices have been removed from the programme. |
State transitions explained
Enrolment
Enrolment
| From | Trigger / condition | To |
|---|---|---|
ENROLMENT_REQUESTED | consent requested | AWAITING_CONSENT |
AWAITING_CONSENT | consent granted | AWAITING_TELEMETRY |
AWAITING_TELEMETRY | telemetry received, meter access required | AWAITING_METER_ACCESS |
AWAITING_TELEMETRY | telemetry received, meter access already available or not required | CONFIRMING_DISPATCH |
AWAITING_METER_ACCESS | meter access granted | CONFIRMING_DISPATCH |
CONFIRMING_DISPATCH | control confirmed | AWAITING_ELIGIBILITY |
AWAITING_ELIGIBILITY | operator confirms eligible | AWAITING_REGISTRATION |
AWAITING_ELIGIBILITY | operator confirms not eligible | INELIGIBLE |
AWAITING_REGISTRATION | operator confirms registration | REGISTERED |
AWAITING_REGISTRATION | operator declines registration | INELIGIBLE |
REGISTERED | device goes live | ACTIVE (enters Participation) |
| any enrolment state | unrecoverable error, telemetry never establishes, or consent withheld | FAILED |
Participation
Participation
| From | Trigger / condition | To |
|---|---|---|
ACTIVE | a suspension reason is raised | SUSPENDED (suspension_reasons = [reason]) |
SUSPENDED | a further reason is raised | SUSPENDED (reason added) |
SUSPENDED | a reason is cleared, others remain | SUSPENDED (reason removed) |
SUSPENDED | the last reason is cleared | ACTIVE (suspension_reasons empty) |
ACTIVE | customer or operator requests to leave | UNENROLMENT_REQUESTED (enters Unenrolment) |
SUSPENDED | customer or operator requests to leave | UNENROLMENT_REQUESTED (enters Unenrolment) |
suspension_reasons:| Reason | Raised when | Cleared when |
|---|---|---|
AWAITING_TELEMETRY | telemetry lost | telemetry resumes |
AWAITING_DISPATCH | control can no longer be confirmed | control restored |
AWAITING_CONSENT | consent missing or expired | consent renewed |
OPERATOR_REQUEST | operator pauses | operator lifts |
CUSTOMER_REQUEST | customer pauses | customer resumes |
Unenrolment
Unenrolment
| From | Trigger / condition | To |
|---|---|---|
UNENROLMENT_REQUESTED | notice served | WINDING_DOWN |
WINDING_DOWN | rewards settled, notice period elapsed | UNENROLLED |
UNENROLLED | site and assets deleted | OFFBOARDED |

