# 10. Olay Bildirim

# Genel Bilgiler

Olay Bildirim Abonelik API servisleri, HHS'lerin sunmuş oldukları olay bildirimlerini takip etmek amacıyla abonelik akışlarını tanımlar.

YÖS'ler olay bildirimlerini takip edebilmek için talep ettikleri abonelik hizmetlerini belirterek HHS'ler özelinde bir abonelik kaydı oluştururlar. Bu abonelik kaydını okuyabilir, güncelleyebilir ya da silebilirler.

Olay bildirimleri HHS'ler tarafından 2 yöntem ile sağlanır. İlki olay bildirimlerinin anlık olarak iletilmesi, diğeri ise anlık iletilemeyen olayların toplu olarak iletilmesidir.

Olay Bildirimi 2 API ile yönetilecektir.

1 - Olay Abonelik Servisleri (OAS)
2 - Olay Dinleme Servisleri (ODS)

Olay Abonelik ve Olay Dinleme API'lerinin istek ve yanıt başlığında beklenen parametreler ÖBH,HBH,GKD API'lerinden farklıdır. 3.15. İstek Başlığı ve 3.16. Yanıt Başlığı bölümlerinde zorunlu parametreler ve açıklamaları belirtilmiştir.

# Olay Abonelik Servisleri (OAS)

Olay abonelik Servisleri; HHS'ler tarafından sunulacak olay bildirim abonelik servislerini ve iletilemeyen olaylar servisini içermektedir.

HHS'nin sunacağı bu API ile YÖS'ler şu adımları gerçekleştirebilir.

  • YÖS'ün olay bildirimlerini dinleyebilmek için öncelikle dinlemek istediği olaylara ait olay tipleri ve kaynak tiplerini belirlemesi gerekmektedir.
  • Olay tipleri ve kaynak tiplerinin neler olacağı "Olay Tipleri ve Kaynak Tipleri İlişkisi" tablosunda belirtilmiştir.
  • YÖS, belirlediği olaylar için HHS'ye olay abonelik endpointi aracılığı ile abonelik başlatır.
  • YÖS, abonelik numarası aracılığı ile abonelik bilgilerini görüntüleyebilir, güncelleyebilir, silebilir.
  • YÖS, olay bildirimlerini bu abonelik sayesinde kendisinin sunacağı Olay Dinleme API'si ile dinler.
  • HHS anlık iletemediği olaylarını biriktirerek, iletilemeyen olaylar endpointi ile YÖS'e sunar.

HHS'ler "Olay Tipleri ve Kaynak Tipleri İlişkisi" tablosunda belirlenen olay ve kaynak tiplerinin tümü için YÖS'lere bildirim sunmak zorundadır.

Olay Abonelik Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır.

Nezdinde ödeme hesabı bulunduran bazı hesap hizmeti sağlayıcılar(EPK, Ödeme Kuruluşları) müşterilerine ait hesapları, diğer HHS'lerdeki havuz hesaplarını kullanarak yönetiyor olabilir. Bu durum ilgili hesap hizmeti sağlayıcılarının, ÖHVPS kapsamında HHS olduğu rolde sunması gereken olay bildirim servisleri ile ilgili uyması gereken kuralları değiştirmemektedir. İlgili hesap hizmeti sağlayıcılarının standartlara uygun şekilde YÖS'lere bildirimleri yapması gerekmektedir.

YÖS'ler sahip oldukları rol özelinde olay abonelik servislerinden faydalanabilir. Bu yüzden olay bildirim etki alanı (scope) değerleri hesap_bilgisi ve/veya odeme_emri olarak belirlenmiştir.

Olay Abonelik Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir.

# Olay Abonelik Servisleri için Erişim Adresleri (Endpoints)

Etki Alanı (Scope) =“hesap_bilgisi” "odeme_emri"

