How a session becomes a bill
Every charging session on a connector generates exactly one billing session. The billing session tracks the energy delivered, time elapsed, and applied pricing throughout the session lifecycle.Session starts
The charge point sends a
StartTransaction message via OCPP. Dynamo CSMS creates a billing session linked to the charge_point_id, connector, and the driver’s identity (idTag or user account).Tariff applied
Dynamo CSMS looks up the tariff assigned to the charge point’s project or site. The tariff defines the base pricing structure (per-kWh, per-minute, flat fee, or a combination).
Billing rules evaluated
Billing rules are evaluated against the session context — the time of day, the driver’s user type, and any active promotional codes. Rules can override or augment the base tariff.
Cost calculated
As the session progresses, Dynamo CSMS accumulates cost in real time from meter value updates delivered via OCPP
MeterValues messages. The running cost is available via the API before the session ends.Tariffs
A tariff is a pricing configuration attached to a project or site. It defines the rates charged to drivers for energy consumed and time spent charging.Tariff types
| Type | Description | Example |
|---|---|---|
| Per-kWh | Charge a fixed rate for each kilowatt-hour of energy delivered | $0.35 / kWh |
| Per-minute | Charge a fixed rate for each minute the session is active, regardless of energy | $0.10 / min |
| Flat fee | Charge a one-time fixed amount per session | $2.00 per session |
| Time-of-day | Apply different per-kWh or per-minute rates depending on the time the session occurs | 0.45/kWh from 07:00–23:00 |
| Combined | Mix any of the above — e.g., a flat session fee plus a per-kWh rate | 0.30/kWh |
Creating a tariff
Billing rules
Billing rules let you apply conditional pricing on top of a base tariff. A rule evaluates a set of conditions and, if they match, modifies the session cost. Common use cases for billing rules:- Different rates by time of day (peak vs. off-peak)
- Free charging for employees
- Discounted rates for members vs. the general public
- Surcharges for DC fast charging
Billing rules are evaluated at session end when the full context (total kWh, total time, user type) is known. Real-time cost estimates shown during the session use the base tariff only.
User types
User types classify drivers to enable differentiated pricing through billing rules. You define user types per organization and assign them to individual user accounts.| User type | Typical use |
|---|---|
public | Default type for unregistered or anonymous drivers |
employee | Company staff entitled to free or discounted charging |
visitor | Guests at a facility with access to a guest rate |
member | Subscribers to a charging membership program |
fleet | Commercial vehicle operators on contracted fleet rates |
Promotional codes
Promotional codes apply discounts to billing sessions. You create a promo code with a discount amount or percentage, an optional expiry date, and an optional usage limit.Exemptions
An exemption waives the charge for a specific billing session. This is useful for resolving billing disputes or compensating drivers for a poor charging experience. Exemptions go through an approval workflow:Request submitted
A member with the
admin role submits an exemption request for a session via POST /api/v1/billing/sessions/{session_id}/exemptions with a reason.Owner reviews
The organization owner (or a delegate with billing access) reviews the request in the dashboard or via
GET /api/v1/billing/exemptions/pending.Monthly energy allowances
You can grant users a monthly energy allowance — a fixed number of kWh that are charged at $0 each billing period. Any energy consumed above the allowance is billed at the normal tariff rate.Allowances reset on the first day of each calendar month. Unused allowance does not roll over to the next month.
Revenue sharing
If your deployment involves multiple stakeholders — for example, a building owner and a charge point operator — you can configure revenue sharing rules to automatically split session revenue between parties. Revenue sharing is configured at the project level and supports percentage-based splits with a minimum payout threshold.Invoices
Dynamo CSMS generates invoices on a per-organization billing period (monthly by default). Each invoice aggregates all sessions in that period, applies any outstanding credits or adjustments, and produces a final payable amount.Retrieving invoices
Retrieving invoices
Downloading as PDF
Downloading as PDF
Download an invoice PDF directly using
GET /api/v1/billing/invoices/{bill_id}/download.Invoice statuses
Invoice statuses
| Status | Meaning |
|---|---|
draft | Period is still open; invoice not yet finalized |
issued | Period closed; invoice sent to the billing contact |
paid | Payment confirmed |
void | Invoice cancelled, typically due to a full exemption or error |
Organizations
Learn how billing is scoped to an organization and how to manage members and API keys.
Charge points
Understand how charge point connectors generate the sessions that drive billing.