Set a charging profile (SetChargingProfile)

post/v1/tenants/{tenant_id}/stations/{station_id}/charging-profiles
Requires an API key

OCPP 1.6 SetChargingProfile (ChargePointMaxProfile, TxDefaultProfile, TxProfile) or OCPP 2.0.1/2.1 SetChargingProfile (ChargingStationMaxProfile, TxDefaultProfile, TxProfile). purpose charger_max caps the whole station, tx_default every new session on the station or one connector, session one active transaction. unit is W or A; give periods, or time-of-use windows with time_zone and default_limit (a daily recurring schedule). Requires stations:control. result.profile_id names the profile; its state follows the charger's answer (charging_profile.accepted or .rejected webhooks). A refusal by the charging core (OCPP 2.x checks, such as a second profile at the same purpose, EVSE and stack level) rejects the operation with 422 charging_profile_refused and its reason. Offline stations answer station_offline in the rejected operation. 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
  • station_idintegerRequired

Headers

  • idempotency-keystringRequired

Request body

  • purposeenumRequired
    charger_max: the whole station's ceiling. tx_default: every new session on the station or one connector. session: one active transaction (transaction_id)
    One of charger_max, tx_default, session
  • unitenumRequired
    W (power) or A (current, per phase)
    One of W, A
  • connector_idinteger | null
    tx_default only: the connector resource ID it applies to (its EVSE on OCPP 2.x). Omit for the whole station
    Greater than 0
  • transaction_idinteger | null
    session only: transaction resource ID from the transactions API, active on this station
    Greater than 0
  • stack_levelinteger
    Precedence within the purpose: the highest valid stack level wins. On OCPP 1.6 a profile with the same purpose, connector and stack level replaces the earlier one
    Default 0 · Minimum 0 · Maximum 100
  • kindenum | null
    absolute (from start_at, default now), recurring (daily or weekly from start_at) or relative (from the start of the session). Default: relative for session, recurring with windows, else absolute
    One of absolute, recurring, relative
  • recurrencyenum | null
    recurring only; windows are daily
    One of daily, weekly
  • start_atstring | null
    ISO 8601 time with offset the schedule starts (absolute, recurring)
    Up to 40 characters
  • duration_secondsinteger | null
    Length of the schedule; omit to keep the last period until the profile ends
    Minimum 1 · Maximum 604800
  • valid_fromstring | null
    ISO 8601 time with offset; on OCPP 2.x it cannot be in the future
    Up to 40 characters
  • valid_tostring | null
    ISO 8601 time with offset after which the charger drops the profile
    Up to 40 characters
  • min_charging_ratenumber | null
    The lowest rate the vehicle charges efficiently at, in the profile's unit
    Greater than 0
  • periodsarray of Period | null
    The schedule. Give periods or windows, not both
    Child attributes
    • start_offset_secondsintegerRequired
      Seconds after the schedule start; the first period starts at 0
      Minimum 0 · Maximum 604800
    • limitnumberRequired
      The limit in the profile's unit (W or A), at most one decimal; 0 pauses charging for the period
    • number_phasesinteger | null
      AC phases the vehicle may use; omit for the charger's default (3)
      Minimum 1 · Maximum 3
  • windowsarray of Window | null
    Time-of-use charging windows: a daily recurring schedule in time_zone with default_limit outside them
    Child attributes
    • startstringRequired
      Local time of day the window starts, HH:MM
      Pattern ^\d\d:\d\d$
    • endstringRequired
      Local time of day the window ends, HH:MM (24:00 for midnight). An end not after the start runs over midnight
      Pattern ^\d\d:\d\d$
    • limitnumberRequired
      The limit inside the window, in the profile's unit; 0 pauses charging there
  • time_zonestring | null
    windows: the IANA time zone of their times of day
    Up to 64 characters
  • default_limitnumber | null
    windows: the limit outside every window, in the profile's unit (0 pauses charging there)
    Minimum 0
  • number_phasesinteger | null
    windows: AC phases for every period
    Minimum 1 · Maximum 3

Returns · 202

  • idstringRequired
  • tenant_idintegerRequired
  • statusenumRequired
    One of dispatching, succeeded, rejected, unknown
  • resultobject | nullRequired
  • created_atstringRequired
  • updated_atstringRequired
POST /v1/tenants/{tenant_id}/stations/{station_id}/charging-profiles
curl --fail-with-body -X POST "https://api.ivoracharge.com/v1/tenants/1042/stations/1/charging-profiles" \
  -H "Authorization: Bearer $IVORA_API_KEY" \
  -H "Idempotency-Key: order-2026-09-30-0001" \
  -H "Content-Type: application/json" \
  -d '{
  "purpose": "charger_max",
  "unit": "W",
  "time_zone": "America/Los_Angeles"
}'
Response · 202
{
  "id": "id_0123456789abcdef",
  "tenant_id": 1042,
  "status": "dispatching",
  "result": {},
  "created_at": "2026-09-30T17:00:00Z",
  "updated_at": "2026-09-30T17:00:00Z"
}
Try it is not available here yetRequests from this page are off until the production API at https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.