No Kaynak HTTP işlemi Erişim Adresi Zorunlu (Z)/ İsteğe Bağlı(İ) Yetkilendirme Türü İmzalama Parametre İstem Nesnesi Yanıt Nesnesi
1 olay-abonelik POST /olay-abonelik Z İstemci Kimlik Bilgileri İmzalı İstek ve Yanıt OlayAbonelikİstegi OlayAbonelik
2 olay-abonelik GET /olay-abonelik Z İstemci Kimlik Bilgileri İmzalı Yanıt - OlayAbonelik
3 olay-abonelik/{olayAbonelikNo} PUT /olay-abonelik/{olayAbonelikNo} Z İstemci Kimlik Bilgileri İmzalı İstek ve Yanıt OlayAbonelik OlayAbonelik
4 olay-abonelik/{olayAbonelikNo} DELETE /olay-abonelik/{olayAbonelikNo} Z İstemci Kimlik Bilgileri - - - -
5 olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar GET /olay-abonelik/{olayAbonelikNo}/iletilemeyen-olaylar Z İstemci Kimlik Bilgileri - Sayfalama Olaylar
6 sistem-olay-dinleme POST sistem-olay-dinleme Z İstemci Kimlik Bilgileri - - Olaylar -

# ADIM 1: Olay Aboneliğinin gerçekleştirilmesi

POST /olay-abonelik

HHS'nin olay abonelik hizmeti sunduğu servistir. YÖS, seçeceği olay-kaynak tipleri için bu servis aracılığı ile abone olabilir. HHS POST işlemi sonucunda, YÖS adına bir olay abonelik kaynağı oluşturur ve tekil tanımlayıcı olan olayAbonelikNo değerini döner. olayAbonelikNo üretilirken farklı YÖS'ler için aynı değer kullanılamaz. olayAbonelikNo evrensel tekil olmalıdır.
1 YÖS'ün 1 HHS'de 1 adet abonelik kaydı olabilir.
Başarılı POST isteği sonucu HTTP 201 cevabı ile iletilmelidir.

YÖS tarafından daha önce oluşturulmuş olay abonelik kaydı varsa "HTTP 400 -TR.OHVPS.Business.InvalidContent -Kaynak Çakışması" hatasıyla uyarı mesajını döner.

Olay Abonelik kaydı oluşturmak isteyen YÖS'ün ODS API tanımı HHS tarafından kontrol edilmelidir. YÖS'ün tanımı olmaması halinde "HTTP 400-TR.OHVPS.Business.InvalidContent" hatası verilmelidir.

Olay Abonelik kaydı oluşturmak isteyen YÖS tarafından olay tipi ve kaynak tipi için iletilen değerler olması gereken sıralı veri tülerinden(TR.OHVPS.DataCode.OlayTip ve TR.OHVPS.DataCode.KaynakTip) farklı ise HHS tarafından "HTTP 400-TR.OHVPS.Resource.InvalidFormat" hatası verilmelidir.

Abonelik üzerinde görüntüleme, güncelleme, silme işlemlerini gerçekleştirebilir. YÖS'ün Aboneliği devam ettiği sürece; YÖS'ün açacağı Olay Dinleme API'sine, HHS tarafından abonelik kapsamında olay bildirimleri iletilir.

BKM'nin sunacağı abonelik servisleri için HHS ve YÖS'lerin abonelik isteği yapmasına gerek bulunmamaktadır. BKM üretim ortamı tanımları yapılırken katılımcıları abonelik servislerine üye yapacaktır. BKM'nin sunacağı abonelik servislerinin olay tipi "HHS_YOS_GUNCELLENDI"dir. HHS ve YÖS API ile sunulan bilgilerde bir değişiklik olduğunda yapılacak olay bildirimlerini sağlar. Örneğin; HHS logo bilgilerinde yapılacak bir değişiklik sonrasında, YÖS'lere yapılacak bildirim ile logo bilgisini değişen HHS'nin hhsKod değerini iletir. YÖS, HHS API'yi hhsKod ile çağırarak HHS'nin güncel bilgilerini alır. Güncel bilgiler ile kendi sistemini günceller.

