Learning Hub/Scenarios
Explanations use OCPI 2.2.1. Physical and billing-system events are authored examples.

Driver disputes the higher bill

Advanced
5 min
OCPI 2.1.1, 2.2.1 and 2.3.0
Driver disputes the higher bill

The eMSP charges the driver 17.90. The driver, who saw 0.35 per kWh, disputes the difference.

EMSP
USER
Authored observation

The driver is billed an effective rate well above the 0.35 they saw when they plugged in.

The CDR is consistent with the published tariff: 11.3 kWh before 17:00 at 0.35 and 19.7 kWh after it at 0.55 make 14.79 excluding VAT, and 17.90 with the 21% VAT on each price component. The protocol rule here is that a new charging period starts when another price component becomes active, which the CDR does at 17:00. Showing only the rate in force at plug-in is a product choice of the app, not a protocol result, and this tariff has no parking element that could add to the bill.

"The Open Charge Point Interface (OCPI) enables a scalable, automated EV roaming setup between Charge Point Operators and e-Mobility Service Providers."OCPI 2.2.1 specification · #introduction_introduction_and_background"A `TariffRestrictions` object describes if and when a Tariff Element becomes active or inactive during a Charging Session. These restrictions are not to be interpreted as making the Tariff Element applicable or not applicable for the entire Charging Session. When more than one restriction is set, they are to be treated as a logical AND. So a Tariff Element is active if and only if all of the properties in its `TariffRestrictions` match."OCPI 2.2.1 specification · #mod_tariffs_tariffrestrictions_class"A CPO SHALL at least start (and add) a ChargingPeriod every moment/event that has relevance for the total costs of a CDR. During a charging session, different parameters change all the time, like the amount of energy used, or the time of day. These changes can result in another Price Component of the Tariff becoming active. When another Price Component becomes active, the CPO SHALL add a new Charging Period with at least all the relevant information for the change to the other Price Component."OCPI 2.2.1 CDRs module · #mod_cdrs_cdr_object"|type |TariffDimensionType |1 |The dimension that is being priced |price |number |1 |Price per unit (excl. VAT) for this dimension. |vat |number |? |Applicable VAT percentage for this tariff dimension. If omitted, no VAT is applicable. Not providing a VAT is different from 0% VAT, which would be a value of 0.0 here. |step_size |int |1 |Minimum amount to be billed. That is, the dimension will be billed in this `step_size` blocks. Consumed amounts are rounded up to the smallest multiple of `step_size` that is greater than the consumed amount. For example: if `type` is `TIME` and `step_size` has a value of `300`, then time will be billed in blocks of 5 minutes. If 6 minutes were consumed, 10 minutes (2 blocks of `step_size`) will be billed."OCPI 2.2.1 specification · #mod_tariffs_pricecomponent_class
Previous
Message Flow!CCPOeeMSPsenderUUserreceiverStep 4 of 4