Start›Products
API

Eleven interfaces.
The same ones we use ourselves.

ENIO is built API-first: the backend and the app call exactly the endpoints you get. Here is what exists and what data flows through it — from a single charging session through the live state of every socket to the tariff you lower automatically at midday.

There is no second, lesser API for customers. Whatever the ENIO interface can do, you can do — same endpoints, same data.
Charge pointsAC and DC, any manufacturerOCPP · meter values, statustariff, releaseENIO backendsessions, tariffs, authorisation, billingAPIREST · OCPP · OCPIOCPI · roaming CDRsREST · CDRs, invoice dataEMP and roamingcard providers, platformsYour ERP and BIaccounting, cost centres, dashboardsAPI
REST over HTTPSOpenAPI spec per interfaceVersionedPermissions per tenant
Catalogue

Which interface does what

Filter by task or search. Every card says what the interface is for, what data moves through it and which endpoints exist.

11 APIs
Read datav1.4.5 · OAS 2.0

Charge Detail Record API

Fetch every completed and every running charging session — the basis for billing, reports and your own dashboards.

What you exchange with it

Per session the start and end time, energy in kWh, charge point by EVSE ID, card or user, the tariff applied, the amount billed and the duration. With pagination for long periods and a separate shape for currently active sessions. Authenticated through the x-auth header.

  • GET/charge-detail-recordList of sessions, filtered and paginated
Read datav1.7.2 · OAS 2.0

Chargeboxes Info & EVSE Status API

Read the inventory and the live state of every charge point in a tenant.

What you exchange with it

All charge boxes of a tenant with serial number, manufacturer and model, their EVSE IDs, connector type and power — plus the connection state of the box and the status of each socket: available, in use, reserved, faulted. Enough to build your own status board or feed an existing monitoring system.

  • GET/charge-boxes-infoAll charge boxes of a tenant with EVSE status
Read datav1.11.1 · OAS 3.1

ChargeBox Status-Error API

See, acknowledge and pull charge box faults and events into your own ticketing.

What you exchange with it

The event and error log per charge box with timestamp and error code, the list of all boxes in a tenant with unconfirmed faults, and acknowledgement either individually or for a whole box. You can also post your own debug events.

  • GET/api/v1/eventEvents for a given charge box
  • POST/api/v1/eventCreate your own debug event
  • GET/api/v1/event/unconfirmedBoxes with unconfirmed faults
  • POST/api/v1/event/confirm/{eventId}Acknowledge a single event
  • POST/api/v1/event/confirm-all/{chargeBoxId}Acknowledge all events of a box
  • POST/api/v1/event/update-unlinked-eventsReconcile unlinked events
Read datav1.0.0 · OAS 3.1

Receipt API

Search receipts and deliver them as files — for finance or a self-service portal.

What you exchange with it

Search customer receipts by period, customer or transaction, and return the receipt URL for download. Your finance team gets the fiscalised receipts without going through the backend, and customers download their invoice in your own portal.

  • POST/api/v1/searches/receiptsReceipts matching the given criteria
  • GET/api/v1/searches/receipts/urlsDownload URL for a receipt
Read data

OCPP Meter Value

The meter readings a charge point reports during a session.

What you exchange with it

Meter readings from the OCPP MeterValues: meter register, current power delivered, current and voltage, and depending on the hardware the vehicle’s state of charge. The basis for load curves, load management analysis and metrology-law evidence.

Controlv1.8.0 · OAS 3.1

OCPP Messaging API

Send commands straight to the charge point — without logging into the backend.

What you exchange with it

OCPP commands to a charge box: reserve and cancel, change the availability of a socket, set configuration values, clear the authorisation cache, remotely stop a running transaction, trigger a soft or hard reset, request a message and unlock the connector. Plus a generic endpoint for any OCPP call.

  • POST/api/v1/OcppGenericAny OCPP call to a charge box
  • POST/api/v1/OcppMessage/reserve-nowReserve a socket for an ID tag
  • POST/api/v1/OcppMessage/cancel-reservationCancel a reservation
  • POST/api/v1/OcppMessage/change-availabilityBlock or release a socket
  • POST/api/v1/OcppMessage/change-configurationSet a configuration value
  • POST/api/v1/OcppMessage/clear-cacheClear the authorisation cache
  • POST/api/v1/OcppMessage/data-transferTransfer vendor-specific data
  • POST/api/v1/OcppMessage/remote-stop-transactionRemotely stop a running session
  • POST/api/v1/OcppMessage/resetReset the charge box
  • POST/api/v1/OcppMessage/trigger-messageTrigger a message from a socket
  • POST/api/v1/OcppMessage/unlock-connectorUnlock the connector
Controlv1.1.0 · OAS 3.0

ETSweb App V3 API

The interface behind the ENIO app — everything a driver does can also be triggered from your own application.

What you exchange with it

