Skip to main content
A plan runs one device under a managed tariff. You supply the energy and decide when the device charges and discharges, and every interval is binding on the OEM. Plans work only for a device with an ACTIVE enrollment in one of your managed programs; any other device returns 422 plan_not_allowed. To commit devices to a market activation, use a VPP event.
  1. Submit the plan.
  2. Flatpeak bounds it to the device’s limits and the customer’s settings. Where a VPP event commitment overlaps, the commitment takes its place.
  3. The OEM fetches the instructions, applies them and confirms the power the device will deliver.
  4. device.instructions.confirm fires with the device_id and the confirmation_id.
  5. Read the timeline, and verify delivery with meter records.

Submit a plan

Request body
Submit a dispatch plan with one or more intervals, the same shape a VPP event uses. power_kw is signed: positive to import, negative to export. A plan replaces any earlier plan over the same time. Pass reference_id to make a retry safe: resubmitting the same value returns the stored plan. The response carries a pln_ ID.

Limits

Intervals cut by the customer’s settings or by device condition are recorded as declined and do not count against fulfillment.

Confirmation

Subscribe to device.instructions.confirm in Console > Webhooks, so you do not need to poll. A confirmed power below your plan is a deviation: the plan stands and the shortfall is recorded.

Timeline

Retrieve a dispatch timeline returns the device’s net flows at its connection point. The window covers up to 90 days, past or future, with no gaps. A confirmed interval shows what the OEM intends, while delivery is measured from meter records only.