Read a station's running cost setting and deliveries

get/v1/tenants/{tenant_id}/stations/{station_id}/running-cost
Requires an API key

enabled is true by default (source default) and follows an explicit choice once one is written (source manual, with updated_by and updated_at). support says how this charger's protocol receives cost: OCPP 1.6 by the Open Charge Alliance California Pricing DataTransfer (org.openchargealliance.costmsg RunningCost and FinalCost), OCPP 2.x by CostUpdated where this environment enables it, or charger_rejected when the charger refused the DataTransfer (rejection has its status and time). sessions lists the latest priced bills on the station with what the charging core accepted, and is null without billing:read.

Path parameters

  • tenant_idintegerRequired
  • station_idintegerRequired

Returns · 200

  • tenant_idintegerRequired
  • station_idintegerRequired
  • enabledbooleanRequired
    Whether this station's bills get running cost messages: the explicit choice, else this environment's default (on; capabilities running_cost.default).
  • interval_secondsintegerRequired
  • sourceenumRequired
    default: no explicit choice, enabled follows the environment's default. manual: set by PUT (updated_by, updated_at) and kept until changed.
    One of default, manual
  • updated_bystring | nullRequired
    Who wrote the explicit choice (user: or key:); null for the default.
  • supportenumRequired
    ocpp16_costmsg: OCA California Pricing DataTransfer (org.openchargealliance.costmsg RunningCost and FinalCost). ocpp2_cost_updated: CostUpdated during the session. ocpp2_deferred: OCPP 2.x cost messages are switched off in this environment while the charging core sends its own. charger_rejected: the OCPP 1.6 charger answered RunningCost with UnknownVendorId, UnknownMessageId or Rejected (see rejection); nothing is sent until it reboots or the setting is written. not_booted: the charger has not reported its protocol yet.
    One of ocpp16_costmsg, ocpp2_cost_updated, ocpp2_deferred, charger_rejected, not_booted, protocol_unsupported
  • rejectionobject | nullRequired
    The charger's refusal while support is charger_rejected, else null.
    Child attributes
    • statusenumRequired
      The charger's DataTransfer.conf status.
      One of UnknownVendorId, UnknownMessageId, Rejected
    • atstringRequired
      When the charging core received the refusal.
  • updated_atstring | nullRequired
    When the explicit choice was last changed; null for the default.
  • sessionsarray of RunningCostSession | nullRequired
    The 20 most recent priced sessions on this station, newest first; null without billing:read.
    Child attributes
    • bill_idstringRequired
    • transaction_idinteger | nullRequired
      Core transaction the bill matched.
    • protocolstring | nullRequired
    • stateenumRequired
      running: running cost messages are being sent. final_pending: the session ended and its final cost is being sent (OCPP 1.6). final_sent: the charging core accepted the final cost message. final_rejected: the charger refused the final cost (last_error final_cost_rejected; some chargers refuse it once the transaction has stopped); the station and its later sessions are unaffected. final_by_core: OCPP 2.x carries the final cost in the core's TransactionEvent response. deferred: OCPP 2.x CostUpdated is switched off in this environment. expired: the final cost could not be sent within an hour of the end. failed: the bill could not be priced or matched; last_error has the code.
      One of running, final_pending, final_sent, final_rejected, final_by_core, deferred, expired, failed
    • currencystringRequired
    • cost_minorinteger | nullRequired
      Latest running cost in minor units: energy × the bill's rate, as bill finalization rounds it.
    • energy_whinteger | nullRequired
      Session energy in Wh at cost_minor.
    • sent_cost_minorinteger | nullRequired
      Running cost in minor units the core last accepted.
    • sent_atstring | nullRequired
    • sendsintegerRequired
      Running cost messages the core accepted for this session.
    • final_minorinteger | nullRequired
      Final cost in minor units: the final bill's total, or the same calculation from the ended transaction.
    • final_sent_atstring | nullRequired
    • last_errorstring | nullRequired
      Error code of the last failed or withheld send, for example dispatch_unconfirmed, station_offline, charger_rejected or final_cost_rejected.
    • updated_atstringRequired
GET /v1/tenants/{tenant_id}/stations/{station_id}/running-cost
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/stations/1/running-cost" \
  -H "Authorization: Bearer $IVORA_API_KEY"
Response · 200
{
  "tenant_id": 1042,
  "station_id": 1,
  "enabled": false,
  "interval_seconds": 1,
  "source": "default",
  "updated_by": "string",
  "support": "ocpp16_costmsg",
  "rejection": {
    "status": "UnknownVendorId",
    "at": "string"
  },
  "updated_at": "2026-09-30T17:00:00Z",
  "sessions": [
    {
      "bill_id": "bill_0123456789abcdef",
      "transaction_id": 1,
      "protocol": "string",
      "state": "running",
      "currency": "usd",
      "cost_minor": 1250,
      "energy_wh": 7500,
      "sent_cost_minor": 1250,
      "sent_at": "2026-09-30T17:00:00Z",
      "sends": 1,
      "final_minor": 1250,
      "final_sent_at": "2026-09-30T17:00:00Z",
      "last_error": "string",
      "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.