The EVSE DirectorySubscribe
← Guides

Protocol guideFree

Metering & payment stack

Split energy path from money path when Authorize, PED, or kWh numbers disagree.

Metering & payment stack

When you use this / what it is not

Use this when the power path works (or FreeVend works) but drivers cannot pay, sessions never authorize, kWh looks wrong, settlements fail, or OCPP MeterValues disagree with the site. Audience: techs who sit between EVSE hardware, PED/RFID, and CSMS billing.

This is not:

  • PCI forensic auditing or card-brand negotiation
  • A license to break MID/NIST seal meters
  • Accounting advice for chargebacks
  • “Just put it in FreeVend” as a permanent fix without ops approval

If Authorize never succeeds, do not start inside the power module.

How payment/metering failures present

Display / LEDs

  • “Tap card,” “Present app,” then timeout
  • PED “offline,” “host unreachable,” “declined”
  • RFID beep but no Authorize
  • kWh display stuck / jumps / negative (rare)

OCPP / CSMS

  • Authorize.conf Invalid / Blocked / Expired / NoCredit
  • StartTransaction rejected
  • Missing MeterValues during Charging
  • StopTransaction meter weirdness → billing disputes
  • ReaderFailure / PowerMeterFailure StatusNotification

Business side

  • Drivers charged wrong amount
  • Sessions with energy but no payment record
  • Payment captures with 0 kWh

Decision tree

Branch A — FreeVend / local service charge works; paid path fails

  1. Problem is auth/payment path, not rectifiers.
  2. Check RFID, app deep link, PED, CSMS auth lists, tariff config.
  3. Confirm clock/time on PED and EVSE (certs and host windows).

Branch B — Nothing starts, including FreeVend

  1. Could still be payment config forcing auth always — check.
  2. Else move to EVSE availability / Faulted / handshake guides.

Branch C — PED offline / host decline patterns

  1. Network path from PED to payment host (often not the same as OCPP path!).
  2. VLAN/firewall rules for payment vs OCPP.
  3. Host outage vs local PED failure — ask other sites on same merchant ID.

Branch D — RFID only fails

  1. Known-good card from ops.
  2. Reader power/USB/serial.
  3. CSMS local list vs online auth.
  4. Card format (UID) mismatches after firmware.

Branch E — Session runs, metering wrong

  1. Compare clamp/AC energy estimate vs MeterValues vs HMI.
  2. CT polarity / phase mapping.
  3. Meter firmware / CRC faults.
  4. Sealed meter replacement = metrology-authorized tech.

Branch F — OCPP MeterValues gaps but local meter OK

  1. CSMS subscription / measurand config.
  2. Bandwidth: cellular dropping large MeterValue payloads.
  3. Clock jumps corrupting intervals.

Branch G — PnC / ISO 15118 contract auth

  1. Separate from classic EIM — see PnC guide.
  2. Fallback to RFID test to isolate.

Ranked causes

  1. PED network path / firewall — OCPP online, payment dead. Field note: two networks, two tickets.
  2. CSMS auth config / tariff / payment method disabled — Field note: change log same day.
  3. RFID reader hardware / cable — Field note: reseat; known-good reader.
  4. Clock / TLS / cert on PED — Field note: NTP; expired cert.
  5. Host decline (lost/stolen, insufficient funds) — Not an EVSE fault. Field note: try second card.
  6. Meter CT polarity / wiring after service — Field note: negative or tiny kWh.
  7. Meter failure / PowerMeterFailure — Field note: OEM meter kit; sealing rules.
  8. ConnectorId mismatch billing wrong stall — Field note: angry driver at stall 3 billed as 4.
  9. App backend outage — Field note: multi-site same app.
  10. Local authorization cache stale offline — Field note: offline policy documentation.

Step procedures

Procedure 1 — Split test: energy vs money

  1. If allowed: FreeVend or tech RFID.
  2. If energy flows → payment branch.
  3. If not → leave this guide. Expected: Clean split in first 10 minutes.

