> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spirii.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Connect to the latest updates, improvements, and fixes to Spirii’s platform

<Update label="July 30, 2026" tags={["Added", "API"]}>
  ## Introducing App User V2 endpoints

  ### What's new

  This update introduces app user management capabilities through new API endpoints. App users represent the end customers of operators utilizing a branded app.

  ### New endpoints

  * [`GET /v2/app-users`](/api-reference/app-users/get-a-list-of-app-users) — retrieves a paginated list of app users
  * [`POST /v2/app-users`](/api-reference/app-users/create-app-user) — create a new app user
  * [`GET /v2/app-users/{id}`](/api-reference/app-users/get-app-user-by-id) — get a single app user by id
  * [`PUT /v2/app-users/{id}`](/api-reference/app-users/update-app-user) — update an existing app user

  **Access restriction:** These endpoints are exclusively available to operators with a branded app deployment.
</Update>

<Update label="July 7, 2026" tags={["Added", "API"]}>
  ## Vouchers and voucher groups

  ### What's new

  You can now manage vouchers and voucher groups through the public API. A voucher, identified by a unique code, belongs to a voucher group and can be linked to tokens (charge keys) and app users. When a driver starts a session, the platform applies a voucher automatically if their token — or the app user linked to it — holds one, provided the voucher's group covers that location.

  ### New endpoints

  **Vouchers**

  * [`GET /v2/vouchers`](/api-reference/vouchers/get-a-list-of-vouchers)
  * [`POST /v2/vouchers`](/api-reference/vouchers/create-a-new-voucher)
  * [`GET /v2/vouchers/{id}`](/api-reference/vouchers/get-a-voucher-by-id)
  * [`PATCH /v2/vouchers/{id}`](/api-reference/vouchers/update-an-existing-voucher)
  * [`DELETE /v2/vouchers/{id}`](/api-reference/vouchers/delete-a-voucher-by-id)
  * [`GET /v2/vouchers/{id}/tokens`](/api-reference/vouchers/get-tokens-associated-with-a-voucher-by-voucher-id)
  * [`POST /v2/vouchers/{id}/tokens/{tokenId}`](/api-reference/vouchers/associate-a-token-to-a-voucher)
  * [`DELETE /v2/vouchers/{id}/tokens/{tokenId}`](/api-reference/vouchers/disassociate-a-token-from-a-voucher)

  **Voucher groups**

  * [`GET /v2/voucher-groups`](/api-reference/vouchergroups/get-a-list-of-voucher-groups)
  * [`POST /v2/voucher-groups`](/api-reference/vouchergroups/create-a-new-voucher-group)
  * [`GET /v2/voucher-groups/{id}`](/api-reference/vouchergroups/get-a-voucher-group-by-id)
  * [`PATCH /v2/voucher-groups/{id}`](/api-reference/vouchergroups/update-an-existing-voucher-group)
  * [`DELETE /v2/voucher-groups/{id}`](/api-reference/vouchergroups/delete-a-voucher-group-by-id)
  * [`GET /v2/voucher-groups/{id}/vouchers`](/api-reference/vouchergroups/get-a-paginated-list-of-vouchers-belonging-to-a-voucher-group)
  * [`GET /v2/voucher-groups/{id}/locations`](/api-reference/vouchergroups/get-voucher-groups-locations-by-id)
  * [`POST /v2/voucher-groups/{id}/locations/{locationId}`](/api-reference/vouchergroups/associate-location-to-voucher-group)
  * [`DELETE /v2/voucher-groups/{id}/locations/{locationId}`](/api-reference/vouchergroups/disassociate-locations-from-voucher-group)

  ### Next steps

  Explore the [API Reference](/api-reference/vouchers/get-a-list-of-vouchers) for detailed specifications on these new endpoints, or see the [Voucher access](/capabilities/access/voucher-access) capability for how vouchers grant access and pricing.
</Update>

