Log inTalk to us

Read the tariffs that apply to an EVSE's connectors now

get/v1/tenants/{tenant_id}/stations/{station_id}/evses/{evse_number}/effective-tariff
Requires an API key

Read-only. Each connector of the EVSE with the tariff that applies to it and its source, as for a single connector. A tariff is assigned per connector or inherited from a location or project default; an EVSE has no tariff of its own. Needs stations:read and billing:read.

Path parameters

  • tenant_idintegerRequired
  • station_idintegerRequired
  • evse_numberintegerRequired
    The EVSE's number on the station (evse_number in station reads).
    Minimum 1 · Maximum 99

Returns · 200

  • station_idintegerRequired
  • evse_numberintegerRequired
  • connectorsarray of EffectiveTariffRequired
    Each connector of the EVSE with the tariff that applies to it.
    Child attributes
    • connector_idintegerRequired
    • station_idintegerRequired
    • evse_numberintegerRequired
    • tariff_idinteger | nullRequired
      The 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.
    • sourceenumRequired
      Where 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 | null
      The location's ID when source is location; null otherwise.
    • tariffobject | nullRequired
      The 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 | numberRequired
        Integer 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 | null
        Minor 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 | null
        Minor 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.
      • archivedboolean
        Archived 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
      • metadataobject
        Your 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_complexboolean
        Billing 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 | null
        Driver-facing description: the English tariff_alt_text.
      • elementsarray of TariffElement | null
        API 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
          • typeenumRequired
            ENERGY: 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
          • pricenumberRequired
            Major 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_sizeinteger
            OCPI 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 | null
          OCPI 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 | null
            Local time of day (HH:MM) from which the element applies.
            Pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$
          • end_timestring | null
            Local time of day (HH:MM) until which the element applies (exclusive).
            Pattern ^([01][0-9]|2[0-3]):[0-5][0-9]$
          • start_datestring | null
            Local 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 | null
            Local 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 | null
            Energy already charged in the session, kWh (inclusive).
            Minimum 0 · Maximum 100000
          • max_kwhnumber | null
            Energy already charged in the session, kWh (exclusive).
            Minimum 0 · Maximum 100000
          • min_currentnumber | null
            Charging current, A (inclusive). An element restricting current never applies when the current is unknown.
            Minimum 0 · Maximum 10000
          • max_currentnumber | null
            Charging current, A (exclusive).
            Minimum 0 · Maximum 10000
          • min_powernumber | null
            Charging power, kW (inclusive). Unknown power matches no power-restricted element.
            Minimum 0 · Maximum 10000
          • max_powernumber | null
            Charging power, kW (exclusive).
            Minimum 0 · Maximum 10000
          • min_durationinteger | null
            Session duration so far, seconds (inclusive).
            Minimum 0 · Maximum 604800
          • max_durationinteger | null
            Session duration so far, seconds (exclusive).
            Minimum 0 · Maximum 604800
          • day_of_weekarray of enum | null
            Local 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 | null
            Prices 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 | null
        API version 2026-10-15 and later: the driver-facing descriptions, supplied or generated.
        Child attributes
        • languagestringRequired
          ISO 639-1 language code.
          Pattern ^[a-z]{2}$
        • textstringRequired
          Driver-facing description of the tariff.
          1–512 characters
      • rulesobject | null
        API version 2026-10-15 and later: the Ivora billing rules, {} without any.
        Child attributes
        • group_discountsarray of GroupDiscount
          Member/RFID group discounts: the largest matching one applies; they never stack.
          Child attributes
          • idstringRequired
            Your name for this discount; shown on quote and bill adjustments.
            Pattern ^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$
          • groupsarray of string
            Member or RFID groups (the session's group) the discount applies to.
          • id_tokensarray of string
            RFID or app tokens (the session's id_token) the discount applies to.
          • percent_offintegerRequired
            Minimum 1 · Maximum 100
        • merchant_validationobject | null
          A discount when the session carries a merchant validation code.
          Child attributes
          • percent_offinteger | null
            Minimum 1 · Maximum 100
          • amount_off_minorinteger | null
            Integer minor units off, never below 0.
            Minimum 1 · Maximum 10000000
          • codesarray of string
            Accepted validation codes; empty accepts any code the session carries.
        • max_session_cost_minorinteger | null
          Cap on a session's total, integer minor units.
          Minimum 1 · Maximum 100000000
        • idle_grace_minutesinteger | null
          Free 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_limitboolean
          Report, 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 | null
        API version 2026-10-15 and later: the restrictions' IANA time zone, or null.
GET /v1/tenants/{tenant_id}/stations/{station_id}/evses/{evse_number}/effective-tariff
curl --fail-with-body "https://api.ivoracharge.com/v1/tenants/1042/stations/1/evses/1/effective-tariff" \
  -H "Authorization: Bearer $IVORA_API_KEY"
Response · 200JSON
{
  "station_id": 1,
  "evse_number": 1,
  "connectors": [
    {
      "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": null,
            "restrictions": null
          }
        ],
        "tariff_alt_text": [
          {
            "language": null,
            "text": null
          }
        ],
        "rules": {
          "group_discounts": [
            null
          ],
          "merchant_validation": {
            "percent_off": null,
            "amount_off_minor": null,
            "codes": null
          },
          "max_session_cost_minor": 1250,
          "idle_grace_minutes": 0,
          "prepaid_limit": false
        },
        "time_zone": "America/Los_Angeles"
      }
    }
  ]
}
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.