VİOPFIX API ÜYE YAZILIMI SERTİFİKASYON PROGRAMI ORTA SEVİYE Şubat 2015, Sürüm 11
DÖKÜMAN TARİHÇESİ Tarih Versiyon Açıklama Kasım 2014 10 İlk sürüm Sözleşmeler production ortamındaki sözleşmelere göre güncellendi Şubat 2015 11 Emir numaraları güncel hale getirildi 2
AŞ nin VİOPFIX API BAĞLANTISI TESTİ Üyelerimizin Dikkatine: Bu testin amacı üyelerimizin kendi sistemlerini mevcut haliyle VİOPFIX API ortamında test etmelerini sağlamaktır Lütfen aşağıdaki işlemleri sırasıyla yapınız ve bu işlemleri yaparken her adımda gelen mesajları mutlaka kontrol ediniz Öncelikle emrin sisteme gönderildiğinde oluşması beklenen etkiyi belirleyiniz Emri veya herhangi bir isteği sisteme gönderdikten sonra beklenen etkinin gerçekleşip gerçekleşmediğini, ilk aşamada aktiviteye ilişkin tarafınıza ulaşan cevabı; boyut, içerik, tamlık ve doğruluk açılarından, ikinci aşamada ise arkadaki her kanaldan yapılan aktivitelerin kaynağı olan ana sisteminizde doğru işlenmesi açısından kontrol ediniz Sertifikasyon programı kapsamında kılavuzda yer alan tüm adımların gerçekleştirilmesi sonrasında, Sistem Bağlantı Testleri (Bölüm 1) ve Emir İletim ve Fonksiyon Testleri (Bölüm 3) sırasında gönderilen ve alınan mesajlardan oluşan log dosyalarının BİAŞ a [8=FIXT119=32935=834=649=ISTVIOPFIX52=20140910-07:33:3720556=XXXFIX1128=91=114=037=201502130000000638=10039=040=242=20150 213-07:33:0662644=46554=255=1215S059=060=20150213-07:33:0662677=C150=0151=100381=465000453=2448=XXX452=1448=XXXFM1452=12625 =31181=161300=CFAN1352=Y9757=201502130000000321002=10010=117] formatında gönderilmesi beklenmektedir Bu log dosyaları, BİAŞ tarafından hazırlanan ve senaryolar sonucunda oluşması beklenen log dosyaları ile karşılaştırılacaktır Emir iletim hızına bağlı olarak asenkron kanaldan dönen cevap mesajları gecikebilmektedir Bu durum log dosyasında mesaj sıralarında değişikliklere sebep olabilmektedir Mesajların içeriklerinin aynı olması koşuluyla mesaj loglarının sırasının değişmesi karşılaştırma açısından sorun teşkil etmemektedir Sonuç olarak beklenen çıktıların alınması durumunda, üyelerimiz 3
sertifikasyon programını tamamlamış olacaklardır Log dosyalarının kontrollerden başarılı bir şekilde geçmesi için dokümandaki tablolarda verilen alanların eksiksiz doldurulması gerekmektedir Sertifikasyon sürecinde beklenmeyen bir durum olması halinde sorunu yetkililere ivedilikle bildiriniz Testin son bölümünü de doldurduktan sonra Borsa İstanbul yetkililerine ulaştırınız Vadeli İşlem ve Opsiyon Piyasası mevcut işlem kurallarında yer alan ve Borsa İstanbul tarafından VİOPFIX API de uygulanmasına izin verilen emir ve işlem fonksiyonlarının tamamını veya bir kısmını kendi VİOPFIX API programlarında kullanmayan veya kısmen kullanan üyelerimizin ileride müşterileri ile aralarında doğabilecek uyuşmazlıklarda hukuki sorumluluk tamamen ilgili üyemize ait olacaktır Bu nedenle üyelerimize, VİOPFIX API ile emirlerini Borsa İstanbul a iletecekleri müşterilerini bu konuda bilgilendirmeleri ve müşterileri ile aralarında buna uygun hukuki dayanağı oluşturmaları tavsiye edilmektedir Üye sisteminin hatasız çalışması üyelerimizin sorumluluğundadır 4
İçindekiler 1 SİSTEM BAĞLANTI TESTLERİ 6 2 SERTİFİKASYON TEST ORTAMI 8 3 EMİR İLETİM VE FONKSİYONLARI TESTİ 9 31 YENİ EMİR GİRİŞİ 9 32 EMİR İPTALİ 12 33 MESAJ İNDİRME 13 34 EMİR DEĞİŞTİRME 15 5
1 SİSTEM BAĞLANTI TESTLERİ Lütfen BİAŞ BT-Destek i (Tel: 212-298 24 27) arayarak sertifikasyon programına başlamak istediğinizi belirtiniz BT-Destek yetkilisi onay verdiği zaman aşağıdaki adımları gerçekleştiriniz 1 Sisteme bağlı değilken Password alanını boş bırakarak Logon mesajı gönderiniz Cevap: Logout mesajında yük bilgilerinin geldiği görülür 2 BİAŞ tarafından şifreniz Qq123456 olarak ayarlanmıştır Lütfen yükü gönderilen GW lerden yükü az olanı seçiniz ve seçilen GW üzerinden NewPassword alanını göndermeksizin ve HeartbtInt(108) alanını 60 sn olarak ayarlayarak verilen şifre ile bağlanınız Bağlantı aşamasında ResetSeqNumFlag(141)=Y (sıra numarasını sıfırla) olduğundan emin olunuz Cevap: PASSWORD_EXPIRED açıklaması ile Logout mesajı geldiği görülür 3 BİAŞ tarafından verilen şifre ile Password alanını ve yeni bir şifre ile NewPassword alanını doldurarak sisteme giriniz Cevap: Sisteme Logon mesajı ile girildiği görülür 4 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın Cevap: Logout mesajı ile sistemden çıkıldığı görülür 5 Yeni şifreniz ile sisteme giriniz Cevap: Sisteme Logon mesajı ile girildiği görülür 6 İşlem yapmadan bekleyerek Heartbeat mesajının size ulaştığını kontrol ediniz 7 TestRequest mesajı gönderin Cevap: Heartbeat mesajı alındığı görülür 8 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın 6
Cevap: Logout mesajı ile sistemden çıkıldığı görülür 9 NewPassword alanını doldurarak şifre değiştirerek Logon mesajı gönderiniz Cevap: Sisteme Logon mesajı ile girildiği görülür 10 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın Cevap: Logout mesajı ile sistemden çıkıldığı görülür 11 Yeni şifre ile sisteme giriniz Cevap: Sisteme Logon mesajı ile girildiği görülür 12 BeginSeqNo = 1 ve EndSeqNo = 1 değerlerini atayarak Resend Request gönderiniz Cevap: Yeniden talep edilen mesaj oturum mesajı olduğu için SequenceReset mesajı geldiği görülür 13 Mevcuttan daha büyük bir MsgSeqNum (50) değeri girerek sekans resetleme talebi gönderiniz Cevap: MsgSeqNum değerinin verilen değere (50) set edildiği görülür 14 Logout mesajı göndererek sistemle olan bağlantınızı sonlandırın Cevap: Logout mesajı ile sistemden çıkıldığı görülür 7
2 SERTİFİKASYON TEST ORTAMI Sertifikasyon programına başlamadan önce sistem, BİAŞ tarafından testler için özel olarak hazırlanmış duruma getirilecektir Sertifikasyon programına BİAŞ tarafından aşağıda belirtilen adımlar girilerek başlanacaktır Yatırım kuruluşlarının, sertifikasyon sürecine başlamadan önce BİAŞ tarafından sisteme girilen aşağıda belirtilen senaryolara ait mesajları indirmeleri gerekmektedir Dokümandaki senaryolarda 1 nolu hesap portföy hesabı, 2 nolu hesap global hesap, 3 nolu hesap müşteri hesabı ve 4 nolu hesap riskli hesap olarak kullanılmıştır Bu hesaplar, sertifikasyon test ortamında üyelerimiz için tanımlanacaktır Üyelerimizin testler sırasında, söz konusu dört hesabı aşağıdaki adımlarda belirtilen şekilde kullanmaları gerekmektedir Sertifikasyon testi için hazırlanan ortam, kurumların teste katıldıkları günün tarihine göre açılmaktadır Bu nedenle dokümanda belirtilen emir numaraları (OrderID) kurumların teste katıldığı tarihi içerecek şekilde değişiklik gösterecektir Emirlerin sırası hiçbir şekilde değişmeyecek, yalnızca emir numaralarının başındaki tarihi belirten ilk 8 hane güncellenecektir BİAŞ tarafından hazırlanan mesaj adımları: Sıra No 1 2 Senaryo Üyenin 4 numaralı hesabının risk durumu 3(riskli) e çekilir F_GARAN1215S0 sözleşmesi durdurulur MsgType [35] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrderType [40] TimeInForce [59] Account [1] 4 8
3 EMİR İLETİM VE FONKSİYONLARI TESTİ Lütfen HeartbtInt süresini 300 olarak ayarlayarak sisteme tekrar bağlanınız 31 YENİ EMİR GİRİŞİ Aşağıdaki tabloda yeni emir girişi için gerekli bilgiler yer almaktadır Lütfen ClOrdID bazında tabloda yer alan bilgileri içeren emirleri giriniz Her bir emir girişi sonrasında sonuç kolonunda yer alan beklenen mesajın alındığını kontrol ediniz Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] PositionEffect [77] Account [1] Sonuç 1 D 1 2 D 2 3 D 3 1215S0 CFAN 300 1 1 7 C 1 1215S0 CFAN 80 1 1 4 C 1 1215S0 CFAN 150 1 K 0 4 1 45 C 1 ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) ER(Order Long) - 2015021300000001 ER(Order Short) - 2015021300000001 ER(Order Long) - 2015021300000002 4 D 4 O_XU030 E1215C96 000S0 EOAN 150 1 1 0 4 1 789 C 1 ER(Order Long) - 2015021300000003 5 D 5 1215S0 CFAN 2000 2 K 4 C 1 ER(Order Long) - 2015021300000004 ER(Order Short) - 2015021300000004 6 D 6 1215S0 CFAN 10 45 1 2 S C 1 ER(Order Long) - 2015021300000005 7 D 7 1215S0 CFAN 10 45 1 2 0 C 1 ER(Order Long) - 2015021300000006 9
Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] PositionEffect [77] Account [1] Sonuç 8 D 8 1215S0 CFAN 200 44 1 2 S 4 1 44 C 1 ER(Order Long) - 2015021300000007 9 D 10 D 9 10 1215S0 CFAN 50 455 1 2 0 C 1 1215S0 CFAN 60 484 2 2 3 C 2 ER(Order Long) - 2015021300000008 ER(Order Long) - 2015021300000009 ER(Order Short) - 2015021300000009 11 D 12 D 13 D 11 12 13 1215S0 CFAN 1000 47 2 2 S C 2 1215S0 CFAN 250 49 2 2 3 C 2 O_XU030 E1215C96 000S0 EOAN 500 1 1 S C 4 ER(Order Long) - 2015021300000010 ER(Order Long) - 2015021300000011 ER(Order Short) - 2015021300000011 ER(Reject) (ERROR: Bu seans ve riskli saklama hesabı için geçersiz emir metodu) 14 D 15 D 16 D 14 15 16 F_GARAN 1215S0 FANA 100 1 1 6 0 C 1 1215S0 CFAN 10 45 2 2 S C 1 1215S0 CFAN 40 455 2 2 0 C 1 ER(Reject) (ERROR: Sözleşme işlemleri durduruldu) ER(Order Long) - 2015021300000012 ER(Order Long) - 2015021300000013 ER(Order Long) - 2015021300000014 ER(Order Short) - 2015021300000008 ER(Order Short) - 2015021300000012 ER(Order Short) - 2015021300000007 ER(Order Short) - 2015021300000014 ER(Order Short) - 2015021300000010 ER(Order Short) - 2015021300000002 ER(Trade) - 2015021300000008 ER(Trade) - 2015021300000012 ER(Trade) - 2015021300000014 ER(Trade) 2015021300000010 News(Genel Yayın) News(Genel Yayın) ER(Order Long) - 2015021300000015 ER(Order Short) - 2015021300000008 ER(Order Short) - 2015021300000015 10
Sıra No MsgType [35] ClOrdID [11] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrdType [40] TimeInForce [59] TriggerType [1100] TriggerAction [1101] TriggerPrice [1102] PositionEffect [77] Account [1] Sonuç ER(Trade) - 2015021300000008 ER(Trade) - 2015021300000015 11
32 EMİR İPTALİ Aşağıda tabloda emir girişi yapılmış olan emirlerin iptalleri yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren emir iptallerini giriniz Her bir emir iptali girişi sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No 17 18 19 20 21 SENARYOLAR EOAN pazarında O_XU030E1215C96000S0 sözleşmesine girmiş olduğunuz 150 adet günlük alış piyasa emir girişini iptal ediniz (ClOrdID=4) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 200 adetlik 44 fiyat seviyesindeki seanslık alış limit emri iptal ediniz (ClOrdID=8 Bu iptal işlemi Sıra No=15 olan adımda yapılan işlem sonucunda oluşan 2015021300000013 nolu yeni emre uygulanmalıdır) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 1000 adetlik 47 fiyat seviyesindeki seanslık satış limit emri iptal ediniz (ClOrdID=11) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 40 adetlik 455 fiyat seviyesindeki günlük limit satış emrini iptal ediniz (ClOrdID=16) 2015021300001000 nolu (sistemde olmayan bir emir ) alış emrini iptal ediniz MsgType [35] F F F F F OrderID 2015021300000 003 2015021300000 013 2015021300000 010 2015021300000 015 2015021300001 000 ClOrdID Side 4 1 1 11 2 16 2 1 SONUÇ News(Sistem Uyarıları) ER(Order Short) 2015021300000003 News(Sistem Uyarıları) ER(Order Short) 2015021300000013 News(Sistem Uyarıları) ER(Order Short) 2015021300000010 OrderCancelReject (ERROR: İptal edilecek emir bulunamadı) 2015021300000015 OrderCancelReject (ERROR: Geçersiz emir numarası) 12
33 MESAJ İNDİRME Aşağıda tabloda emir, işlem, genel yayın ve sistem uyarısı mesajlarını indirme mesajları yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren indirme mesajlarını giriniz Her bir mesaj indirme sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No Senaryo MsgType [35] ApplBegSeqNum [1182] ApplReqID [1346] ApplReqType [1347] NewsCategory [1473] OrderID [37] TrdMatchID [880] Sonuç 22 23 24 25 26 Emir numarası ve ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek emir indirme talebinizi gönderiniz BW 1000 1 0 İşlem numarası ve ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek İşlem indirme 20150 21300 00000 1 News(EndOfOrder) talebinizi gönderiniz BW 1000 2 0 1 News(EndOfTrade) ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek genel yayın mesajı indirme talebinizi gönderiniz BW 1000 3 0 4 News(EndOfBC) ApplBegSeqNum alanına mevcut en büyük ApplSeqNum değerinden daha büyük bir değer girilerek sistem uyarıları indirme talebinizi gönderiniz BW 1000 4 0 5 News(EndOfAlert) NewsCategory alanına 4 değeri (tüm genel yayın mesajları için) girilerek ApplicationMessageRequ est mesajı gönderiniz BW 0 5 0 4 News(Genel Yayın) News(Genel Yayın) News(Genel Yayın) 13
Sıra No Senaryo MsgType [35] ApplBegSeqNum [1182] ApplReqID [1346] ApplReqType [1347] NewsCategory [1473] OrderID [37] TrdMatchID [880] Sonuç News(EndOfBC) 27 28 29 NewsCategory alanına 5 değeri (tüm sistem uyarıları mesajları için) girilerek ApplicationMessageRequ est mesajı gönderiniz BW 0 6 0 5 ApplBegSeqNum alanına 0 ve OrderID alanına ilk girilen emrin numarası (ilk emirden sonraki tüm yeni emirlerin, değişikliklerin gönderilmesi için) girilerek bir ApplicationMessageRequ est emir indirme mesajı gönderiniz BW 0 7 0 20150 21300 00000 1 ApplBegSeqNum alanına 0 ve TrdMatchID alanına ilk oluşan işlemin numarası (ilk işlemden sonraki tüm işlemleringönderilmesi için) girilerek bir ApplicationMessageRequ est işlem indirme mesajı gönderiniz BW 0 8 0 1 News(Sistem Uyarıları) News(Sistem Uyarıları) News(Sistem Uyarıları) News(EndOfAlert) ER(Order Long) ER (Order Long) ER (Order Short) ER (Order Short) News(EndOfOrder) ER(Trade) ER(Trade) News(EndOfTrade) 14
34 EMİR DEĞİŞTİRME Aşağıdaki tabloda emir değişikliklerine ilişkin mesajlar yer almaktadır Yeni emir girişi tablosunda yer alan ve ClOrdID bazında sisteme girilen emirler üzerinde değişiklikler yapılacaktır Yapılacak değişikliklerin senaryosunu ve tabloda yer alan değişiklik yapılacak alanları dikkate alarak emir değiştirme mesajlarını giriniz Her bir emir değişiklik girişi sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No SENARYOLAR MsgType OrderID (37) OrigClOrdID (41) Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) PositionEffect(77) SONUÇ 30 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 450 fiyat seviyesindeki günlük alış limit emrini geçerli bir veri ile güncelleyiniz (ClOrdID=7) G 201502 130000 0006 7 F_COTE GE1215 S0 * * 1 * * C News(Genel Yayın) ER(Order Long) - 2015021300000016 ER(Order Short) - 2015021300000016 ER(Order Short) - 2015021300000006 31 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 450 fiyat seviyesindeki seanslık alış limit emrini geçerli bir veri ile güncelleyiniz (ClOrdID=6) G 201502 130000 0005 6 F_COTE GE1215 S0 * * 1 * * C News(Genel Yayın) ER(Order Long) - 2015021300000017 ER(Order Short) - 2015021300000017 ER(Order Short) - 2015021300000005 32 1215S0 sözleşmesine girmiş olduğunuz 60 adetlik 484 fiyat seviyesindeki KİE satış limit emrini geçerli bir veri ile güncelleyiniz (ClOrdID=10) G 201502 130000 0009 10 F_COTE GE1215 S0 * * 2 * * C OrderCancelReject (ERROR: Emir düzeltilemiyor; emir, açık emir değil) * OrderQty, Price, OrderType veya TimeInForce alanlarından herhangi biri değiştirilerek emir güncellenmelidir 15
TEST SONUCU: Aracı Kurum Unvanı Teste Katılan Teknik Yetkili Teste Katılan Piyasa Yetkilisi Teste Katılan Borsa Yetkilisi Genel Değerlendirme (Bu bölüm Borsa İstanbul AŞ yetkilileri tarafından doldurulacaktır) Not: VİOPFIX API Üye Yazılımı Sertifikasyon Programı sürecini başarıyla tamamladığınız takdirde, bu dokümanının 4 ve 16 sayfalarının ıslak imza ve kaşe, diğer sayfalarının paraf atılarak tarafımıza iletilmesi beklenmektedir 16