OCPI 2.2.1 protokolü · Test ortamı

Ortak Şarj Platformu OCPI API'sine
entegrasyon kılavuzu

Şarj ağınızı (CPO) ya da mobilite servisinizi (eMSP) Ortak Şarj Platformu'na OCPI 2.2.1 standardıyla bağlamak için ihtiyacınız olan her şey: handshake, kimlik doğrulama ve endpoint örnekleri.

Base URL https://testapiv2.ortaksarjplatformu.com
2.2.1
OCPI protokol sürümü
7
Endpoint modülü
REST
JSON üzerinden
Genel Bakış

Ortak Şarj Platformu nedir, ne işe yarar?

Ortak Şarj Platformu, elektrikli araç şarj ekosistemindeki tarafları tek noktadan birbirine bağlayan bir OCPI Hub'ıdır. Her partnerin diğer her partnerle ayrı ayrı entegrasyon yapması yerine, herkes yalnızca Hub ile konuşur.

Tek bağlantı noktası

CPO ve eMSP'ler N×N entegrasyon yükünden kurtulur; herkes yalnızca Hub'a tek bir OCPI bağlantısı kurar.

Standart protokol

OCPI 2.2.1 açık standardını kullanır. Mevcut OCPI uyumlu sisteminizle uyumludur, özel format gerektirmez.

Komut yönlendirme

Şarj başlat/durdur, rezervasyon ve konnektör kilidi açma komutlarını doğru CPO'ya yönlendirir.

CDR & faturalama verisi

Şarj oturumu kayıtları (CDR) Hub üzerinden iletilir; mutabakat ve faturalama tek kaynaktan beslenir.

Canlı partner durumu

HubClientInfo modülü ile bağlı tüm partnerlerin çevrimiçi/çevrimdışı durumunu anlık görürsünüz.

İstek logları

Admin uçları üzerinden gelen isteklerin loglarını filtreleyerek entegrasyon hatalarını hızlıca ayıklayın.

Test ortamı: Bu kılavuz testapiv2.ortaksarjplatformu.com test sunucusu içindir. Burada üretilen veriler gerçek faturalamayı etkilemez; entegrasyonunuzu güvenle test edebilirsiniz.

Mimari

Hub veriyi nasıl taşır?

CPO (şarj operatörü) ve eMSP (mobilite servis sağlayıcısı) doğrudan birbirine bağlanmaz. Tüm istekler Ortak Şarj Platformu üzerinden geçer ve doğru tarafa yönlendirilir.

CPO
Şarj istasyonu operatörü
OCPI 2.2.1
Ortak Şarj Platformu
OCPI Hub · yönlendirme
OCPI 2.2.1
eMSP
Mobilite servis sağlayıcısı

İstek akışı

eMSP bir şarj başlatma komutu gönderdiğinde, Hub Ocpi-To-* başlıklarına bakarak isteği ilgili CPO'ya iletir ve yanıtı geri taşır.

Asenkron yanıtlar

Komutlar ve şarj profilleri asenkrondur: Hub önce kabul (ACK) döner, gerçek sonucu daha sonra sizin response_url adresinize POST eder.

Kimlik & yetki

Hub her isteği token ve From başlığıyla doğrular; bir partnerin başka bir partner adına işlem yapması engellenir.

Hızlı Başlangıç

5 adımda OCPI handshake

Hub'a bağlanmak, OCPI'nin "credentials handshake" sürecini tamamlamak demektir. Sonunda iki taraf da kalıcı erişim token'ına sahip olur.

1

Token A'yı edinin

Ortak Şarj Platformu ekibi sizin için bir kayıt token'ı (Token A) üretir ve sizinle güvenli bir kanaldan paylaşır. Bu token yalnızca ilk kayıt için kullanılır ve tek seferliktir.

admin · Token A üretimi (Hub yöneticisi yapar)
POST /admin/credentials-tokens
Authorization: Token <ADMIN_TOKEN>
2

Sürüm bilgisini okuyun

Token A ile Hub'ın versions ucunu çağırın. Desteklenen OCPI sürümlerini ve her sürümün endpoint listesini öğrenirsiniz. 2.2.1 sürümünü seçin.

GET /ocpi/versions
GET /ocpi/versions
Authorization: Token <TOKEN_A>
3

Credentials gönderin

Token A ile credentials ucuna POST yapın. Gövdede kendi token'ınızı (Hub'ın size erişmesi için), versions URL'inizi ve rollerinizi (CPO/eMSP) bildirirsiniz.

POST /ocpi/2.2.1/credentials
POST /ocpi/2.2.1/credentials
Authorization: Token <TOKEN_A>
Content-Type: application/json

{
  "token": "<SIZIN_TOKENINIZ>",
  "url": "https://sizin-sisteminiz.com/ocpi/versions",
  "roles": [{
    "role": "CPO",
    "country_code": "TR",
    "party_id": "ABC",
    "business_details": { "name": "Şirket Adı" }
  }]
}
4

Kalıcı token'ı alın

Hub bilgilerinizi doğrular, sizin versions ucunuzu çağırarak endpoint'lerinizi kaydeder ve yanıtta kendi kalıcı token'ını döner. Token A bu noktadan sonra geçersizleşir.

