OCPP 1.6 Flux de paiement - Comment les sessions de charge sont vraiment facturées
Le cycle complet de paiement en OCPP 1.6 : du badge à la facture. Autorisation, comptage, tarifs, CDR, roaming via OCPI et logique de facturation.
OCPP 1.6 Flux de paiement. Comment les sessions de charge sont vraiment facturées
C'est la question que tout le monde finit par poser : "Comment marche la partie argent ?" La réponse courte : OCPP gère l'autorisation et le comptage. Il ne gère pas la facturation, les tarifs ni le traitement des paiements. Tout ça vit entièrement dans votre backend. Traçons le flux complet du badge à la facture.
Vue d'ensemble
Rendering diagram...
Autorisation
Quand un utilisateur s'identifie, la borne envoie Authorize. Le backend vérifie : cet utilisateur est-il inscrit ? Compte actif ? Moyen de paiement valide ? Solde prépayé suffisant ?
Rendering diagram...
L'idTag est juste une chaîne. Ça peut être un UID RFID, un code QR, un token généré par l'appli. OCPP ne se soucie pas de ce que ça représente. votre backend le mappe à un vrai utilisateur et un vrai moyen de paiement.
Comptage pendant la session
StartTransaction vous donne un transactionId. Les MeterValues arrivent en flux pendant la session. Votre backend enregistre tout :
| Timestamp | Énergie (Wh) | Puissance (kW) | Courant (A) |
|---|---|---|---|
| 14:30 | 0 | 0 | 0 |
| 14:31 | 180 | 11.0 | 16.1 |
| 14:35 | 1 100 | 11.2 | 16.3 |
| 14:45 | 3 000 | 10.8 | 15.9 |
| 15:30 | 9 500 | 6.2 | 9.0 |
| 16:00 | 12 000 | 0 | 0 |
Le StopTransaction arrive avec le relevé final et un code de raison.
Calcul des tarifs
C'est là qu'OCPP se retire complètement. Le protocole ne définit pas de tarifs. Votre backend les applique selon le modèle de prix que vous avez configuré.
Rendering diagram...
Exemple : session de 12 kWh sur 90 minutes. Tarif = 0.30€/kWh + 0.02€/min d'occupation après 60 minutes.
| Composant | Calcul | Coût |
|---|---|---|
| Énergie | 12 kWh x 0.30€ | 3.60€ |
| Pénalité occupation | 30 min x 0.02€ | 0.60€ |
| Total | 4.20€ |
La pénalité d'occupation existe pour pousser les conducteurs à déplacer leur voiture une fois la charge terminée. C'est un vrai problème aux stations fréquentées. quelqu'un charge pendant 45 minutes puis laisse sa voiture garée six heures. Sans pénalité, les autres utilisateurs ne peuvent pas charger.
CDR. l'enregistrement formel
Après calcul du coût, le backend crée un Charge Detail Record :
{
"cdrId": "CDR-20260107-001",
"userId": "user-456",
"chargerId": "CP-001",
"connectorId": 1,
"startTime": "2026-01-07T14:30:00Z",
"endTime": "2026-01-07T16:00:00Z",
"energyDelivered_kWh": 12.0,
"totalCost": 4.20,
"currency": "EUR",
"tariffApplied": "standard-2026"
}
Le CDR est votre source de vérité pour la facturation, le règlement du roaming, le reporting réglementaire et la résolution des litiges.
Traitement du paiement
Le CDR va à votre processeur de paiement. Stripe, Adyen, PayPal. outils standards, rien de spécifique à la VE.
Rendering diagram...
Beaucoup d'opérateurs utilisent la pré-autorisation : bloquer 25€ sur la carte avant le début de la session, capturer seulement le montant réel ensuite, libérer le reste. Ça protège contre le non-paiement mais perturbe les utilisateurs qui voient un blocage important sur leur relevé. Une bonne UX consiste à montrer le montant bloqué et à expliquer ce que c'est.
Roaming. charger sur le réseau de quelqu'un d'autre
Quand un utilisateur du Réseau A charge sur une borne du Réseau B, l'autorisation et la facturation passent par un hub de roaming. Le protocole pour ça est OCPI (Open Charge Point Interface). séparé d'OCPP.
Rendering diagram...
OCPP gère borne-vers-backend. OCPI gère backend-vers-backend. Ils se composent bien mais ce sont des specs complètement séparées.
Le transactionId lie tout ensemble
De l'Authorize au StopTransaction en passant par le CDR jusqu'à la facture. le transactionId assigné par StartTransaction est la clé qui relie chaque pièce. Si vous le perdez, la facturation casse. Si vous le dupliquez, vous facturez en double. Faites bien le cycle de vie des transactions et le flux de paiement suit.
C'est tout le chemin de l'argent en OCPP 1.6. Le protocole vous donne l'autorisation et les données brutes d'énergie. Tout le reste. tarification, facturation, paiement, roaming. c'est le boulot de votre backend.