Procedure 2 — Authorize capture

Tools: CSMS logs.

  1. Attempt tap/app.
  2. Pull Authorize request/response.
  3. Record idTag / eMAID / token type. Expected: Know whether Invalid vs timeout vs never sent.

Procedure 3 — PED offline triage

  1. PED status screen: link state, last host success.
  2. Verify Ethernet/cellular specifically used by PED.
  3. Ping/path test per OEM; do not disable TLS to “make it work.”
  4. Reboot PED once after capture; retest. Expected: Host reachable; approve test card.

Procedure 4 — RFID reader

  1. Known-good credential.
  2. Listen for read beep; watch UI.
  3. Check 5 V/12 V rail if accessible safely.
  4. Replace reader only after cable/power verified. Expected: Authorize reaches CSMS.

Procedure 5 — MeterValues sanity

  1. Start session; note Start meter.
  2. Run ≥1 kWh if possible.
  3. Stop; note Stop meter and CSMS energy.
  4. Clamp on AC input for rough correlation (phase-aware). Expected: Same story ± tolerance; investigate >~5–10% disagreements carefully (tolerance depends on setup).

Procedure 6 — CT / meter hardware (LOTO)

  1. LOTO before opening meter CT section.
  2. Verify CT orientation arrows with OEM.
  3. Reseat RJ/CT connectors.
  4. Never cut seals without authorization — escalate metrology. Expected: Polarity correct; PowerMeterFailure cleared; energy sign positive.

Safety / LOTO

  • PED work is low voltage but still site safety — don’t ignore traffic/PPE.
  • Meter CT secondaries can be hazardous if opened wrong — follow OEM; never leave CT secondary open on live primary.
  • Payment devices may be tamper-switched — unauthorized opening bricks them and fails PCI expectations.
  • FreeVend on public sites is a theft/safety policy issue — get ops approval.

OCPP metering notes

Measurands commonly involved:

  • Energy.Active.Import.Register
  • Power.Active.Import
  • Current.Import / Voltage

If CSMS shows power but not energy, config may omit registers. That is not a bad CT.

OCPP 2.0.1 transaction metering uses different messages — capture TransactionEvent totals explicitly.

Dual-path networking diagram (field sketch)

[EVSE controller] --OCPP--> (modem/VLAN-A) --> CSMS
[PED] --payment--> (VLAN-B) --> payment host
[RFID] --local--> EVSE controller --> Authorize to CSMS

Fixing VLAN-A does not resurrect VLAN-B. Write which path you proved.

Billing dispute package

When ops asks “who is right?”:

  1. HMI energy
  2. MeterValues export
  3. PED settlement reference
  4. Photos of seals
  5. Clamp note if taken

Do not guess. Say what disagreed.

When to escalate

CSMS/billing ops: tariff, token status, app outage, settlement mismatch with good MeterValues.

Payment integrator / PED OEM: host keys, tamper lock, device replacement provisioning.

Metrology-authorized tech / OEM: sealed meter, certification, legal-for-trade issues.

Network: VLAN/firewall for payment path.

OEM EVSE: PowerMeterFailure after wiring verified; meter board.

Field worksheet

TestResult
FreeVend/tech charge
Authorize response
PED online
RFID known-good
Start/Stop meter
CSMS energy
Clamp rough kWh
Seals intact
VLAN path checked

Offline behavior

Document what the site should do when cellular dies:

  • Local list auth?
  • FreeVend?
  • Hard Unavailable?

If offline policy is undefined, payment “bugs” are policy gaps. Get ops to write it down.

Closeout

State whether energy path and money path were each proven. If you left FreeVend on, record who approved and when it must revert. Billing silence after a “fix” is how chargebacks become your next ticket. EOF

Extended PED cases

PED online, declines everything

Host config, merchant mid mismatch, or bad encryption keys after board swap. Escalate to payment integrator with PED serial and tamper status. EVSE OEM cannot rekey most PEDs.

PED reboots in sun