<Update label="July 6, 2026" tags={["Added", "Spirii Connect"]}>
  ## Price Optimised Charging

  ### What's new

  We just launched **Price Optimised Charging**. You've always been able to manually schedule charging sessions overnight to avoid peak prices — now the system finds the cheapest intervals for you, automatically.

  You decide when your vehicles need to be ready, and the system schedules charging during the cheapest electricity periods, ensuring every vehicle is ready on time without any manual intervention.

  * No more manually scheduling sessions around tariff hours
  * The system monitors electricity prices and charges when it's cheapest
  * Vehicles are always ready on time — the schedule is built around your needs
  * If something changes, you can override any session instantly in Connect

  ### Why it matters

  Electricity costs directly impact profitability for your fleet, and every cent saved per kWh goes straight to the bottom line. Price Optimised Charging shifts consumption to cheaper windows automatically, reducing operational cost without requiring manual work.

  ### How it works

  * Set a charging window (start time → end time) and specify how many hours of charge are needed. Spirii selects the cheapest intervals within that window automatically.
  * Powered by live spot price data from Nordpool/ENTSO-E, with fallback to day-ahead forecasted prices when final prices are unavailable.
  * The system prevents schedules from overlapping with opening hours, at both the frontend and backend level.

  ### Hardware compatibility

  Your chargers must support the Smart Charging feature set as defined in OCPP 1.6. If your charger doesn't appear in the table when you open the schedule modal, it is unfortunately not supported.

  ### Who is this for?

  * **Segment:** B2B Fleet
  * **Users:** Fleet managers and site managers operating via Spirii Connect
  * **Markets:** Austria, Belgium, Germany, Denmark, Estonia, Spain, Finland, France, Great Britain, Lithuania, Latvia, Netherlands, Norway, Poland, Portugal, Sweden
</Update>

<Update label="June 8, 2026" tags={["Added", "API"]}>
  ## Introducing home charging reimbursement rates

  ### What's new

  Home Charging Reimbursement now supports configurable, scheduled custom rates. View and manage reimbursement rates associated with customer locations.

  ### New endpoints

  * [`GET /reimbursement/rates/v1`](/api-reference/reimbursement-rates/get-reimbursement-rates-for-one-or-more-locations)
  * [`POST /reimbursement/rates/v1`](/api-reference/reimbursement-rates/create-a-new-reimbursement-rate)
  * [`PATCH /reimbursement/rates/v1/{id}`](/api-reference/reimbursement-rates/update-an-existing-reimbursement-rate)

  ### Next steps

  Explore the [API Reference](/api-reference/reimbursement-rates/get-reimbursement-rates-for-one-or-more-locations) for detailed specifications on these new endpoints.
</Update>

<Update label="June 4, 2026" tags={["Added", "Spirii Connect"]}>
  ## Expense reports for charging at home

  ### What's new

  For expense reports that you need to reimburse to employees, you now have increased capabilities for getting this data into your payroll or expense management tools.

  **Key capabilities:**

  * As a Fleet Manager or Operator in Connect, you can now receive expense reports:
    * [Via the public API](/api-reference/reimbursement-expenses/get-expense-report)
    * As a PDF, emailed to you or downloaded via Connect
    * As a CSV file downloaded via Connect

  ### Why it matters

  This gives you multiple ways to access expense report data, so you can adapt to your internal operations and share data with your systems and colleagues.

  ### Who is this for?

  Fleet Managers who manage expenses for charging at home.
</Update>

<Update label="May 27, 2026" tags={["Improved", "Platform"]}>
  ## Introducing smart payment reservations

  ### What's improved

  We've introduced a **smart reservation** feature that sets the reservation amount dynamically based on the expected final price in Spirii Go and branded apps.

  * This guarantees a reserved amount high enough to cover the cost of the charging session, but not unnecessarily high.
  * If the charging ends up more expensive, we attempt to increment the reservation (where possible) to the new amount.

  We've also improved **reservation reuse** when charging fails to start.

  * If you have to start over at the charge point, we don't create a new reservation on your card — one is enough.

  For edge cases where payments fail despite everyone's best efforts (the issuing bank is momentarily down, your token expires during the session, and similar):

  * We retry payment for the charging session a few times over the following days.

  ### Why it matters

  Together, these updates create a better experience for drivers and reduce the risk of missing payment for charging.
