List late and orphan charging sessions for review
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 | nullGreater than 0
- kindstring | nullUp to 20 characters
- statusstring | nullUp to 20 characters
- beforeinteger | nullnext_cursor of the previous pageGreater than 0
- limitintegerDefault
50· Minimum 1 · Maximum 100
Returns · 200
- dataarray of LateSessionRecordRequired
Child attributes
- idstringRequired
- kindstringRequiredsession: 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.
- statusstringRequiredrecorded, 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 | nullRequiredbefore_commissioning (takes precedence over older_than_window), older_than_window or shadow; null unless refused.
- latebooleanRequiredTrue 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.
- offlinebooleanRequiredAn OCPP 2.x start the charger sent with offline true.
- station_idintegerRequired
- protocolstring | nullRequired1.6 or 2.x.
- evse_numberinteger | nullRequired
- connector_numberinteger | nullRequired
- charger_transaction_idstring | nullRequiredThe transaction ID the charger used (0 after a start the charging core refused).
- transaction_idinteger | nullRequiredThe 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 | nullRequiredThe ID token's last 4 characters.
- bill_idstring | nullRequiredThe bill whose charging token the session used, if any.
- bill_statusstring | nullRequiredThat bill's status (open, final, ...); null without a bill.
- started_atstring | nullRequiredThe charger's start time.
- stopped_atstring | nullRequiredThe charger's stop time; null until the stop arrives.
- received_atstringRequiredWhen Ivora received the start (the stop, for an orphan stop).
- stop_received_atstring | nullRequired
- meter_start_whinteger | nullRequiredEnergy register at the start in Wh, as the charger reported it.
- meter_stop_whinteger | nullRequiredEnergy register at the stop in Wh.
- energy_whinteger | nullRequiredmeter_stop_wh minus meter_start_wh, when both are known.
- stop_reasonstring | nullRequired
- start_answerstring | nullRequiredWhat 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 | nullRequiredThe same for the stop.
- automatic_billingbooleanRequiredTrue 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 | nullRequiredPass as before for the next, older page; null on the last page.
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/late-sessions" \
-H "Authorization: Bearer $IVORA_API_KEY"{
"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
}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.



