Log inTalk to us

Switch the California Pricing price text for a station on or off

put/v1/tenants/{tenant_id}/stations/{station_id}/display-pricing
Requires an API key

A station without an explicit choice follows this environment's default (off in production; source says which); this stores an explicit choice that wins over the default. Any write also clears a charger refusal and reads the level again, so the next sweep tries the charger again. Returns at once and never sends; vendor display adapters and Ivora assignments still win. Replays with the same Idempotency-Key return the original result.

Path parameters

  • tenant_idintegerRequired
  • station_idintegerRequired

Headers

  • idempotency-keystringRequired

Request body

  • enabledbooleanRequired
    Let the generic OCPP 1.6 California Pricing adapter write the tariff's price text to this charger. An explicit choice always wins over this environment's default.

Returns · 200

  • tenant_idintegerRequired
  • station_idintegerRequired
  • adapterstring | nullRequired
    builtin-ocpp16-california-pricing, or the vendor template that owns the screen (status vendor_adapter), or null.
  • statusenumRequired
    active: Ivora writes the tariff's price text to the keys in writes. not_detected: no configuration has been read yet (ask the charger with POST .../configuration/refresh). unsupported: the charger reports no key Ivora may write (level none, only non-English DefaultPriceText, or a price key whose value is not the spec's JSON: last_error default_price_format). refused: the charger refused a write (see refusal); nothing more is written until the setting is written. off: switched off for this station, or no explicit choice and this environment's default is off. vendor_adapter: a vendor display adapter or an Ivora assignment owns this screen and wins. not_booted: the charger has not reported its protocol. protocol_unsupported: California Pricing is an OCPP 1.6 extension.
    One of active, not_detected, unsupported, refused, off, vendor_adapter, not_booted, protocol_unsupported
  • levelenum | nullRequired
    What the charger's own configuration reports: price_text when DefaultPrice or a DefaultPriceText,<language> key is reported, full when CustomDisplayCostAndPrice is true (running and final cost then follow the running cost setting), none otherwise; null before detection.
    One of none, price_text, full
  • detected_atstring | nullRequired
    When the level was last read from the configuration the charging core recorded.
  • configuration_keysarray of stringRequired
    The extension's standard keys the charger reported.
  • writesarray of stringRequired
    The keys Ivora writes: DefaultPrice and DefaultPriceText,<English language>; never a read-only or vendor key.
  • enabledbooleanRequired
    The explicit choice, else this environment's default (source default).
  • sourceenumRequired
    One of default, manual
  • updated_bystring | nullRequired
  • price_textstring | nullRequired
    The price text of the last push the charging core accepted, for example "CA$0.47/kWh incl. GST".
  • sent_atstring | nullRequired
    When the charging core accepted the last push.
  • applied_atstring | nullRequired
    When the charger accepted every key of the last push.
  • refusalobject | nullRequired
    Child attributes
    • keystringRequired
      The configuration key the charger refused.
    • statusenumRequired
      The charger's ChangeConfiguration.conf status, or CallError when it answered with an OCPP error.
      One of Rejected, NotSupported, CallError
    • atstringRequired
      When the charging core received the refusal.
  • last_errorstring | nullRequired
    Why the last push failed or was held back, for example no_tariff, price_hidden (every display hides the price), tariffs_differ (the EVSEs' prices differ; DefaultPrice is charger-wide), complex_tariff, tariff_not_found, default_price_format (a reported price key holds a value that is not the spec's JSON), station_offline, dispatch_unconfirmed, charger_rejected or no_charger_reply.
PUT /v1/tenants/{tenant_id}/stations/{station_id}/display-pricing
curl --fail-with-body -X PUT "https://api.ivoracharge.com/v1/tenants/1042/stations/1/display-pricing" \
  -H "Authorization: Bearer $IVORA_API_KEY" \
  -H "Idempotency-Key: order-2026-09-30-0001" \
  -H "Content-Type: application/json" \
  -d '{
  "enabled": false
}'
Response · 200JSON
{
  "tenant_id": 1042,
  "station_id": 1,
  "adapter": "string",
  "status": "active",
  "level": "none",
  "detected_at": "2026-09-30T17:00:00Z",
  "configuration_keys": [
    "string"
  ],
  "writes": [
    "string"
  ],
  "enabled": false,
  "source": "default",
  "updated_by": "string",
  "price_text": "string",
  "sent_at": "2026-09-30T17:00:00Z",
  "applied_at": "2026-09-30T17:00:00Z",
  "refusal": {
    "key": "string",
    "status": "Rejected",
    "at": "string"
  },
  "last_error": "string"
}
Requires an approved production API keyProduction access starts with a request, a short meeting with Ivora and a card on file, after which Ivora staff grant your account access. How to request access
Try itproduction · api.ivoracharge.com

Paste a production api key (iv_live_…). Create keys in Developer tools. The key stays in this page's memory, is sent only to https://api.ivoracharge.com and clears when you reload. Test keys are refused.

PUT is a write: you confirm the method, path and project before it is sent, with a generated Idempotency-Key.