</Update>

<Update label="April 30, 2026" tags={["Spirii Connect"]}>
  ## Soft delete for charge keys in Connect UI

  ### What's new

  Charge keys can now be soft deleted via the Connect UI.

  **Key functionality:**

  * Soft delete action in the charge keys sidebar
  * Soft deleting a charge key also unlinks the payment method from the charge key
  * Confirmation modal

  ### Why it matters

  Connect users no longer have to open a support ticket for the simple action of deleting a charge key.

  ### Who is this for?

  Anyone, in all markets.
</Update>

<Update label="April 22, 2026" tags={["Added", "API"]}>
  ## Introducing home charging reimbursements

  ### What's new

  A CPO can use the public APIs to build their own experience for managing home charging expenses and reimbursement. The Spirii platform continues to handle charger configuration, token and location management, reimbursement validation, expense report aggregation, approval workflows, PPS integration, and document generation.

  ### New endpoints

  * [`GET /reimbursement/v1/expense-reports`](/api-reference/reimbursement-expenses/list-expense-reports)
  * [`GET /reimbursement/v1/expense-reports/{id}`](/api-reference/reimbursement-expenses/get-expense-report)
  * [`GET /reimbursement/v1/expense-reports/{id}/document`](/api-reference/reimbursement-expenses/download-expense-report)
  * [`POST /reimbursement/v1/expense-reports/{id}/approve`](/api-reference/reimbursement-expenses/approve-expense-report)
  * [`GET /reimbursement/v1/expenses/{id}`](/api-reference/reimbursement-expenses/get-expense)
  * [`GET /reimbursement/v1/expenses/{id}/document`](/api-reference/reimbursement-expenses/download-expense)
  * [`GET /reimbursement/v1/expenses/{id}/charge-detail-records/unlinked`](/api-reference/reimbursement-expenses/list-unlinked-cdrs)
  * [`POST /reimbursement/v1/expenses/{id}/charge-detail-records/add`](/api-reference/reimbursement-expenses/add-cdrs-to-expense)
  * [`POST /reimbursement/v1/expenses/{id}/charge-detail-records/remove`](/api-reference/reimbursement-expenses/remove-cdrs-from-expense)

  ### Next steps

  Review the [API Reference](/api-reference/reimbursement-expenses/list-expense-reports) for comprehensive endpoint specifications.
</Update>

<Update label="April 7, 2026" tags={["Spirii Connect"]}>
  ## AFIR DATEX II-ready API endpoints

  ### What's new

  We're releasing our DATEX II v3 endpoints, designed to help meet the requirements of the Alternative Fuels Infrastructure Regulation (AFIR). This update allows seamless, automated sharing of infrastructure data with National Access Points across the EU ahead of the April 2026 deadline.

  **Key functionality:**

  Our platform now provides public, unauthenticated endpoints that automatically convert and serve your existing Location v2 API data in the mandatory DATEX II format.

  * Static data endpoints: full snapshots of sites, stations, and connectors
  * Dynamic data endpoints: real-time availability and up-to-date pricing information
  * Smart sync (delta pulls): support for `If-Modified-Since` headers, letting National Access Points pull only changed data, reducing bandwidth and improving sync speed

  ### Why it matters

  Staying compliant with EU regulations shouldn't be a technical burden. As of April 2026, all public CPOs in the EU are legally required to share data in the DATEX II v3 format. This update removes the regulatory blocker, keeping your charging network visible, compliant, and accessible to major industry players without requiring your team to build or maintain a custom reporting engine.
</Update>

