Read a bill with its usage and start operation
get/v1/tenants/{tenant_id}/bills/{bill_id}
Requires an API key
Open physical bills with a dispatched start report the matched transaction as usage (ambiguity fails closed); final bills keep a final usage snapshot. Reads never finalize, dispatch or move money.
Path parameters
- tenant_idintegerRequired
- bill_idstringRequired
Returns · 200
- idstringRequired
- tenant_idintegerRequired
- station_idintegerRequired
- connector_idintegerRequired
- sourceenumRequiredOne of
csms,simulated - tariff_idintegerRequired
- rate_minorstringRequired
- hold_minorintegerRequired
- currencystringRequired
- charging_tokenstringRequired
- statusenumRequiredOne of
open,final - energy_kwhstring | nullRequired
- energy_whinteger | nullInteger Wh of the finalized usage.
- total_minorinteger | nullRequired
- transaction_idinteger | nullRequired
- created_atstringRequired
- finalized_atstring | nullRequired
- settlement_ownerenumOne of
managed,external· Default"managed" - billing_versionstringDefault
"energy-v1" - usageobject | nullSingle bill reads only: live matched usage after start, a final snapshot once final.
Child attributes
- transaction_idinteger | nullRequiredPhysical transaction resource ID; null for simulated bills.
- activebooleanRequired
- energy_kwhstring | nullRequiredDecimal kWh string for display.
- energy_whinteger | nullRequiredInteger Wh for arithmetic.
- estimated_minorinteger | nullRequiredInteger minor units. On final bills this equals total_minor.
- started_atstring | nullRequired
- ended_atstring | nullRequired
- power_winteger | nullLatest reported charging power in watts; 0 once the transaction ended; null when the charger reports none.
- soc_percentinteger | nullLatest reported vehicle state of charge, when the charger reports it.
- metered_atstring | nullTimestamp of the meter sample behind power_w/soc_percent.
- start_operationobject | nullSingle bill reads only: the journaled start dispatch, if any.
Child attributes
- idstringRequired
- tenant_idintegerRequired
- statusenumRequiredOne of
dispatching,succeeded,rejected,unknown - resultobject | nullRequired
- created_atstringRequired
- updated_atstringRequired
GET /v1/tenants/{tenant_id}/bills/{bill_id}
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/bills/bill_0123456789abcdef" \
-H "Authorization: Bearer $IVORA_API_KEY"Response · 200
{
"id": "id_0123456789abcdef",
"tenant_id": 1042,
"station_id": 1,
"connector_id": 1,
"source": "csms",
"tariff_id": 42,
"rate_minor": "string",
"hold_minor": 1250,
"currency": "USD",
"charging_token": "string",
"status": "open",
"energy_kwh": "string",
"energy_wh": 7500,
"total_minor": 1250,
"transaction_id": 1,
"created_at": "2026-09-30T17:00:00Z",
"finalized_at": "2026-09-30T17:00:00Z",
"settlement_owner": "managed",
"billing_version": "energy-v1",
"usage": {
"transaction_id": 1,
"active": false,
"energy_kwh": "string",
"energy_wh": 7500,
"estimated_minor": 1250,
"started_at": "2026-09-30T17:00:00Z",
"ended_at": "2026-09-30T17:00:00Z",
"power_w": 1,
"soc_percent": 1,
"metered_at": "2026-09-30T17:00:00Z"
},
"start_operation": {
"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.