Thermal. Shade, verify power supply headroom, ask OEM about outdoor rating. Not an OCPP bug.

Tap works, insert/chip fails

Carder path hardware. Still payment stack. Try multiple cards before replacing.

RFID UID formats

Depots mixing MIFARE classic, Desfire, and employee badges see intermittent reads after reader firmware updates. Capture:

  • Card type
  • UID length shown in logs
  • Whether local list or online auth

A reader that “beeps” but sends wrong UID format yields Authorize Invalid forever.

Meter seal integrity

If seals are broken when you arrive, photograph and notify metrology/ops before you touch anything. You do not want ownership of an unsealed legal-for-trade meter you did not break.

Dispute math example (field)

HMI: 24.2 kWh
CSMS Stop-Start: 24.1 kWh
Driver receipt: 31.0 kWh

That points to billing/tariff mapping or wrong session merge — not CT polarity. Conversely:

HMI: 24 kWh
CSMS: 2.4 kWh

Suspect decimal/scale or wrong measurand / CT ratio config.

Cellular MeterValues drops

Thin coverage sites drop large clock-aligned MeterValue bursts. Sessions still stop with totals sometimes; graphs look empty. Fix antenna/signal or reduce measurand frequency per OEM/CSMS guidance — do not accuse the meter first.

Expanded closeout

Prove energy path and money path separately. Attach Authorize snippet, PED host state, and meter comparison. Note seal state and any FreeVend temporary approval with expiry.

Tariff and tax foot-guns

Correct kWh with wrong money still generates “meter broken” tickets. Examples:

  • Wrong tariff profile on one chargeBoxId after cloning config
  • Tax inclusive vs exclusive display mismatch
  • Session merged across connectors after map drift
  • Idle fees applied while Faulted Occupied ghost sessions linger

When energy numbers match and currency does not, hand to billing ops with MeterValues attached. Stay out of rate books unless asked.

StartTransaction Rejected vs Faulted

Drivers say “broken.” OCPP says Rejected. Causes:

  • Invalid idTag
  • Concurrent tx not allowed
  • CSMS policy
  • Unpaid prior session hold (some backends)

Capture the status/Reject reason. Do not LOTO a cabinet for Rejected.

Receipt printers and QR UX

Retail sites sometimes fault the whole charger when the printer jams if OEM tied readiness to PED peripherals. Check peripheral status before power electronics. Clear paper jam; retest auth. Note firmware that made printer mandatory vs optional.

Calibration stickers and inspection dates

Legal-for-trade meters may show inspection due dates. If overdue, escalate to metrology — some jurisdictions require lockout. Do not forge stickers. Photo the existing sticker into the ticket when billing is disputed.

Final field reminders (metering/payment)

  • Split FreeVend/tech charge vs paid path in the first ten minutes.
  • OCPP online does not mean PED host online — different paths.
  • StartTransaction Rejected is not Faulted hardware.
  • CT work is LOTO; never open CT secondaries on live primaries.
  • Sealed meter issues belong to metrology-authorized personnel.
  • Attach Authorize response text on every payment ticket close.

Driver phone shows spinner; OCPP never sees Authorize. Causes: app backend, QR pointing at wrong site, captive Wi-Fi portal on depot guest network eating the phone, or dead Bluetooth beacon path for some stacks. Test with a second phone on cellular data. If cellular phone works and Wi-Fi phone fails, it is not the charger.

Site record prompt

Before leaving, note ambient conditions, recent firmware, and whether any other trade was on site the same day. Correlate those facts with the failure window. Many “mystery” tickets dissolve once concurrent work is written down.

Character of evidence required: timestamps, chargeBoxId, connectorId, and exact vendor strings — not paraphrases.

Additional field notes

Retain photos of HMI, connector, and CSMS status for every unresolved call under this topic. Cross-check The EVSE Directory for matching vendor strings before swapping major assemblies. If a procedure works, confirm it in the directory so the next technician inherits a field-honest path rather than folklore.

Need an OEM-specific fault code? Open the fault database · Subscribe