200 OK · Hub yanıtı
{
  "status_code": 1000,
  "data": {
    "token": "<HUB_KALICI_TOKEN>",
    "url": "https://testapiv2.ortaksarjplatformu.com/ocpi/versions"
  }
}
5

Artık entegresiniz

Bundan sonra Hub'a yaptığınız her istekte 4. adımda aldığınız kalıcı token'ı kullanırsınız. CDR gönderme, komut iletme ve diğer tüm modüller artık erişiminize açıktır.

Örnek · yetkili istek
GET /ocpi/2.2.1/hubclientinfo
Authorization: Token <HUB_KALICI_TOKEN>
From: TR-ABC

Token'ların tam formatı (örn. TokenBearer mı, base64 kodlu mu) ve istek/yanıt şemalarının kesin alan adları için her zaman canlı Swagger dokümanını tek doğru kaynak olarak kabul edin.

Kimlik Doğrulama

İstek başlıkları

Handshake dışındaki her istekte üç tür başlık rol oynar: kimlik doğrulama, kaynak partner ve komutlarda hedef partner.

Başlık Açıklama
Authorization zorunlu Hub tarafından size verilen erişim token'ı. Her istekte gönderilmelidir; eksik veya hatalı olması 401 döndürür.
From zorunlu İsteği yapan partnerin kimliği (ülke kodu + party ID, örn. TR-ABC). Token ile eşleşmezse 403 alırsınız.
Ocpi-To-Country-Code komutlarda Komut endpoint'lerinde hedef partnerin ülke kodu. Hub isteği bu partnere yönlendirir.
Ocpi-To-Party-Id komutlarda Komut endpoint'lerinde hedef partnerin party ID değeri.
Content-Type gövdeli Gövde gönderen POST/PUT isteklerinde application/json olmalıdır.
Örnek · tam başlık seti
POST /ocpi/2.2.1/commands/START_SESSION
Authorization: Token <HUB_KALICI_TOKEN>
From: TR-ABC
Ocpi-To-Country-Code: TR
Ocpi-To-Party-Id: XYZ
Content-Type: application/json

Güvenlik: Token'larınızı yalnızca sunucu tarafında, ortam değişkenlerinde saklayın. Asla tarayıcı koduna gömmeyin, log'a yazmayın veya sürüm kontrolüne commit etmeyin. Tüm trafik HTTPS üzerinden gitmelidir.

Endpoint'ler

Modül modül API referansı

Endpoint'ler işlevsel modüllere ayrılmıştır. Bir gruba tıklayarak içindeki uçları görebilirsiniz. Tam parametre ve şema detayı için Swagger'a bakın.

Credentials
OCPI kayıt handshake'i ve token yönetimi
POST/ocpi/2.2.1/credentialsYeni partner kaydı oluşturur veya mevcut credentials'ı günceller.
GET/ocpi/2.2.1/credentialsKimliği doğrulanmış partnerin credentials bilgisini döner.
PUT/ocpi/2.2.1/credentialsPartner credentials'ını günceller; yeni bir token döner.
DELETE/ocpi/2.2.1/credentialsPartner kaydını siler / askıya alır.
Commands
Şarj oturumu ve rezervasyon komutları (asenkron)
POST/ocpi/2.2.1/commands/START_SESSIONŞarj oturumu başlatır.
POST/ocpi/2.2.1/commands/STOP_SESSIONAktif şarj oturumunu sonlandırır.
POST/ocpi/2.2.1/commands/RESERVE_NOWBir şarj noktasını rezerve eder.
POST/ocpi/2.2.1/commands/CANCEL_RESERVATIONMevcut rezervasyonu iptal eder.
POST/ocpi/2.2.1/commands/UNLOCK_CONNECTORBir konnektörün kilidini açar.
CDRs
Şarj oturumu kayıtları (Charge Detail Records)
GET/ocpi/2.2.1/cdrsKayıtlı CDR'leri listeler; tarih aralığı ve offset/limit ile filtrelenebilir.
POST/ocpi/2.2.1/cdrsYeni CDR oluşturur; arka planda işlenmek üzere kuyruğa alınır.
GET/ocpi/2.2.1/cdrs/{id}Belirtilen CDR'nin detayını döner.
Charging Profiles
Oturum bazlı şarj gücü profilleri
PUT/ocpi/2.2.1/chargingprofiles/{sessionId}Oturum için şarj profili tanımlar veya günceller.
GET/ocpi/2.2.1/chargingprofiles/{sessionId}Aktif şarj profilini ister; sonuç response_url'e POST edilir.
DELETE/ocpi/2.2.1/chargingprofiles/{sessionId}Aktif profili kaldırır; sonuç response_url'e POST edilir.
Hub Client Info
Bağlı partnerlerin bağlantı durumu
GET/ocpi/2.2.1/hubclientinfoBağlı tüm OCPI partnerlerini sayfalı olarak listeler.
GET/ocpi/2.2.1/hubclientinfo/{countryCode}/{partyId}Belirli bir partnerin bağlantı durumunu döner.
Admin
Token üretimi ve istek logları (yönetici erişimi)
GET/admin/credentials-tokensTüm Token A kayıtlarını listeler (aktif, kullanılmış, iptal).
POST/admin/credentials-tokensYeni bir Token A üretir.
DELETE/admin/credentials-tokens/{id}Belirtilen token'ı iptal eder.
GET/admin/inbound-logsGelen istek loglarını filtreli ve sayfalı döner.

