Akış Diyagramları
Genel Entegrasyon Mimarisi
Bu diyagram BEX entegrasyonunda Merchant Backend, Client SDK, BEX Backend ve Issuer/Acquirer Banka rollerinin birbirleriyle nasıl konuştuğunu özetler.
Temel aktörleri ve entegrasyon sınırlarını görünür kılmak.
İlk adımı Merchant Backend, kullanıcı odaklı akışları Client SDK başlatır.
Client hiçbir zaman Generate Token servisini doğrudan çağıramaz.
Client tarafında Check Status ile doğru iş akışı seçilir.
Check Status Karar Ağacı
Check Status servisi tüm entegrasyon modelinin merkezidir. Aşağıdaki karar ağacı geliştiricinin hangi durumda hangi servise ilerleyeceğini açık biçimde gösterir.
CheckStatus (Hesap Durumu Sorgulama)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
CheckStatus servisi son kullanıcının BEX sisteminde güncel hesap durumunu sorgulamak, üye işyeri ile hesap eşleştirme ve kart listeleme gibi entegrasyonları sağlamak amacıyla kullanılacaktır. Ödeme servisi öncesinde ilgili servis çağırılarak son kullanıcının hesap durumuna göre aksiyon alınması gerekmektedir. Hesap durum statüleri aşağıdaki gibidir.
- Son kullanıcı BEX’e ilk defa ilgili üye işyeri üzerinden kayıt olmaktadır.
- BEX hesabı daha önce oluşturulmuş, ilgili işyerinde hiç işlem yapmamış.
- BEX hesabı daha önce oluşturulmuş ve ilgili işyerinde hesabını ilişkilendirmiş.
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend token üretimi için ilgili isteği BEX API servislerine iletir.
- BEX API oluşturduğu token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve CheckStatus isteği gönderir.
- BEX SDK tanımlı token ile birlikte CheckStatus çağrısını BEX API servislerine gönderir.
- BEX API iletilen token üzerinde doğrulama işlemini gerçekleştirir.
- Doğrulama başarılı olduktan sonra kullanıcıya ait hesap durumu JSON formatında BEX SDK’ya iletilir.
- BEX SDK sonucu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
LinkAccount (Hesap Eşleştirme)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
LinkAccount servisi daha önce BEX hesabı olan son kullanıcının ilgili üye işyerinde gerçekleştireceği ilk işlem için tek seferlik doğrulama kullanılarak hesabını ilişkilendireceği servistir.
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend authorization token talebini BEX API servislerine iletir.
- BEX API oluşturduğu token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve LinkAccount isteği gönderir.
- BEX SDK hesap-kart eşleştirme işlemini başlatmak için LinkAccount çağrısını BEX API servislerine gönderir.
- BEX API ilgili işlem için Issuer OTP Service üzerinden OTP sürecini tetikler.
- OTP doğrulamasının gerekli olduğu bilgisi sistem tarafına döner ve son kullanıcıya OTP gönderimi gerçekleştirilir.
- Son kullanıcı kendisine iletilen OTP bilgisini Client uygulaması üzerinden girer.
- Client alınan OTP bilgisini BEX SDK aracılığıyla doğrulama için iletir.
- BEX SDK OTP doğrulama isteğini BEX API servislerine gönderir.
- BEX API doğrulama işlemini tamamlamak üzere talebi Issuer OTP Servisine iletir.
- Issuer OTP Servis doğrulama sonucunu başarılı veya başarısız olarak BEX API’ye döner.
- BEX API işlem sonucunu BEX SDK’ya iletir.
- BEX SDK sonucu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
StoreCard (Kart Kayıt)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
StoreCard servisi son kullanıcının BEX hesabına üye işyeri üzerinden tüm kart ekleme istekleri için kullanılan servistir.
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend authorization token talebini BEX API servislerine iletir.
- BEX API oluşturduğu token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve StoreCard isteği gönderir.
- BEX SDK kart ekleme işlemini başlatmak üzere ilgili isteği BEX API servislerine gönderir.
- BEX API işlem kapsamında telefon doğrulamasının gerekli olup olmadığını kontrol eder.
- Telefon doğrulaması gerekli ise kullanıcıya OTP doğrulama kodu gönderilir.
- Kullanıcı kendisine iletilen OTP doğrulama kodunu Client uygulaması üzerinden girer.
- Client girilen doğrulama bilgisini BEX SDK aracılığıyla BEX API servislerine iletir.
- Telefon doğrulaması gerekli değil ise bu adım atlanır ve süreç doğrudan OTP doğrulama aşamasına geçer.
- BEX API OTP üretim veya doğrulama isteğini Issuer OTP Servis tarafına iletir.
- Son kullanıcıya banka tarafından OTP bilgisi gönderilir ve kullanıcı bu OTP bilgisini uygulama üzerinden girer.
- BEX SDK kullanıcı tarafından girilen OTP bilgisini doğrulama amacıyla BEX API servislerine iletir.
- BEX API OTP doğrulama sonucunu Issuer OTP Servis üzerinden alır.
- Doğrulama tamamlandıktan sonra kart kayıt sonucu BEX SDK’ya iletilir.
- BEX SDK sonucu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
ResendOTP (OTP Tekrar Gönder)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
ResendOtp SMS süresi dolduğunda veya son kullanıcı SMS’i alamadığında, mevcut doğrulama işlemini bozmadan aynı işlem için yeni SMS üretilmesini sağlayan servistir.
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend authorization token talebini BEX API servislerine iletir.
- BEX API oluşturduğu token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar.
- Client OTP’nin yeniden gönderilmesi için ResendOtp isteğini BEX SDK üzerinden başlatır.
- BEX SDK ilgili isteği BEX API servislerine iletir.
- BEX API iletilen token üzerinde doğrulama yapar ve OTP yeniden gönderim limitlerini kontrol eder.
- Kontrollerin başarılı olması durumunda BEX API Issuer OTP Servis üzerinden yeni OTP üretim sürecini tetikler.
- Üretilen OTP son kullanıcıya SMS olarak gönderilir.
- OTP gönderim sonucu önce BEX API’ye, ardından BEX SDK’ya iletilir.
- BEX SDK sonucu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
VerifyOtp (OTP Doğrula)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
VerifyOtp Banka tarafından üretilen OTP değerinin Banka tarafında doğrulanmasını sağlayan servistir.
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend Authorization token üretim isteğini BEX API servislerine iletir.
- BEX API oluşturduğu Authorization Token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Son kullanıcı SMS ile aldığı OTP bilgisini Client ekranı üzerinden girer; Client OTP doğrulama işlemini başlatır ve Authorization Token bilgisini BEX SDK’ya iletir.
- BEX SDK OTP kontrol isteğini BEX API’ye gönderir.
- BEX API OTP doğrulama isteğini Issuer Banka servislerine iletir.
- Issuer Banka OTP doğrulama sonucunu doğru / yanlış bilgisi ile BEX API’ye döner.
- BEX API OTP kontrol sonucunu BEX SDK’ya iletir.
- BEX SDK sonucu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
CardDelete (Kart Silme)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
Son kullanıcının BEX hesabındaki ilgili kartı kaldırmak için kullanılan servistir.
- Client kart silme işlemi öncesinde Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend token üretimi için ilgili isteği BEX API servislerine iletir.
- BEX API oluşturduğu AuthorizationToken bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve DeleteCard isteği gönderir.
- BEX SDK, kart silme işlemi BEX API servislerine gönderir.
- Doğrulama başarılı olduktan sonra ilgili kart kaydı sistemden silinir.
- Kart silme işleminin sonucu BEX SDK’ya iletilir.
- BEX SDK sonucu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
StartPayment (Kayıtlı Kartla Ödeme)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
Son kullanıcının BEX hesabında bulunan kayıtlı kartlar ile ödeme akışını başlattığı servistir.
StartPayment - OTP
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend Authorization token üretim isteğini BEX API servislerine iletir.
- BEX API oluşturduğu authorization token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve SDK üzerinden kayıtlı kart ile ödeme isteğini gönderir.
- BEX SDK ilgili ödeme isteğini BEX API servislerine iletir.
- BEX API ödeme işlemine ilişkin gerekli kontrolleri gerçekleştirir ve banka tarafında OTP doğrulama sürecini başlatır.
- Issuer banka son kullanıcıya OTP bilgisi gönderir.
- Son kullanıcı kendisine iletilen OTP bilgisini Client ekranı üzerinden girer.
- Client girilen OTP bilgisini BEX SDK’ya iletir.
- BEX SDK OTP doğrulama isteğini BEX API’ye gönderir.
- BEX API OTP doğrulama bilgisini banka tarafına iletir.
- Banka doğrulama sonucunu BEX API’ye döner.
- BEX API doğrulama sonucuna bağlı olarak ödemeyi tamamlama servisinde kullanacağı işleme özel oluşturduğu transactionId bilgisini BEX SDK’ya iletir.
- BEX SDK OTP doğrulama sonucunu ve transactionId bilgisini Client uygulamasına aktarır.
- Client aldığı transactionId bilgisini Merchant Backend’e iletir.
- Merchant Backend ödeme tamamlama isteğini BEX API’ye gönderir.
- BEX API ödeme provizyon / satış işlemini banka tarafında tamamlar.
- Banka işlem sonucunu BEX API’ye döner.
- BEX API ödeme sonucunu Merchant Backend’e iletir.
- Merchant Backend ödeme sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
StartPayment – 3D
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend Authorization token üretim isteğini BEX API servislerine iletir.
- BEX API oluşturduğu Authorization token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve SDK üzerinden kayıtlı kart ile ödeme isteğini gönderir.
- 3D doğrulama gerektiğinde Client 3D ACS formunu almak için BEX SDK’ya istek iletir.
- BEX SDK,bu isteği BEX API’ye gönderir.
- BEX API 3D ACS form talebini issuer banka tarafına iletir.
- Banka 3D ACS form bilgisini BEX API’ye döner.
- BEX API ACS form yanıtını BEX SDK’ya iletir.
- BEX SDK 3D ACS formunu Client uygulamasına iletir.
- Son kullanıcı 3D şifresini Client ekranı üzerinden girer.
- Girilen 3D şifresi banka tarafında doğrulanır.
- Banka 3D doğrulama sonucunu BEX API’ye iletir.
- BEX API doğrulama sonucuna bağlı olarak ödemeyi tamamlama servisinde kullanacağı işleme özel oluşturduğu transactionId bilgisini BEX SDK’ya iletir.
- BEX SDK 3D doğrulama sonucunu ve transactionId bilgisini Client uygulamasına aktarır.
- Client aldığı transactionId bilgisini Merchant Backend’e iletir.
- Merchant Backend ödeme tamamlama isteğini BEX API’ye gönderir.
- BEX API ödeme provizyon / satış işlemini banka tarafında tamamlar.
- Banka işlem sonucunu BEX API’ye döner.
- BEX API ödeme sonucunu Merchant Backend’e iletir.
- Merchant Backend ödeme sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
StartPaymentwithRegisteredCard (Kart Kaydederek Ödeme)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
Son kullanıcının BEX hesabına hem kartını eklediği hem de eş zamanlı olarak ödeme işlemini yapabileceği servistir. İlgili kartın BEX hesabına eklenebilmesi için ödeme işleminin başarılı tamamlanması gerekmektedir.
StartPaymentwithRegisteredCard– Otp
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend Authorization token üretim isteğini BEX API servislerine iletir.
- BEX API oluşturduğu Authorization token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar ve SDK üzerinden kart bilgilerini girerek ödeme isteğini gönderir.
- BEX SDK kart bilgileri ile oluşturulan ödeme isteğini BEX API servislerine iletir.
- BEX API ödeme işlemine ilişkin gerekli kontrolleri gerçekleştirir ve banka tarafında OTP doğrulama sürecini başlatır.
- Issuer banka son kullanıcıya OTP bilgisi gönderir.
- Son kullanıcı kendisine iletilen OTP bilgisini Client ekranı üzerinden girer.
- Client girilen OTP bilgisini BEX SDK’ya iletir.
- BEX SDK OTP doğrulama isteğini BEX API’ye gönderir.
- BEX API OTP doğrulama bilgisini banka tarafına iletir.
- Banka OTP doğrulama sonucunu BEX API’ye döner.
- OTP doğrulaması başarılı olduktan sonra BEX API, ilgili kart kaydını pasif statüde oluşturur.
- BEX API doğrulama sonucuna bağlı olarak ödemeyi tamamlama servisinde kullanacağı işleme özel oluşturduğu transactionId bilgisini BEX SDK’ya iletir.
- BEX SDK OTP doğrulama sonucunu ve transactionId bilgisini Client uygulamasına aktarır.
- Client aldığı transactionId bilgisini Merchant Backend’e iletir.
- Merchant Backend ödeme tamamlama isteğini BEX API’ye gönderir.
- BEX API ödeme provizyon / satış işlemini banka tarafında tamamlar.
- Banka işlem sonucunu BEX API’ye döner.
- Ödeme işlemi başarılı ise BEX API, pasif statüdeki kart kaydını aktif duruma günceller.
- BEX API ödeme sonucunu Merchant Backend’e iletir.
- Merchant Backend ödeme sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
StartPaymentwithRegisteredCard – 3D
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend Authorization token üretim isteğini BEX API servislerine iletir.
- BEX API oluşturduğu Authorization token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client kendisine iletilen token değerini BEX SDK içerisine tanımlar; ardından kart bilgilerini girerek ödeme işlemini başlatır.
- BEX SDK kart bilgileri ile oluşturulan ödeme isteğini BEX API servislerine iletir.
- 3D doğrulama gerektiğinde Client 3D ACS formunu almak için BEX SDK’ya istek iletir.
- BEX SDK bu isteği BEX API’ye gönderir.
- BEX API 3D ACS form talebini issuer banka tarafına iletir.
- Banka 3D ACS form bilgisini BEX API’ye döner.
- BEX API ACS form yanıtını BEX SDK’ya iletir.
- BEX SDK 3D ACS formunu Client uygulamasına iletir.
- Son kullanıcı 3D şifresini Client ekranı üzerinden girer.
- Girilen 3D şifresi banka tarafında doğrulanır.
- Banka 3D doğrulama sonucunu BEX API’ye iletir.
- 3D doğrulaması başarılı olduktan sonra BEX API ilgili kart kaydını pasif statüde oluşturur.
- BEX API doğrulama sonucuna bağlı olarak ödemeyi tamamlama servisinde kullanacağı işleme özel oluşturduğu transactionId bilgisini BEX SDK’ya iletir.
- BEX SDK 3D doğrulama sonucunu ve transactionId bilgisini Client uygulamasına aktarır.
- Client aldığı transactionId bilgisini Merchant Backend’e iletir.
- Merchant Backend ödeme tamamlama isteğini BEX API’ye gönderir.
- BEX API ödeme provizyon / satış işlemini banka tarafında tamamlar.
- Banka işlem sonucunu BEX API’ye döner.
- Ödeme işlemi başarılı ise BEX API, pasif statüdeki kart kaydını aktif duruma günceller.
- BEX API ödeme sonucunu Merchant Backend’e iletir.
- Merchant Backend ödeme sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
Unlink (Merchant-Hesap Bağlantısını Kaldırma)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
Unlink servisi kullanıcının daha önce bir üye işyeri ile oluşturduğu ilişkiyi(linkleme) kaldırmak için kullanılır. Bu işlemden sonra merchant artık kullanıcıya ait kayıtlı kartları göremez ve işlem başlatamaz.
- Client güvenli oturum başlatmak amacıyla Merchant Backend’e Authorization Token talebi gönderir.
- Merchant Backend Authorization token üretim isteğini BEX API servislerine iletir.
- BEX API oluşturduğu Authorization token bilgisini Merchant Backend’e döner.
- Merchant Backend aldığı token bilgisini Client’a güvenli şekilde iletir.
- Client bağlantı kaldırma işlemini başlatmak için iletilen token değeri ile birlikte unlink talebini Merchant Backend’e gönderir.
- Merchant Backend aldığı unlink isteğini BEX API servislerine iletir.
- BEX API bağlantı kaldırma işlemini gerçekleştirir ve Unlink Response bilgisini Merchant Backend’e döner.
- Merchant Backend unlink işlem sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
Cancel (Ödemenin İptali)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
İptal işlemi ödeme henüz gün sonuna (settlement) girmemişken yapılan tam geri alma işlemidir. Genellikle aynı gün ve bankaya henüz aktarılmamış işlemler için kullanılır.
- Merchant Backend iptal talebini BEX API servislerine iletir.
- BEX API işlemin iptal edilebilir olup olmadığını kontrol eder.
- İşlem iptale uygunsa BEX API isteği banka / VPOS servisine gönderir.
- Banka iptal işlemini gerçekleştirir ve sonuç bilgisini BEX API’ye döner.
- BEX API işlem sonucunu Merchant Backend’e iletir.
- Merchant Backend iptal işlem sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.
Refund (Ödemenin İadesi)
Bu servisin çağırılması için, öncelikle üye işyerinin sunucusundan “Generate Token” servisi ile Authorization Token elde etmiş olması gerekiyor.
İade işlemi gün sonu süreci tamamlanmış ve işyeri hesabına aktarılmış tutarın tamamının veya bir kısmının (partial) son kullanıcıya geri gönderilmesidir.
- Merchant Backend iade talebini BEX API servislerine iletir.
- BEX API işlemin iade edilebilir olup olmadığını kontrol eder.
- İşlem iadeye uygunsa BEX API isteği banka / VPOS servisine gönderir.
- Banka iade işlemini gerçekleştirir ve sonuç bilgisini BEX API’ye döner.
- BEX API işlem sonucunu Merchant Backend’e iletir.
- Merchant Backend iade işlem sonucunu Client’a aktarır ve kullanıcıya uygun bilgilendirme gösterilir.