# Spirii > Documentation for the Spirii EV charging platform — product docs, developer guides, and API reference. - [Spirii Docs](https://docs.spirii.com/index.md): Learn how to build powerful connections with our all-in-one EV charging platform. - [What is Spirii?](https://docs.spirii.com/get-started/what-is-spirii.md): One EV charging platform for CPOs and eMSPs. - [Platform overview](https://docs.spirii.com/platform-overview.md): The components the platform is built on, the interfaces you work through, and the roles involved. - [Your first login](https://docs.spirii.com/get-started/first-login.md): From the invitation email to a working Spirii Connect account. - [Locations](https://docs.spirii.com/components/charging/locations.md): What a location is, what it contains, and how it connects to the rest of the platform. - [Charge boxes](https://docs.spirii.com/components/charging/charge-boxes.md): Where you manage a charger's firmware, connectivity, and remote commands. - [EVSEs](https://docs.spirii.com/components/charging/evses-and-connectors.md): Where charging happens, and the object roaming and billing are built on. - [Sessions and CDRs](https://docs.spirii.com/components/charging/sessions-and-cdrs.md): What billing, reporting, and roaming settlement are built on. - [Charge keys](https://docs.spirii.com/components/access/charge-keys.md): Who's allowed to charge, and who gets billed for it. - [Vouchers](https://docs.spirii.com/components/access/vouchers.md): How an operator opens selected locations to a specific group of drivers, at a price they control. - [App users](https://docs.spirii.com/components/access/app-users.md): Manage the drivers signed up to your branded app, and what they can charge with. - [Tariffs](https://docs.spirii.com/components/commercial/tariffs.md): How an operator sets what a driver pays to charge at a location. - [Payment terminals](https://docs.spirii.com/components/commercial/payment-terminals.md): Register your terminals and attach them to the charge boxes they take payment for. - [Customers](https://docs.spirii.com/components/organisation/customers.md): The organisation an operator serves, and the boundary that controls who sees what. - [Customer management](https://docs.spirii.com/capabilities/account/customer-management.md): Create and structure the customer organisations in your network — their owners, hierarchy, and the details that drive location ownership and billing. - [User management](https://docs.spirii.com/capabilities/account/user-management.md): Invite colleagues and customers to Spirii Connect, scope which data they see, and set what they can do with roles. - [Roles and permissions](https://docs.spirii.com/capabilities/account/roles.md): Compare the roles and pick the right one for each user you invite to Spirii Connect. - [Impersonation](https://docs.spirii.com/capabilities/account/impersonation.md): See Spirii Connect with one customer's data, without leaving your own account. - [Branding](https://docs.spirii.com/capabilities/account/branding.md): Brand Spirii Connect for your customers, and your locations for drivers. - [Location configuration](https://docs.spirii.com/capabilities/connection/location-configuration.md): How you set up a charging site in Spirii Connect before adding chargers. - [Charger validation](https://docs.spirii.com/capabilities/connection/charger-validation.md): Check that a charger model is supported before you commit hardware, and get a new model tested when you need one. - [Charger activation](https://docs.spirii.com/capabilities/connection/charger-activation.md): How a physical charger is provisioned, connected, and configured on the Spirii platform. - [Location access](https://docs.spirii.com/capabilities/access/location-access.md): How visibility and authorisation combine to control who can find a location and who can charge there. - [Charge key authentication](https://docs.spirii.com/capabilities/access/charge-key-authentication.md): How you issue charge keys to your drivers and control where they can charge. - [Voucher access](https://docs.spirii.com/capabilities/access/voucher-access.md): Give a chosen group of drivers access to selected locations at a price you set. - [Plug & Charge](https://docs.spirii.com/capabilities/access/plug-and-charge.md): Let drivers charge by plugging in: enable certificate-based Plug & Charge on your chargers, settled through roaming. - [Pricing options and logic](https://docs.spirii.com/capabilities/pricing/pricing-options-and-logic.md): Define the price and conditions for drivers charging on your infrastructure. - [Live status tracking](https://docs.spirii.com/capabilities/operation-monitoring/live-status-tracking.md): Follow your network as it runs, and support a driver mid-session. - [Faults & alerts](https://docs.spirii.com/capabilities/operation-monitoring/faults-and-alerts.md): Cut the time between a charger failing and you finding out. - [Remote commands](https://docs.spirii.com/capabilities/operation-monitoring/remote-commands.md): The remote actions available on a connected charge box, when to reach for each, and where hardware limits what they can do. - [Charger history and logs](https://docs.spirii.com/capabilities/operation-monitoring/charger-history-and-logs.md): Work out what a charge box did, and when it did it. - [Firmware management](https://docs.spirii.com/capabilities/operation-monitoring/firmware-management.md): Keep your charge boxes on current firmware without a site visit. - [Temporary EVSE status](https://docs.spirii.com/capabilities/operation-monitoring/temporary-evse-status.md): Control the status a charger shows to drivers and roaming partners. - [Service level agreements](https://docs.spirii.com/capabilities/operation-monitoring/service-level-agreements.md): Tell your team which sites carry a tighter commitment. - [Payment flows](https://docs.spirii.com/capabilities/payments/payment-flows.md): How Spirii handles money — from a driver tapping a terminal to a CPO receiving their monthly payout. - [In-app payments](https://docs.spirii.com/capabilities/payments/in-app-payments.md): The default payment channel for app users, with Spirii as the merchant on every session. - [In-person payments](https://docs.spirii.com/capabilities/payments/in-person-payments.md): Three ways to put a payment terminal on your chargers, and what each one asks of you. - [Pre-authorisation and capture](https://docs.spirii.com/capabilities/payments/pre-auth-capture.md): The two-step payment model behind every app and terminal session on the platform. - [Roaming connection](https://docs.spirii.com/capabilities/roaming/roaming-connection.md): How Spirii connects your chargers and your drivers to the networks you don't operate. - [Network coverage](https://docs.spirii.com/capabilities/roaming/network-coverage.md): Plan routes, check a region, and judge whether a site fits — before you commit to it. - [Energy management](https://docs.spirii.com/capabilities/energy-management/energy-management.md): The four capabilities that decide how much power each charger draws, and when. - [Dynamic load management](https://docs.spirii.com/capabilities/energy-management/dynamic-load-management.md): Fit more chargers onto the grid connection you already have. - [Scheduled charging](https://docs.spirii.com/capabilities/energy-management/scheduled-charging.md): Move charging to the hours that cost you least, without anyone deciding when to plug in. - [Prioritised charging](https://docs.spirii.com/capabilities/energy-management/prioritised-charging.md): Keep the vehicles that can't wait at the front of the queue when power is short. - [Programmatic charger control](https://docs.spirii.com/capabilities/energy-management/programmatic-charger-control.md): Hand the power decisions to your own software, and keep the fuse protected while it runs. - [Grid balancing](https://docs.spirii.com/capabilities/energy-management/grid-balancing.md): Earn from your portfolio's flexibility. - [Dashboard](https://docs.spirii.com/capabilities/reporting-analytics/dashboard.md): See how your network performed, and identify where to optimise it. - [Exports](https://docs.spirii.com/capabilities/reporting-analytics/exports.md): Take your charging data into Excel, your finance system, or your own reporting. - [Spirii Go and branded apps](https://docs.spirii.com/capabilities/driver-experience/spirii-go-and-branded-apps.md): Give drivers a way to find, start, and pay for a charge. - [Billing and payout flows](https://docs.spirii.com/capabilities/billing-payouts/billing-and-payout-flows.md): Who collects, who invoices, and who pays out, across every channel on the platform. - [Understanding your payout](https://docs.spirii.com/capabilities/billing-payouts/payouts.md): How to read your monthly self-billing invoice and reconcile it with the specification file. - [Revenue sharing & automated payouts](https://docs.spirii.com/capabilities/billing-payouts/revenue-sharing.md): Paying a site owner their share of the charging revenue without moving money yourself. - [Charge key billing](https://docs.spirii.com/capabilities/billing-payouts/charge-key-billing.md): Consolidated monthly invoicing for fleet drivers using RFID cards or virtual charge keys. - [Roaming settlement](https://docs.spirii.com/capabilities/billing-payouts/roaming-settlement.md): How Spirii invoices and settles between networks when drivers charge across operators. - [Home charging reimbursement](https://docs.spirii.com/capabilities/billing-payouts/home-charging-reimbursement.md): Paying employees back for the electricity their company car uses at home, without anyone filing a claim. - [Billing automation](https://docs.spirii.com/capabilities/billing-payouts/billing-automation.md): How the billing engine turns finished charging sessions into the month's invoices and payouts. - [Billing as a service](https://docs.spirii.com/capabilities/billing-payouts/billing-as-a-service.md): Having Spirii invoice your customers for the services you sell alongside charging. - [Onboarding flows](https://docs.spirii.com/capabilities/automation/onboarding-flows.md): Sell charging hardware and subscriptions online, to consumers or to businesses. - [Installers](https://docs.spirii.com/capabilities/automation/installers.md): Bring installation partners into Spirii Connect to get your chargers live. - [Change history](https://docs.spirii.com/capabilities/compliance/change-history.md): Trace an edit back to the person who made it. - [Data separation](https://docs.spirii.com/capabilities/compliance/data-separation.md): How the platform keeps each partner's data, and each driver's details, separate. - [Receipts](https://docs.spirii.com/capabilities/compliance/receipts.md): VAT-compliant receipts for every session, produced by the platform. - [Quick start for CPOs](https://docs.spirii.com/guides/cpo-quickstart.md): Get your first charger online and ready to charge with Spirii. - [Quick start for fleets](https://docs.spirii.com/guides/fleet-quickstart.md): Get your fleet charging at your own depot, and out on the road across other networks. - [Migrate to Spirii](https://docs.spirii.com/guides/migrate-to-spirii.md): Planning, testing, and running a charger and charge key migration without disrupting the drivers using your network. - [Payment terminal with Spirii POS](https://docs.spirii.com/guides/payment-terminal-setup.md): Register, configure, and go live with a Spirii POS terminal at your charging location. - [Set up revenue sharing](https://docs.spirii.com/guides/revenue-sharing-setup.md): Configure Spirii to pay a site owner directly for the revenue generated on their chargers. - [Set up home charging reimbursement](https://docs.spirii.com/guides/home-charging-reimbursement-setup.md): Configure operators, fleet customers, and employees for automated home charging reimbursement. - [Public charging hub](https://docs.spirii.com/guides/public-charging-hub.md): Unlock your public charging hub with Spirii. - [Truck charging](https://docs.spirii.com/guides/truck-charging.md): Unlock depot and on-the-road charging for your heavy-duty fleet with Spirii. - [Home & work](https://docs.spirii.com/guides/home-and-work.md): Charging at home, at the office, and on public networks — attributed to the right payer and reimbursed on one charge key. - [Spirii Developers](https://docs.spirii.com/developers/introduction.md): Learn how to build the future of eMobility. - [Authentication](https://docs.spirii.com/developers/authentication.md): How to get access to the Spirii Public API and authorize requests. - [Quickstart](https://docs.spirii.com/developers/quickstart.md): Make your first authenticated request against the Spirii Public API. - [Identifiers](https://docs.spirii.com/developers/identifiers.md): The IDs each resource carries, which one to use when, and what the formatted ones encode. - [Conventions](https://docs.spirii.com/developers/conventions.md): The rules every Spirii API endpoint shares — base URL, versioning, methods, and data formats. - [Pagination](https://docs.spirii.com/developers/pagination.md): How list endpoints return results in pages, and how to retrieve every result reliably. - [Filtering](https://docs.spirii.com/developers/filtering.md): Narrow, search, and sort list results with query parameters, and how the available filters differ by endpoint. - [Errors](https://docs.spirii.com/developers/errors.md): The HTTP status codes the API returns, what they mean, and how to handle them. - [Rate limits](https://docs.spirii.com/developers/rate-limits.md): Learn about the API rate limits and how to work with them. - [Versioning](https://docs.spirii.com/developers/versioning.md): The Spirii API follows Semantic Versioning, ensuring a clear and predictable versioning structure - [Reporting and dashboards](https://docs.spirii.com/developers/reporting-and-dashboards.md): Pull Spirii platform data into your own dashboards, business reports, and financial exports. - [Fleet management integration](https://docs.spirii.com/developers/fleet-management.md): Provision a fleet's drivers, vehicles, and accounts, then track their charging through the API. - [CRM integration](https://docs.spirii.com/developers/crm-integration.md): Keep your CRM and Spirii in step on every account — who the customer is, what they run or charge with, and what their charging is worth. - [ERP integration](https://docs.spirii.com/developers/erp-integration.md): Invoice your customers, and post charging costs and home charging reimbursements, from Spirii's charge detail records. - [Price pylon](https://docs.spirii.com/developers/pylon.md): Show a site's current charging price and how many chargers are free, to drive a price pylon. - [AFIR compliance](https://docs.spirii.com/developers/afir-compliance.md): Publish your public chargers' static and dynamic data to a National Access Point in DATEX II format. - [Overview](https://docs.spirii.com/api-reference/overview.md): The four APIs that make up the Spirii Public API, their path prefixes, and where to start. - [Get a list of CDRs](https://docs.spirii.com/api-reference/charge-records-v2/get-a-list-of-cdrs.md) - [Get a single Charge Record](https://docs.spirii.com/api-reference/charge-records-v2/get-a-single-charge-record.md): Get one Charge Record by given ID. - [Get a list of transactions](https://docs.spirii.com/api-reference/transactions-v2/get-a-list-of-transactions.md): Returns a list of Transactions. It is possible to set query parameters to filter the results. - [Get a transaction by ID](https://docs.spirii.com/api-reference/transactions-v2/get-a-transaction-by-id.md): Returns a single Transaction from a given transactionId. - [Get v2customers](https://docs.spirii.com/api-reference/customer-v2/get-v2customers.md): Retrieves a paginated list of customers based on the provided filter criteria. - [Create a new customer](https://docs.spirii.com/api-reference/customer-v2/create-a-new-customer.md): Creates a new customer record in the system. - [Get one customer by id](https://docs.spirii.com/api-reference/customer-v2/get-one-customer-by-id.md): Retrieves a customer by their unique identifier. - [Update a customer](https://docs.spirii.com/api-reference/customer-v2/update-a-customer.md): Updates a customer record in the system. - [Delete a customer](https://docs.spirii.com/api-reference/customer-v2/delete-a-customer.md): Deletes a customer record in the system. - [Get a list of app users](https://docs.spirii.com/api-reference/app-users/get-a-list-of-app-users.md): Retrieves a paginated list of app users. Only available to operators with a whitelabel app. - [Create app user](https://docs.spirii.com/api-reference/app-users/create-app-user.md): Creates an app user. Only available to operators with a whitelabel app. - [Get app user by id](https://docs.spirii.com/api-reference/app-users/get-app-user-by-id.md): Retrieves an app user by id. Only available to operators with a whitelabel app. - [Update app user](https://docs.spirii.com/api-reference/app-users/update-app-user.md): Updates an app user. Only available to operators with a whitelabel app. - [Fetches a list of supported charge box models](https://docs.spirii.com/api-reference/chargeboxes-v2/fetches-a-list-of-supported-charge-box-models.md) - [Fetches a list of charge boxes](https://docs.spirii.com/api-reference/chargeboxes-v2/fetches-a-list-of-charge-boxes.md) - [Creates a new charge box.](https://docs.spirii.com/api-reference/chargeboxes-v2/creates-a-new-charge-box.md) - [Fetches a single charge box.](https://docs.spirii.com/api-reference/chargeboxes-v2/fetches-a-single-charge-box.md) - [Deletes a charge box. This operation cannot be undone.](https://docs.spirii.com/api-reference/chargeboxes-v2/deletes-a-charge-box-this-operation-cannot-be-undone.md) - [Reboots a charge box. (Alias for soft reset)](https://docs.spirii.com/api-reference/chargeboxes-v2/reboots-a-charge-box-alias-for-soft-reset.md): Please be aware that rebooting may cause temporary downtime, depending on the charge box model, and plan usage accordingly. - [Performs a hard or soft reset on a charge box.](https://docs.spirii.com/api-reference/chargeboxes-v2/performs-a-hard-or-soft-reset-on-a-charge-box.md): Please be aware that resetting may cause temporary downtime, depending on the charge box model, and plan usage accordingly. - [Fetches a list of EVSEs.](https://docs.spirii.com/api-reference/evses-v2/fetches-a-list-of-evses.md) - [Fetches a single EVSE.](https://docs.spirii.com/api-reference/evses-v2/fetches-a-single-evse.md) - [Updates a connector on an EVSE.](https://docs.spirii.com/api-reference/evses-v2/updates-a-connector-on-an-evse.md) - [Requests an EVSE to start a transaction](https://docs.spirii.com/api-reference/evses-v2/requests-an-evse-to-start-a-transaction.md) - [Requests an EVSE to stop a transaction](https://docs.spirii.com/api-reference/evses-v2/requests-an-evse-to-stop-a-transaction.md) - [Updates the availability status of a connector.](https://docs.spirii.com/api-reference/evses-v2/updates-the-availability-status-of-a-connector.md) - [Requests an EVSE to unlock a connector](https://docs.spirii.com/api-reference/evses-v2/requests-an-evse-to-unlock-a-connector.md) - [Fetches a list of locations.](https://docs.spirii.com/api-reference/locations-v2/fetches-a-list-of-locations.md) - [Creates a new location.](https://docs.spirii.com/api-reference/locations-v2/creates-a-new-location.md) - [Fetches a single, existing location.](https://docs.spirii.com/api-reference/locations-v2/fetches-a-single-existing-location.md) - [Deletes an existing location. This operation cannot be undone.](https://docs.spirii.com/api-reference/locations-v2/deletes-an-existing-location-this-operation-cannot-be-undone.md) - [Updates an existing location.](https://docs.spirii.com/api-reference/locations-v2/updates-an-existing-location.md) - [Fetches a single, existing tariff.](https://docs.spirii.com/api-reference/tariffs-v2/fetches-a-single-existing-tariff.md) - [Get v2tariff publisherpublic key](https://docs.spirii.com/api-reference/tariffpublisher-v2/get-v2tariff-publisherpublic-key.md) - [Get all Temporary EVSE Statuses](https://docs.spirii.com/api-reference/temporary-evse-statuses-v2/get-all-temporary-evse-statuses.md) - [Create a new Temporary EVSE Status](https://docs.spirii.com/api-reference/temporary-evse-statuses-v2/create-a-new-temporary-evse-status.md): This API enables you, the Charge Point Operator (CPO)—the owners of chargers and EVSE, data—to temporarily override the **displayed** status of an EVSE (Electric Vehicle Supply Equipment) in e-mobility apps, without affecting its underlying technical or operational state. - [Get a Temporary EVSE Status by ID](https://docs.spirii.com/api-reference/temporary-evse-statuses-v2/get-a-temporary-evse-status-by-id.md) - [Remove a Temporary EVSE Status](https://docs.spirii.com/api-reference/temporary-evse-statuses-v2/remove-a-temporary-evse-status.md): Removing a Temporary EVSE Status will make the eMSP Apps use the default charger statuses, like 'Available'. - [Update a Temporary EVSE Status](https://docs.spirii.com/api-reference/temporary-evse-statuses-v2/update-a-temporary-evse-status.md) - [Get a token by ID](https://docs.spirii.com/api-reference/tokens/get-a-token-by-id.md): This endpoint allows you to get a token by its ID. - [Delete a token](https://docs.spirii.com/api-reference/tokens/delete-a-token.md): This endpoint allows you to delete a token. Deleting a token sets the token to isActive = false. **Please note that once a token is deleted, it is not possible to create a new one with the same UID** - [Update a token](https://docs.spirii.com/api-reference/tokens/update-a-token.md): This endpoint allows you to update a token. - [Get a list of tokens](https://docs.spirii.com/api-reference/tokens/get-a-list-of-tokens.md): This endpoint allows you to get a paginated list of tokens. It is possible to set query parameters to filter the results. - [Create a new token](https://docs.spirii.com/api-reference/tokens/create-a-new-token.md): This endpoint allows you to create new token(s). - [Enable a token](https://docs.spirii.com/api-reference/tokens/enable-a-token.md): This endpoint allows you to enable a token. - [Disable a token](https://docs.spirii.com/api-reference/tokens/disable-a-token.md): This endpoint allows you to disable a token. - [Get a token group by ID](https://docs.spirii.com/api-reference/token-groups/get-a-token-group-by-id.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Delete a token group](https://docs.spirii.com/api-reference/token-groups/delete-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Update a token group](https://docs.spirii.com/api-reference/token-groups/update-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Get a list of token groups](https://docs.spirii.com/api-reference/token-groups/get-a-list-of-token-groups.md): This endpoint allows you to get a paginated list of token groups. It is possible to set query parameters to filter the results. A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Create a new token group](https://docs.spirii.com/api-reference/token-groups/create-a-new-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Get a list of tokens associated to a token group by ID](https://docs.spirii.com/api-reference/token-groups/get-a-list-of-tokens-associated-to-a-token-group-by-id.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Get a list of locations associated to a token group by ID](https://docs.spirii.com/api-reference/token-groups/get-a-list-of-locations-associated-to-a-token-group-by-id.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Associate a location to a token group](https://docs.spirii.com/api-reference/token-groups/associate-a-location-to-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Disassociate a location from a token group](https://docs.spirii.com/api-reference/token-groups/disassociate-a-location-from-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Associate a token to a token group](https://docs.spirii.com/api-reference/token-groups/associate-a-token-to-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Disassociate a token from a token group](https://docs.spirii.com/api-reference/token-groups/disassociate-a-token-from-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Enable a token group](https://docs.spirii.com/api-reference/token-groups/enable-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Disable a token group](https://docs.spirii.com/api-reference/token-groups/disable-a-token-group.md): A token group is an access management mechanism where only tokens inside a group can authorize charging at specified locations. - [Get a voucher by ID](https://docs.spirii.com/api-reference/vouchers/get-a-voucher-by-id.md): A Voucher belongs to a Voucher Group and is uniquely identified by a code. It can be linked to multiple tokens (idtags) and appUsers. - [Delete a voucher by ID](https://docs.spirii.com/api-reference/vouchers/delete-a-voucher-by-id.md): This endpoint allows you to delete a voucher by its ID. - [Update an existing voucher](https://docs.spirii.com/api-reference/vouchers/update-an-existing-voucher.md): This endpoint allows you to update an existing voucher. - [Get tokens associated with a voucher by voucher ID](https://docs.spirii.com/api-reference/vouchers/get-tokens-associated-with-a-voucher-by-voucher-id.md): List of token IDs associated with the voucher. - [Get a list of vouchers](https://docs.spirii.com/api-reference/vouchers/get-a-list-of-vouchers.md): This endpoint allows you to get a paginated list of vouchers. It is possible to set query parameters to filter the results. - [Create a new voucher](https://docs.spirii.com/api-reference/vouchers/create-a-new-voucher.md): This endpoint allows you to create a voucher(s). - [Associate a token to a voucher](https://docs.spirii.com/api-reference/vouchers/associate-a-token-to-a-voucher.md): This endpoint allows you to associate a token to a voucher. - [Disassociate a token from a voucher](https://docs.spirii.com/api-reference/vouchers/disassociate-a-token-from-a-voucher.md): This endpoint allows you to disassociate a token from a voucher. - [Get a voucher group by ID](https://docs.spirii.com/api-reference/vouchergroups/get-a-voucher-group-by-id.md): A Voucher Group unites several Vouchers - [Delete a voucher group by ID](https://docs.spirii.com/api-reference/vouchergroups/delete-a-voucher-group-by-id.md): This endpoint allows you to delete a voucher by its ID. - [Update an existing voucher group](https://docs.spirii.com/api-reference/vouchergroups/update-an-existing-voucher-group.md): This endpoint allows you to update an existing voucher group. - [Get a list of voucher groups](https://docs.spirii.com/api-reference/vouchergroups/get-a-list-of-voucher-groups.md): This endpoint allows you to get a paginated list of voucher groups. It is possible to set query parameters to filter the results. - [Create a new voucher group](https://docs.spirii.com/api-reference/vouchergroups/create-a-new-voucher-group.md): This endpoint allows you to create a voucher group - [Get voucher group's locations by ID](https://docs.spirii.com/api-reference/vouchergroups/get-voucher-groups-locations-by-id.md): This endpoint allows you to fetch locations associated with a voucher group. - [Get a paginated list of vouchers belonging to a voucher group](https://docs.spirii.com/api-reference/vouchergroups/get-a-paginated-list-of-vouchers-belonging-to-a-voucher-group.md): This endpoint allows you to get a paginated list of vouchers belonging to a certain voucher group. It is possible to set query parameters to filter and paginate the results. - [Associate location to voucher group](https://docs.spirii.com/api-reference/vouchergroups/associate-location-to-voucher-group.md): Allows you to associate location to a specific voucher group - [Disassociate locations from voucher group](https://docs.spirii.com/api-reference/vouchergroups/disassociate-locations-from-voucher-group.md): Allows you to disassociate locations from a specific voucher group - [Get DATEX II v3 AFIR energy infrastructure tables](https://docs.spirii.com/api-reference/afir/get-datex-ii-v3-afir-energy-infrastructure-tables.md) - [Get DATEX II v3 AFIR energy infrastructure statuses](https://docs.spirii.com/api-reference/afir/get-datex-ii-v3-afir-energy-infrastructure-statuses.md) - [Fetches a list of audit logs.](https://docs.spirii.com/api-reference/audit-logs/fetches-a-list-of-audit-logs.md) - [Authentication](https://docs.spirii.com/api-reference/emsp/authentication.md): Exchange your client credentials for an access token, and request the scopes your integration needs. - [Get tenant profile](https://docs.spirii.com/api-reference/tenant/get-tenant-profile.md): Returns your organization's profile on Spirii — the top-level account that holds your roaming identities and your sharing preferences. You don't pass an ID Spirii recognizes you from your API credentials and always returns your own profile. It's a natural first call when you start integrating, both… - [Update tenant profile](https://docs.spirii.com/api-reference/tenant/update-tenant-profile.md): Updates your organization's profile. Right now the only thing you can change here is the display name — everything else (your IDs, your roaming identities, and what you're allowed to publish) is either managed on its own endpoints or set by Spirii. Send just the display name you'd like to use. - [Get published-network priority order](https://docs.spirii.com/api-reference/tenant/get-published-network-priority-order.md): Returns your organization's preferred ranking of other providers' published charger networks. Spirii uses this ranking to break the tie when a charger can be reached through more than one network. If the list is empty, Spirii decides the order for you. - [Set published-network priority order](https://docs.spirii.com/api-reference/tenant/set-published-network-priority-order.md): Sets your organization's preferred ranking of other providers' published charger networks, replacing the whole list in one go. Spirii uses this ranking only when a charger can be reached through more than one network. Each network you list has to be one your organization can actually access. Send an… - [List EMSP identities](https://docs.spirii.com/api-reference/emsp-identity/list-emsp-identities.md): Lists all of the roaming identities registered to your organization. Every organization has at least one (set up by Spirii), and you can register more — for example to keep different brands or regions separate. - [Register an EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/register-an-emsp-identity.md): Registers a new roaming identity for your organization. You'll need the country and the three-character party code, and you can optionally list one or more roaming standards it uses (OCPI, OICP). To stay safe if a request is accidentally sent twice, you also include a one-off reference you generate… - [List EMSP identities](https://docs.spirii.com/api-reference/emsp-identity/list-emsp-identities-1.md): Lists all of the roaming identities registered to your organization. Every organization has at least one (set up by Spirii), and you can register more — for example to keep different brands or regions separate. - [Register an EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/register-an-emsp-identity-1.md): Registers a new roaming identity for your organization. You'll need the country and the three-character party code, and you can optionally list one or more roaming standards it uses (OCPI, OICP). To stay safe if a request is accidentally sent twice, you also include a one-off reference you generate… - [Get EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/get-emsp-identity.md): Returns a single roaming identity by its ID, including its current status. - [Update EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/update-emsp-identity.md): Updates the details of one of your roaming identities — things like its label or its contact information. Its ID and its status are managed by Spirii and can't be changed here. As with registering, you include a one-off reference (an "idempotency key") so a repeated request isn't applied twice. - [Deregister an EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/deregister-an-emsp-identity.md): Removes a roaming identity from your organization. Two things to know first, your organization must always keep at least one identity, so you can't remove the last one, and you can't remove an identity that's still in use. Sort those out first, then remove it. - [Get EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/get-emsp-identity-1.md): Returns a single roaming identity by its ID, including its current status. - [Update EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/update-emsp-identity-1.md): Updates the details of one of your roaming identities — things like its label or its contact information. Its ID and its status are managed by Spirii and can't be changed here. As with registering, you include a one-off reference (an "idempotency key") so a repeated request isn't applied twice. - [Deregister an EMSP identity](https://docs.spirii.com/api-reference/emsp-identity/deregister-an-emsp-identity-1.md): Removes a roaming identity from your organization. Two things to know first, your organization must always keep at least one identity, so you can't remove the last one, and you can't remove an identity that's still in use. Sort those out first, then remove it. - [List networks](https://docs.spirii.com/api-reference/networks/list-networks.md): Lists your organization's networks. Use `network_type` to choose whether to list base networks (the full collections of charging operators your roaming identities can reach) or sub-networks (the named slices you've created from them). You can narrow the list further — for example to sub-networks of… - [Create a TENANT sub-network](https://docs.spirii.com/api-reference/networks/create-a-tenant-sub-network.md): Creates a named slice of a base network — for example "Fleet fast chargers" or "Premium partners" — which you can then assign to a group of charging tokens so those drivers see only these operators. The operators you pick must all be part of the chosen parent network. Supply an idempotency key to pr… - [Create a BASE network](https://docs.spirii.com/api-reference/networks/create-a-base-network.md): Creates a base network — the full collection of charging operators reachable through one of your roaming identities. Most organizations never call this: every roaming identity comes with its base network automatically, and day-to-day work happens in sub-networks. - [Get effective network view (BASE networks with precedence applied)](https://docs.spirii.com/api-reference/networks/get-effective-network-view-base-networks-with-precedence-applied.md): Returns which charging operators your organization can actually reach right now, and through which network. Merges all sources — your own base networks and any published ones you use — and applies the tie-break rule: where the same operator is reachable both ways, your own private network wins over… - [Get network detail](https://docs.spirii.com/api-reference/networks/get-network-detail.md): Returns a single network by its ID — its operators, the countries it covers, how many locations and charge points it includes, which base network it belongs to (if it's a sub-network), and how many token groups are using it. - [Delete a TENANT sub-network](https://docs.spirii.com/api-reference/networks/delete-a-tenant-sub-network.md): Deletes a sub-network. Only sub-networks can be deleted — base networks are permanent. If the sub-network is still assigned to token groups, the deletion is blocked as a safety measure; set `force=true` to remove the assignments and delete anyway. - [Update network settings](https://docs.spirii.com/api-reference/networks/update-network-settings.md): Changes a network's settings. What you can change depends on the network type: on a sub-network you can rename it, change its description, and adjust its operators; on a base network you can adjust the operators and whether its locations appear in anonymous charger searches — but not its name, which… - [Set publish state on a BASE network](https://docs.spirii.com/api-reference/networks/set-publish-state-on-a-base-network.md): Publishes one of your base networks to the whole platform — or begins withdrawing it. Publishing makes the network automatically visible to every organization on Spirii, so they can build slices of it for their own drivers. Publishing requires that Spirii has granted your organization the publishing… - [List access rules for this network](https://docs.spirii.com/api-reference/networks/list-access-rules-for-this-network.md): Lists the access rules on a network. A network with no rules shows everything; the moment you add the first rule, the network switches to showing only what the rules allow. Filter by validity to see only rules that are currently in effect, scheduled to start in the future, or already expired. - [Create an access rule](https://docs.spirii.com/api-reference/networks/create-an-access-rule.md): Adds an access rule to a network — either including a specific list of locations or excluding one. Rules can be scheduled: they start today unless you set a future start date, and can be given an end date after which they expire automatically. Important: adding the first rule to a network switches i… - [Delete an access rule](https://docs.spirii.com/api-reference/networks/delete-an-access-rule.md): Removes an access rule from a network. The change applies immediately — what drivers can see and where they can charge may change the moment the rule is gone. - [List visible locations on this network](https://docs.spirii.com/api-reference/networks/list-visible-locations-on-this-network.md): Lists the charging locations actually visible on a sub-network, with access rules already applied — in other words, what a driver whose token group is assigned to this sub-network can see. Useful for verifying a slice before assigning it, or for troubleshooting why a driver can't see a particular ch… - [List consumers of a Published BASE network (publisher-only)](https://docs.spirii.com/api-reference/networks/list-consumers-of-a-published-base-network-publisher-only.md): For publishers only: lists the organizations currently using one of your published base networks — those that have built slices of it for their own drivers. By default consumers appear as anonymous IDs; you only see full organization details when a consumer has chosen to share them. Useful for under… - [Search and filter locations](https://docs.spirii.com/api-reference/locations/search-and-filter-locations.md) - [Bulk availability check](https://docs.spirii.com/api-reference/locations/bulk-availability-check.md) - [Map clustering](https://docs.spirii.com/api-reference/locations/map-clustering.md) - [List available facility types](https://docs.spirii.com/api-reference/locations/list-available-facility-types.md) - [Get location detail](https://docs.spirii.com/api-reference/locations/get-location-detail.md) - [List tokens](https://docs.spirii.com/api-reference/tokens/list-tokens.md): Lists the tokens in your tenant, one page at a time. - [Provision a new token](https://docs.spirii.com/api-reference/tokens/provision-a-new-token.md): Registers a token in your tenant. The token starts in PROVISIONED, or in ACTIVE when `auto_activate` is true. `uid` must be unique within the tenant, and `metadata` is validated against the tenant TOKEN metadata schema. - [Bulk provision tokens](https://docs.spirii.com/api-reference/tokens/bulk-provision-tokens.md): Accepts up to 1000 tokens for provisioning in the background. The batch is validated as a whole before it is accepted: one invalid item rejects the batch with 422, and each entry in `errors` names the item by index (`body.tokens[].`). uid uniqueness and metadata validation run per item… - [Get token detail](https://docs.spirii.com/api-reference/tokens/get-token-detail.md): Requires the `emsp:tokens:read` scope. - [Update token attributes](https://docs.spirii.com/api-reference/tokens/update-token-attributes.md): Partially updates a token: fields left out are unchanged. Only `visual_number`, `contract_id`, `issuer`, `language`, `valid_until`, `whitelist` and `metadata` can be changed here, and any other field in the body is ignored. Send null to clear `visual_number`, `language`, `valid_until` or `metadata`.… - [Activate token](https://docs.spirii.com/api-reference/tokens/activate-token.md): Moves a PROVISIONED token to ACTIVE, so it can authorize charging and is distributed to whitelist-capable CPO networks. Distribution runs in the background, and `whitelist_distributed` says whether it has completed, so it can be false in this response and turn true later. Use reactivate for a SUSPEN… - [Suspend token](https://docs.spirii.com/api-reference/tokens/suspend-token.md): Moves an ACTIVE token to SUSPENDED, so it stops authorizing charging until it is reactivated. An optional `reason` is recorded on the history event. - [Reactivate token](https://docs.spirii.com/api-reference/tokens/reactivate-token.md): Moves a SUSPENDED token back to ACTIVE. - [Revoke token](https://docs.spirii.com/api-reference/tokens/revoke-token.md): Permanently invalidates a token from any status other than REVOKED and sets `invalidated_at`. REVOKED is terminal: no action moves a token out of it. An optional `reason` is recorded on the history event. - [Get token history](https://docs.spirii.com/api-reference/tokens/get-token-history.md): Lists the lifecycle events of a token, newest first unless `sort_direction=asc`, optionally narrowed to some event types. - [List token groups](https://docs.spirii.com/api-reference/token-groups/list-token-groups.md): Lists the token groups in your tenant, one page at a time. - [Create token group](https://docs.spirii.com/api-reference/token-groups/create-token-group.md): Creates an empty token group, optionally assigning networks to it straight away. - [Get token group detail](https://docs.spirii.com/api-reference/token-groups/get-token-group-detail.md): Requires the `emsp:tokens:read` scope. - [Update token group](https://docs.spirii.com/api-reference/token-groups/update-token-group.md): Partially updates a group: fields left out are unchanged, and `description`, `emsp_identity_id`, `external_id` and `metadata` can be cleared with null. Member tokens and networks are managed through their own operations, and any other field in the body is ignored. - [Add tokens to group](https://docs.spirii.com/api-reference/token-groups/add-tokens-to-group.md): Adds tokens to the group and returns the updated group. A token can be a member of any number of groups, so adding it here does not remove it from other groups. The members of a group cannot be listed yet. - [Remove token from group](https://docs.spirii.com/api-reference/token-groups/remove-token-from-group.md): Removes one token from the group. The token itself and its other group memberships are unchanged. - [List network assignments](https://docs.spirii.com/api-reference/token-groups/list-network-assignments.md): Lists the networks assigned to the group. Member tokens can charge on the CPOs these networks contain. - [Assign network to group](https://docs.spirii.com/api-reference/token-groups/assign-network-to-group.md): Assigns a network to the group, so member tokens can charge on the CPOs it contains. Every network a token reaches, across all of its groups, must be built on the same BASE network. - [Remove network assignment](https://docs.spirii.com/api-reference/token-groups/remove-network-assignment.md): Removes a network from the group. Member tokens stop reaching its CPOs once the change has propagated. - [Activate group](https://docs.spirii.com/api-reference/token-groups/activate-group.md): Activates every PROVISIONED member token. The action is applied in the background to the tokens that are members when the call is made; tokens added later are not affected. Members whose status the action does not apply to are counted in `skipped`. - [Suspend group](https://docs.spirii.com/api-reference/token-groups/suspend-group.md): Suspends every ACTIVE member token. The action is applied in the background to the tokens that are members when the call is made; tokens added later are not affected. Members whose status the action does not apply to are counted in `skipped`. - [Reactivate group](https://docs.spirii.com/api-reference/token-groups/reactivate-group.md): Reactivates every SUSPENDED member token. The action is applied in the background to the tokens that are members when the call is made; tokens added later are not affected. Members whose status the action does not apply to are counted in `skipped`. - [Revoke group](https://docs.spirii.com/api-reference/token-groups/revoke-group.md): Revokes every member token that is not already REVOKED. Revocation is permanent. The action is applied in the background to the tokens that are members when the call is made; tokens added later are not affected. Members whose status the action does not apply to are counted in `skipped`. - [Webhook events](https://docs.spirii.com/api-reference/emsp/webhook-events.md): The event types you can subscribe to, what each one tells you, and which ones reach you. - [Webhook delivery](https://docs.spirii.com/api-reference/emsp/webhook-delivery.md): Verify the signature on an incoming delivery, respond correctly, and keep your subscription healthy. - [List subscribable event types](https://docs.spirii.com/api-reference/webhooks/list-subscribable-event-types.md): Returns the controlled list of event types you can subscribe a webhook to. - [Get an event type](https://docs.spirii.com/api-reference/webhooks/get-an-event-type.md): Returns each available api_version of an event type and its payload JSON schema. - [List webhook subscriptions](https://docs.spirii.com/api-reference/webhooks/list-webhook-subscriptions.md): Lists your webhook subscriptions. Supports cursor pagination and filtering by event type. Secrets and custom-header values are never returned. - [Register a webhook](https://docs.spirii.com/api-reference/webhooks/register-a-webhook.md): Registers a webhook subscription for an event type. Spirii generates the signing secret and returns it once in this response — store it securely, it is never shown again. - [Get a webhook subscription](https://docs.spirii.com/api-reference/webhooks/get-a-webhook-subscription.md): Returns a single webhook subscription. The secret and custom-header values are never returned. - [Delete a webhook subscription](https://docs.spirii.com/api-reference/webhooks/delete-a-webhook-subscription.md): Deregisters a webhook subscription. Future deliveries stop immediately. - [Update a webhook subscription](https://docs.spirii.com/api-reference/webhooks/update-a-webhook-subscription.md): Updates a webhook subscription — pause/resume it, change the URL or custom headers, or rotate the signing secret. When you request rotation the new secret is returned once in this response. - [Send a test delivery](https://docs.spirii.com/api-reference/webhooks/send-a-test-delivery.md): Sends a one-off signed test payload to the subscription endpoint and reports the result. It does not affect the failure count or the subscription status. - [List Expense Reports](https://docs.spirii.com/api-reference/reimbursement-expenses/list-expense-reports.md) - [Get Expense Report](https://docs.spirii.com/api-reference/reimbursement-expenses/get-expense-report.md) - [Download Expense Report](https://docs.spirii.com/api-reference/reimbursement-expenses/download-expense-report.md) - [Approve Expense Report](https://docs.spirii.com/api-reference/reimbursement-expenses/approve-expense-report.md): Approves, stores, and sends emails for a expense report. - [Get Expense](https://docs.spirii.com/api-reference/reimbursement-expenses/get-expense.md) - [Download Expense](https://docs.spirii.com/api-reference/reimbursement-expenses/download-expense.md) - [List Unlinked CDRs](https://docs.spirii.com/api-reference/reimbursement-expenses/list-unlinked-cdrs.md): Fetch a list of Charge Detail Records that are eligible for reimbursement, but not yet linked to an expense. - [Add CDRs to Expense](https://docs.spirii.com/api-reference/reimbursement-expenses/add-cdrs-to-expense.md): Add Charge Detail Records to an expense. - [Remove CDRs from Expense](https://docs.spirii.com/api-reference/reimbursement-expenses/remove-cdrs-from-expense.md): Remove Charge Detail Records from an expense. - [Get reimbursement rates for one or more locations](https://docs.spirii.com/api-reference/reimbursement-rates/get-reimbursement-rates-for-one-or-more-locations.md) - [Create a new reimbursement rate](https://docs.spirii.com/api-reference/reimbursement-rates/create-a-new-reimbursement-rate.md) - [Delete a reimbursement rate and its attached documents](https://docs.spirii.com/api-reference/reimbursement-rates/delete-a-reimbursement-rate-and-its-attached-documents.md) - [Update an existing reimbursement rate](https://docs.spirii.com/api-reference/reimbursement-rates/update-an-existing-reimbursement-rate.md) - [Get documents for a reimbursement rate](https://docs.spirii.com/api-reference/reimbursement-rates/get-documents-for-a-reimbursement-rate.md): Returns all documents attached to a reimbursement rate, each with a pre-signed download URL valid for 5 minutes. - [Upload document(s) for a reimbursement rate](https://docs.spirii.com/api-reference/reimbursement-rates/upload-documents-for-a-reimbursement-rate.md): Upload one or more files as supporting documents for a reimbursement rate. - [Overview](https://docs.spirii.com/capabilities/smart-charging/overview.md): Programmatic control of chargers and Dynamic Load Management circuits, and the async events Spirii emits. - [Control Request](https://docs.spirii.com/api-reference/websockets/control-request.md): Single endpoint accepting all control command types. Since processing is asynchronous, the HTTP response only reflects whether the request was accepted for processing (authenticated, well-formed) — the actual outcome of applying the request is delivered later as a `controlResponse` message correlate… - [Control Response](https://docs.spirii.com/api-reference/websockets/control-response.md): Delivers the outcome of a previously submitted control request. One message per `request_id`. - [Connector Status Update](https://docs.spirii.com/api-reference/websockets/connector-status-update.md): Pushed whenever the status of a connector registered with the actor changes. - [Asset Management (Master Data)](https://docs.spirii.com/api-reference/websockets/asset-management-master-data.md): Pushed when an asset (chargebox or circuit) registered with the actor is subscribed, unsubscribed, or updated. Update messages only include the fields that changed. - [Power Measurements](https://docs.spirii.com/api-reference/websockets/power-measurements.md): Near-real-time active power readings for chargeboxes and circuits registered with the actor. - [Legacy API](https://docs.spirii.com/api-reference/legacy-api/overview.md): The Spirii legacy API (v1) is deprecated. New integrations should use the Spirii API. - [Retrieve a list of locations](https://docs.spirii.com/api-reference/locations/retrieve-a-list-of-locations.md) - [Retrieve location by ID](https://docs.spirii.com/api-reference/locations/retrieve-location-by-id.md) - [Update location data](https://docs.spirii.com/api-reference/locations/update-location-data.md) - [Retrieve a list of EVSE's with their current status](https://docs.spirii.com/api-reference/evses/retrieve-a-list-of-evses-with-their-current-status.md) - [Retrieve a EVSE's with their current status](https://docs.spirii.com/api-reference/evses/retrieve-a-evses-with-their-current-status.md) - [Retrieve a list of transactions](https://docs.spirii.com/api-reference/transactions/retrieve-a-list-of-transactions.md) - [Retrieve complete transaction data by ID](https://docs.spirii.com/api-reference/transactions/retrieve-complete-transaction-data-by-id.md) - [Retrieve the charge records data](https://docs.spirii.com/api-reference/charge-records/retrieve-the-charge-records-data.md) - [Retrieve complete charge record data by ID](https://docs.spirii.com/api-reference/charge-records/retrieve-complete-charge-record-data-by-id.md) - [Retrieve a list of app users](https://docs.spirii.com/api-reference/app-users/retrieve-a-list-of-app-users.md) - [Retrieve a app users](https://docs.spirii.com/api-reference/app-users/retrieve-a-app-users.md) - [Retrieve a list of voucher groups](https://docs.spirii.com/api-reference/voucher-groups/retrieve-a-list-of-voucher-groups.md) - [Retrieve all information about a specific Voucher Group](https://docs.spirii.com/api-reference/voucher-groups/retrieve-all-information-about-a-specific-voucher-group.md) - [Update a voucher group](https://docs.spirii.com/api-reference/voucher-groups/update-a-voucher-group.md) - [Retrieve a list of vouchers](https://docs.spirii.com/api-reference/vouchers/retrieve-a-list-of-vouchers.md) - [Retrieve a specific voucher](https://docs.spirii.com/api-reference/vouchers/retrieve-a-specific-voucher.md) - [Update a voucher](https://docs.spirii.com/api-reference/vouchers/update-a-voucher.md) - [Disable a voucher (sets it as expired)](https://docs.spirii.com/api-reference/vouchers/disable-a-voucher-sets-it-as-expired.md) - [Changelog](https://docs.spirii.com/changelog/overview.md): Connect to the latest updates, improvements, and fixes to Spirii’s platform ## OpenAPI Specs - [openapi](/openapi/emsp-location/openapi.yaml) - [openapi](/openapi/emsp-network/openapi.yaml) - [openapi](/openapi/emsp-tenant/openapi.yaml) - [openapi](/openapi/emsp-token/openapi.yaml) - [openapi](/openapi/emsp-webhook/openapi.yaml) - [openapi](/openapi/integration-api-v2/openapi.yaml) - [openapi](/openapi/integrations-api/openapi.yml) - [openapi](/openapi/reimbursement/expenses/openapi.yaml) - [openapi](/openapi/reimbursement/rates/openapi.yaml) ## AsyncAPI Specs - [asyncapi](/openapi/smart-charging/asyncapi.yaml) ## Optional - [Status](https://status.spirii.com/) - [Support](mailto:support@spirii.com) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.