Payments

By RIOD Engineering · July 9, 2026

Dynamic QR Code Payments for EV Charging

A dynamic QR code encodes the exact estimated amount for a specific session. The driver scans, pays, and the session starts automatically. No app to install, no wallet to top up, no dispute about whether the payment matched the session.

This is why dynamic QR is winning the Indian public charging payment race.

Dynamic QR Code Payments for EV Charging

Dynamic vs static QR

Static QR: a printed sticker on the charger. Driver scans, opens their UPI app, manually enters an amount they hope covers the session, pays. Session either starts or doesn't. Refunds require support tickets.

Dynamic QR: the charger (or CMS) generates a fresh QR per session with the estimated amount pre-filled. Driver scans, pays the estimated amount, session starts. Any unused prepaid balance is refunded when the session ends; refund timing depends on the PSP and settlement state. Disputes drop significantly compared with static-amount flows.

Where the QR lives

On the charger display: driver walks up, taps 'charge', QR appears on the screen. Fastest for the driver. Requires a charger with a display, which not all AC chargers have.

Via a sticker plus a mobile URL: the sticker's QR is a URL, driver opens it, mobile page generates the session QR. Works on any charger. Slightly slower.

Inside the operator's app: for regular users who prefer app history and session details. Same UPI flow underneath.

Webhook to OCPP session start

Payment confirms via PSP webhook. CMS validates the webhook signature, records the payment, and issues OCPP RemoteStartTransaction to the charger with the driver's ID for the session. Charger boots the session. All within seconds of payment.

Failure paths: if the charger fails to start within the timeout, the CMS auto-refunds the payment. If the payment fails after RemoteStartTransaction (rare but possible), the CMS stops the session and refunds the partial amount. Drivers should never have to chase refunds.

Refund on partial sessions

The estimated amount is upper-bound: enough energy to cover the driver's expected session. When the session ends, actual energy is metered. Difference is refunded to the driver's UPI account within minutes.

This flow is why dynamic wins. The driver never overpays permanently; they pay the estimated ceiling and get change back automatically.

Payment state flow

  • QR generated with an estimated amount for the session
  • Payment pending on the driver's UPI app
  • PSP webhook fires on successful payment
  • CMS validates the webhook signature and payment identifier
  • OCPP RemoteStartTransaction issued to the charger
  • Session active with meter values streaming
  • Final settlement: refund of unused prepaid amount, or additional collection

Failure handling

  • Payment succeeds but the charger faults before start: auto-refund via the PSP
  • Charger starts but StopTransaction is missing: reconciliation service surfaces the gap
  • Refund delayed by PSP or settlement: driver notified with an ETA, ops has visibility
  • Duplicate webhook from the PSP: idempotent handling at the CMS prevents double-charge

Deploying EV charging?

Talk to our team about your project. We design, supply, and manage EV charging infrastructure across India.

Schedule a meeting