Log inTalk to us

List late and orphan charging sessions for review

get/v1/tenants/{tenant_id}/late-sessions
Requires an API key

Sessions a charger reported late (from its offline queue: the start reached Ivora 15 minutes or more after it began, or an OCPP 2.x start marked offline) and stops for transactions nobody knew, or that more than one start could own (kind orphan_stop), newest first. The charging core answered each message with a CallResult (start_answer, stop_answer), so the charger stops retrying, unless it answered a CallError. A session that started at most 30 days before it was received is recorded; one dated before the station was registered in the project, an older one, or one from a shadow period is refused (status refused, refused_reason) and kept here as evidence. transaction_id links the transaction the charging core saved, when it saved one: that transaction is billed like any other (a bill whose charging token it used settles it within its hold: automatic_billing), and on a roaming partner's token its CDR is sent with a remark that it was late, or held for staff when refused. A session the core did not save reaches no bill or CDR; review it and bill by hand where appropriate. Filters: station_id, kind (session, orphan_stop), status (recorded, refused). Page with before=next_cursor. Requires billing:read.

Path parameters

  • tenant_idintegerRequired

Query parameters

  • station_idinteger | null
    Greater than 0
  • kindstring | null
    Up to 20 characters
  • statusstring | null
    Up to 20 characters
  • beforeinteger | null
    next_cursor of the previous page
    Greater than 0
  • limitinteger
    Default 50 · Minimum 1 · Maximum 100

Returns · 200

  • dataarray of LateSessionRecordRequired
    Child attributes
    • idstringRequired
    • kindstringRequired
      session: a charging session whose start reached Ivora late; orphan_stop: a stop for a transaction neither Ivora nor the charging core knew, kept as an event with no session.
    • statusstringRequired
      recorded, or refused (refused_reason): a session that started before the station was registered in the project, more than 30 days before Ivora received it, or while the station was in shadow mode. Either way the charging core answered the charger with a CallResult (start_answer, stop_answer), unless it answered a CallError.
    • refused_reasonstring | nullRequired
      before_commissioning (takes precedence over older_than_window), older_than_window or shadow; null unless refused.
    • latebooleanRequired
      True when the start (a stop, for an orphan stop) reached Ivora 15 minutes or more after the charger's timestamp, or the charger marked it offline.
    • offlinebooleanRequired
      An OCPP 2.x start the charger sent with offline true.
    • station_idintegerRequired
    • protocolstring | nullRequired
      1.6 or 2.x.
    • evse_numberinteger | nullRequired
    • connector_numberinteger | nullRequired
    • charger_transaction_idstring | nullRequired
      The transaction ID the charger used (0 after a start the charging core refused).
    • transaction_idinteger | nullRequired
      The transaction resource the charging core recorded for it, when it recorded one; else null and this record is the only one of the session.
    • id_tokenstring | nullRequired
      The ID token's last 4 characters.
    • bill_idstring | nullRequired
      The bill whose charging token the session used, if any.
    • bill_statusstring | nullRequired
      That bill's status (open, final, ...); null without a bill.
    • started_atstring | nullRequired
      The charger's start time.
    • stopped_atstring | nullRequired
      The charger's stop time; null until the stop arrives.
    • received_atstringRequired
      When Ivora received the start (the stop, for an orphan stop).
    • stop_received_atstring | nullRequired
    • meter_start_whinteger | nullRequired
      Energy register at the start in Wh, as the charger reported it.
    • meter_stop_whinteger | nullRequired
      Energy register at the stop in Wh.
    • energy_whinteger | nullRequired
      meter_stop_wh minus meter_start_wh, when both are known.
    • stop_reasonstring | nullRequired
    • start_answerstring | nullRequired
      What the charging core answered the charger's start: its idTagInfo/idTokenInfo status (Accepted, Invalid, Expired, Blocked, ConcurrentTx, ...), Acknowledged, or CallError and its code; null when no answer was found.
    • stop_answerstring | nullRequired
      The same for the stop.
    • automatic_billingbooleanRequired
      True when the bill (bill_id) settles the transaction the charging core saved for this session, within that bill's authorised hold: an OCPP 2.x start (saved even when offline) or an accepted 1.6 start on a bill's charging token. False otherwise; a session the core refused (transaction_id null) reaches no bill, and an operator may bill it by hand.
    • created_atstringRequired
  • next_cursorinteger | nullRequired
    Pass as before for the next, older page; null on the last page.
GET /v1/tenants/{tenant_id}/late-sessions
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/late-sessions" \
  -H "Authorization: Bearer $IVORA_API_KEY"
Response · 200JSON
{
  "data": [
    {
      "id": "id_0123456789abcdef",
      "kind": "string",
      "status": "string",
      "refused_reason": "string",
      "late": false,
      "offline": false,
      "station_id": 1,
      "protocol": "string",
      "evse_number": 1,
      "connector_number": 1,
      "charger_transaction_id": "charger_transaction_0123456789abcdef",
      "transaction_id": 1,
      "id_token": "string",
      "bill_id": "bill_0123456789abcdef",
      "bill_status": "string",
      "started_at": "2026-09-30T17:00:00Z",
      "stopped_at": "2026-09-30T17:00:00Z",
      "received_at": "2026-09-30T17:00:00Z",
      "stop_received_at": "2026-09-30T17:00:00Z",
      "meter_start_wh": 7500,
      "meter_stop_wh": 7500,
      "energy_wh": 7500,
      "stop_reason": "string",
      "start_answer": "string",
      "stop_answer": "string",
      "automatic_billing": false,
      "created_at": "2026-09-30T17:00:00Z"
    }
  ],
  "next_cursor": 1
}
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.