Login and user profile, start, stop and prioritise a session at an EVSE ID, add an odometer reading to a session, block an RFID card, validate and reserve a charge point and cancel the reservation, retrieve prices for an EVSE ID, list invoices and fetch them as PDF. These are the very endpoints the ENIO app uses.

  • POST/loginLogin and user info
  • POST/users/update-infoUpdate user info
  • POST/users/update-passwordUpdate password
  • POST/blockRfidCardBlock an RFID card
  • POST/charges/start/{evseId}Start a session
  • POST/charges/{chargeId}/stopStop a session
  • POST/charges/prioritize/{chargeId}Prioritise a session
  • POST/charges/update-mileageAdd the odometer reading
  • POST/chargepoints/validateValidate a charge point
  • POST/chargepoints/reserve-nowReserve a charge point
  • POST/chargepoints/reserve-now/{evseId}/cancelCancel a reservation
  • GET/charge-infoState of the running session
  • GET/commands/{commandId}Fetch the result of a command
  • GET/prices/{evseId}Prices for a charge point
  • GET/invoicesThe user’s invoices
  • GET/invoices/{invoiceId}/pdfInvoice as PDF
Tariffs & pricesv1.2.8 · OAS 3.1

Dynamic Pricing API

Set tariffs and tax rates programmatically — the interface behind dynamic pricing.

What you exchange with it

Create, update, patch and delete tariffs with validity period, version, price components and assignment; query the tariff valid at a given moment; read a specific tariff version. The same operations for tax rates. This is how you lower the price automatically when your PV system has surplus instead of curtailing it.

  • GET/api/v1/tariffTariff list, paged and filtered
  • POST/api/v1/tariffCreate a tariff
  • GET/api/v1/tariff/validResolve the currently valid tariff
  • GET/api/v1/tariff/specificRead a specific tariff version
  • GET/api/v1/tariff/{tariffId}Read a tariff by ID
  • PUT/api/v1/tariff/{tariffId}Replace a tariff
  • PATCH/api/v1/tariff/{tariffId}Patch a tariff
  • DELETE/api/v1/tariff/{tariffId}Delete a tariff
  • GET/api/v1/taxRead tax rates
  • POST/api/v1/taxCreate a tax rate
  • GET/api/v1/tax/validResolve the valid tax rate
  • GET/api/v1/tax/specificRead a specific tax version
  • PUT/api/v1/tax/{taxId}Replace a tax rate
  • PATCH/api/v1/tax/{taxId}Patch a tax rate
  • DELETE/api/v1/tax/{taxId}Delete a tax rate
Tariffs & pricesv1.0.0 · OAS 2.0

Vendor Basic Tariffs API

Read the basic tariffs stored for a tenant.

What you exchange with it

All basic tariffs of the tenant, matched through the x-vendor-id header from authentication. Your own interface then shows exactly the prices that apply at the charge point and in the app.

  • GET/vendor-basic-tariffsAll basic tariffs of a tenant
Customers & sitesv1.0.0 · OAS 3.0

Charging Location API

Show charge points on a map — in your own portal, in your own app.

What you exchange with it

Locations within a map viewport, clustered to the zoom level; the detail of one location with all its charge points, power ratings and availability; lookup by EVSE ID; and the country code for a coordinate. This is what powers the map in the ENIO app.

  • GET/v1/map-locationsLocations in the map viewport
  • GET/v1/map-locations/{locationId}All charge points of a location
  • GET/v1/map-locations/search-by-evse-idFind a location by EVSE ID
  • GET/v1/map-locations/find-country-code-by-pointCountry code for a coordinate
Customers & sitesv1.3 · OAS 3.1

Customer Onboarding API

Create and maintain user accounts without anyone opening the backend.

What you exchange with it

Create or update customer records with master data and optional credentials, change the credentials of an existing account, check whether an email address is already taken, and remove a customer entirely — from identity management and from ETSweb. Plus a webhook that returns events from identity management. This is how your employee portal or onboarding process hangs directly off ENIO.

  • POST/api/v1/CustomersCreate or update a customer
  • PUT/api/v1/CredentialsUpdate credentials
  • GET/api/v1/Customers/check-emailCheck an email address for duplicates
  • DELETE/api/v1/CustomersRemove a customer entirely
  • POST/api/v1/KeycloakWebhookReceive identity management events
Every interface comes with a full OpenAPI specification covering all fields, example responses and error codes. This overview is the readable version; the specification is authoritative. Access to the API catalogue, your token and a sandbox come together with your tenant — on request already before signing, for a technical assessment.
In practice

What customers use the interfaces for

01Your own analysis

Dashboard in your own BI

Sessions through the CDR API into Power BI, Tableau or your own frontend — with your cost centres and your metrics.

More on thisOur example dashboard uses exactly this route. Take it as it is or build something entirely different.
02Straight into the ERP

Receipts and cost centres

The receipt and CDR APIs deliver receipts and sessions to where your finance team already works — SAP, ERP, fleet system.

More on thisIf you prefer not to poll, you get webhooks for started and completed sessions.
03Price follows the sun

Automate dynamic tariffs

Your energy management reports surplus, one call to the dynamic pricing API lowers the price — and raises it again in the evening.

More on thisTariffs are versioned and carry a validity period, so every change stays traceable.

Which system should hang off ENIO?

Tell us where the data should go — we will tell you which endpoints you need and what already works in the sandbox.