OlayAbonelikIstegi nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama HHS tarafından yapılması gereken kontrol ve işlemler
Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
Abonelik Tipleri abonelikTipleri Kompleks: abonelikTipleri[Array][1..N] Z
> Olay Tipi olayTipi AN1..36 Z YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. "Olay Tipleri ve Kaynak Tipleri İlişkisi" tablosunda "Olay Bildirim Yapan" kolonu "HHS" olan olay tipleri ile veri girişine izin verilir.
> Kaynak Tipi kaynakTipi AN1..36 Z Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasını sağlar.

OlayAbonelik nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama
Olay Abonelik Numarası olayAbonelikNo AN1..64 Z YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz.
Olay Abonelik Oluşturulma zamanı olusturmaZamani ISODateTime Z Olay Abonelik nesnesinin oluşturulma zaman damgası
Olay Abonelik Güncelleme zamanı guncellemeZamani ISODateTime Z Olay Abonelik nesnesinin güncelleme zaman damgası iletilebilir. İlk değeri olay abonelik oluşturma zamanı bilgisidir.
Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
Abonelik Tipleri abonelikTipleri Kompleks: abonelikTipleri[Array][1..N] Z OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir.
> Olay Tipi olayTipi AN1..36 Z
> Kaynak Tipi kaynakTipi AN1..36 Z

Olay Tipleri ve Kaynak Tipleri İlişkisi
* Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman

Olay Tipleri YÖS Rolü Kaynak Tipleri Olay Oluşturulma durumu KaynakNo Asıl verinin elde edileceği API Olay Bildirimini Yapan Olay Bildirim Zamanı Retry Policy
KAYNAK_GUNCELLENDI ÖBH ODEME_EMRI Tüm ödeme durum değişikliklerinde odemeEmriNo GET /odeme-emri/{odemeEmriNo} HHS Anlık 30 Dakika - 3 Deneme
HBH HESAP_BILGISI_RIZASI Rıza iptal detay kodu ‘02’ : Kullanıcı İsteği ile HHS üzerinden İptal durumunda RizaNo GET /hesap-bilgisi-rizasi/{RizaNo} HHS *Anlık 30 Dakika - 3 Deneme
HBH BAKIYE Bakiye nesnesindeki tutarla ilgili bir bilgi değiştiğinde ve HBH rızası içerisinde "06-Anlık Bakiye Bildirimi" izin türü varsa oluşturulur.

Mevcutta alınmış rızalar için bakiye kaynak tipi özelinde 06 izin türü gerektiğinden; mevcut rızanın yenilenmesine dair müşteriye bilgilendirme yapılarak 06 izin türünü kapsayan yeni rıza alınması süreci YÖS tarafından gerçekleştirilebilir.

Bloke tutar değişikliği için olay oluşturma ve bildirimi HHS inisiyatifindedir.