<Update label="April 1, 2026" tags={["Added", "API"]}>
  ## AFIR — DATEX II energy infrastructure data

  ### What's new

  We're introducing AFIR-compliant DATEX II v3 endpoints, enabling public access to energy infrastructure data for your charging network. These endpoints support the Alternative Fuels Infrastructure Regulation (AFIR) reporting requirements by exposing standardised static and dynamic charging infrastructure data.

  Both endpoints are publicly accessible — no authentication required.

  ### New endpoints

  * [`GET /v2/afir/energy-infrastructure-tables`](/api-reference/afir/get-datex-ii-v3-afir-energy-infrastructure-tables)
  * [`GET /v2/afir/energy-infrastructure-statuses`](/api-reference/afir/get-datex-ii-v3-afir-energy-infrastructure-statuses)

  ### Key changes and improvements

  | Endpoint                                      | Feature                         | Description                                                                                                               |
  | --------------------------------------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
  | `GET /v2/afir/energy-infrastructure-tables`   | Static infrastructure data      | Retrieve a DATEX II v3 payload with site, station, refill point, connector, operating hours, and tariff metadata.         |
  | `GET /v2/afir/energy-infrastructure-statuses` | Dynamic infrastructure statuses | Retrieve a DATEX II v3 payload with real-time site, station, and refill point statuses, including dynamic tariff updates. |

  Both endpoints support:

  * Gzip compression for optimised payload delivery
  * Conditional caching via `If-Modified-Since` / `304 Not Modified`
  * Customer filtering via the optional `customerIds` query parameter

  ### Next steps

  * Explore the [API Reference](/api-reference/afir/get-datex-ii-v3-afir-energy-infrastructure-tables) for detailed specifications.
  * Read more in the [AFIR compliance guide](/developers/afir-compliance).
</Update>

<Update label="February 18, 2026" tags={["Improved", "Spirii Connect"]}>
  ## Upgraded EVSE power settings and opening hours

  ### What's improved

  Recent highlights in Spirii Connect:

  * **EVSE power settings:** added configuration options for maximum output voltage and maximum output current (amps) to enable precise electrical parameter control per EVSE. Also available in the [Spirii API](/api-reference/evses-v2/updates-a-connector-on-an-evse).
  * **Opening hours UI:** improved usability for opening hours configuration. Public availability settings have moved out of the opening hours modal and are now controlled from the location edit page.

  ### Why it matters

  * Flexible connector power settings allow for more accurate EVSE power data and boost roaming exposure of EVSEs.
  * The opening hours UI now more clearly distinguishes between 24/7 availability and specific day-based schedules.
</Update>

<Update label="February 17, 2026" tags={["Improved", "Platform"]}>
  ## Reduced failed payments with advanced reservation amount logic

  ### What's improved

  We've implemented more advanced payment reservation amount logic.

  * Instead of a fixed pre-authorisation amount per country or operator, we now base the reservation amount on the tariff at each location.
  * This produces a reservation amount much closer to the actual price for most users at the location.

  ### Why it matters

  Early data shows a 95% reduction in failed payments.
</Update>

<Update label="February 13, 2026" tags={["Improved", "API"]}>
  ## Enhanced EVSE power settings

  ### What's new

  We've enhanced EVSE configuration with new power parameters for more precise control over EVSE electrical specifications.

  ### Key changes and improvements

  Updated endpoint:

  * [`PATCH /evses/{id}`](/api-reference/evses-v2/updates-a-connector-on-an-evse) — now supports additional power configuration fields

  New fields:

  * `maxVoltage` — maximum voltage output (V), per the OCPI specification
  * `maxAmperage` — maximum current output (A), per the OCPI specification

  Existing fields:

  * `maxElectricPower` — maximum power output (kW)
  * `standard` — connector type, per the OCPI specification

  These enhancements let you configure precise electrical parameters for each EVSE independently, aligning with physical hardware specifications without affecting other EVSEs on the same charge box.

  ### Next steps

  For detailed field specifications and examples, visit the [API Reference](/api-reference/evses-v2/updates-a-connector-on-an-evse). If you have questions about implementing these parameters, contact our support team.
</Update>

<Update label="February 5, 2026" tags={["Spirii Connect"]}>
  ## Dual user roles for more flexibility

  ### What's new

  We've added flexibility to user management in Spirii Connect:

  **Key capabilities:**

  * Each user can now have multiple roles (for example, Fleet Manager and Supporter).
  * The Fleet Manager role has been updated to handle reimbursements.

  ### Why it matters

  Organisations are flexible, so we updated the roles to support more of your use cases.
</Update>

