OCPI 2.2.1 EMSP Simulator
A lightweight, internal OCPI 2.2.1 EMSP Simulator designed to validate the correctness of Savekar's CPO implementation. It allows you to simulate a roaming partner that adheres strictly to the OCPI standard.
Standardized Roaming
Full OCPI 2.2.1 support for seamless connection between CPOs and EMSPs.
Zero-Risk Testing
Isolated environment validation without real payments or commercial logic.
Developer Friendly
Includes a CPO Client to actively test your endpoints and implementation.
Project Overview
The Savekar OCPI 2.2.1 EMSP Simulator is a specialized internal testing tool designed to validate the correctness of Charging Point Operator (CPO) implementations against the Open Charge Point Interface (OCPI) 2.2.1 standard. It acts as a strict e-Mobility Service Provider (EMSP) roaming partner.
What it Validates
- • OCPI endpoint direction and usage
- • Credentials handshake & token exchange
- • Schema correctness (Locations, Sessions, CDRs)
- • Response envelope & status semantics
What it DOES NOT Validate
- • Commercial settlement or billing rules
- • Partner-specific extensions
- • Certification-level compliance
- • Real-world EMSP operational behavior
How It Works
Phase 1: Credentials Handshake
The foundational step where two parties exchange tokens (Token A, B, C) to establish trust.
Authorization: Token <Token A>
Phase 2: Data Push (CPO to EMSP)
Once connected, the CPO actively pushes real-time data to the Simulator.
Phase 3: Verification (EMSP to CPO)
The simulator acts as an active client to verify your CPO's server behavior.
- Tariff Discovery: Fetches and validates tariff structures via
GET /tariffs. - Start Charging: Initiates remote start via
POST /sessions. - Stop Charging: Terminates sessions and validates the flow.
Quick Start
git clone https://github.com/savekar-ev/Savekar-OCPI-2.2.1-EMSP-Simulator-Project
cd Savekar-OCPI-2.2.1-EMSP-Simulator-Project
pip install -r requirements.txt
# Configure config.yaml first!
python run.py
Note: You must have Python 3.8+ installed. See the GitHub README for detailed configuration instructions.
Technical Specs
- VersionOCPI 2.2.1
- LanguagePython 3.8+
- LicenseMIT
- TypeInternal Tool
Need Help?
Found a bug or need help with integration? Open an issue on GitHub or contact our dev team.