Why upgrade?
| Flex Lite | Smart Charging | |
|---|---|---|
| Scheduling model | Inserts pauses into your schedule | Axle generates the entire schedule |
| Optimisation window | Single 30-min pause | Full charging session |
| Re-scheduling | One-shot (at plug-in) | Continuous — Axle re-optimises as prices change |
| Revenue potential | Lower | Higher — more flexible capacity to sell |
What changes
What's added
What's added
- Tariff data — send the user’s energy tariff so Axle can cost-optimise charging
- Intent — send the user’s energy requirement (kWh) and ready-by time, which sets the minimum requirements for the schedule Axle will build
- Separate plug-in / plug-out events — replace the combined
plug-in-schedulecall so Axle knows the charging window - Schedule endpoint — Axle calls your API with an OCPP schedule payload whenever a new schedule is generated
- Half-hourly readings — report consumption so Axle can verify delivery and calculate rewards
What's removed
What's removed
plug-in-scheduleendpoint — replaced by separate plug-in event + async schedule delivery- Schedule in API response — schedules arrive via a call to your API with an OCPP schedule payload, not in the plug-in response
What stays the same
What stays the same
- Authentication — same OAuth token flow
- Site & asset model — same entities, same IDs
- Onboarding — same
onboard-site-and-asset(or advancedinitialise/enrol) flow, though Smart Charging uses thefull_asset_schedule_controlproposition instead oflimited_pause - Offboarding — same
offboard-site-and-assetsendpoint - Payments — same rewards and transaction endpoints
Integration steps
These are the changes you need to make on top of your existing Flex Lite integration. For full detail on each step, see the Smart Charging integration guide.1. Send tariff data
Axle needs the user’s energy tariff to optimise charging cost. Send it once at enrolment time, then update whenever the tariff changes.Send tariff
Send or update a user’s tariff
2. Collect and send intent
Collect the user’s charging requirement and deadline:- kWh — how much energy to add
- Ready-by time — when the vehicle needs to be ready
Send intent
Send or update a user’s charging intent
3. Replace plug-in-schedule with separate events
Instead of a singleplug-in-schedule call that returns a schedule synchronously, send separate plug-in and plug-out events. Schedules are delivered asynchronously in OCPP format via an API call to your endpoint.
Plug-in event
Notify Axle when a vehicle plugs in
Plug-out event
Notify Axle when a vehicle unplugs
You should also send a plug event when a user is first enrolled to inform Axle of the initial plug state.
4. Set up schedule endpoint
Axle sends charging schedules to your platform in OCPP format via an API call. You need to expose an endpoint that can receive and apply these schedules to the charger. Axle will send a schedule:- When the user plugs in
- When the user is already plugged in and one of the following events happens:
- The user’s tariff is updated
- The user’s intent changes
- Axle reoptimises in response to changes in the wider market
Example OCPP charging profile
See the format of schedule pushes from Axle
5. Report half-hourly readings
Send consumption readings so Axle can verify delivery and calculate rewards.Send readings
Report asset consumption readings
6. Enrol users in Smart Charging
Once the above integration work is complete, you can start enabling users. Enrol them in thefull_asset_schedule_control proposition via the enrol endpoint:
Sequence diagram
View end-to-end flow for smart charging integration
View end-to-end flow for smart charging integration
Migration checklist
Use this to track your migration progress:Collect and send intent
Add UI to collect kWh requirement and ready-by time, and send via the intent endpoint.
Replace plug-in-schedule with separate events
Switch from
plug-in-schedule to separate plug-in and plug-out event calls.Next steps
Smart Charging integration guide
Full integration walkthrough
Smart Charging API Reference
Complete API documentation
OCPP example
Example charging profile payload