<Update label="February 3, 2026" tags={["Added", "Spirii Connect"]}>
  ## Introducing expense management for home reimbursements

  ### What's new

  Spirii now supports home reimbursements in all markets with a new expense management model.

  **Key capabilities:**

  * Let the Spirii platform gather all the charging data and prepare the expense management files.
  * Use the files in your own payroll system to pay employees.
  * Optionally, add or remove CDRs to include in the expense report.

  ### Why it matters

  * This home reimbursement model lets fleet operators offer home charging to their employees.
  * It's a light setup with easy onboarding.

  ### Who is this for?

  Fleet Operators.
</Update>

<Update label="February 2, 2026" tags={["Improved", "Spirii Connect"]}>
  ## Upgraded exports

  ### What's improved

  * **Dashboard export:** added an EVSE ID column for better charge point identification.
  * **CDR exports:** now include the billing customer CRM ID for easier customer identification.

  ### Why it matters

  We continuously upgrade the data available to you to improve your reporting and operations.
</Update>

<Update label="January 20, 2026" tags={["Improved", "Spirii Connect"]}>
  ## Upgraded installer role

  ### What's improved

  We're expanding the installer role to better support installation teams while protecting business-critical data. The updated installer role now includes:

  * Location lookup — find and access installation sites quickly
  * Charge box and connector management — view, add, and configure hardware during installation
  * Charge box actions — perform essential actions without needing full admin access
  * Session access for testing — verify installations are working correctly in real time

  ### Why it matters

  * Previously, the installer only had access to order lookup, which restricted their ability to work efficiently.
  * Business information stays secure: installers cannot view tariffs or pricing details.
</Update>

<Update label="December 4, 2025" tags={["Added", "API"]}>
  ## Charge box management endpoints

  ### What's new

  We've introduced comprehensive charge box management capabilities, enabling you to programmatically manage your physical charging hardware through the API.

  ### New endpoints

  * [`GET /chargeboxes`](/api-reference/chargeboxes-v2/fetches-a-list-of-charge-boxes)
  * [`GET /chargeboxes/{id}`](/api-reference/chargeboxes-v2/fetches-a-single-charge-box)
  * [`GET /chargeboxes/models`](/api-reference/chargeboxes-v2/fetches-a-list-of-supported-charge-box-models)
  * [`POST /chargeboxes`](/api-reference/chargeboxes-v2/creates-a-new-charge-box)
  * [`DELETE /chargeboxes/{id}`](/api-reference/chargeboxes-v2/deletes-a-charge-box-this-operation-cannot-be-undone)

  ### Key changes and improvements

  | Endpoints                                   | Feature                      | Description                                                                                                                                           |
  | ------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
  | `GET /chargeboxes`, `GET /chargeboxes/{id}` | Charge box information       | Retrieve a list of all charge boxes in your network with filtering and pagination support, or fetch detailed information about a specific charge box. |
  | `GET /chargeboxes/models`                   | Charge box model information | Retrieve a list of supported and validated charge box models.                                                                                         |
  | `POST /chargeboxes`                         | Charge box configuration     | Create and onboard new charge boxes to your network.                                                                                                  |
  | `DELETE /chargeboxes/{id}`                  | Charge box deletion          | Remove charge boxes from your network (soft delete).                                                                                                  |

  ### Next steps

  Explore the [API Reference](/api-reference/chargeboxes-v2/fetches-a-list-of-charge-boxes) for detailed specifications.
</Update>