Versions modülü: Yukarıdaki tüm modüllere erişmeden önce /ocpi/versions ve sürüm detay ucu handshake sırasında kullanılır. Bunlar OCPI standardının zorunlu parçasıdır.

Yanıt Kodları

Yanıtları yorumlama

OCPI iki katmanlı bir yanıt modeli kullanır: HTTP durum kodu taşıma katmanını, gövdedeki status_code ise OCPI iş mantığı sonucunu belirtir. İkisini birlikte değerlendirin.

HTTP durum kodları

200
Başarılı
İstek işlendi. Asıl sonuç için gövdedeki status_code'a bakın.
400
Hatalı istek
Parametreler geçersiz veya eksik. İstek gövdesini ve şemayı kontrol edin.
401
Yetkisiz
Authorization başlığı eksik veya token geçersiz.
403
Yasak
Partner kimliği From başlığıyla eşleşmiyor.
404
Bulunamadı
İstenen kaynak (CDR, oturum vb.) mevcut değil.
500
Sunucu hatası
Beklenmeyen sunucu hatası. Tekrar deneyin veya Hub ekibine bildirin.

OCPI status_code aralıkları (gövde)

1xxx
Başarılı
1000 = genel başarı. İşlem OCPI tarafında da kabul edildi.
2xxx
İstemci hatası
Gönderdiğiniz veride sorun var (eksik alan, geçersiz değer).
3xxx
Sunucu hatası
Hub veya hedef partner isteği işleyemedi.
Örnek · OCPI zarf (envelope) yapısı
{
  "status_code": 1000,
  "status_message": "Success",
  "data": { ... },
  "timestamp": "2026-05-18T10:30:00Z"
}
SSS

Sık sorulan sorular

OCPI nedir ve neden Hub kullanıyoruz?
OCPI (Open Charge Point Interface), şarj operatörleri ile mobilite sağlayıcıları arasındaki iletişim için açık bir standarttır. Hub, her partnerin diğer herkesle ayrı entegrasyon yapma yükünü ortadan kaldırır: tek bir bağlantı kurarsınız, Hub yönlendirmeyi üstlenir.
Token A'yı nereden alacağım?
Token A, Ortak Şarj Platformu yöneticisi tarafından admin uçları üzerinden üretilir ve sizinle güvenli bir kanaldan paylaşılır. Kendiniz üretemezsiniz; entegrasyon talebinizle birlikte Hub ekibinden istemeniz gerekir.
Komut yanıtını neden hemen alamıyorum?
Komutlar ve şarj profilleri asenkrondur. Hub önce isteği kabul ettiğine dair bir yanıt döner; gerçek sonuç (ör. şarjın gerçekten başlayıp başlamadığı) daha sonra, isteğinizde belirttiğiniz response_url adresine ayrı bir POST ile iletilir. Bu yüzden ulaşılabilir bir callback ucu sağlamalısınız.
Test ve canlı ortam arasındaki fark nedir?
Bu kılavuzdaki adres testapiv2.ortaksarjplatformu.com test ortamıdır. Burada üretilen CDR ve komutlar gerçek faturalamayı etkilemez. Entegrasyonunuzu burada doğruladıktan sonra canlı ortam bilgileri ve ayrı token'lar Hub ekibi tarafından sağlanır.
401 / 403 hatası alıyorum, ne yapmalıyım?
401 genelde Authorization başlığının eksik olması veya token'ın yanlış/süresi dolmuş olmasından kaynaklanır — handshake'i tamamlayıp aldığınız kalıcı token'ı kullandığınızdan emin olun. 403 ise From başlığındaki partner kimliğinin token sahibiyle eşleşmediği anlamına gelir; ülke kodu ve party ID değerlerini kontrol edin.
Entegrasyon hatalarını nasıl ayıklarım?
Admin erişiminiz varsa /admin/inbound-logs ucu, Hub'a ulaşan isteklerinizi filtreleyerek görmenizi sağlar. Ayrıca her zaman canlı Swagger arayüzünden istekleri deneyerek beklenen şemayı doğrulayabilirsiniz.
İletişim

Bize ulaşın

Entegrasyon, talep veya sorularınız için formu doldurun; ekibimiz en kısa sürede sizinle iletişime geçsin.

Entegrasyona hazır mısınız?

Tüm endpoint'leri canlı Swagger arayüzünden deneyebilir, istek ve yanıt şemalarının en güncel halini görebilirsiniz.

Swagger Dokümanını Aç

Bu internet sitesinde çerezler kullanılmaktadır

Deneyiminizi iyileştirmek, site trafiğini analiz etmek ve içerikleri kişiselleştirmek amacıyla çerezler kullanıyoruz.