What happens
The session shows up with its energy and time, but no card, no customer, or a generic identifier. You can't bill anyone, and if the charger is shared you don't know who charged.
Check it in two minutes
Do the same session on the test server as on site: plug in, tap the card, charge a little and stop. The log shows which message carries the card (Authorize, StartTransaction, TransactionEvent) and with what number, which is exactly what the platform has to store. Open the OCPP test server →
The causes, most likely first
1. In OCPP 2.0.1 the card arrives after plugging in
Many 2.0.1 chargers open the transaction as soon as the cable goes in (TransactionEvent Started with no card) and the card arrives later, in an Updated with reason Authorized. A platform that only reads the first message misses it. It happened to us with a DC charger we tested.
How to fix it: The platform has to bind the card that arrives in the Updated. To check: plug in first, tap the card afterwards, and see whether the session has it.
2. The charger is in free mode
With free charging on (or a fixed factory card), the charger starts without asking for a card and always sends the same identifier, or none.
How to fix it: Turn free mode off (FreeVend, local Plug and Charge, Autostart) if you want to know who charges.
3. The session started offline
Without a connection, the charger may let unknown cards charge (AllowOfflineTxForUnknownId) and report it when it's back. If the platform doesn't recognise it then, the session is left without a customer.
How to fix it: Leave AllowOfflineTxForUnknownId=false and load the local list with the valid cards.
4. It was started from the platform, not with a card
A remote start carries whatever identifier the platform puts in, which needn't be a customer's card.
How to fix it: If you want a remote start in a customer's name, send it with their card.
What askacharge.com does
A card that arrives after plugging in is bound to the session with its customer, even if the charger reconnected in between, and it never overwrites the card the session started with. Starts from the panel are marked as such instead of inventing a user.
Frequently asked questions
Why does my OCPP 2.0.1 session have no idToken?
Because the charger opened the transaction when you plugged in, before you tapped the card. The card arrives in a TransactionEvent Updated with triggerReason Authorized, and the platform has to bind it to the session.
Can you tell who charged if the charger is in free mode?
No. In free mode the charger doesn't ask for a card, so it always sends the same identifier or none.