<Update label="November 14, 2025" tags={["Added", "API"]}>
  ## Enhanced remote charger control, EVSE management, and token management

  ### What's new

  This update introduces comprehensive remote charger control and enhanced EVSE management, alongside token and token group management for programmatic control.

  #### Remote charge box commands

  * Soft reset: graceful restart that preserves data and configurations
  * Hard reset: full hardware reboot for unresponsive charge boxes

  #### EVSE management and commands

  * Transaction control
    * Remote start: initiate charging sessions remotely
    * Remote stop: end active sessions remotely
  * Unlock connector: remotely release connector locks on AC chargers
  * Retrieve EVSE information: list all EVSEs or fetch specific details
  * Update EVSE settings: modify properties such as maximum power output
  * Change connector availability: update OCPP availability status

  #### Token management — full CRUD operations

  Tokens authenticate users to initiate charging sessions. Three types are supported: RFIDs, virtual tokens, and vehicle tokens. Full CRUD operations enable management as well as enable and disable functionality.

  #### Token group management — full CRUD operations

  Token groups act as access-management mechanisms that restrict token authorisation to specified locations. Full CRUD operations manage location and token associations.

  ### New endpoints

  Remote charge box management:

  * [`POST /chargeboxes/{id}/reset`](/api-reference/chargeboxes-v2/performs-a-hard-or-soft-reset-on-a-charge-box)
  * [`POST /chargeboxes/{id}/reboot`](/api-reference/chargeboxes-v2/reboots-a-charge-box-alias-for-soft-reset)

  EVSE management:

  * [`POST /evses/{uid}/connectors/{id}/remote-start-transaction`](/api-reference/evses-v2/requests-an-evse-to-start-a-transaction)
  * [`POST /evses/{uid}/connectors/{id}/remote-stop-transaction`](/api-reference/evses-v2/requests-an-evse-to-stop-a-transaction)
  * [`POST /evses/{uid}/connectors/{id}/unlock`](/api-reference/evses-v2/requests-an-evse-to-unlock-a-connector)
  * [`GET /evses`](/api-reference/evses-v2/fetches-a-list-of-evses)
  * [`GET /evses/{id}`](/api-reference/evses-v2/fetches-a-single-evse)
  * [`PATCH /evses/{id}/connectors/{connectorId}`](/api-reference/evses-v2/updates-a-connector-on-an-evse)
  * [`POST /evses/{id}/connectors/{connectorId}/change-availability`](/api-reference/evses-v2/updates-the-availability-status-of-a-connector)

  Token management:

  * [`GET /tokens`](/api-reference/tokens/get-a-list-of-tokens)
  * [`GET /tokens/{id}`](/api-reference/tokens/get-a-token-by-id)
  * [`POST /tokens`](/api-reference/tokens/create-a-new-token)
  * [`PATCH /tokens/{id}`](/api-reference/tokens/update-a-token)
  * [`DELETE /tokens/{id}`](/api-reference/tokens/delete-a-token)
  * [`POST /tokens/{id}/enable`](/api-reference/tokens/enable-a-token)
  * [`POST /tokens/{id}/disable`](/api-reference/tokens/disable-a-token)

  Token group management:

  * [`GET /token-groups`](/api-reference/token-groups/get-a-list-of-token-groups)
  * [`GET /token-groups/{id}`](/api-reference/token-groups/get-a-token-group-by-id)
  * [`POST /token-groups`](/api-reference/token-groups/create-a-new-token-group)
  * [`PATCH /token-groups/{id}`](/api-reference/token-groups/update-a-token-group)
  * [`DELETE /token-groups/{id}`](/api-reference/token-groups/delete-a-token-group)
  * [`POST /token-groups/{id}/enable`](/api-reference/token-groups/enable-a-token-group)
  * [`POST /token-groups/{id}/disable`](/api-reference/token-groups/disable-a-token-group)
  * [`GET /token-groups/{id}/locations`](/api-reference/token-groups/get-a-list-of-locations-associated-to-a-token-group-by-id)
  * [`POST /token-groups/{id}/locations/{locationId}`](/api-reference/token-groups/associate-a-location-to-a-token-group)
  * [`DELETE /token-groups/{id}/locations/{locationId}`](/api-reference/token-groups/disassociate-a-location-from-a-token-group)
  * [`GET /token-groups/{id}/tokens`](/api-reference/token-groups/get-a-list-of-tokens-associated-to-a-token-group-by-id)
  * [`POST /token-groups/{id}/tokens/{tokenId}`](/api-reference/token-groups/associate-a-token-to-a-token-group)
  * [`DELETE /token-groups/{id}/tokens/{tokenId}`](/api-reference/token-groups/disassociate-a-token-from-a-token-group)

  ### Use cases

  For NOC and support teams:

  * Troubleshoot issues remotely without site visits
  * Assist drivers with authorisation and stuck sessions
  * Unlock connectors when cables are stuck

  For CPOs:

  * Build custom monitoring and alerting solutions
  * Perform maintenance without taking charge boxes offline
  * Manage fleet operations efficiently
  * Bulk-create and manage tokens
  * Manage location access via token groups

  ### Next steps

  * Read more about [remote commands](/capabilities/operation-monitoring/remote-commands).
  * Explore the [API Reference](/api-reference/evses-v2/fetches-a-list-of-evses) for implementation details.