KrdHsp içerisinde yer alan kulKrdTtr değerinin değiştiği durumda olay bildirim gönderilmesi gerekmektedir.
hspRef GET /hesaplar/{hspRef}/bakiye HHS Maksimum 10 dakika içerisinde Retry policy uygulanmamalıdır. İlk istek gönderilemediği durumda İletilemeyen Olaylara eklenmelidir.
HBH COKLU_ISLEM_TALEBI ( bulk-data) İlgili API İlke ve kurallarına eklendiğinde güncellenecektir. HHS 30 Dakika - 3 Deneme
AYRIK_GKD_BASARILI ÖBH ODEME_EMRI_RIZASI HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. RizaNo GET /yetkilendirme-kodu?rizaNo={rizaNo}}&rizaTip=O HHS *Anlık 1 Dakika 3 kez
HBH HESAP_BILGISI_RIZASI HHS sisteminde ÖHK kendini doğruladığında rıza oluşturulur. YÖS'e rıza oluşturulduğuna dair bildirim yapılır. YÖS yetkod değerini sorgulama sonucunda elde eder. RizaNo GET /yetkilendirme-kodu?rizaNo={rizaNo}&rizaTip=H HHS *Anlık 1 Dakika 3 kez
AYRIK_GKD_BASARISIZ ÖBH ODEME_EMRI_RIZASI HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. RizaNo GET /odeme-emri-rizasi/{RizaNo} HHS *Anlık 1 Dakika 3 kez
HBH HESAP_BILGISI_RIZASI HHS sisteminde ÖHK kendini doğruladıktan sonra yaptığı kontroller neticesinde logine izin vermez ise YÖS'e bildirim yapılır. YÖS rıza durumunu sorgulayarak işlemin neden iletilmediğine dair bilgi edinebilir. RizaNo GET /hesap-bilgisi-rizasi/{RizaNo} HHS *Anlık 1 Dakika 3 kez
HHS_YOS_GUNCELLENDI BKM sistemi tarafından üretilecek olayları dinlemek için kullanılacak kaynak tipidir. YÖS ve HHS'lerin BKM'ye abonelik oluşturmasına gerek bulunmamaktadır. BKM HHS ve YÖS üretim ortamı tanımı yaparken aboneliklerini başlatacaktır.
(HHS yaygınlaştırma durumundayken de aboneliği başlatılacaktır.)
HHS
YÖS HHS HHS bilgilerinde değişiklik olduğunda, YÖS'ün hhsKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. hhsKod GET /hhs/{hhsKod} BKM *Anlık 5 Dakika - 3 Deneme
HHS YOS YÖS bilgilerinde değişiklik olduğunda, HHS'nin yosKod ile sorgulama yapması ve değişen bilgiyi güncellemesi beklenmektedir. yosKod GET /yos/{yosKod} BKM *Anlık 5 Dakika - 3 Deneme


* Anlık : Olay gerçekleştikten sonra maksimum 5 saniye içerisindeki zaman

# ADIM 2: Olay Aboneliğinin güncellenmesi

PUT olay-abonelik/{olayAbonelikNo}

YÖS'ün olay aboneliğine ait abonelik tiplerini güncelleyebildiği servistir. Olay aboneliği oluşturulduğu zaman HHS tarafından iletilen olayAbonelikNo aracılığı ile güncelleme işlemi yapılır. YÖS abone olmak istediği olay-kayıt tiplerininin son halini güncelleme servisi ile HHS'ye iletir. HHS bu bilgilerle eski abonelik tiplerinin yerini değiştirir.

Başarılı PUT isteği sonucu HTTP 200 cevabı ile iletilmelidir.

OlayAbonelikIstegi nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama HHS tarafından yapılması gereken kontrol ve işlemler
Olay Abonelik Numarası olayAbonelikNo AN1..64 Z YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz. HHS geçerli bir olay abonelik numarası olduğunun kontrolünü yapar.
Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
Abonelik Tipleri abonelikTipleri Kompleks: abonelikTipleri[Array][1..N] Z HHS Sisteminde, YÖS'ün eski abonelikleri yeni aboneliklerle güncellenmelidir.
> Olay Tipi olayTipi AN1..36 Z YÖS abone olmak istediği olay tiplerini TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değer ya da değerler ile doldurur. "Olay Tipleri ve Kaynak Tipleri İlişkisi" tablosunda "Olay Bildirim Yapan" kolonu "HHS" olan olay tipleri ile veri girişine izin verilir.
Olay tipi AYRIK_GKD_BASARILI ve AYRIK_GKD_BASARISIZ için, YÖS'ün ODS API'yi sunması zorunludur. HHS, bu olay tipleri özelinde YÖS API üzerinden YÖS'ün bu API'yi sunduğunu kontrol eder ve eğer sunmuyor ise TR.OHVPS.Business.InvalidContent hatası dönerek kayıt işlemini gerçekleştirmez.
> Kaynak Tipi kaynakTipi AN1..36 Z Olay tiplerinin tanımlanabildiği kaynak listesi bulunmaktadır. Bu listeye uygun kaynak tipleri iletilmelidir. HHS, YÖS API üzerinden YÖS'ün rollerini alarak uygun kaynak tiplerine kayıt olmasına izin verir.

