Home / Monetisatie / B2B Contracts / Energy reimbursement at the purchase tariff

Energy reimbursement at the purchase tariff

Bijgewerkt op 09 juli 2026
Dit artikel is nog niet beschikbaar in het Nederlands. De English-versie wordt getoond.

Overview

The Reimbursement at purchase tariff feature makes it possible to reimburse the energy consumed by charging sessions based on the actual energy contract between the electricity supplier and the site host.

Until now, reimbursement was done at a fixed rate per kWh (AC or DC). This mode remains available, but the purchase tariff offers a fairer alternative: the reimbursement reflects exactly the price the host pays to its supplier, time slot by time slot.

Result: each month the host receives a transparent credit note, detailed by session and by tariff slot, aligned with its supplier contract.


Key concepts

Third-party energy contract

The third-party energy contract is the document that describes the tariff grid of the electricity supplier (EDF, Engie, etc.) applicable to a charging site. It contains:

  • The supplier and the customer (host)
  • The reference of the supplier contract
  • The validity dates (start / end)
  • The tariff structure organized into periods, day types and time slots

Tariff structure: 3 levels

The tariff grid of an energy contract is organized into 3 hierarchical levels:

Level Description Example
Period Seasonal breakdown with start and end dates Winter (Nov 1 → Feb 28), Summer (Mar 1 → Oct 31)
Day type Recurrence rule within a period Every day, Working days, Weekend, Exceptional dates
Time slot Time range with a price per kWh 06:00–22:00 Peak Hours €0.1540/kWh

Day-type resolution priority

When several day types apply to the same date, the system applies this order of priority:

  1. Exceptional dates (red days of the supplier contract, e.g. days of high demand on the grid) — highest priority
  2. Specific days (working days, weekend)
  3. Every day — default rule

Example: January 15 is a Wednesday (working day), but it is flagged as a red day in the supplier contract. If an exceptional date is defined for 01/15, its specific tariff applies, and not the working-days one.


Workflow

Step 1 — Create the third-party energy contract

From the Contracts > Energy contracts menu, create a new contract by entering:

  1. General information: supplier, host (customer), contract reference, validity dates, contract type (fixed)

capture_reduite.png

  1. Tariff periods: define the seasonal periods (e.g. Winter, Summer) with their dates
  2. Day types and time slots: for each period, configure the time slots with their prices per kWh

capture_reduite_2.png

The form automatically validates the consistency of the entry:

  • No overlap between periods
  • No gap in the 24h coverage of the time slots
  • No duplicate on exceptional dates
  • Consistency between day types (no "Every day" + "Specific days" conflict on the same period)

Step 2 — Associate with the B2B contract

In the host's B2B contract, at the Transaction > Energy reimbursement step:

  1. Enable the energy reimbursement service
  2. Select the Purchase tariff mode
  3. Choose the third-party energy contract to associate

The system will automatically use this contract to calculate the reimbursement of all charging sessions on this host's sites.

Step 3 — Automatic billing

At each monthly due date, the system:

  1. Retrieves all the month's sessions for this host
  2. For each session, applies the tariff grid of the energy contract
  3. Generates a credit note with the breakdown by slot
  4. Sends by email the PDF invoice and the detailed Excel export

How the reimbursement is calculated

General principle

For each charging session, the system:

  1. Identifies the time boundaries crossed by the session: time-slot changes, midnight crossings, tariff-period transitions
  2. Splits the session into segments at each boundary
  3. Distributes the consumed energy across each segment proportionally to the meter readings (OCPP meter values)
  4. Applies the tariff corresponding to each segment according to the energy contract
  5. Calculates the amount of each segment: kWh × price €/kWh

The total reimbursement is the sum of all segments.

Concrete example

Context: an overnight charging session on a site whose energy contract provides for three tariff slots:

Slot Time range Price
Peak Hours (HP) 06:00 – 22:00 €0.154/kWh
Off-Peak evening (HC evening) 22:00 – 00:00 €0.1064/kWh
Off-Peak night (HC night) 00:00 – 06:00 €0.0864/kWh

Session: from 02/21 at 23:30 to 02/22 at 11:52 — total consumption: 54,494 Wh

The charge point transmits regular meter readings during the charge. The system therefore has several intermediate measurement points:

