Read the tariff that applies to a connector now
Read-only. The tariff new sessions on this connector are priced by, in full (the same record as the tariff routes), with its source: The pricing order: the connector's own tariff, else the default tariff of its station's location, else the project's default tariff, else none. source_id is the location's ID when the location's default applies. tariff is null and source none when nothing applies. Its archived flag is true when the connector's own tariff was archived. Assign it with PUT .../tariff; bills without tariff_id use it. Needs stations:read and billing:read.
Path parameters
- tenant_idintegerRequired
- station_idintegerRequired
- connector_idintegerRequired
- evse_numberintegerRequiredThe EVSE's number on the station (evse_number in station reads).Minimum 1 · Maximum 99
Returns · 200
- connector_idintegerRequired
- station_idintegerRequired
- evse_numberintegerRequired
- tariff_idinteger | nullRequiredThe tariff that prices new sessions on this connector now, by the pricing order: the connector's own assigned tariff, else its location's default tariff, else the project's default tariff; null when none applies.
- sourceenumRequiredWhere tariff_id comes from: connector (its own assigned tariff), location (the default tariff of the station's location), project (the project's default tariff) or none (nothing applies, so a bill needs an explicit tariff_id).One of
connector,location,project,none - source_idinteger | nullThe location's ID when source is location; null otherwise.
- tariffobject | nullRequiredThe applying tariff in full (prices, elements, rules, pricing_summary, tariff_alt_text), null when none. Its archived flag is true when the assigned tariff was archived since: it still applies to the connector but starts no new bill.
Child attributes
- idintegerRequired
- tenant_idintegerRequired
- currencystringRequired
- rate_minor_per_kwhinteger | numberRequiredInteger minor units of currency per kWh. Tariffs created elsewhere with sub-cent rates return a decimal number.
- authorization_minorinteger | numberRequired
- rate_minor_per_minuteinteger | number | nullMinor units per minute, or null. The simple fields are kWh-only: a simple tariff bills rate_minor_per_kwh × kWh and no time or session fee, so only 0 is accepted (and stored as 0); a non-zero value returns 422. Price charging time, idle time or a session fee with elements (TIME, PARKING_TIME, FLAT). Tariffs created elsewhere may still carry one, which is returned unchanged and not billed.
- session_fee_minorinteger | number | nullMinor units per session, or null. The simple fields are kWh-only: a simple tariff bills rate_minor_per_kwh × kWh and no time or session fee, so only 0 is accepted (and stored as 0); a non-zero value returns 422. Price charging time, idle time or a session fee with elements (TIME, PARKING_TIME, FLAT). Tariffs created elsewhere may still carry one, which is returned unchanged and not billed.
- archivedbooleanArchived tariffs keep their ID for bills that snapshot them, cannot be edited and start no new bill or display.Default
false - archived_atstring | null
- external_referencestring | null
- metadataobjectYour own key/value pairs (strings), such as a site host or a contract ID: at most 50 keys of 1-40 characters of A-Z, a-z, 0-9, underscore, period and hyphen, values of at most 500 characters. Never secrets or personal data. Never published to OCPI roaming partners.
- is_complexbooleanBilling differs from rate_minor_per_kwh × kWh: the tariff has restricted or several elements, time, idle or session prices, a step size, or billing rules. rate_minor_per_kwh is then its base rate only.Default
false - pricing_summarystring | nullDriver-facing description: the English tariff_alt_text.
- elementsarray of TariffElement | nullAPI version 2026-10-15 and later: the OCPI 2.2.1-aligned blocks billing uses; a simple tariff shows its one ENERGY block.
Child attributes
- price_componentsarray of PriceComponentRequired
Child attributes
- typeenumRequiredENERGY: price per kWh. TIME: price per hour while charging. PARKING_TIME: price per hour idle (connected, not charging). FLAT: a fee per session (per reservation in a reservation element). Bills tell charging from idle time from the charger's reports and charge TIME and PARKING_TIME accordingly; when a session has too little data, all of it is charging time.One of
ENERGY,TIME,PARKING_TIME,FLAT - pricenumberRequiredMajor units excluding tax, at most 4 decimal places (OCPI): 0.35 is 0.35 of the tariff's currency (35 cents for USD) per kWh.Minimum 0 · Maximum 10000
- step_sizeintegerOCPI step size: ENERGY in Wh, TIME and PARKING_TIME in seconds; the dimension's total rounds up to a multiple of the last billed element's step. 1 bills the metered quantity exactly. Ignored for FLAT.Default
1· Minimum 1 · Maximum 86400
- restrictionsobject | nullOCPI 2.2.1 TariffRestrictions, evaluated in the tariff's local time. All given restrictions must hold. min values are inclusive, max values and end times/dates exclusive; an end_time before its start_time wraps midnight.
Child attributes
- start_timestring | nullLocal time of day (HH:MM) from which the element applies.Pattern
^([01][0-9]|2[0-3]):[0-5][0-9]$ - end_timestring | nullLocal time of day (HH:MM) until which the element applies (exclusive).Pattern
^([01][0-9]|2[0-3]):[0-5][0-9]$ - start_datestring | nullLocal date (YYYY-MM-DD) from which the element applies.Pattern
^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ - end_datestring | nullLocal date (YYYY-MM-DD) until which the element applies (exclusive).Pattern
^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ - min_kwhnumber | nullEnergy already charged in the session, kWh (inclusive).Minimum 0 · Maximum 100000
- max_kwhnumber | nullEnergy already charged in the session, kWh (exclusive).Minimum 0 · Maximum 100000
- min_currentnumber | nullCharging current, A (inclusive). An element restricting current never applies when the current is unknown.Minimum 0 · Maximum 10000
- max_currentnumber | nullCharging current, A (exclusive).Minimum 0 · Maximum 10000
- min_powernumber | nullCharging power, kW (inclusive). Unknown power matches no power-restricted element.Minimum 0 · Maximum 10000
- max_powernumber | nullCharging power, kW (exclusive).Minimum 0 · Maximum 10000
- min_durationinteger | nullSession duration so far, seconds (inclusive).Minimum 0 · Maximum 604800
- max_durationinteger | nullSession duration so far, seconds (exclusive).Minimum 0 · Maximum 604800
- day_of_weekarray of enum | nullLocal days on which the element applies. A time window that wraps midnight belongs to the day it opens (OCPI 2.2.1): FRIDAY with 22:00–02:00 runs from Friday 22:00 to Saturday 02:00.
- reservationenum | nullPrices a reservation (TIME: reserved time, FLAT: reservation fee) instead of charging; RESERVATION_EXPIRES only when the reservation expires unused.One of
RESERVATION,RESERVATION_EXPIRES
- tariff_alt_textarray of AltText | nullAPI version 2026-10-15 and later: the driver-facing descriptions, supplied or generated.
Child attributes
- languagestringRequiredISO 639-1 language code.Pattern
^[a-z]{2}$ - textstringRequiredDriver-facing description of the tariff.1–512 characters
- rulesobject | nullAPI version 2026-10-15 and later: the Ivora billing rules, {} without any.
Child attributes
- group_discountsarray of GroupDiscountMember/RFID group discounts: the largest matching one applies; they never stack.
Child attributes
- idstringRequiredYour name for this discount; shown on quote and bill adjustments.Pattern
^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$ - groupsarray of stringMember or RFID groups (the session's group) the discount applies to.
- id_tokensarray of stringRFID or app tokens (the session's id_token) the discount applies to.
- percent_offintegerRequiredMinimum 1 · Maximum 100
- merchant_validationobject | nullA discount when the session carries a merchant validation code.
Child attributes
- percent_offinteger | nullMinimum 1 · Maximum 100
- amount_off_minorinteger | nullInteger minor units off, never below 0.Minimum 1 · Maximum 10000000
- codesarray of stringAccepted validation codes; empty accepts any code the session carries.
- max_session_cost_minorinteger | nullCap on a session's total, integer minor units.Minimum 1 · Maximum 100000000
- idle_grace_minutesinteger | nullFree idle minutes: PARKING_TIME is charged only for idle time beyond the first N minutes of each session, counted from when charging ends. Partners over OCPI still see the plain PARKING_TIME price; the generated tariff text says 'idle fee after N free minutes' and the CDR carries the parking time actually charged. 0 or omitted: no grace.Minimum 0 · Maximum 1440
- prepaid_limitbooleanReport, on quotes for sessions with prepaid_balance_minor, how much the balance covers and whether the session reaches it. It never changes the total; your application stops or tops up.Default
false
- time_zonestring | nullAPI version 2026-10-15 and later: the restrictions' IANA time zone, or null.
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/stations/1/evses/1/connectors/1/effective-tariff" \
-H "Authorization: Bearer $IVORA_API_KEY"{
"connector_id": 1,
"station_id": 1,
"evse_number": 1,
"tariff_id": 42,
"source": "connector",
"source_id": 1,
"tariff": {
"id": 1,
"tenant_id": 1042,
"currency": "usd",
"rate_minor_per_kwh": 1,
"authorization_minor": 1250,
"rate_minor_per_minute": 1,
"session_fee_minor": 1250,
"archived": false,
"archived_at": "2026-09-30T17:00:00Z",
"external_reference": "property:1001",
"metadata": {},
"is_complex": false,
"pricing_summary": "string",
"elements": [
{
"price_components": [
{
"type": null,
"price": null,
"step_size": null
}
],
"restrictions": {
"start_time": "16:00",
"end_time": "21:00",
"start_date": "string",
"end_date": "string",
"min_kwh": 0,
"max_kwh": 0,
"min_current": 0,
"max_current": 0,
"min_power": 0,
"max_power": 0,
"min_duration": 0,
"max_duration": 0,
"day_of_week": [
null
],
"reservation": "RESERVATION"
}
}
],
"tariff_alt_text": [
{
"language": "string",
"text": "string"
}
],
"rules": {
"group_discounts": [
{
"id": "id_0123456789abcdef",
"groups": [
null
],
"id_tokens": [
null
],
"percent_off": 1
}
],
"merchant_validation": {
"percent_off": 1,
"amount_off_minor": 1250,
"codes": [
"string"
]
},
"max_session_cost_minor": 1250,
"idle_grace_minutes": 0,
"prepaid_limit": false
},
"time_zone": "America/Los_Angeles"
}
}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.