OlayAbonelik nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama
Olay Abonelik Numarası olayAbonelikNo AN1..64 Z YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz.
Olay Abonelik Oluşturulma zamanı olusturmaZamani ISODateTime Z Olay Abonelik nesnesinin oluşturulma zaman damgası
Olay Abonelik Güncelleme zamanı guncellemeZamani ISODateTime Z Olay Abonelik nesnesinin güncelleme zaman damgası
Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
Abonelik Tipleri abonelikTipleri Kompleks: abonelikTipleri[Array][1..N] Z OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir.
> Olay Tipi olayTipi AN1..36 Z OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir.
> Kaynak Tipi kaynakTipi AN1..36 Z OlayAbonelikIstegi nesnesi içerisinde iletilen değerlerin yanıt içerisinde dönmesi beklenmektedir.

# ADIM 3: Olay Aboneliğinin sorgulanması

GET /olay-abonelik

YÖS olay abonelik bilgilerini sorgulamak isteyebilir. HHS, YÖS'e ait aktif durumdaki abonelik bilgisini iletir. Başarılı GET sonucu HTTP 200 kodu ile iletilmelidir.

OlayAbonelik nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama
Olay Abonelik Numarası olayAbonelikNo AN1..64 Z YÖS özelinde oluşturulan tekil tanımlayıcıdır. Farklı YÖS'ler için aynı değer kullanılamaz.
Olay Abonelik Oluşturulma zamanı olusturmaZamani ISODateTime Z Olay Abonelik nesnesinin oluşturulma zaman damgası
Olay Abonelik Güncelleme zamanı guncellemeZamani ISODateTime Z Olay Abonelik nesnesinin güncelleme zaman damgası
Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
Abonelik Tipleri abonelikTipleri Kompleks: abonelikTipleri[Array][1..N] Z YÖS'ün abone olduğu olay - kaynak listesini döner.
> Olay Tipi olayTipi AN1..36 Z TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden değerler içerir.
> Kaynak Tipi kaynakTipi AN1..36 Z TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden değerler içerir.

# ADIM 4: Olay Aboneliğinin iptali

DELETE /olay-abonelik/olayAbonelikNo

YÖS'ün abonelik kaydını silmesi için HHS'nin sunduğu servistir. Başarılı silme işlemi sonucu HTTP 204 ile YÖS'e iletilir.

# ADIM 5: Olay Aboneliğinin İletilemeyen Olayları

GET /iletilemeyen-olaylar

HHS kaynaklar üzerinde oluşacak olayları YÖS'e POST/olay-dinleme servisi ile gönderim sağlamaktadır. Bu gönderim belli bir yeniden gönderim politası (retry-policy) ile yapılmalıdır. Ancak yine de iletilemeyen olaylar olursa (YÖS servisinden HTTP 202 alamama durumu) YÖS'e iletilemeyen-olaylar servisi üzerinden sunulmalıdır. Yani yeniden gönderim politikası sonunda gönderilemeyen olaylar bu servis ile sunulmalıdır.

Aynı kaynak numarası ile aynı olay-kaynak tipinde, 1 YÖS’e ait, 1 adet iletilemeyen olay kaydı olabilir.

Bu serviste 1 gün öncesinden sorgu anına kadar tüm kayıtlarına ait iletilemeyen olaylar listelenmelidir. Örnek sorgu zamanı : 2023-04-06T15:14:00+03:00 HHS'nin sunacağı veri 2023-04-05T00:00:00+03:00 ile 2023-04-06T15:14:00+03:00 arasında olmalıdır. Sıralama yönü olay tarihine göre artan şekilde olmalıdır. Sayfalama 100'er kayıt dönülerek yapılmalıdır.

YÖS tarafından iletilemeyen olaylar isteği 10 dakikada bir olacak şekilde yapılabilir. HHS bu limite uygun işlem kısıtı uygulayabilir.

İşlem Sorgu Örneği GET İşlem Sorgu Örneği : /iletilemeyen-olaylar?syfNo=1&olyZmnBslTrh=2024-01-08T16:42:00+03:00&olyZmnBtsTrh=2024-01-09T17:09:00+03:00