</Update>

<Update label="June 20, 2025" tags={["Added", "Deprecated", "API"]}>
  ## Introducing temporary EVSE status and full Locations CRUD

  ### What's new

  This release introduces two major upgrades to the Spirii API.

  #### Temporary EVSE status

  Temporary EVSE status lets charge point operators modify the charger status shared with e-Mobility Service Providers. The feature updates the displayed charger status in eMSP apps without altering the actual charger status.

  Use cases include:

  * Maintenance mode
  * Commissioning
  * Parking sensors
  * Reservation systems

  New endpoints:

  * [`POST /v2/temporary-evse-statuses`](/api-reference/temporary-evse-statuses-v2/create-a-new-temporary-evse-status)
  * [`GET /v2/temporary-evse-statuses`](/api-reference/temporary-evse-statuses-v2/get-all-temporary-evse-statuses)
  * [`GET /v2/temporary-evse-statuses/{id}`](/api-reference/temporary-evse-statuses-v2/get-a-temporary-evse-status-by-id)
  * [`PATCH /v2/temporary-evse-statuses/{id}`](/api-reference/temporary-evse-statuses-v2/update-a-temporary-evse-status)
  * [`DELETE /v2/temporary-evse-statuses/{id}`](/api-reference/temporary-evse-statuses-v2/remove-a-temporary-evse-status)

  #### Locations V2 — full CRUD operations

  Locations V2 now includes create, update, and delete operations alongside the existing GET endpoints.

  New endpoints:

  * [`POST /v2/locations`](/api-reference/locations-v2/creates-a-new-location)
  * [`PATCH /v2/locations/{id}`](/api-reference/locations-v2/updates-an-existing-location)
  * [`DELETE /v2/locations/{id}`](/api-reference/locations-v2/deletes-an-existing-location-this-operation-cannot-be-undone)

  ### What's deprecated

  The Locations V1 update endpoint is now deprecated: `PUT /locations`. Partners should migrate to V2 as soon as possible.

  ### Migration and next steps

  * All V1 partners should transition to V2 immediately.
  * The V1 endpoint remains operational but will be fully sunset at a later date.
  * Breaking changes exist; migrating to V2 is recommended.
  * Read more about [temporary EVSE status](/capabilities/operation-monitoring/temporary-evse-status).
</Update>

<Update label="May 16, 2025" tags={["Added", "Deprecated", "API"]}>
  ## Introducing Locations V2 and Tariffs V2 for AFIR compliance

  ### What's new

  We've introduced Locations V2 and Tariffs V2 under the Spirii API.

  Operators of public chargers can use these GET endpoints to comply with the EU's Alternative Fuels Infrastructure Regulation (AFIR) article 20, which took effect on 14 April 2025.

  The added endpoints also provide extended data fields for location management and public-charging pricing compared with the legacy Locations endpoint. Both endpoints are structured and formatted in compliance with OCPI version 2.3.0.

  New endpoints:

  * [`GET /v2/locations`](/api-reference/locations-v2/fetches-a-list-of-locations)
  * [`GET /v2/locations/{id}`](/api-reference/locations-v2/fetches-a-single-existing-location)
  * [`GET /v2/tariffs/{id}`](/api-reference/tariffs-v2/fetches-a-single-existing-tariff)

  ### What's deprecated

  The Locations V1 endpoints are now deprecated under the Spirii Legacy API:

  * `GET /locations`
  * `GET /locations/{id}`

  Partners using these endpoints should migrate to V2 as soon as possible.

  ### Key changes and improvements

  | Change    | Endpoints                                     | Description                                                                                                                             |
  | --------- | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
  | Locations | `GET /v2/locations`, `GET /v2/locations/{id}` | Format upgraded to the OCPI 2.3.0 structure; added data for facilities, opening hours, directions, contact information, and energy mix. |
  | Tariffs   | `GET /v2/tariffs/{id}`                        | Format upgraded to the OCPI 2.3.0 structure; added data for tariff type, price components, and price restrictions.                      |

  ### Migration and next steps

  * All partners using V1 should transition to V2 as soon as possible.
  * The V1 endpoint remains operational for now but will be fully sunset at a later date (to be announced).
  * If you use V1, update your integrations accordingly and reach out if you need support.

  Some properties are no longer available in V2 and the structure has changed in a breaking manner. If you are using V1, we strongly recommend migrating now to take advantage of the new capabilities and ensure long-term compatibility. See the API documentation for full details.
