VİOPFIX API ÜYE YAZILIMI SERTİFİKASYON PROGRAMI TAM (FULL) SEVİYE Şubat 2015, Sürüm 16
DÖKÜMAN TARİHÇESİ Tarih Versiyon Açıklama Şubat 2014 10 İlk sürüm 1 SİSTEM BAĞLANTI TESTLERİ bölümünde 2 Adımda değişiklik yapıldı, açıklayıcı metin eklendi 39 POZİSYON SORGUSU bölümünde 97 Ve 99 Adımlarda açıklama eklendi Mart 2014 11 ClOrdID değerleri 1 den başlayıp ardışık olarak artacak şekilde güncellendi 35 SÖZLEŞME SORGUSU bölümünde 74 numaralı adım kaldırıldı 39 POZİSYON SORGUSU bölümünde 100 numaralı adım kaldırıldı 310 MESAJ İNDİRME bölümünde 103 numaralı adımda Mart 2014 12 (versiyon 11 de 105 numaralı adım) değişiklik yapıldı 34 EMİR DEĞİŞTİRME bölümünde 43 ve 50 numaralı Nisan 2014 13 adımların Side alanı değiştirildi 2 SERTİFİKASYON TEST ORTAMI bölümüne 17 ve 18 Temmuz 2014 14 Adımlar eklendi Sözleşmeler production ortamındaki sözleşmelere göre güncellendi Eylül 2014 15 Emir numaraları güncel hale getirildi Sözleşmeler production ortamındaki sözleşmelere göre güncellendi Şubat 2015 16 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İ 10 31 TEST ORTAMINDAKİ MEVCUT BİLGİLERİN İNDİRİLMESİ 10 32 MEVCUT EMİRLERLE İLGİLİ DEĞİŞİKLİKLER 11 33 YENİ EMİR GİRİŞİ 12 34 EMİR DEĞİŞTİRME 16 35 SÖZLEŞME SORGUSU 20 36 İLAVE EMİR GİRİŞLERİ VE GERÇEKLEŞEN İŞLEMLER 21 37 EMİR İPTALİ 24 38 EMİR SORGUSU 26 39 POZİSYON SORGUSU 27 310 MESAJ İNDİRME 28 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] 3 Yeni alış emri girilir D 1215S0 CFAN 10 45 1 2 S 1 4 Yeni satış emri girilir D 1215S0 CFAN 500 46 2 2 S 1 5 Yeni satış emri girilir D 1215S0 CFAN 100 465 2 2 S 1 6 Farklı bir üyeden yeni satış emri girilir ve 1 nolu emirle işlem olur D 1215S0 CFAN 10 45 2 2 0 1 7 8 Yeni alış emri girilir ve 2 nolu emirle işlem olur OrderQty [38] D 1215S0 CFAN 100 1 1 1 1 3 nolu emir değiştirilir G 1215S0 CFAN 100 465 2 2 0 1 Price [44] Side [54] OrderType [40] TimeInForce [59] Account [1] 4 8
Sıra No Senaryo MsgType [35] Symbol [55] Market SegmentID [1300] OrderQty [38] Price [44] Side [54] OrderType [40] TimeInForce [59] Account [1] 9 2 nolu emir iptal edilir F 1215S0 CFAN 500 46 2 2 S 1 10 Riskli olan hesaba emir girilir D 1215S0 CFAN 100 43 1 2 0 4 11 Riskli olan hesabın emri Takasbank tarafından reddedilir 12 Yeni alış emri girilir D 1215S0 CFAN 150 43 1 2 0 1 13 Yeni alış emri girilir D 1215S0 CFAN 50 43 1 2 0 1 14 1 nolu emrin hesap numarası hatalı işlem düzeltmesiyle 2 olarak düzeltilir 15 Riskli olan hesaba emir girilir D 1215S0 CFAN 100 43 1 2 0 4 16 Riskli olan hesabın emri Takasbank tarafından onaylanır 17 1 nolu işlem iptal edilir Üyenin 1 nolu işlem hesabı ile 2 nolu işlem hesabı arasında 1 ve 1215S0 CFOZ 3000 42 özel emir girilerek işleme 2 18 dönüştürülür 9
3 EMİR İLETİM VE FONKSİYONLARI TESTİ Lütfen HeartbtInt süresini 300 olarak ayarlayarak sisteme tekrar bağlanınız 31 TEST ORTAMINDAKİ MEVCUT BİLGİLERİN İNDİRİLMESİ İşlem sisteminin mevcut durumuna ulaşmak için sistemde oluşan emirler, işlemler ve bilgi mesajlarını indirmeniz gerekmektedir Aşağıdaki tabloda mesajların indirilmesi için gerekli bilgiler yer almaktadır Lütfen tablolarda verilen bilgileri dikkate alarak sistemdeki mevcut emirleri, işlemleri ve bilgi mesajlarını indiriniz Her bir mesaj girişi sonrasında Sonuç kolonunda yer alan beklenen mesajın alındığını kontrol ediniz Sıra No Senaryo MsgType ApplBegSeqNum ApplReqID ApplReqType NewsCategory OrderID TrdMatchID Sonuç 1 2 3 Emir numarası ve ApplBegSeqNum alanına 0 değeri girerek emir indirme talebinizi gönderiniz BW 0 1 0 0 İşlem numarası ve ApplBegSeqNum alanına 0 değeri girerek işlem indirme talebinizi gönderiniz BW 0 2 0 0 ApplBegSeqNum alanına 0 değeri girerek genel yayın mesajı indirme talebinizi gönderiniz BW 0 3 0 4 2015021300000001 2015021300000002 2015021300000003 2015021300000005 2015021300000006 2015021300000007 2015021300000008 2015021300000009 2015021300000010 2015021300000011 2015021300000012 News(EndOfOrder) ER(Trade) - 2015021300000001 ER(Trade) - 2015021300000005 ER(Trade) - 2015021300000002 ER(Trade) - 2015021300000010 ER(Trade) - 2015021300000011 ER(Trade) - 2015021300000013 ER(Trade) - 2015021300000014 News(EndOfTrade) News(EndOfBC) 10
32 MEVCUT EMİRLERLE İLGİLİ DEĞİŞİKLİKLER Aşağıdaki tabloda BİAŞ tarafından hazırlanan sertifikasyon ortamındaki mevcut emirlerin düzeltilmesi ve iptal edilmesi için gerekli bilgiler yer almaktadır Lütfen tablolarda verilen OrderID leri dikkate alarak emir düzeltme veya emir iptali mesajlarını giriniz Her bir mesaj girişi sonrasında sonuç kolonunda yer alan beklenen mesajın alındığını kontrol ediniz Sıra No SENARYOLAR MsgType [35] OrderID Symbol (55) OrderQty(38) Price(44) Side(54) PositionEffect(77) SONUÇ 3 5 6 7 OrderID=2015021300000009 olan emrin miktarını 40 adete düşürerek emri değiştiriniz OrderID=2015021300000006 olan emrin fiyatını yükselterek emri değiştiriniz OrderID = 2015021300000008 olan emri iptal ediniz OrderID = 2015021300000016 olan emri iptal ediniz G G F F 2015021 3000000 09 F_COTE GE1215 S0 40 1 C 2015021 3000000 06 F_COTE GE1215 S0 47 2 C 2015021 3000000 08 1 2015021 3000000 16 2 News 2015021300000015 ER(Order Short) - 2015021300000015 ER(Order Short) - 2015021300000009 News 2015021300000016 ER(Order Short) - 2015021300000016 ER(Order Short) - 2015021300000006 ER(Order Short) - 2015021300000008 ER(Order Short) - 2015021300000016 11
33 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] SecondaryClOrdID [526] ExpireDate [432] PositionEffect [77] Text [58] Account [1] Sonuç 8 D 1 9 D 2 10 D 3 11 D 4 12 D 5 1215S0 CFAN 300 1 1 7 C çiğ 1 1215S0 CFAN 80 1 1 4 C çiğ 1 1215S0 CFAN 70 1 K 3 C 1 1215S0 CFAN 250 2 K 3 C 1 1215S0 CFAN 150 1 K 1 4 1 45 çiğ C 1 ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) 2015021300000017 ER(Order Short) - 2015021300000017 2015021300000018 ER(Order Short) - 2015021300000018 2015021300000019 ER(Order Short) - 2015021300000015 ER(Order Short) - 2015021300000012 ER(Order Short) - 2015021300000019 ER(Trade) - 2015021300000015 ER(Trade) - 2015021300000019 ER(Trade) - 2015021300000012 ER(Trade) - 2015021300000019 2015021300000020 12
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] SecondaryClOrdID [526] ExpireDate [432] PositionEffect [77] Text [58] Account [1] Sonuç 13 D 6 1215S0 CFAN 150 2 1 6 4 1 45 20151 230 C 1 2015021300000021 14 D 7 15 D 8 16 D 9 17 D 10 O_XU030 E1215C96 000S0 EOAN 150 1 1 6 4 1 789 20151 230 C 1 O_XU030 E1215C96 000S0 EOAN 200 1 K 1 C 1 O_XU030 E1215C96 000S0 EOAN 500 2 K 1 C 1 O_XU030 E1215C96 000S0 EOAN 2000 2 1 4 C 1 2015021300000022 2015021300000023 ER(Order Short) - 2015021300000023 2015021300000024 ER(Order Short) - 2015021300000024 2015021300000025 ER(Order Short) - 2015021300000025 18 D 19 D 20 D 21 D 22 D 11 12 13 14 15 O_XU030 E1215C96 000S0 EOAN 50 2 1 7 C 1 1215S0 CFAN 50 2 1 7 C 1 1215S0 CFAN 2000 2 K 4 C 1 1215S0 CFAN 500 2 K 1 4 1 45 C 1 1215S0 CFAN 10 45 1 2 S çiğ C 1 ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) ER(Reject) (ERROR: Bu seans için geçersiz emir metodu) 2015021300000026 ER(Order Short) - 2015021300000026 2015021300000027 2015021300000028 13
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] SecondaryClOrdID [526] ExpireDate [432] PositionEffect [77] Text [58] Account [1] Sonuç 23 D 24 D 25 D 26 D 27 D 28 D 29 D 30 D 31 D 32 D 33 D 16 17 18 19 20 21 22 23 24 25 26 1215S0 CFAN 10 45 1 2 6 çiğ 20151 230 C 1 1215S0 CFAN 200 44 1 2 S 4 1 44 C 1 1215S0 CFAN 100 45 1 2 6 4 1 45 20151 230 C 1 1215S0 CFAN 50 455 1 2 0 ÇİĞ C 1 1215S0 CFAN 500 46 1 2 3 ÇİĞ C 1 1215S0 CFAN 1000 46 2 2 S C 2 1215S0 CFAN 100 465 2 2 6 1215S0 CFAN 25 465 2 2 6 20151 230 C 2 20151 230 C 2 1215S0 CFAN 60 484 2 2 3 C 2 1215S0 CFAN 1000 47 2 2 S C 2 1215S0 CFAN 250 49 2 2 3 C 2 2015021300000029 2015021300000030 2015021300000031 2015021300000032 2015021300000033 ER(Order Short) - 2015021300000033 2015021300000034 2015021300000035 2015021300000036 2015021300000037 ER(Order Short) - 2015021300000037 2015021300000038 2015021300000039 ER(Order Short) - 2015021300000039 14
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] SecondaryClOrdID [526] ExpireDate [432] PositionEffect [77] Text [58] Account [1] Sonuç 34 D 27 O_XU030 E1215C96 000S0 EOAN 100 898 1 2 S C 3 2015021300000040 35 D 28 O_XU030 E1215C96 000S0 EOAN 1000 899 1 2 6 20151 230 C 3 2015021300000041 36 D 37 D 38 D 39 D 29 30 31 32 O_XU030 E1215C96 000S0 EOAN 10 899 1 2 S 4 1 89 C 3 O_XU030 E1215C96 000S0 EOAN 250 901 2 2 3 C 2 O_XU030 E1215C96 000S0 EOAN 500 9 2 2 6 20151 230 C 2 O_XU030 E1215C96 000S0 EOAN 500 1 1 S C 4 2015021300000042 2015021300000043 ER(Order Short) - 2015021300000043 2015021300000044 ER(Reject) (ERROR: Bu seans ve riskli saklama hesabı için geçersiz emir metodu) 40 D 33 F_GARAN 1215S0 FANA 100 1 1 6 20151 230 C 1 ER(Reject) (ERROR: Sözleşme işlemleri durduruldu) 41 D 34 O_XU030 E1215C96 000S0 EOAN 500 1 1 2 0 C 4 2015021300000045 15
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 42 43 SENARYOLAR 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 450 fiyat seviyesindeki tarihli alış limit emrini piyasa emrine çeviriniz (ClOrdID=16) 1215S0 sözleşmesine girmiş olduğunuz 150 adetlik şarta bağlı tarihli satış piyasa emrinin emir türünü en iyi fiyatlı emre çeviriniz (ClOrdID=6) MsgType G G OrderID (37) 201502 130000 0029 201502 130000 0021 OrigClOrdID (41) 16 6 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) F_COTE GE1215 S0 1 1 C F_COTE GE1215 S0 2 K C SONUÇ ER(Order Long) 2015021300000046 2015021300000047 2015021300000048 2015021300000049 ER(Order Short) - 2015021300000046 ER(Order Short) - 2015021300000030 ER(Order Short) - 2015021300000048 ER(Order Short) - 2015021300000034 ER(Order Short) - 2015021300000020 ER(Order Short) - 2015021300000031 ER(Order Short) - 2015021300000029 ER(Trade) - 2015021300000046 ER(Trade) - 2015021300000034 ER(Trade) - 2015021300000048 ER(Trade) - 2015021300000034 ER(Order Long) 2015021300000050 ER(Order Short) 2015021300000050 ER(Order Short) 2015021300000021 16
Sıra No 44 45 46 SENARYOLAR 1215S0 sözleşmesine girmiş olduğunuz 200 adetlik 44 fiyat seviyesindeki seanslık alış limit emrinin miktarını 150 adete, fiyatını ise 435 seviyesine çekiniz (ClOrdID=17 Bu emir Sıra No=42 olan adımda yapılan işlem sonucunda aktive olduğu için 2015021300000047 numaralı yeni emir oluşmuştur Bu adımda yapılacak değişiklik aktivasyon sonrasında oluşan 2015021300000047 nolu yeni emre uygulanmalıdır) 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 450 fiyat seviyesindeki seanslık alış limit emrinin fiyatını 46 seviyesine yükseltiniz (ClOrdID=15) 1215S0 sözleşmesine girmiş olduğunuz 25 adetlik 465 fiyat seviyesindeki tarihli satış limit emrin emir türünü Kalanı İptal Et (KİE) olarak değiştiriniz (ClOrdID=23) MsgType G G G OrderID (37) 201502 130000 0047 201502 130000 0028 201502 130000 0036 OrigClOrdID (41) 15 23 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) F_COTE GE1215 S0 150 435 1 C F_COTE GE1215 S0 46 1 C F_COTE GE1215 S0 2 3 C SONUÇ ER(Order Long) 2015021300000051 ER(Order Short) 2015021300000051 ER(Order Short) 2015021300000047 ER(Order Long) 2015021300000052 ER(Order Short) 2015021300000052 ER(Order Short) 2015021300000034 ER(Order Short) 2015021300000028 ER(Trade) 2015021300000052 ER(Trade) 2015021300000034 OrderCancelReject (ERROR: Düzeltilmemesi gereken emir yöntemleri değiştirildi) - 2015021300000036 17
Sıra No 47 48 49 SENARYOLAR O_XU030E1215C96 000S0 sözleşmesine girmiş olduğunuz 100 adetlik 898 fiyat seviyesindeki seanslık alış limit emrinin miktarını 50 adede, fiyatını 895 seviyesine çekiniz (ClOrdID=27) O_XU030E1215C96 000S0 sözleşmesine girmiş olduğunuz 1000 adetlik 899 fiyat seviyesindeki tarihli alış limit emrin fiyatını 9 seviyesine çekiniz (ClOrdID=28) O_XU030E1215C96 000S0 sözleşmesine girmiş olduğunuz 1000 adetlik 9 fiyat seviyesindeki tarihli alış limit emrini emir süresini değiştirerek günlük limit emre dönüştürünüz (ClOrdID=28 Bu değişiklik Sıra No=48 olan adımda yapılan işlem sonucunda oluşan 2015021300000054 nolu yeni emre uygulanmalıdır) MsgType G G G OrderID (37) 201502 130000 0040 201502 130000 0041 201502 130000 0054 OrigClOrdID (41) 27 28 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) O_XU03 0E1215 C96000 S0 50 895 1 C O_XU03 0E1215 C96000 S0 9 1 C O_XU03 0E1215 C96000 S0 1 0 C SONUÇ ER(Order Long) 2015021300000053 ER(Order Short) 2015021300000053 ER(Order Short) 2015021300000040 ER(Order Long) 2015021300000054 ER(Order Long) 2015021300000055 ER(Order Long) 2015021300000056 ER(Order Short) 2015021300000054 ER(Order Short) 2015021300000044 ER(Order Short) 2015021300000055 ER(Order Short) 2015021300000022 ER(Order Short) 2015021300000042 ER(Order Short) 2015021300000041 ER(Trade) 2015021300000054 ER(Trade) 2015021300000044 ER(Order Long) 2015021300000057 ER(Order Short) 2015021300000057 ER(Order Short) 2015021300000054 18
Sıra No 50 51 52 SENARYOLAR 1215S0 sözleşmesine girmiş olduğunuz 500 adetlik 45 aktivasyon fiyatlı şarta bağlı, iptale kadar geçerli (IKG) en iyi fiyatlı satış emrinin aktivasyon fiyatını 46 seviyesine yükseltiniz (ClOrdID=14) 1215S0 sözleşmesine girmiş olduğunuz 1000 adetlik 46 fiyat seviyesindeki seanslık satış limit emrinin fiyatını 465 seviyesine, emir süresini değiştirerek iptale kadar geçerli (İKG) limit emre dönüştürünüz (ClOrdID=21) O_XU030E1215C96 000S0 sözleşmesine girmiş olduğunuz 1 fiyatlı 500 adet alış emrin (kontrolde bekleyen emir) fiyatını 12 ye dönüştürünüz (ClOrdID=34) MsgType G G G OrderID (37) 201502 130000 0027 201502 130000 0034 201502 130000 0045 OrigClOrdID (41) 14 21 34 Symbol (55) OrderQty(38) Price(44) Side(54) OrderType(40) TimeInForce(59) TriggerType (1100) TriggerAction (1101) TriggerPrice(1102) PositionEffect(77) F_COTE GE1215 S0 2 4 1 46 C F_COTE GE1215 S0 465 2 1 C O_XU03 0E1215 C96000 S0 12 1 C SONUÇ ER(Order Long) 2015021300000058 ER(Order Short) 2015021300000058 ER(Order Short) 2015021300000027 ER(Order Long) 2015021300000059 ER(Order Short) 2015021300000059 ER(Order Short) 2015021300000034 OrderCancelReject (ERROR: Emir düzeltilemiyor; emir, açık emir değil) - 2015021300000045 19
35 SÖZLEŞME SORGUSU Aşağıda tabloda sözleşme sorguları yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren sözleşme sorgularını giriniz Her bir sözleşme sorgusu sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No Senaryo MsgType [35] Market SegmentID [1300] Security StatusReqID [324] Subscription RequestType [263] Symbol [55] VIOP_NoField TypeEntries [21017] VIOP_SubscribedFieldType [21018} VIOP_SubscriptionFlag [21019] Sonuç 53 54 55 56 57 58 Tüm zorunlu alanlar girilerek zorunlu olmayan Symbol ve Market SegmentID alanları boş bırakılarak (tüm pazarlardaki tüm sözleşmelerin sorgusu için) sözleşme sorgusu yapınız e 1 0 Pazar bilgisi boş bırakılarak (sözleşmenin 3 pazardaki bilgisinin gönderilmesi için) spesifik bir sözleşme için sözleşme sorgusu yapınız e 2 0 Spesifik bir sözleşme için Pazar bazında sözleşme sorgusu yapınız e CFAN 3 0 Spesifik bir Pazar için Symbol boş bırakılarak (ilgili pazardaki tüm sözleşmelerin bilgisinin gönderilmesi için) sözleşme sorgusu yapınız e DFIL 4 0 Birbiri ile uyumsuz sözleşme ve Pazar girerek sözleşme sorgusu yapınız e KFAN 5 0 1 215S0 1 215S0 O_XU030E1 215C96000 S0 SecurityStatus SecurityStatus News(EndOfSecurity) SecurityStatus SecurityStatus SecurityStatus News(EndOfSecurity) SecurityStatus News(EndOfSecurity) SecurityStatus SecurityStatus News(EndOfSecurity) BusinessMessageReject (Security does not belong to the specified board) SubscriptionRequestType değerini 3 giriniz ve SettlePrice alanına abone olunuz e 7 3 1 730 Y News(EndOfSecurity) 20
36 İLAVE EMİR GİRİŞLERİ VE GERÇEKLEŞEN İŞLEMLER Aşağıdaki tabloda yeni emir girişi için gerekli bilgiler yer almaktadır ClOrdID bazında belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren emirleri giriniz Her bir emir girişi sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No 59 60 61 62 63 SENARYOLAR MsgType ClOrdID(11) AAAN pazarında 1215S0 sözleşmesini 100 adet ve 465 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 35 F_EURUSD1215S0 sözleşmesinin CFAN pazarında 100 adet ve 465 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 36 DFAN pazarında 1215S0 sözleşmesini 10 adet ve 45 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 37 CFAN pazarında 1215S0 sözleşmesini 10 adet ve 10 fiyat seviyesinden seanslık satış limit emir girişini yapınız D 38 EOAN pazarında O_XU030E1215C96 000S0 sözleşmesini 100 adet ve 895 fiyat seviyesinden günlük satış limit emir girişini yapınız D 39 Symbol (55) MarketSegmentID(1300) OrderQty(38) Price(44) Side(54) OrdetType(40) TimeInForce(59) PositionEffect(77) Account(1) F_COTEG E1215S0 AAAN 100 465 2 2 S C 1 F_EURUS D1215S0 CFAN 100 465 2 2 S C 1 F_COTEG E1215S0 DFAN 10 45 2 2 S C 1 F_COTEG E1215S0 CFAN 10 10 2 2 S C 2 O_XU030 E1215C96 000S0 EOAN 100 895 2 2 0 C 2 SONUÇ Reject (Value is incorrect (out of range) for this tag) BusinessMessageReject (Security does not belong to the specified board) BusinessMessageReject (Security does not belong to the specified board) ER(Reject) (ERROR: 1215S0 Sözleşmesinde, emir fiyat marjları dışındadır: üst limit 5025, alt limit 4105) ER(Order Long) 2015021300000060 ER(Order Short) 2015021300000057 ER(Order Short) 2015021300000060 21
Sıra No 64 65 66 SENARYOLAR MsgType ClOrdID(11) CFAN pazarında 1215S0 sözleşmesini 200 adet ve emir türünü iptale kadar geçerli alış piyasa emri girişini yapınız D 40 EOAN pazarında O_XU030E1215C96 000S0 sözleşmesini 1000 adet ve günlük satış piyasa emri girişini yapınız D 41 CFAN pazarında 1215S0 sözleşmesini 100 adet ve 47 fiyat seviyesinden emir türünü iptale kadar geçerli alış limit emrini pozisyon D 42 Symbol (55) MarketSegmentID(1300) OrderQty(38) Price(44) Side(54) OrdetType(40) TimeInForce(59) PositionEffect(77) Account(1) F_COTEG E1215S0 CFAN 200 1 1 1 C 1 O_XU030 E1215C96 000S0 EOAN 1000 2 1 0 C 2 F_COTEG E1215S0 CFAN 100 47 1 2 1 O 2 SONUÇ ER(Trade) 2015021300000057 ER(Trade) 2015021300000060 ER(Order Long) 2015021300000061 ER(Order Short) 2015021300000035 ER(Order Short) 2015021300000036 ER(Order Short) 2015021300000061 ER(Order Short) 2015021300000059 ER(Trade) 2015021300000061 ER(Trade) 2015021300000035 ER(Trade) 2015021300000061 ER(Trade) 2015021300000036 ER(Trade) 2015021300000061 ER(Trade) 2015021300000059 ER(Order Long) 2015021300000062 ER(Order Long) 2015021300000063 ER(Order Short) 2015021300000057 ER(Order Short) 2015021300000056 ER(Order Short) 2015021300000053 ER(Order Short) 2015021300000062 ER(Trade) 2015021300000057 ER(Trade) 2015021300000062 ER(Trade) 2015021300000056 ER(Trade) 2015021300000062 ER(Trade) 2015021300000053 ER(Trade) 2015021300000062 ER(Order Long) 2015021300000064 ER(Order Short) 2015021300000064 ER(Order Short) 2015021300000059 ER(Trade) 2015021300000064 22
Sıra No SENARYOLAR kapatıcı olarak (PositionEffect = Open) girişini yapınız MsgType ClOrdID(11) Symbol (55) MarketSegmentID(1300) OrderQty(38) Price(44) Side(54) OrdetType(40) TimeInForce(59) PositionEffect(77) Account(1) SONUÇ ER(Trade) 2015021300000059 67 CFAN pazarında 1215S0 sözleşmesini 100 adet ve 47 fiyat seviyesinden emir türünü iptale kadar geçerli alış limit emri giriniz D 43 F_COTEG E1215S0 CFAN 100 47 1 2 1 C 2 ER(Order Long) 2015021300000065 ER(Order Short) 2015021300000065 ER(Order Short) 2015021300000059 ER(Trade) 2015021300000065 ER(Trade) 2015021300000059 Yukarıdaki emirleri girdikten sonra uzlaşma fiyatı değişen 1215S0 sözleşmesine ait SecurityStatus mesajının gelmesini bekleyiniz (Uzlaşma fiyatları periyodik olarak güncellendiği için, emirlerin girilme süresine bağlı olarak SecurityStatus mesajını arada ilave emirlerin girişi sırasında da alabilirsiniz) 23
37 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 68 69 70 71 SENARYOLAR CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 50 adetlik 455 fiyat seviyesinden günlük alış limit emri iptal ediniz (ClOrdID=19) EOAN pazarında O_XU030E1215C96000S0 sözleşmesine girmiş olduğunuz 1000 adet ve günlük satış piyasa emir girişini iptal ediniz (ClOrdID=41 Bu emir piyasa emri olduğu için 2015021300000063 nolu kalan emir iptal edilmelidir) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 1000 adetlik 46 fiyat seviyesindeki seanslık satış limit emri İptal ediniz (ClOrdID=21 Bu iptal işlemi Sıra No=51 olan adımda yapılan işlem sonucunda oluşan 2015021300000059 nolu yeni emre uygulanmalıdır) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 150 adetlik şarta bağlı tarihli piyasa satış emrini iptal ediniz (ClOrdID=6 Bu iptal işlemi Sıra No=43 olan adımda yapılan işlem sonucunda oluşan 2015021300000050 nolu yeni emre uygulanmalıdır) MsgType [35] F F F F OrderID 2015021300000 032 2015021300000 063 2015021300000 059 2015021300000 050 ClOrdID Side 19 1 2 2 2 SONUÇ News(Sistem Uyarıları) ER(Order Short) 2015021300000032 News(Sistem Uyarıları) ER(Order Short) 2015021300000063 News(Sistem Uyarıları) ER(Order Short) 2015021300000059 News(Sistem Uyarıları) ER(Order Short) 2015021300000050 24
Sıra No 72 73 74 SENARYOLAR CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 10 adetlik 45 fiyat seviyesindeki seanslık limit alış emrini iptal ediniz (ClOrdID=15) CFAN pazarında 1215S0 sözleşmesine girmiş olduğunuz 60 adetlik 484 fiyat seviyesindeki kalanı iptal et (KİE) emir türündeki limit satış emrini iptal ediniz (ClOrdID=24) 2015021300001000 nolu (sistemde olmayan bir emir ) alış emrini iptal ediniz MsgType [35] F F F OrderID 2015021300000 028 2015021300000 037 2015021300001 000 ClOrdID Side 15 1 24 2 1 SONUÇ OrderCancelReject (ERROR: İptal edilecek emir bulunamadı) - 2015021300000028 OrderCancelReject (ERROR: İptal edilecek emir bulunamadı) - 2015021300000037 OrderCancelReject (ERROR: Geçersiz emir numarası) 25
38 EMİR SORGUSU Aşağıda tabloda emir girişi yapılmış olan emirlerin sorguları yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren emir sorgularını giriniz Her bir emir sorgusu sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No SENARYOLAR MsgType [35] Side [54] OrderID [37] OrdStatus ReqID [790] Sonuç 75 76 77 Geçersiz bir OrderID girerek emir sorgusu yapınız H 1 Geçerli bir OrderID girerek emir sorgusu yapınız (ClOrdID=6) H 2 OrderID = 2015021300000003 girerek emir sorgusu yapınız H 2 201502130 0001000 1 News(EndOfOrder) 201502130 0000021 2 201502130 0000003 3 2015021300000021 News(EndOfOrder) 2015021300000003 News(EndOfOrder) 26
39 POZİSYON SORGUSU Aşağıda tabloda pozisyon sorguları yer almaktadır Belirtilen senaryoları kapsayan, tabloda yer alan bilgileri içeren pozisyon sorgularını giriniz Her bir pozisyon sorgusu sonrasında sonuç kolonunda yer alan beklenen mesajların alındığını kontrol ediniz Sıra No Senaryo MsgType [35] Account [1] AccountType [581] PosReqID [710] PosReqType [724] Symbol [55] NoPartyIDs [453] PartyID [448] PartyRole [452] Sonuç 78 79 80 81 82 Tüm zorunlu alanlar ve hesap no girilerek pozisyon sorgusu yapınız AN 1 1 0 Tüm zorunlu alanlar ve hesap türü girilerek (ilgili hesap türüne ait toplam pozisyon bilgisi için) pozisyon sorgusu yapınız AN 14 2 0 Tüm zorunlu alanlar ve üye bilgisi girilerek (ilgili üyeye ait toplam pozisyon için) pozisyon sorgusu yapınız AN 3 0 Tüm zorunlu alanlar, hesap ve hesap türü girilerek (ilgili hesap türüne ait toplam pozisyon bilgisi için) pozisyon sorgusu yapınız AN 3 14 4 0 Tüm zorunlu alanlar, hesap türü ve üye bilgisi girilerek (ilgili üyeye ait toplam pozisyon bilgisi için) pozisyon sorgusu yapınız AN 1 5 0 1 215S0 1 215S0 1 215S0 1 <UYE*> 1 O_XU030E1 215C96000 S0 O_XU030E1 215C96000 S0 1 <UYE*> 1 PositionReport News(EndOfPosition) PositionReport News(EndOfPosition) PositionReport News(EndOfPosition) PositionReport News(EndOfPosition) PositionReport News(EndOfPosition) * Sertifikasyona katılan üyenin/ yazılım kuruluşunun kendi kodunu girmesi beklenmektedir 27
310 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ç 83 84 85 86 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) 87 Başka bir üyeye ait bir emrin OrderID si ile emir indirme talebi gönderiniz BW 1 5 0 20150 21300 00000 4 BusinessMessageReject (Unknown ID) 28
Sıra No Senaryo MsgType [35] ApplBegSeqNum [1182] ApplReqID [1346] ApplReqType [1347] NewsCategory [1473] OrderID [37] TrdMatchID [880] Sonuç 88 89 90 91 NewsCategory alanına 4 değeri (tüm genel yayın mesajları için) girilerek ApplicationMessageRequ est mesajı gönderiniz BW 0 6 0 4 NewsCategory alanına 5 değeri (tüm sistem uyarıları mesajları için) girilerek ApplicationMessageRequ est mesajı gönderiniz BW 0 7 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 8 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 9 0 1 News(EndOfBC) 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) 29
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 30 sayfalarının ıslak imza ve kaşe, diğer sayfalarının paraf atılarak tarafımıza iletilmesi beklenmektedir 30