Örneğin;

olyZmnBslTrh : 07/01/2024 10:00:00+03:00
olyZmnBtsTrh : 09/01/2024 16:00:00+03:00
Sorgu Zamanı : 09/01/2024 10:15:00+03:00

Yanıt içerisinde yer alan veriye ait tarih aralığı : 08/01/2024 00:00:00+03:00 - 09/01/2024 10:15:00+03:00 olmalıdır.

Başlangıç ve bitiş zaman aralığı örnekte yer alan şekilde seçilse dahi ilgili servis yanıtı için öncelikle sorgu zamanına bakılıp 1 gün öncesinden sorgu anına kadar tüm kayıtların iletilemeyen olaylar içerisinde listelenmesi sağlanmalıdır.

İlgili tarih aralığında uygun veri olmaması halinde yanıt gövdesi boş olacak şekilde dönülmelidir.

İletilemeyen Olaylar Sorgulama İsteği Sorgu Parametreleri

Alan Adı Parametre Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama HHS tarafından yapılması gereken kontrol ve işlemler
İstenen Sayfa Numarasi syfNo N3 İ Cevapta dönecek sayfa numarası 1’den başlayarak artan değerlerle iletilmelidir. Bu veri gönderildiği durumda, HHS İletilemeyen Olaylar listesine ait bu sayfadaki kayıtları göndermelidir. Gönderilmediğinde, HHS ilk sayfadaki kayıtları göndermelidir.
Olay Zamanı Başlangıç Tarihi olyZmnBslTrh ISODateTime İ Sorgulanacak Olay Zamanına ait başlangıç tarihi HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda; olyZmnBslTrh iletilmediği durumda ya da 1 gün öncesinin başlangıç saatine göre daha geri bir zaman dilimi gönderildiğinde, başlangıç zamanı(olyZmnBslTrh) değeri sorgu zamanından 1 gün öncesine ait günün başlangıç zamanı olarak kabul edilmelidir.
Olay Zamanı Bitiş Tarihi olyZmnBtsTrh ISODateTime İ Sorgulanacak Olay Zamanına ait bitiş tarihi HHS'ler iletilemeyen olaylar listesi dönüşünü bu kritere göre filtreleyerek iletmek zorundadır. YÖS tarafından tetiklenen sorgularda; olyZmnBtsTrh iletilmediği durumda ya da sorgu zamanından daha ileri bir zaman dilimi gönderildiğinde, bitiş zamanı(olyZmnBtsTrh) değeri sorgu zamanı olarak kabul edilmelidir.

Tablo 17: Olaylar nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama
Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
Olaylar olaylar Kompleks: Olaylar Z
>Olay No olayNo AN1..64 Z Olaya ait evrensel tekil numaradır.
>Olay Zamani olayZamani ISODateTime Z Olayın oluştuğu tarih bilgisidir.
>Olay Tipi olayTipi AN1..36 Z TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır.
>Kaynak Tipi kaynakTipi AN1..36 Z TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır.
>Kaynak Numarası kaynakNo AN1..128 Z Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı.

Kaynak numarasında gönderilen değer ile ilgili kaynağı sorgulayarak almak YÖS'ün insiyatifindedir.

# ADIM 6: Sistem Olay Dinleme

POST /sistem-olay-dinleme

HHS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir.

YÖS API içerisinde yapılan değişikliklerde, BKM tarafından HHS'lere olay bildirimlerini yapılır.

Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır.

Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir.

HHS'den başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır.

# Olay Dinleme Servisleri (ODS)

YÖS sunacağı Olay Dinleme Servisi ile hem HHS'den hem de BKM'den gelen olayların bildirimini dinleyebilir. YÖS'ler HHS'de yer alan olay abonelik kayıtlarını iptal edebilir ancak BKM Sistem Olay Dinleme servisinin ileteceği bildirimlerin alınması zorunlu olduğundan ODS API her zaman aktif olmalıdır.