Timestamp Cumulative energy
23:30 (start) 0 Wh
23:55 4,743 Wh
00:00 5,696 Wh
06:00 54,492 Wh
11:52 (end) 54,494 Wh

The session crosses two tariff boundaries: the midnight crossing (HC evening → HC night) and the 06:00 crossing (HC night → HP). Thanks to the intermediate readings close to these boundaries, the system can distribute the energy precisely — by interpolation between the readings closest to each boundary, and not by simple uniform distribution.

Splitting and calculation:

Segment Range Slot Energy Unit price Amount
1 23:30 → 00:00 HC evening 5,639 Wh €0.1064/kWh €0.60
2 00:00 → 06:00 HC night 48,853 Wh €0.0864/kWh €4.22
3 06:00 → 11:52 HP 2 Wh €0.154/kWh €0.00
Total 54,494 Wh €4.82
Session 23:30 ──────────────────────────────────────────── 11:52
               │           │                    │
            HC evening   HC night              HP
          23:30→00:00  00:00→06:00          06:00→11:52
           5,639 Wh    48,853 Wh               2 Wh
          × €0.1064   × €0.0864          × €0.154
          = €0.60     = €4.22             = €0.00
               │           │                    │
               └───────────┴────────────────────┘
                        Total = €4.82

We can see that almost all the energy was consumed during the night (HC night), at the most advantageous tariff. The sum of the segments is always equal to the total consumption of the session — no energy is lost in the splitting.

Note: when the charge point transmits only the start and end readings of the session (no intermediate reading), the system distributes the energy pro rata to the time spent in each slot.

Fallback behavior

If the energy contract does not cover a session (expired contract, missing period, inactive contract), the system automatically applies the fixed AC/DC tariff defined in the B2B contract. There is never a session without reimbursement.


The detailed invoice (Excel export)

Each month the host receives an Excel export attached to its invoice. This export details each charging session line by line.

Format

  • A simple session (a single time slot crossed) = 1 line
  • A multi-slot session (crossing several time slots or midnight) = several lines, grouped by session identifier

For multi-line sessions, each line contains the same complete information (session metadata + tariff-segment data), which makes the file easier to read and process.

Key columns

Column Description
Transaction ID Unique identifier of the session
Site Name of the charging site
Charge point Identifier of the charge point
Start / End Start and end dates of the session
Consumption (Wh) Energy of the segment
Reimbursed price (€/kWh) Tariff applied to the segment

Important rules

Locking of tariff periods

The locking of a tariff period of the energy contract depends on the status of the associated credit note:

  • Open or draft credit note: the tariff period remains editable. If the credit note is cancelled, the contract can be corrected and billing restarted.
  • Paid credit note: the tariff period becomes locked in read-only. This guarantees consistency between the billed amounts and the tariff grid used for the calculation.

Future periods (not yet used in a credit note) always remain editable.

Daylight saving time handling (summer time / winter time)

All sessions are recorded in UTC. The system automatically converts to local time (Europe/Paris) to determine the applicable tariff slot. Summer-time and winter-time transitions are handled natively — no manual intervention is required.


Frequently asked questions

Can I have several active energy contracts?
Yes, you can create one contract per host and per supplier. Each B2B contract can be associated with a different energy contract.

What happens if the energy contract expires mid-month?
Sessions covered by the contract are reimbursed at the purchase tariff. Sessions outside coverage automatically switch to the fixed AC/DC tariff of the B2B contract.

Can I modify an ongoing energy contract?
You can modify the tariff periods as long as the associated credit note has not moved to the "Paid" status. Once the credit note is paid, the period is locked. If a credit note is still open or cancelled, the contract remains editable.

Are very short sessions (a few minutes) also split?
Yes, the same algorithm applies regardless of the duration. A 10-minute session that does not cross any tariff boundary will simply produce a single line in the export.

How are network outages during a session handled?
If intermediate meter readings are missing (loss of charger connectivity), the energy is distributed uniformly over the period without readings. The calculation remains reliable — the total consumption is always correct.

What types of supplier contracts are supported?
The current version supports fixed-tariff contracts (prices defined per time slot). Indexed contracts (variable price based on a market index) and custom contracts are planned for a later version.