Cap a running session's power or current
Sets a session profile (TxProfile) with one period of limit in unit for the active transaction, from the start of the session. Setting it again changes the cap: OCPP 1.6 replaces the earlier one at the same stack level; on OCPP 2.x the new cap goes one stack level above the session's earlier ones, which the higher level overrides; once that would pass the charger's reported highest stack level it answers 409 charging_limit_stack_full (details.stack_level, details.max_stack_level) before anything is sent: remove the cap, then set it again. A limit of 0 pauses the session until the cap changes or is removed. The cap ends with the transaction. result.profile_id names the profile on the station; an unknown transaction answers 404 transaction_not_found and an ended one a rejected operation (transaction_ended). Requires stations:control. The operation succeeds when the core sent the message; result.charger_status then carries the charger's own answer once it arrives (null until then: poll the operation or subscribe to the charging_profile webhooks; it is never resent). Refusals before anything is sent create no operation and leave the Idempotency-Key unused: 409 smart_charging_unsupported when the charger reports smart charging disabled, 422 charging_profile_unsupported for a unit, stack level or period count it reported it cannot take (details.field, details.supported). Like station commands other than stop and unlock, it answers 402 payment_method_required when the project's billing team has no usable payment method for Ivora's usage fee (no operation; a retry with a journaled Idempotency-Key replays it).
Path parameters
- tenant_idintegerRequired
- transaction_idintegerRequired
Headers
- idempotency-keystringRequired
Request body
- limitnumberRequiredThe session's cap in unit, at most one decimal; 0 pauses the session until the cap changes or is removed
- unitenumRequiredW (power) or A (current, per phase)One of
W,A - number_phasesinteger | nullAC phases the vehicle may useMinimum 1 · Maximum 3
Returns · 202
- idstringRequired
- tenant_idintegerRequired
- statusenumRequiredOne of
dispatching,succeeded,rejected,unknown - resultobject | nullRequired
- created_atstringRequired
- updated_atstringRequired
curl --fail-with-body -X PUT "https://api.ivoracharge.com/v1/tenants/1042/transactions/1/charging-limit" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Idempotency-Key: order-2026-09-30-0001" \
-H "Content-Type: application/json" \
-d '{
"limit": 1.5,
"unit": "W"
}'{
"id": "id_0123456789abcdef",
"tenant_id": 1042,
"status": "dispatching",
"result": {},
"created_at": "2026-09-30T17:00:00Z",
"updated_at": "2026-09-30T17:00:00Z"
}https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.