HHS'den gelecek olay bildirimlerini olay-dinleme endpointi ile dinlerken, BKM'den gelecek olay bildirimlerini sistem-olay-dinleme endpointi ile dinlemelidir.

Olay Dinleme Servislerinde Idempotency kurallarının işletilmesine gerek bulunmamaktadır.

Olay Dinleme Servisine ait API Endpointleri aşağıdaki tabloda listelenmiştir.

# Olay Dinleme Servisleri için Erişim Adresleri (Endpoints)

Etki Alanı (Scope) =“olay_dinleme”

No Kaynak HTTP işlemi Erişim Adresi Zorunlu (Z)/ İsteğe Bağlı(İ) Yetkilendirme Türü İmzalama Parametre İstem Nesnesi Yanıt Nesnesi
1 olay-dinleme POST /olay-dinleme Z İstemci Kimlik Bilgileri İmzalı İstek - Olaylar -
2 sistem-olay-dinleme POST /olay-dinleme Z İstemci Kimlik Bilgileri - - Olaylar -

# ADIM 1: Olay Dinleme

POST /olay-dinleme

Olay abonelik servisi ile abone olunan olaylar, olay dinleme servisi ile YÖS'e iletilir. Olaylar yanıt nesnesi içerisinde en fazla 100 kayıt gönderilmelidir. Başarılı POST isteği sonucu HTTP 202 Accepted ile dönülmelidir.

HHS'nin işlem hata aldığında, başarılı işlem olana kadar 3 kez deneme yapılması gerekmektedir. İlk istekle son istek arasında 30 dakika olacak şekilde, zamana yayarak bu denemelerin yapılması gerekmektedir. (Exponential backoff policy uygulanması beklenmektedir. ) HHS kendi sistemini yormayacak şekilde, belirleyeceği kurallar dahilinde bu geliştirmeyi yapmalıdır.

Tablo 17: Olaylar nesnesi

Alan Adı JSON Alan Adı Format Zorunlu / Koşullu / İsteğe bağlı Açıklama
>Katılımcı Bilgisi katilimciBlg Kompleks:KatilimciBilgisi Z Katılımcılara atanmış kod bilgileridir.
>>Hesap Hizmeti Sağlayıcısı Kodu hhsKod AN4 Z Hesap Hizmeti Sağlayıcısının kodudur. (Nezdinde ÖH bulunduran kuruluş kodu. Örneğin, Banka, Elektronik Para Kuruluşu ve Ödeme Kuruluşu)
>> Yetkili Ödeme Hizmeti Sağlayıcısı Kodu yosKod AN4 Z Yetkili Ödeme Hizmeti Sağlayıcısı (YÖS) kodudur.
>Olaylar olaylar Kompleks: Olaylar Z
>>Olay Numarası olayNo AN1..64 Z Olaya ait atanmış tekil kimlik numarası
>>Olay Zamanı olayZamani ISODateTime Z Olayın oluşma zamanı
>>Olay Tipi olayTipi AN1..36 > TR.OHVPS.DataCode.OlayTip sıralı veri tiplerinden birini alır.
>>Kaynak Tipi kaynakTipi AN1..36 Z TR.OHVPS.DataCode.KaynakTip sıralı veri tiplerinden birini alır.
>>Kaynak Numarası kaynakNo AN1..128 Z Güncellenen kaynağa ait HHS sistemindeki tekil tanımlayıcı.

# ADIM 2: Sistem Olay Dinleme

POST /sistem-olay-dinleme

YÖS'lerin sistem olaylarını dinleme amacıyla açması gereken endpoint bilgisidir.

HHS API içerisinde yapılan değişikliklerde, BKM tarafından YÖS'lere olay bildirimlerini yapılır.

Olaylar yanıt nesnesi içerisinde 1 adet kayıt yer almalıdır.

Başarılı POST isteği sonucu HTTP 202 Accepted kodu ile dönülmelidir.

YÖS'ten başarılı yanıt alınamadığı durumda, 5 dakika aralıklarla 3 kez deneme yapılacaktır. Hata alınmaya devam edilmesi durumunda başka bir aksiyon alınmayacaktır.