Log inTalk to us

Read the tariff that applies to a connector now

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

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_numberintegerRequired
    The 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 | 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}/connectors/{connector_id}/effective-tariff
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"
Response · 200JSON
{
  "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"
  }
}
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.