## Ornek Para Transfer Akisi Subflow ile 3FA Onay alimi ile birlikte. ```plantuml @startuml state baslat state onayla state subflow { state karar <<choice>> state ivn <<choice>> state isoapprovalvalid <<choice>> [*] --> karar karar --> [*] : <i>Hash geldi ve ok \n <b>ret :hash-valid karar --> [*] : <i>Hask geldi ve not ok \n <b>ret :hash-not-valid karar --> otp : <i>Hash yok \n uygulamasi yok karar --> push : <i>Hash yok\n uygulamasi var otp --> otp : resend-otp otp --> isoapprovalvalid : validate-otp isoapprovalvalid --> ivn : <i>approval valid isoapprovalvalid --> [*] : <i>approval is not valid \n <b>ret :appoval-not-valid push --> ivn : approve push --> [*] : reject ivn --> IVNcall : <i>IVN aramasi isteniyor. IVNcall --> [*] : ivn-valid \n <b>ret :ivn-valid IVNcall --> [*] : ivn-not-valid \n <b>ret : ivn-not-valid ivn --> [*] : <i>IVN aramasi istenmiyor \n <b>ret :appoval-valid } state ozet baslat -> onayla onayla -> subflow subflow -> ozet @enduml ``` ## SubFlow Input Parametreleri * **data**: JSON; Onaylanacak veriyi icerir. Sadece kayıt amaçlıdır. * **accept-language**: string; Ekran ve mesajlar hangi dilde iletilecek. * ~~**data-template**: string; Verinin gosterimi icin hangi template kullanilacak. (push mesaj icinde ve bekleyen onaylarda.)~~ **Push içerik veya OTP adımında gösterilecek içerik view leri gibi konularda direkt transition/state view ile ilerlenecek.** * ~~**data-signature**: STRING; Onaylanacak verinin kullanici private key ile alinmis imzasidir. Verinin kontrolu icin kullanilir.~~ * ~~**is-signed**: Kullanıcının device üzerindeki private key ile imzalanmış mı?~~ * **request-ivn-validation**:BOOLEAN; IVN aramasi yapilacak mi? * **request-ivn-param**:JSON; IVN servis parametreleri, data içerisindeki jsonpath lerle servise pass geçilebilir. * **user**:string; hangi kullanicidan onay alinacak, kullanici referans degeri, bankada tckn? * **ttl**;NUMBER; saniye cinsinden onayin beklendigi sure * **otp-retry-count**;NUMBER; kac defa otp isteyebilir. ~~**inform-all-registered-contact-endpoint**:BOOLEAN; kayitli tum telefonlarina sms ve mail adreslerine bilgilendirme gonder? **inform-all-registered-contact-endpoint-sms-template**:STRING;bilgilendirme icin kullanilacak sms-template **inform-all-registered-contact-endpoint-mail-template**:STRING;bilgilendirme icin kullanilacak sms-template~~ ## SubFlow Generic Parametreleri * **client-id**: GUID; Kanala ozel bir karar varsa, mesela bayi kanali ise her zaman otp ile ilerle gibi, client tag ile check edilip akis ona gore kurgulanabilir. * client mobil ise direkt signed kabul ile direkt çıkar * client web ve mobili yoksa otp yapar. * client web mobili varsa push yapar.