</Update>

<Update label="April 2, 2025" tags={["Fixed", "API"]}>
  ## Bug fixes

  ### What's fixed

  We fixed various bugs across the Transaction V2 and Voucher endpoints.

  | Change  | Endpoints                                           | Description                                                                                                                        |
  | ------- | --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
  | Bug fix | `GET /v2/transactions`, `GET /v2/transactions/{id}` | Fixed an issue with the `startedAt` filter not being applied.                                                                      |
  | Bug fix | `GET /vouchers`, `GET /vouchers/{id}`               | Fixed an issue retrieving voucher groups where the `companyId` was `null`.                                                         |
  | Bug fix | `GET /vouchers`, `GET /vouchers/{id}`               | Fixed an issue where the response included deleted voucher groups (a populated `deletedAt` timestamp). These are now filtered out. |
</Update>

<Update label="February 12, 2025" tags={["Added", "Deprecated", "API"]}>
  ## Introducing Transaction V2

  ### What's new

  We've introduced Transaction V2 under the Spirii API. This new version increases readability, introduces new transaction properties, and improves the overall response structure and filtering capabilities.

  New endpoints:

  * [`GET /v2/transactions`](/api-reference/transactions-v2/get-a-list-of-transactions)
  * [`GET /v2/transactions/{id}`](/api-reference/transactions-v2/get-a-transaction-by-id)

  ### What's deprecated

  The Transaction V1 endpoints are now deprecated under the Spirii Legacy API:

  * `GET /v1/transactions`
  * `GET /v1/transactions/{id}`

  Partners using these endpoints should migrate to V2 as soon as possible.

  ### Key changes and improvements

  | Change         | Transaction V1                                 | Transaction V2                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | -------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | Data structure | —                                              | Response structure changes: an `auth` object is added; the `location` object returns `type`, `countryCode`, and `isEligibleForRefund` properties; the `price` object is expanded for VAT and tariff information; the `user` object is replaced by `appUserId`; a `chargingDetails` object is added with charging status, state-of-charge meter values, and CO₂ emissions data; a `company` object is added; a `paymentStatus` object is added. |
  | Data structure | `meterValues` object contains all meter values | `meterValues` is deprecated, replaced by `meterStart` and `meterStop` properties in the `chargingDetails` object.                                                                                                                                                                                                                                                                                                                              |
  | Pagination     | Offset-based                                   | Cursor-based for better scalability.                                                                                                                                                                                                                                                                                                                                                                                                           |
  | Filtering      | Limited filtering options                      | Enhanced filtering: `ongoing`, `chargeBoxId`, `evseId`, `locationType`, `transactionType`, `voucherId`.                                                                                                                                                                                                                                                                                                                                        |

  ### Migration and next steps

  * All partners using V1 should transition to V2 as soon as possible.
  * The V1 endpoint remains operational for now but will be fully sunset at a later date (to be announced).
  * If you use V1, update your integrations accordingly and reach out if you need support.

  Some properties are no longer available in V2 and the structure has changed in a breaking manner. If you are using V1, we strongly recommend migrating now to take advantage of the new capabilities and ensure long-term compatibility. See the API documentation for full details.
</Update>
