iyzico API Dökümantasyonu

Transkript

iyzico API Dökümantasyonu
 iyzico API Dökümantasyonu Yazarlar: Hakan ERDOĞAN Sabri Onur TÜZÜN Versiyon: 1.0
. iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com Değişiklik Tarihçesi Tarih Yazar Versiyon Gerekçe 28/09/15 Hakan ERDOGAN, Sabri Onur Tüzün 1.0 İlk taslak döküman . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com İçindekiler iyzico API Dökümantasyonu ....................................................................................................................................... 1 1 Başlarken ................................................................................................................................................................ 4 2 API Servisleri .......................................................................................................................................................... 5 2.1 API Servisleri, Ortak İstek (Request) ve Sonuç (Response) Alanları ...................................................................... 7 3 Pazaryeri Çözümü ................................................................................................................................................. 8 3.1 Alıcı ve Satıcı Sözleşmeleri ........................................................................................................................................... 9 3.1.1 Alternatif -­‐ 1: Üyelik Sırasında Sözleşme Onaylatma ............................................................................................... 10 3.1.2 Alternatif -­‐ 2: Ürün Listeleme ya da Ürün Ödeme Sayfasında Kayıt ................................................................... 10 3.2 Alt Üye İşyeri Kaydı .................................................................................................................................................... 11 3.2.1 Yeni Alt Üye İşyeri Ekleme .................................................................................................................................................. 11 3.2.2 Alt Üye İşyeri Güncelleme ................................................................................................................................................... 19 3.3 Tahsilat ......................................................................................................................................................................... 22 3.3.1 Ödeme ........................................................................................................................................................................................ 22 3.3.2 İptal .............................................................................................................................................................................................. 69 3.3.3 İade .............................................................................................................................................................................................. 70 3.4 Para Transferi İçin Ürüne Onay Verme ................................................................................................................... 73 3.4.1 Ürüne Onay Verme ................................................................................................................................................................ 73 3.4.2 Verilen Onayı Geri Çekme ................................................................................................................................................... 75 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 1 Başlarken Lisanslı bir ödeme kuruluşu olan iyzico, 6493 sayılı Ödeme ve Menkul Kıymet Mutabakat Sistemleri, Ödeme Hizmetleri ve Elektronik Para Kuruluşları Hakkında Kanunu’na uyumlu ve hem standart e-­‐ticaret hem de pazaryerlerinin ihtiyaçlarını karşılayan bir ürün sunmaktadır. Kanun kapsamında para toplama (collection) ve dağıtma (settlement) yetkisi Ödeme Kuruluşları tarafından yapılması gerekmektedir. iyzico ödeme API’si, internet üzerinden ödeme kabul eden tüm üye işyerlerine hitap edecek bir şekilde, oturum bilgisi tutmayan (stateless) Restful servis odaklı bir mimaride geliştirilmiştir. İletişim, şifreleme (PKI: public key infrastructure), veri sarmalama (data marshalling) ve veri çözme (data unmarshalling) için mutlaka bir API istemcisi (client) kullanmak gerekir. İyzico; • Java • .Net • PHP • Ruby on Rails (RoR) • Phyton dillerinde yazılmış API istemcileri sunar. Üye işyeri kendi programlama diline göre uygun API istemcisini seçmelidir. İyzico API entegrasyonu için temelde 3 bilgiye ihtiyaç vardır: • API Base URL : Ortam (sandbox/canlı) bazlı API servis ana linkidir. Örnek: https://stg.iyzipay.com • API Key : Üye işyeri açık API anahtarıdır. Bu anahtar iyzico ile iletişimde kullanılır fakat kimseyle paylaşılmaz. Örnek: Txl2ctiktW6BrNmFo10pZiPn8W67Ksob • Secret Key : Üye işyeri gizli API güvenlik anahtarıdır. Bu anahtar iyzico ile iletişimde kullanılmaz ve kimseyle paylaşılmaz. Örnek: GdzIHrXly6gQkZfEZUEw0LqbXFq7NWOg3qB3cPAHgx9DmXGcQlZIF4XelwC0kBD3 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com İyzico API entegrasyonu, ilk olarak Sandbox test ortamında yapılmalıdır. İyzico API; hem pazaryeri hem de pazaryeri olmayan standart e-­‐ticaret firmalarının entegrasyonu için kullanılabilir. Pazaryeri olmayan standart e-­‐ticaret firmaları API Servisleri başlığında belirtilen mavi renkli servisleri kullanmalıdırlar. 2 API Servisleri İyzico API; aşağıdaki servislerden oluşmaktadır. Üye işyeri ile paylaşılan API istemcisi bu API servislerine istekte bulunmakta ve veri alışverişini, şifrelemeyi ve güvenliği üye işyeri adına basitçe halletmektedir. Aşağıdaki tabloda iyzico API servis listesi bulunmaktadır. Bu tabloda kırmızı renkle belirtilen servisler sadece Pazaryeri/Marketplaces Çözümü için geçerlidir, pazaryeri olmayan e-­‐ticaret firmaları kırmızı renkle belirtilen servisleri göz önünde bulundurmayıp, mavi renkle belirtilen diğer servisleri kullanmalıdırlar. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com # API Servis (Endpoint) İsmi 1 Yeni Alt Üye İşyeri Ekleme Servisi 2 Alt Üye İşyeri Güncelleme Servisi 3 Ödeme (Auth) Servisi 3D Secure Ödeme (initialize 3DS) Başlatma 4 Servisi 5 3D Secure Ödeme (Auth 3DS) Servisi 6 Ön Otorizasyon (PreAuth) Servisi 7 Son Otorizasyon (PostAuth=Capture) Servisi 8 İptal (Cancel) Servisi 9 İade (Refund) Servisi İade (Refund) Servisi -­‐ İadeyi Üye İşyerinin 10 Üstlendiği Para Transferi İçin Ürüne Onay Verme 11 Servisi Para Transferi İçin Ürüne Verilen Onayı Geri 12 Çekme Servisi Mahsuplaşma -­‐ Alt Üye İşyerine Para 13 Gönderme Servisi Mahsuplaşma -­‐ Alt Üye İşyerinden Para 14 Alma Servisi 15 Servis Ayakta mı Testi (Healthcheck) 16 BIN Kontrol Servisi 17 Taksit Matrisi (Installment) Servisi 18 Ödemeden Bağımsız Kart Ekleme Servisi 19 Ödemeden Bağımsız Kart Silme Servisi Ödemeden Bağımsız Kart Bilgilerini Çekme 20 Servisi 21 Parası Transferi Yapılan İşlemler Servisi Para Transferi Bankadan Geri Dönenler 22 Servisi API Servis (Endpoint) URL /onboarding/submerchant /onboarding/submerchant /payment/iyzipos/auth/ecom /payment/iyzipos/initialize3ds/ecom /payment/iyzipos/auth3ds/ecom /payment/iyzipos/preauth/ecom /payment/iyzipos/postauth /payment/iyzipos/cancel /payment/iyzipos/refund /payment/iyzipos/refund/merchant/charge /payment/iyzipos/item/approve /payment/iyzipos/item/disapprove /crossbooking/send /crossbooking/receive /payment/test /payment/bin/check /payment/iyzipos/installment /cardstorage/card /cardstorage/card /cardstorage/cards /reporting/settlement/payoutcompleted /reporting/settlement/bounced Method POST PUT POST POST POST POST POST POST POST POST POST POST POST POST GET POST POST POST DELETE POST POST POST . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 2.1 API Servisleri, Ortak İstek (Request) ve Sonuç (Response) Alanları API servislerine mutlaka iyzico istemcileri (client) ile erişim sağlanması gerekmektedir, zira iyzico istemcileri sizin adınıza yetkilendirme ve veri gönderip almayı kolaylaştırır. Yapılan tüm servis isteklerinde; • Request Header’ın içinde Authorization ve x-­‐iyzi-­‐rnd parametreleri bulunmalıdır. İyzico istemcileri bunu sizin adınıza halleder. • Aşağıdaki istek parametreleri opsiyonel olarak gönderilebilir: Veri Tipi Input İsmi Zorunlu Açıklama locale String Hayır conversationId String Hayır iyzico istek snucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir. İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşmesi yapmak için kullanılabilir • Aşağıdaki sonuç parametreleri dönülür. Sonuç (status) başarılı (success) ise yapılan isteğe özel diğer alanlar dolu gelecektir: Output İsmi Veri Tipi status String errorCode String errorMessage String errorGroup String locale String conversationId String systemTime Long Açıklama Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner İşlem hatalıysa, bu hataya dair belirtilen koddur İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar İşlem hatalıysa, bu hataya dair belirtilen gruptur İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir İstek esnasında gönderilmişse, sonuçta aynen geri iletilir Dönen sonucun o anki unix timestamp değeridir . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 3 Pazaryeri Çözümü iyzico pazaryeri çözümünü detaylı anlayabilmek için klasik bir pazaryerinin akışı aşağıda gösterilmiştir, bu örneğe göre pazaryeri altında satış yapan 3 adet Alt Üye İşyeri (= satıcı = submerchant) olsun. Bu alt üye işyerleri bireysel (C2C), şahıs şirketi (b2C) veya tüzel kişilik (B2C) olabilirler. Bir alıcı 100 TL’lik bir sepet oluşturup 3 farklı satıcıdan, örneğin • A satıcısından 30 TL’lik, • B satıcısından 50 TL’lik ve • C satıcısından 20 TL’lik 3 farklı ürün alabilir. Bilindiği üzere escrow ürün bazındadır, her ürünün satıcısı farklı olabileceği için sepette yer alan her bir ürünün durumu da farklılık gösterebilir. Örneğin A satıcısı ürünü kargolamış, alıcının eline ulaşmış ve ürüne onay verilmiş olabilir, B satıcısının ürünü iade edilmiş/işlem iptal edilmiş, C satıcısının ürünü ise henüz kargo yapılmak üzere bekliyor olabilir. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com iyzico; satıcı ve alıcı arasındaki escrow’a müdahil olmaz, ödemenin tahsilatına aracılık eder ve sepetteki ilgili ürün için üye işyerinden para transferine onay verilmesini bekler, bu süre zarfında alıcının parası bankada korumalı havuz hesapta beklemektedir. iyzico Pazaryeri Çözümü genel olarak para toplama (collection) ve dağıtma (settlement) süreçlerinin kapsamaktadır ve entegrasyonda 3 ana adım bulunmaktadır. Adımlar sırasıyla şu şekildedir: • Alt Üye İşyeri Kaydı • Ödeme • Para Transferi İçin Ürüne Onay Verme Para transferinin satıcılara (alt üye işyerlerine) yapılabilmesi için bu satıcıların iyzico’ya tek seferlik kaydının yapılması gerekir, bu da onboarding API ile sağlanır. Üye işyeri satıcıyı iyzico’ya kaydettiği anda, istek dönüşünde o satıcı için subMerchanKey alır. Ödeme esnasında da sepetteki her bir ürünün satıcısı için ilgili subMerchantKey ve bu işlemde satıcıya kaç para gönderilecek (subMerchantPrice) iletilmelidir. Satıcı ve alıcı arasında escrow tamamlanınca da para transferi için ürüne onay verilmelidir. Entegrasyona geçmeden önce mutlaka alıcı ve satıcıların iyzico sözleşmesini kabul etmesi gerekmektedir. 3.1 Alıcı ve Satıcı Sözleşmeleri Pazaryerinizde ödeme akışı iyzico tarafından kontrol edileceği için; alıcılarınızın da satıcılarınızın da birer iyzico üyelikleri bulunması gerekmektedir. Bunun için de hem alıcılarınızın hem de satıcılarınızın https://www.iyzico.com/pazaryeri-­‐anlasma sayfasındaki iyzico sözleşmesini tek seferlik dijital olarak onaylamalarını sağlamalısınız. Üyelerinize web siteniz üzerinden iyzico hizmet şartlarını iki ayrı şekilde onaylatabilirsiniz. • Üyelik sırasında • Ürün listeleme ya da ürün ödeme sayfasında Her bir üyeniz için bu işlem tek bir defaya mahsustur. iyzico hizmet şartlarını bir önceki listelemesinde ya da ürün ödemesinde kabul etmiş olan üyenizin, sonraki listeleme ya da ödeme aşamalarında sözleşmeyi tekrardan onaylaması gerekmeyecektir. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 3.1.1 Alternatif -­‐ 1: Üyelik Sırasında Sözleşme Onaylatma Web sitenizdeki üyelik formunun altına ‘’iyzico Platform Kullanım Sözleşmesi’’ni https://www.iyzico.com/pazaryeri-­‐anlasma linkinden iframe ile çekebilir ve pazaryerinize üye olmak isteyen kişilerin aynı zamanda iyzico’ya da otomatik olarak kayıt olmalarını sağlayabilirsiniz. 3.1.2 Alternatif -­‐ 2: Ürün Listeleme ya da Ürün Ödeme Sayfasında Kayıt Bu alternatifi kullanarak ayrı ayrı yönlendirmelerle satıcı ve alıcılarınızın iyzico hizmet şartlarını
onaylamasını, dolayısıyla birer iyzico üyeliklerinin olmasını sağlayabilirsiniz. 3.1.2.1 Satıcılarınız için iyzico kaydı: Web siteniz üzerinden ürün satmak isteyen satıcı üyenize, ürün listeleme bölümlerinin herhangi bir aşamasında https://www.iyzico.com/pazaryeri-­‐anlasma linkinden iyzico hizmet şartlarını iframe ile çekebilir ve satıcılarınıza onaylatabilirsiniz. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 3.1.2.2 Alıcılarınız için iyzico kaydı: Alıcılarınız da almak istedikleri ürün için ödeme yapacakları sayfada tek sefere mahsus, aynı şekilde iyzico hizmet şartlarını kabul ederek; ürünü teslim alıp onay verene kadar paralarının güvenli bir şekilde iyzico havuz hesabında bekletileceğini kabul etmelidir. 3.2 Alt Üye İşyeri Kaydı Pazaryeri çözümünde işlem onaylandıktan sonra satıcılara para transferi yapılabilmesi için bu satıcıların iyzico’da kaydının bulunması gerekir. Pazaryeri; zaten bu satıcı bilgilerine sahip olduğu için, iyzico Onboarding API’sine satıcı bilgilerini göndererek satıcı kaydını oluşturduktan sonra bu bilgileri çekip güncelleyebilir. 3.2.1 Yeni Alt Üye İşyeri Ekleme Pazaryeri altındaki alt üye işyerleri 3 tipte olabilirler: bireysel, şahıs şirketi veya limited/anonim şirket. Her tip için alt üye işyeri kaydında gönderilen parametreler farklılık göstermektedir. Alt üye işyeri kaydı yapıldığında response alanında dönen subMerchantKey, o satıcı için tekil değerdir, bu değeri sisteminizde saklamalısınız, ödeme esnasında satıcıyı belirtmek için subMerchantKey’i göndermeniz gerekecektir. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com Not: iyzico’ya iletilen tüm parametreler gerçek değerleri içerecek şekilde iletilmelidir, rastgele, test veya gerçek olmayan bilgiler iletilmemelidir. 3.2.1.1 Bireysel Alt Üye İşyeri Ekleme Pazaryeri satıcınız eğer bireysel ise (C2C) aşağıdaki input parametrelerini gönderip bireysel satıcılarınızın iyzico’ya kaydını sağlayabilirsiniz. • API Servis (Endpoint) İsmi: /onboarding/submerchant • Method: HTTP POST Input İsmi name gsmNumber contactName contactSurname email address Veri Tipi Zorunlu Açıklama String String String String String String Hayır Hayır Evet Evet Evet Evet Alt üye işyeri adı Alt üye işyeri telefon numarası Alt üye işyeri sahibinin adı. IBAN ile uyumlu olmalı Alt üye işyeri sahibinin soyadı. IBAN ile uyumlu olmalı Alt üye işyeri e-­posta adresi Alt üye işyeri adresi Alt üye işyeri IBAN bilgisi. contactName ve contactSurname ile belirtilecek ad soyada ait bir IBAN olmalı. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır Alt üye işyeri tekil dış ID’si, sizin sisteminizdeki ID olabilir Alt üye işyeri T.C. kimlik numarası. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır Bireysel için PERSONAL enum değeri gönderilmeli iban String subMerchantExternalId String Hayır ** Evet identityNumber String subMerchantType String Hayır ** Evet İstek sonucu dönen değerler aşağıdaki gibidir: Output İsmi Veri Tipi subMerchantKey String Açıklama Alt üye işyerini simgeleyen tekil değer. Örnek Java İstek Kodu: ClientConfiguration configuration = new ClientConfiguration(); configuration.setApiKey("api key"); configuration.setSecretKey("secret key"); configuration.setBaseUrl("https://stg.iyzipay.com"); OnboardingServiceClient client = new OnboardingServiceClientImpl(configuration); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com CreateSubMerchantRequest request = new CreateSubMerchantRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setSubMerchantExternalId("B49220"); request.setSubMerchantType(SubMerchantRequestType.PERSONAL.name()); request.setAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732"); request.setContactName("Sabri Onur"); request.setContactSurname("Tüzün"); request.setEmail("[email protected]"); request.setGsmNumber("+905350000000"); request.setName("Sabri Onur'un mağazası"); request.setIban("TR180006200119000006672315"); request.setIdentityNumber("31300864726"); CreateSubMerchantResponse response = client.createSubMerchant(request); System.out.println("conversationId="+response.getConversationId()); System.out.println("locale="+response.getLocale()); System.out.println("status="+response.getStatus()); System.out.println("errorCode="+response.getErrorCode()); System.out.println("errorMessage="+response.getErrorMessage()); System.out.println("errorGroup="+response.getErrorGroup()); System.out.println("systemTime="+response.getSystemTime()); System.out.println("subMerchantKey="+response.getSubMerchantKey()); Örnek Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1443687828497 subMerchantKey=l4FCFycIof0paTP6687dOoch9Po= Örnek Java İstek Koduna Ait JSON Çıktısı: { . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "locale" : "tr", "conversationId" : "123456789", "name" : "Sabri Onur'un mağazası", "email" : "[email protected]", "gsmNumber" : "+905350000000", "address" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732", "iban" : "TR180006200119000006672315", "contactName" : "Sabri Onur", "contactSurname" : "Tüzün", "subMerchantExternalId" : "B49221", "identityNumber" : "31300864726", "subMerchantType" : "PERSONAL" } Örnek Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1443687828497, "conversationId" : "123456789", "subMerchantKey" : "l4FCFycIof0paTP6687dOoch9Po=" } 3.2.1.2 Şahıs Şirketi Alt Üye İşyeri Ekleme Pazaryeri satıcınız eğer Şahıs Şirketi ise aşağıdaki input parametrelerini gönderip Şahıs Şirketi satıcılarınızın iyzico’ya kaydını sağlayabilirsiniz. • API Servis (Endpoint) İsmi: /onboarding/submerchant • Method: HTTP POST Input İsmi name gsmNumber taxOffice legalCompanyTitle email address Veri Tipi Zorunlu Açıklama String String String String String String Hayır Hayır Evet Evet Evet Evet Alt üye işyeri adı Alt üye işyeri telefon numarası Alt üye işyeri vergi dairesi Alt üye işyeri yasal şirket ünvanı Alt üye işyeri e-­posta adresi Alt üye işyeri adresi . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com iban String subMerchantExternalId String Hayır ** Evet identityNumber String subMerchantType String Hayır ** Evet Alt üye işyeri IBAN bilgisi. legalCompanyTitle ile uyumlu bir IBAN olmalı. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır Alt üye işyeri tekil dış ID’si, sizin sisteminizdeki ID olabilir Alt üye işyeri T.C. kimlik numarası. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır Şahıs Şirketi için PRIVATE_COMPANY enum değeri gönderilmeli İstek sonucu dönen değerler aşağıdaki gibidir: Output İsmi Veri Tipi subMerchantKey String Açıklama Alt üye işyerini simgeleyen tekil değer. Örnek Java İstek Kodu: ClientConfiguration configuration = new ClientConfiguration(); configuration.setApiKey("api key"); configuration.setSecretKey("secret key"); configuration.setBaseUrl("https://stg.iyzipay.com"); OnboardingServiceClient client = new OnboardingServiceClientImpl(configuration); CreateSubMerchantRequest request = new CreateSubMerchantRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setSubMerchantExternalId("S49221"); request.setSubMerchantType(SubMerchantRequestType.PRIVATE_COMPANY.name()); request.setAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732"); request.setTaxOffice("Kadıköy V.D."); request.setLegalCompanyTitle("Sabri Onur Tüzün Bilişim Hizmetleri"); request.setEmail("[email protected]"); request.setGsmNumber("+905350000000"); request.setName("Sabri Onur'un mağazası"); request.setIban("TR180006200119000006672315"); request.setIdentityNumber("31300864726"); CreateSubMerchantResponse response = client.createSubMerchant(request); System.out.println("conversationId="+response.getConversationId()); System.out.println("locale="+response.getLocale()); System.out.println("status="+response.getStatus()); System.out.println("errorCode="+response.getErrorCode()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com System.out.println("errorMessage="+response.getErrorMessage()); System.out.println("errorGroup="+response.getErrorGroup()); System.out.println("systemTime="+response.getSystemTime()); System.out.println("subMerchantKey="+response.getSubMerchantKey()); Örnek Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1443788792146 subMerchantKey=lcB6bA9DWEF5e8yGJI0uIEcW1kw= Örnek Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "name" : "Sabri Onur'un mağazası", "email" : "[email protected]", "gsmNumber" : "+905350000000", "address" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732", "iban" : "TR180006200119000006672315", "taxOffice" : "Kadıköy V.D.", "legalCompanyTitle" : "Sabri Onur Tüzün Bilişim Hizmetleri", "subMerchantExternalId" : "S49221", "identityNumber" : "31300864726", "subMerchantType" : "PRIVATE_COMPANY" } Örnek Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "locale" : "tr", "systemTime" : 1443788792146, "conversationId" : "123456789", "subMerchantKey" : "lcB6bA9DWEF5e8yGJI0uIEcW1kw=" } 3.2.1.3 Limited veya Anonim Şirket Alt Üye İşyeri Ekleme Pazaryeri satıcınız eğer Limited veya Anonim Şirket ise aşağıdaki input parametrelerini gönderip Limited veya Anonim Şirket satıcılarınızın iyzico’ya kaydını sağlayabilirsiniz. • API Servis (Endpoint) İsmi: /onboarding/submerchant • Method: HTTP POST Input İsmi name gsmNumber taxOffice taxNumber legalCompanyTitle email address Veri Tipi Zorunlu Açıklama String String String String String String String Hayır Hayır Evet Evet Evet Evet Evet Alt üye işyeri adı Alt üye işyeri telefon numarası Alt üye işyeri vergi dairesi Alt üye işyeri vergi numarası Alt üye işyeri yasal şirket ünvanı Alt üye işyeri e-­posta adresi Alt üye işyeri adresi Alt üye işyeri IBAN bilgisi. legalCompanyTitle ile uyumlu bir IBAN olmalı. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır Alt üye işyeri tekil dış ID’si, sizin sisteminizdeki ID olabilir Şahıs Şirketi için LIMITED_OR_JOINT_STOCK_COMPANY enum değeri gönderilmeli iban String subMerchantExternalId String subMerchantType String Hayır ** Evet Evet İstek sonucu dönen değerler aşağıdaki gibidir: Output İsmi Veri Tipi subMerchantKey String Açıklama Alt üye işyerini simgeleyen tekil değer. Örnek Java İstek Kodu: ClientConfiguration configuration = new ClientConfiguration(); configuration.setApiKey("api key"); configuration.setSecretKey("secret key"); configuration.setBaseUrl("https://stg.iyzipay.com"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com OnboardingServiceClient client = new OnboardingServiceClientImpl(configuration); CreateSubMerchantRequest request = new CreateSubMerchantRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setSubMerchantExternalId("AS49222"); request.setSubMerchantType(SubMerchantRequestType.LIMITED_OR_JOINT_STOCK_COMPANY.na
me()); request.setAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732"); request.setTaxOffice("Kadıköy V.D."); request.setTaxNumber("9261877"); request.setLegalCompanyTitle("XYZ Bilişim Hizmetleri A.Ş."); request.setEmail("[email protected]"); request.setGsmNumber("+905350000000"); request.setName("Sabri Onur'un mağazası"); request.setIban("TR180006200119000006672315"); CreateSubMerchantResponse response = client.createSubMerchant(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("subMerchantKey=" + response.getSubMerchantKey()); Örnek Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1443790256853 subMerchantKey=D9V/MqIRitUzA4dutL+nCBvnWfs= . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com Örnek Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "name" : "Sabri Onur'un mağazası", "email" : "[email protected]", "gsmNumber" : "+905350000000", "address" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732", "iban" : "TR180006200119000006672315", "taxOffice" : "Kadıköy V.D.", "legalCompanyTitle" : "XYZ Bilişim Hizmetleri A.Ş.", "subMerchantExternalId" : "AS49222", "taxNumber" : "9261877", "subMerchantType" : "LIMITED_OR_JOINT_STOCK_COMPANY" } Örnek Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1443790256853, "conversationId" : "123456789", "subMerchantKey" : "D9V/MqIRitUzA4dutL+nCBvnWfs=" } 3.2.2 Alt Üye İşyeri Güncelleme İyzico’ya tek seferlik kaydını gerçekleştirdiğiniz alt üye işyerlerini, alt üye işyeri ekleme bölümünde bahsedilen parametreleri göndererek güncelleyebilirsiniz. Not 1: Alt üye işyeri güncelleme için, güncellemek istediğiniz alt üye işyerine ait subMerchantKey gönderilmesi gerekmektedir. Not 2: Alt üye işyeri güncellenirken geçerli formatta IBAN bilgisi gönderilmesi zorunludur Not 3: Alt üye işyeri tipi güncellenemez, eğer Bireysel olan bir alt üye işyeriniz, Şahıs Şirketi veya Limited/A.Ş. şirketine dönüşüyorsa, her bir tip için yeni bir alt üye işyeri ekleyip, ilgili subMerchantKey’leri saklamalısınız. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com Aşağıda sadece Bireysel alt üye işyeri güncelleme örneği verilmiştir, Şahıs Şirketi ve Limited/A.Ş. alt üye işyerleri için güncelleme istekleri alt üye işyeri eklemedeki parametreleri kullanacak şekilde benzerdir. • API Servis (Endpoint) İsmi: /onboarding/submerchant • Method: HTTP PUT Veri Tipi Input İsmi subMerchantKey String iban name gsmNumber contactName contactSurname email address String String String String String String String identityNumber String subMerchantType String Zorunlu Evet Evet Hayır Hayır Evet Evet Evet Evet Hayır ** Evet Açıklama iyzico tarafından, alt üye işyeri ekleme sonucunda dönen alt üye işyeri tekil anahtarı Alt üye işyeri IBAN bilgisi. contactName ve contactSurname ile belirtilecek ad soyada ait bir IBAN olmalı. Alt üye işyeri adı Alt üye işyeri telefon numarası Alt üye işyeri sahibinin adı. IBAN ile uyumlu olmalı Alt üye işyeri sahibinin soyadı. IBAN ile uyumlu olmalı Alt üye işyeri e-­posta adresi Alt üye işyeri adresi Alt üye işyeri T.C. kimlik numarası. Eğer alt üye işyeri ekleme esnasında boş bırakılırsa, ürüne onay vermeden önce mutlaka doldurulmalıdır Bireysel için PERSONAL enum değeri gönderilmeli İstek sonucu dönen değerler; 3.1 maddesinde bahsedilen genel API dönüş değerleridir. Örnek Java İstek Kodu: ClientConfiguration configuration = new ClientConfiguration(); configuration.setApiKey("api key"); configuration.setSecretKey("secret key"); configuration.setBaseUrl("https://stg.iyzipay.com"); OnboardingServiceClient client = new OnboardingServiceClientImpl(configuration); UpdateSubMerchantRequest request = new UpdateSubMerchantRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setSubMerchantKey("l4FCFycIof0paTP6687dOoch9Po="); request.setIban("TR630006200027700006678204"); request.setAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com request.setContactName("Hakan"); request.setContactSurname("Erdoğan"); request.setEmail("[email protected]"); request.setGsmNumber("+905350000000"); request.setName("Hakan Erdoğan'ın mağazası"); request.setIdentityNumber("31300864726"); UpdateSubMerchantResponse response = client.updateSubMerchant(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); Örnek Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1444129731762 Örnek Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "name" : "Hakan Erdoğan'ın mağazası", "email" : "[email protected]", "gsmNumber" : "+905350000000", "address" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy 34732", "iban" : "TR630006200027700006678204", "contactName" : "Hakan", "contactSurname" : "Erdoğan", "subMerchantKey" : "l4FCFycIof0paTP6687dOoch9Po=", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "identityNumber" : "31300864726" } Örnek Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1444129731762, "conversationId" : "123456789" } 3.3 Tahsilat Üye işyeri; ister pazaryeri isterse standart e-­‐ticaret iş modelinde olsun aşağıdaki ödeme (3D Secure ve 3D Secure olmayan), iptal, iade, ön otorizasyon vb işlemleri yapabilir. 3.3.1 Ödeme Üye işyeri, kendi veya alıcı tercihine göre 3D Secure veya 3D Secure olmayan ödeme alabilir. 3D Secure olmayan ödeme basit bir istek/sonuç evresinde (request/response cycle) sonuçlanır. 3.3.1.1 Ödeme Grupları, Ürün Tipleri ve Temel Ödeme Bilgileri Üye işyeri; ürün, listeleme ve abonelik ödeme tiplerinde ödeme alabilir, listeleme ve abonelik arasında bir fark yoktur, ürün ödemesi ise detayları aşağıda verileceğe üzere farklı bir akışa sahiptir: • PRODUCT à Ürün • LISTING à Listeleme • SUBSCRIPTION à Abonelik Ödeme sepetinde yer alan ürünler ise Sanal veya Fiziksel ürün olabilir: • VIRTUAL • PHYSICAL à Sanal Ürün à Fiziksel Ürün . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com Sanal (VIRTUAL) tipteki ürünler için teslimat adresi (ShippingAddress) gönderilmesi opsiyoneldir. Sepette yer alan ürünlerin bir tanesi bile Fiziksel (PHYSICAL) ürün ise, teslimat adresi (ShippingAddress) gönderilmesi zorunludur. Pazaryeri/Marketplaces İş Modelinde Olan Üye İşyerleri İçin; • Listeleme (LISTING) ve Abonelik (SUBSCRIPTION) tipindeki ödemeler için sepet kırılımındaki ürünlerin tipi Sanal (VIRTUAL) olmalıdır. • Ürün (PRODUCT) tipindeki ödemeler için sepet kırılımındaki ürünlerin tipi Sanal (VIRTUAL) veya Fiziksel (PHYSICAL) olabilir. • Ürün (PRODUCT) tipindeki ödeme için; alt üye işyeri tutarı (subMerchantPrice) ve alt üye işyeri anahtarı (subMerchantKey) gönderilmelidir. • Ürün (PRODUCT) tipindeki ödemeler için escrow işleyişi uygulanır ve üye işyerinden ürüne onay verilinceye dek para, korumalı havuz hesapta beklemede tutulur. • Listeleme veya Abonelik ödemesi geçtikten sonra üye işyeri para transfer periyod ayarına göre ilgili tutarlar üye işyerine gönderilir. • Ürün ödemesi geçtikten sonra, üye işyeri ürüne onay verdikten sonra, para transfer periyod ayarına göre ilgili tutarlar üye işyerine gönderilir Pazaryeri/Marketplaces İş Modelinde OlMAyan Üye İşyerleri İçin; • Listeleme (LISTING) ve Abonelik (SUBSCRIPTION) tipindeki ödemeler için sepet kırılımındaki ürünlerin tipi Sanal (VIRTUAL) olmalıdır. • Ürün (PRODUCT) tipindeki ödemeler için sepet kırılımındaki ürünlerin tipi Sanal (VIRTUAL) veya Fiziksel (PHYSICAL) olabilir. • Ürün (PRODUCT) tipindeki ödeme için; alt üye işyeri tutarı (subMerchantPrice) ve alt üye işyeri anahtarı (subMerchantKey) gönderilmez. • Ürün (PRODUCT) tipindeki ödemeler için escrow işleyişi uygulanmaz • Ürün, Listeleme veya Abonelik ödemesi geçtikten sonra üye işyeri para transfer periyod ayarına göre ilgili tutarlar üye işyerine gönderilir. Örnek – Pazaryeri İş Modeli Ürün Ödemesi: Bir alıcı; 100 TL’lik bir sepet oluşturup 3 farklı satıcıdan, örneğin . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com § A satıcısından 30 TL’lik, § B satıcısından 50 TL’lik ve § C satıcısından 20 TL’lik 3 farklı ürün alabilir. Üye işyeri, ödeme esnasında kart bilgileri, adres bilgileri, ödeme bilgilerine ek olarak temelde; • sepete ait tutarı (price), • indirim vade farkı vs hesaplanmış POS’dan geçecek nihai tutarı (paidPrice), • sepetteki her bir ürün için; o ürün fiyatını (price) o bu ürün için alt üye işyerine gönderilecek tutarı (subMerchantPrice) o alt üye işyeri anahtarını (subMerchantKey) iletir Yukarıdaki örneğe istinaden; • ... • price = 100 • paidPrice=110 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com o basketItem 1 § price=30 § subMerchantPrice=27 § subMerchantKey=G2FCFycIof0paTP6687dOoch9Tc= o basketItem 2 § price=50 § subMerchantPrice=42 o subMerchantKey=D9V/MqIRitUzA4dutL+nCBvnWfs= o basketItem 3 § price=20 § subMerchantPrice=18 § subMerchantKey=D9V/MqIRitUzA4dutL+nCBvnWfs= • ... Bir ödeme gerçekleştiğinde dönüş değerlerinde; • ödemeye istinaden paymentId, • sepetteki her bir kırılıma istinaden paymentTransactionId yer alır. Üye işyeri bu iki değeri sisteminde saklamalıdır zira; • paymentId: ödeme iptali ve iyzico ile olan iletişimde kullanılmaktadır • transactionId: ödeme kırılım iadesi, ürün onayı, ürün onay iptali ve iyzico ile olan iletişimde kullanılmaktadır 3.3.1.2 Ödeme İstek ve Dönüş Parametreleri Veri Sözlüğü Tüm ödemeler için aşağıdaki tabloda yer alan input parametreleri geçerlidir: Input İsmi Veri Tipi price Decimal paidPrice Decimal installment Integer basketId String paymentChannel String paymentGroup String cardNumber String . Zorunlu Açıklama Evet Evet Ödeme sepet tutarı. Kırılım tutarlar toplamı sepet tutarına eşit olmalı İndirim vade farkı vs hesaplanmış POS’dan geçecek nihai tutar Taksit bilgisi, tek çekim için 1 gönderilmelidir. Geçerli değerler: 1, 2, 3, 6, 9 Üye işyeri sepet id’si Ödeme kanalı. Geçerli değerler enum içinde sunulmaktadır: WEB, MOBILE, MOBILE_WEB, MOBILE_IOS, MOBILE_ANDROID, MOBILE_WINDOWS, MOBILE_TABLET, MOBILE_PHONE Ödeme grubu, varsayılan PRODUCT. Geçerli değerler enum içinde sunulmaktadır: PRODUCT, LISTING, SUBSCRIPTION Ödemenin alınacağı kart numarası. Eğer saklı kart ile ödeme Evet Hayır Hayır Hayır Evet ** iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com expireYear String Evet ** expireMonth String Evet ** cvc String Evet ** cardHolderName String Evet ** callbackUrl String registerCard Integer cardAlias String cardUserKey String Hayır ** Hayır Hayır Hayır ** cardToken id (Buyer) name (Buyer) surname (Buyer) identityNumber (Buyer) city (Buyer) country (Buyer) String String String String String String String Hayır ** Evet Evet Evet Evet Evet Evet email (Buyer) gsmNumber (Buyer) ip (Buyer) registrationAddress (Buyer) zipCode (Buyer) String String String Evet Hayır Evet String String Evet Hayır registrationDate (Buyer) String Hayır lastLoginDate (Buyer) contactName (BillingAddress) city (BillingAddress) country (BillingAddress) address (BillingAddress) zipCode (BillingAddress) contactName (ShippingAddress) Üye işyeri tarafındaki alıcıya ait kayıt adresi Üye işyeri tarafındaki alıcıya ait posta kodu Üye işyeri tarafındaki alıcıya ait kayıt tarihi. Tarih formatı 2015-­09-­17 23:45:06 şeklinde olmalıdır Üye işyeri tarafındaki alıcıya ait son giriş tarihi. Tarih formatı 2015-­09-­
17 23:45:06 şeklinde olmalıdır String Hayır String String String String String Evet Evet Evet Evet Hayır String Evet ** String Evet ** String Evet ** String Evet ** Üye işyeri tarafındaki fatura adresi ad soyad bilgisi Üye işyeri tarafındaki fatura adresi şehir bilgisi Üye işyeri tarafındaki fatura adresi ülke bilgisi Üye işyeri tarafındaki fatura adresi Üye işyeri tarafındaki fatura adresi posta kodu Üye işyeri tarafındaki teslimat adresi ad soyad bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur Üye işyeri tarafındaki teslimat adresi şehir bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur Üye işyeri tarafındaki teslimat adresi ülke bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur Üye işyeri tarafındaki teslimat adresi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur String String String Hayır Evet Evet Üye işyeri tarafındaki teslimat adresi posta kodu Üye işyeri tarafındaki sepetteki ürüne ait id Üye işyeri tarafındaki sepetteki ürüne ait tip. Geçerli enum değerler: city (ShippingAddress) country (ShippingAddress) address (ShippingAddress) zipCode (ShippingAddress) id (BasketItem) itemType (BasketItem) yapılmıyorsa zorunludur Ödemenin alınacağı kart son kullanma tarihi yılı. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur Ödemenin alınacağı kart son kullanma tarihi ayı. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur Ödemenin alınacağı kartın güvenlik kodu. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur, saklı kartla ödeme yapılırken gönderilirse aynen bankaya iletilir Ödemenin alınacağı kart sahibinin adı soyadı. Eğer saklı kart ile ödeme yapılmıyorsa zorunludur 3D Secure ödeme akışında üye işyerine başarılı ve hatalı sonucu bildirmek üzere alınan URL adresi. Sadece 3D Secure ödemenin init3DS metodunda zorunludur. Ödeme esnasında kartın kaydedilip kaydedilmeyeceğini belirleyen parametre. Varsayılan değeri 0 olup, geçerli değerler 0 ve 1’dir. Ödeme esnasında kartın kaydedildiği durumlarda (registerCard=1), karta verilen rumuzu simgeler Saklı kart ile ödemede zorunlu olup, kart saklandığı esnada dönen kartın sahibine özel kullanıcı anahtarı Saklı kart ile ödemede zorunlu olup, kart saklandığı esnada dönen karta ait anahtar Üye işyeri tarafındaki alıcıya ait id Üye işyeri tarafındaki alıcıya ait ad Üye işyeri tarafındaki alıcıya ait soyad Üye işyeri tarafındaki alıcıya ait kimlik (TCKN) numarası Üye işyeri tarafındaki alıcıya ait şehir bilgisi Üye işyeri tarafındaki alıcıya ait ülke bilgisi Üye işyeri tarafındaki alıcıya ait e-­posta bilgisi. E-­posta adresi alıcıya ait geçerli ve erişilebilir bir adres olmalıdır Üye işyeri tarafındaki alıcıya ait GSM numarası Üye işyeri tarafındaki alıcıya ait IP adresi . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com name (BasketItem) String category1 (BasketItem) String category2 (BasketItem) String price (BasketItem) Decimal subMerchantPrice (BasketItem) Decimal subMerchantKey (BasketItem) String Evet Evet Hayır Evet Evet ** Evet ** PHYSICAL ve VIRTUAL Üye işyeri tarafındaki sepetteki ürüne ait isim Üye işyeri tarafındaki sepetteki ürüne ait kategori 1 Üye işyeri tarafındaki sepetteki ürüne ait kategori 2 Üye işyeri tarafındaki sepetteki ürüne ait tutar. 0 ve 0’dan küçük olamaz, tutarlar toplamı sepet tutarına (price) eşit olmalıdır Üye işyeri tarafındaki sepetteki ürüne istinaden alt üye işyerine gönderilecek olan tutar. 0’dan küçük ve sepet ürün tutarından [price (BasketItem)] büyük olamaz Pazaryeri iş modeli için geçerli ve zorunludur Üye işyeri tarafındaki sepetteki ürüne istinaden alt üye işyerine ait anahtar. Pazaryeri iş modeli için geçerli ve zorunludur Tüm ödemeler için aşağıdaki tabloda yer alan output parametreleri geçerlidir: Output İsmi Veri Tipi Açıklama paymentId String price Decimal paidPrice Decimal installment Integer basketId String binNumber String cardAssociation String cardFamily String cardType String cardUserKey String cardToken String fraudStatus Integer iyziCommissionFee Decimal iyziCommissionRateAmount Decimal merchantCommissionRate Decimal merchantCommissionRateAmount Decimal paymentTransactionId (ItemTransactions) String itemId (ItemTransactions) String price Decimal . Ödemeye ait id, üye işyeri tarafından mutlaka saklanmalıdır. Ödemenin iptali ve iyzico ile iletişimde kullanılır Ödeme sepet tutarı. Kırılım tutarlar toplamı sepet tutarına eşit olmalı İndirim vade farkı vs hesaplanmış POS’dan geçen, tahsil edilen, nihai tutar Ödemenin taksit bilgisi, tek çekim için 1 döner. Geçerli değerler: 1, 2, 3, 6, 9 Üye işyeri taradından gönderilen sepet id’si Ödeme yapılan kartın ilk 6 hanesi Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu kuruluş. Geçerli değerler: VISA, MASTER_CARD, AMERICAN_EXPRESS Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu aile. Geçerli değerler: Bonus, Axess, World, Maximum, Paraf, CardFinans, AsyaCard, ... Eğer ödeme yapılan kart yerel bir kart ise, kartın ait olduğu tipi. Geçerli değerler: CREDIT_CARD, DEBIT_CARD, PREPAID_CARD Eğer ödeme esnasında kartı kaydetme parametresi (registerCard=1) gönderilmişse veya saklı bir kart ile ödeme yapılıyorsa, o kartın sahibine özel kullanıcı anahtarı Kart saklandığı esnada dönen karta ait anahtar Ödeme işleminin fraud filtrelerine göre durumu. Eğer ödemenin fraud risk skoru düşük ise ödemeye anında onay verilir bu durumda 1 değeri döner. Eğer fraud risk skoru yüksek ise ödeme işlemi reddedilir ve -­1 döner. Eğer ödeme işlemi daha sonradan incelenip karar verilecekse 0 döner. Geçerli değerler: 0, -­1 ve 1. Üye işyeri sadece 1 olan işlemlerde ürünü kargoya vermelidir, 0 olan işlemler için bilgilendirme beklemelidir. Ödemeye ait iyzico işlem ücreti Ödemeye ait iyzico işlem komisyon tutarı Üye işyerinin uyguladığı vade/komisyon oranı. Örneğin price=100, paidPrice=110 ise üye işyeri vade/komisyon oranı %10’dur.Bilgi amaçlıdır Üye işyerinin uyguladığı vade/komisyon tutarı. Örneğin price=100, paidPrice=110 ise üye işyeri vade/komisyon tutarı 10’dur.Bilgi amaçlıdır Ödeme kırılımına ait id, üye işyeri tarafından mutlaka saklanmalıdır. Ödeme kırılımının iadesi, onayı, onay geri çekmesi ve iyzico ile iletişimde kullanılır. Tercihen itemId ile ilişkili bir şekilde tutulmalıdır Üye işyeri tarafından iletilen, sepetteki ürüne ait id Üye işyeri tarafındaki sepetteki ürüne ait tutar iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com (ItemTransactions) paidPrice (ItemTransactions) Decimal transactionStatus (ItemTransactions) String Tahsilat tutarının kırılım bazındaki dağılımı. Üye işyeri tarafından mutlaka saklanmalıdır Ödeme kırılımının durumu. Ödeme fraud kontrolünde ise 0 değeri döner, bu durumda fraudStatus değeri de 0’dır. Ödeme, fraud kontrolünden sonra reddedilirse -­1 döner. Pazaryeri modelinde ürüne onay verilene dek bu değer 1 olarak döner. Pazaryeri modelinde ürüne onay verilmişse bu değer 2 olur. Geçerli değerler: 0, -­1, 1, 2 Kırılım bazında üye işyeri blokaj oranı. iyzico – üye işyeri anlaşmasına göre, üye işyerine işlem bazında blokaj uygulayabilir. Bu blokaj üye işyeri fraud riskini önlemek içindir, blokaj süresi boyunca para iyzico’da tutulur, bu süre sonrası üye işyerine gönderilir. Kırılım bazında üye işyeri blokaj tutarının, üye işyerine yansıyan rakamı. Blokaj tutarı mümkün olduğunca üye işyerine yansıtılır. Eğer blokaj tutarı, üye işyeri tutarından daha büyükse bu durumda alt üye işyerine de yansıtılır. Kırılım bazında üye işyeri blokaj tutarının, alt üye işyerine yansıyan rakamı. İşlem bazında blokaj çözülme tarihi. yyyy-­MM-­dd HH:mm:ss formatındadır, örneğin 2015-­10-­19 14:36:52 Decimal iyico işlem ücretinin kırılım bazında dağılmış tutarı Decimal iyico işlem komisyon tutarının kırılım bazında dağılmış tutarı Üye işyerinin uyguladığı vade/komisyon oranının kırılım bazında dağılmış oranı Üye işyerinin uyguladığı vade/komisyon tutarıın, kırılım bazında dağılmış tutarı Üye işyeri tarafındaki sepetteki ürüne istinaden alt üye işyerine ait anahtar. Pazaryeri iş modeli için geçerlidir Üye işyeri tarafındaki sepetteki ürüne istinaden alt üye işyerine gönderilecek olan tutar. Pazaryeri iş modeli için geçerlidir Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra üye işyerine gönderilecek tutar. Bu kırılım için, iyzico işlem ücreti, komisyon tutarı ve blokajlar düşüldükten sonra alt üye işyerine gönderilecek tutar. Pazaryeri iş modeli için geçerlidir Bu kırılım için, alt üye işyeri gönderim oranı. Örneğin 50 TL’lik bir ürünün 45 TL’si subMerchantPrice olarak gönderilmişse, bu durumda subMerchantPayoutRate 90 döner, yani %90. Pazaryeri iş modeli için geçerlidir Integer blockageRate (ItemTransactions) Decimal blockageRateAmountMerchant (ItemTransactions) Decimal blockageRateAmountSubMerchant (ItemTransactions) blockageResolvedDate (ItemTransactions) iyziCommissionFee (ItemTransactions) iyziCommissionRateAmount (ItemTransactions) merchantCommissionRate (ItemTransactions) merchantCommissionRateAmount (ItemTransactions) subMerchantKey (ItemTransactions) subMerchantPrice (ItemTransactions) merchantPayoutAmount (ItemTransactions) subMerchantPayoutAmount (ItemTransactions) Decimal Decimal Decimal String Decimal Decimal Decimal subMerchantPayoutRate (ItemTransactions) Decimal 3.3.1.3 3D Secure Olmayan Ödeme 3.3.1.3.1 Pazaryeri/Marketplaces İş Modelinde Olan Üye İşyerleri İçin Ürün Ödemesi; Aşağıdaki örnekte, 3 üründen oluşan 100 TL tutarında bir sepet 3 taksitli, 110 TL olarak ödeniyor. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün olduğu için teslimat adresi bilgisi gönderiliyor. Sepette yer alan her bir ürün farklı alt üye işyerine ait ve sırasıyla 30 TL’lik ürün onaylandığında 27 TL’si (üye işyeri satış komisyonu bu ürün için %10), 50 TL’lik ürün onaylandığında 42 TL’si (üye . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com işyeri satış komisyonu bu ürün için %16) ve 20 TL’lik ürün onaylandığında 18 TL’si (üye işyeri satış komisyonu bu ürün için %10) alt üye işyerine gönderilecektir. • API Servis (Endpoint) İsmi: /payment/iyzipos/auth/ecom • Method: HTTP POST Örnek Java İstek Kodu: EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); EcomPaymentAuthRequest request = new EcomPaymentAuthRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPrice(new BigDecimal("100")); request.setPaidPrice(new BigDecimal("110")); request.setInstallment(3); request.setBasketId("B67832"); request.setPaymentChannel(PaymentChannelRequestType.WEB.name()); request.setPaymentGroup(PaymentGroupRequestType.PRODUCT.name()); EcomPaymentCardDto paymentCard = new EcomPaymentCardDto(); paymentCard.setCardHolderName("Sabri Onur Tüzün"); paymentCard.setCardNumber("554960**********"); paymentCard.setExpireMonth("**"); paymentCard.setExpireYear("20**"); paymentCard.setCvc("***"); paymentCard.setRegisterCard(0); request.setPaymentCard(paymentCard); EcomPaymentBuyerDto buyer = new EcomPaymentBuyerDto(); buyer.setId("BY789"); buyer.setName("Sabri Onur"); buyer.setSurname("Tüzün"); buyer.setGsmNumber("+905350000000"); buyer.setEmail("[email protected]"); buyer.setIdentityNumber("74300864791"); buyer.setLastLoginDate("2015-­‐10-­‐05 12:43:35"); buyer.setRegistrationDate("2013-­‐04-­‐21 15:12:09"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com buyer.setRegistrationAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy"); buyer.setIp("85.34.78.112"); buyer.setCity("İstanbul"); buyer.setCountry("Türkiye"); buyer.setZipCode("34732"); request.setBuyer(buyer); EcomPaymentShippingAddressDto shippingAddress = new EcomPaymentShippingAddressDto(); shippingAddress.setContactName("Hakan Erdoğan"); shippingAddress.setCity("İstanbul"); shippingAddress.setCountry("Türkiye"); shippingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); shippingAddress.setZipCode("34742"); request.setShippingAddress(shippingAddress); EcomPaymentBillingAddressDto billingAddress = new EcomPaymentBillingAddressDto(); billingAddress.setContactName("Hakan Erdoğan"); billingAddress.setCity("İstanbul"); billingAddress.setCountry("Türkiye"); billingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); billingAddress.setZipCode("34742"); request.setBillingAddress(billingAddress); List<EcomPaymentBasketItemDto> basketItems = new ArrayList<EcomPaymentBasketItemDto>(); EcomPaymentBasketItemDto basketItem1 = new EcomPaymentBasketItemDto(); basketItem1.setId("BI101"); basketItem1.setName("ABC Marka Kolye"); basketItem1.setCategory1("Giyim"); basketItem1.setCategory2("Aksesuar"); basketItem1.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem1.setPrice(new BigDecimal("30")); basketItem1.setSubMerchantKey("l4FCFycIof0paTP6687dOoch9Po="); basketItem1.setSubMerchantPrice(new BigDecimal("27")); basketItems.add(basketItem1); EcomPaymentBasketItemDto basketItem2 = new EcomPaymentBasketItemDto(); basketItem2.setId("BI102"); basketItem2.setName("XYZ Oyun Kodu"); basketItem2.setCategory1("Oyun"); basketItem2.setCategory2("Online Oyun Kodları"); basketItem2.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem2.setPrice(new BigDecimal("50")); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com basketItem2.setSubMerchantKey("lcB6bA9DWEF5e8yGJI0uIEcW1kw="); basketItem2.setSubMerchantPrice(new BigDecimal("42")); basketItems.add(basketItem2); EcomPaymentBasketItemDto basketItem3 = new EcomPaymentBasketItemDto(); basketItem3.setId("BI103"); basketItem3.setName("EDC Marka Usb"); basketItem3.setCategory1("Elektronik"); basketItem3.setCategory2("Usb / Cable"); basketItem3.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem3.setPrice(new BigDecimal("20")); basketItem3.setSubMerchantKey("D9V/MqIRitUzA4dutL+nCBvnWfs="); basketItem3.setSubMerchantPrice(new BigDecimal("18")); basketItems.add(basketItem3); request.setBasketItems(basketItems); EcomPaymentAuthResponse response = client.auth(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("price=" + response.getPrice()); System.out.println("paidPrice=" + response.getPaidPrice()); System.out.println("installment=" + response.getInstallment()); System.out.println("basketId=" + response.getBasketId()); System.out.println("binNumber=" + response.getBinNumber()); System.out.println("cardAssociation=" + response.getCardAssociation()); System.out.println("cardFamily=" + response.getCardFamily()); System.out.println("cardType=" + response.getCardType()); System.out.println("cardToken=" + response.getCardToken()); System.out.println("cardUserKey=" + response.getCardUserKey()); System.out.println("fraudStatus=" + response.getFraudStatus()); System.out.println("iyziCommissionFee=" + response.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + response.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + response.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + response.getMerchantCommissionRateAmount()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com List<EcomPaymentItemTransactionDto> itemTransactions = response.getItemTransactions(); if (itemTransactions != null && !itemTransactions.isEmpty()) { for (EcomPaymentItemTransactionDto itemTransaction : itemTransactions) { System.out.println("paymentTransactionId=" + itemTransaction.getPaymentTransactionId()); System.out.println("itemId=" + itemTransaction.getItemId()); System.out.println("paidPrice=" + itemTransaction.getPaidPrice()); System.out.println("price=" + itemTransaction.getPrice()); System.out.println("transactionStatus=" + itemTransaction.getTransactionStatus()); System.out.println("blockageRate=" + itemTransaction.getBlockageRate()); System.out.println("blockageRateAmountMerchant=" + itemTransaction.getBlockageRateAmountMerchant()); System.out.println("blockageRateAmountSubMerchant=" + itemTransaction.getBlockageRateAmountSubMerchant()); System.out.println("blockageResolvedDate=" + itemTransaction.getBlockageResolvedDate()); System.out.println("iyziCommissionFee=" + itemTransaction.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + itemTransaction.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + itemTransaction.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + itemTransaction.getMerchantCommissionRateAmount()); System.out.println("merchantPayoutAmount=" + itemTransaction.getMerchantPayoutAmount()); System.out.println("subMerchantKey=" + itemTransaction.getSubMerchantKey()); System.out.println("subMerchantPayoutAmount=" + itemTransaction.getSubMerchantPayoutAmount()); System.out.println("subMerchantPayoutRate=" + itemTransaction.getSubMerchantPayoutRate()); System.out.println("subMerchantPrice=" + itemTransaction.getSubMerchantPrice()); } }
Aşağıdaki örnekte, 3 üründen oluşan 100 TL tutarında bir sepet 3 taksitli, 110 TL olarak ödeniyor. Örnek Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com systemTime=1444142311338 paymentId=2744 price=100 paidPrice=110 installment=3 basketId=B67832 binNumber=554960 cardAssociation=MASTER_CARD cardFamily=Bonus cardType=CREDIT_CARD cardToken=null cardUserKey=null fraudStatus=1 iyziCommissionFee=0.25000000 iyziCommissionRateAmount=4.51000000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=10 paymentTransactionId=1307 itemId=BI101 paidPrice=33.00000000 price=30 transactionStatus=1 blockageRate=7.00000000 blockageRateAmountMerchant=2.31000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐16 17:38:31 iyziCommissionFee=0.07500000 iyziCommissionRateAmount=1.35300000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=3.00000000 merchantPayoutAmount=2.26200000 subMerchantKey=l4FCFycIof0paTP6687dOoch9Po= subMerchantPayoutAmount=27 subMerchantPayoutRate=90.00000000 subMerchantPrice=27 paymentTransactionId=1308 itemId=BI102 paidPrice=55.00000000 price=50 transactionStatus=1 blockageRate=7.00000000 blockageRateAmountMerchant=3.85000000 blockageRateAmountSubMerchant=0 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com blockageResolvedDate=2015-­‐10-­‐16 17:38:31 iyziCommissionFee=0.12500000 iyziCommissionRateAmount=2.25500000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=5.00000000 merchantPayoutAmount=6.77000000 subMerchantKey=lcB6bA9DWEF5e8yGJI0uIEcW1kw= subMerchantPayoutAmount=42 subMerchantPayoutRate=84.00000000 subMerchantPrice=42 paymentTransactionId=1309 itemId=BI103 paidPrice=22.00000000 price=20 transactionStatus=1 blockageRate=7.00000000 blockageRateAmountMerchant=1.54000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐16 17:38:31 iyziCommissionFee=0.05000000 iyziCommissionRateAmount=0.90200000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=2.00000000 merchantPayoutAmount=1.50800000 subMerchantKey=D9V/MqIRitUzA4dutL+nCBvnWfs= subMerchantPayoutAmount=18 subMerchantPayoutRate=90.00000000 subMerchantPrice=18 Örnek Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "price" : 100, "paidPrice" : 110, "installment" : 3, "paymentChannel" : "WEB", "basketId" : "B67832", "paymentGroup" : "PRODUCT", "paymentCard" : { . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "cardHolderName" : "Sabri Onur Tüzün", "cardNumber" : “554960**********", "expireYear" : “20**", "expireMonth" : “**", "cvc" : “***", "registerCard" : 0 }, "buyer" : { "id" : "BY789", "name" : "Sabri Onur", "surname" : "Tüzün", "identityNumber" : "74300864791", "email" : "[email protected]", "gsmNumber" : "+905350000000", "registrationDate" : "2013-­‐04-­‐21 15:12:09", "lastLoginDate" : "2015-­‐10-­‐05 12:43:35", "registrationAddress" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy", "city" : "İstanbul", "country" : "Türkiye", "zipCode" : "34732", "ip" : "85.34.78.112" }, "shippingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "billingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "basketItems" : [ { "id" : "BI101", "price" : 30, "name" : "ABC Marka Kolye", "category1" : "Giyim", "category2" : "Aksesuar", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "itemType" : "PHYSICAL", "subMerchantKey" : "l4FCFycIof0paTP6687dOoch9Po=", "subMerchantPrice" : 27 }, { "id" : "BI102", "price" : 50, "name" : "XYZ Oyun Kodu", "category1" : "Oyun", "category2" : "Online Oyun Kodları", "itemType" : "VIRTUAL", "subMerchantKey" : "lcB6bA9DWEF5e8yGJI0uIEcW1kw=", "subMerchantPrice" : 42 }, { "id" : "BI103", "price" : 20, "name" : "EDC Marka Usb", "category1" : "Elektronik", "category2" : "Usb / Cable", "itemType" : "PHYSICAL", "subMerchantKey" : "D9V/MqIRitUzA4dutL+nCBvnWfs=", "subMerchantPrice" : 18 } ] } Örnek Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1444142311338, "conversationId" : "123456789", "price" : 100, "paidPrice" : 110, "installment" : 3, "paymentId" : "2744", "fraudStatus" : 1, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 10, "iyziCommissionRateAmount" : 4.51000000, "iyziCommissionFee" : 0.25000000, "cardType" : "CREDIT_CARD", "cardAssociation" : "MASTER_CARD", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "cardFamily" : "Bonus", "binNumber" : "554960", "basketId" : "B67832", "itemTransactions" : [ { "itemId" : "BI101", "paymentTransactionId" : "1307", "transactionStatus" : 1, "price" : 30, "paidPrice" : 33.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 3.00000000, "iyziCommissionRateAmount" : 1.35300000, "iyziCommissionFee" : 0.07500000, "blockageRate" : 7.00000000, "blockageRateAmountMerchant" : 2.31000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐16 17:38:31", "subMerchantKey" : "l4FCFycIof0paTP6687dOoch9Po=", "subMerchantPrice" : 27, "subMerchantPayoutRate" : 90.00000000, "subMerchantPayoutAmount" : 27, "merchantPayoutAmount" : 2.26200000 }, { "itemId" : "BI102", "paymentTransactionId" : "1308", "transactionStatus" : 1, "price" : 50, "paidPrice" : 55.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 5.00000000, "iyziCommissionRateAmount" : 2.25500000, "iyziCommissionFee" : 0.12500000, "blockageRate" : 7.00000000, "blockageRateAmountMerchant" : 3.85000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐16 17:38:31", "subMerchantKey" : "lcB6bA9DWEF5e8yGJI0uIEcW1kw=", "subMerchantPrice" : 42, "subMerchantPayoutRate" : 84.00000000, "subMerchantPayoutAmount" : 42, "merchantPayoutAmount" : 6.77000000 }, { "itemId" : "BI103", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "paymentTransactionId" : "1309", "transactionStatus" : 1, "price" : 20, "paidPrice" : 22.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 2.00000000, "iyziCommissionRateAmount" : 0.90200000, "iyziCommissionFee" : 0.05000000, "blockageRate" : 7.00000000, "blockageRateAmountMerchant" : 1.54000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐16 17:38:31", "subMerchantKey" : "D9V/MqIRitUzA4dutL+nCBvnWfs=", "subMerchantPrice" : 18, "subMerchantPayoutRate" : 90.00000000, "subMerchantPayoutAmount" : 18, "merchantPayoutAmount" : 1.50800000 } ] } 3.3.1.3.2 Listeleme veya Abonelik Ödemesi (Pazaryeri/Marketplaces ve Pazaryeri Olmayan İş Modelindeki Üye İşyerleri İçin Aynı); Bir üye işyeri ister pazaryeri modelinde isterse standart e-­‐ticaret modelinde olsun, dilerse escrow’a tabi olmayacak listeleme veya abonelik ödemeleri yapabilir. Örneğin pazaryerinde satış yapan alt üye işyerlerinin aylık mağaza/dükkan abonelik ödemesi gibi. Burada alıcı ve ürün olmadığı için escrow döngüsü yoktur. Aşağıdaki örnekte toplamda 100 TL’lik 3 adet abonelik ödemesi, 3 taksitle 110 TL olacak şekilde ödeniyor. Hatta sepette yer alan ilk abonelik ödemesi aynı zamanda fiziksel bir kargo gerektirdiği için, tipi (BasketItemType) fiziksel ürün (PHYSICAL) olarak işaretlenmiştir, bu nedenle de teslimat adresi (ShippingAddress) gönderilmiştir. • API Servis (Endpoint) İsmi: /payment/iyzipos/auth/ecom • Method: HTTP POST Örnek Java İstek Kodu: . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); EcomPaymentAuthRequest request = new EcomPaymentAuthRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPrice(new BigDecimal("100")); request.setPaidPrice(new BigDecimal("110")); request.setInstallment(3); request.setBasketId("B67832"); request.setPaymentChannel(PaymentChannelRequestType.WEB.name()); request.setPaymentGroup(PaymentGroupRequestType.SUBSCRIPTION.name()); EcomPaymentCardDto paymentCard = new EcomPaymentCardDto(); paymentCard.setCardHolderName("Sabri Onur Tüzün"); paymentCard.setCardNumber("554960******7015"); paymentCard.setExpireMonth("**"); paymentCard.setExpireYear("20**"); paymentCard.setCvc("***"); paymentCard.setRegisterCard(0); request.setPaymentCard(paymentCard); EcomPaymentBuyerDto buyer = new EcomPaymentBuyerDto(); buyer.setId("BY789"); buyer.setName("Sabri Onur"); buyer.setSurname("Tüzün"); buyer.setGsmNumber("+905350000000"); buyer.setEmail("[email protected]"); buyer.setIdentityNumber("74300864791"); buyer.setLastLoginDate("2015-­‐10-­‐05 12:43:35"); buyer.setRegistrationDate("2013-­‐04-­‐21 15:12:09"); buyer.setRegistrationAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy"); buyer.setIp("85.34.78.112"); buyer.setCity("İstanbul"); buyer.setCountry("Türkiye"); buyer.setZipCode("34732"); request.setBuyer(buyer); EcomPaymentShippingAddressDto shippingAddress = new EcomPaymentShippingAddressDto(); shippingAddress.setContactName("Hakan Erdoğan"); shippingAddress.setCity("İstanbul"); shippingAddress.setCountry("Türkiye"); shippingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com shippingAddress.setZipCode("34742"); request.setShippingAddress(shippingAddress); EcomPaymentBillingAddressDto billingAddress = new EcomPaymentBillingAddressDto(); billingAddress.setContactName("Hakan Erdoğan"); billingAddress.setCity("İstanbul"); billingAddress.setCountry("Türkiye"); billingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); billingAddress.setZipCode("34742"); request.setBillingAddress(billingAddress); List<EcomPaymentBasketItemDto> basketItems = new ArrayList<EcomPaymentBasketItemDto>(); EcomPaymentBasketItemDto basketItem1 = new EcomPaymentBasketItemDto(); basketItem1.setId("BI101"); basketItem1.setName("Dükkan aboneliği ve katalog"); basketItem1.setCategory1("Abonelik"); basketItem1.setCategory2("Dükkan"); basketItem1.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem1.setPrice(new BigDecimal("30")); basketItems.add(basketItem1); EcomPaymentBasketItemDto basketItem2 = new EcomPaymentBasketItemDto(); basketItem2.setId("BI102"); basketItem2.setName("Listeleme aboneliği"); basketItem2.setCategory1("Abonelik"); basketItem2.setCategory2("Listeleme"); basketItem2.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem2.setPrice(new BigDecimal("50")); basketItems.add(basketItem2); EcomPaymentBasketItemDto basketItem3 = new EcomPaymentBasketItemDto(); basketItem3.setId("BI103"); basketItem3.setName("Servis aboneliği"); basketItem3.setCategory1("Abonelik"); basketItem3.setCategory2("Servis"); basketItem3.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem3.setPrice(new BigDecimal("20")); basketItems.add(basketItem3); request.setBasketItems(basketItems); EcomPaymentAuthResponse response = client.auth(request); System.out.println("conversationId=" + response.getConversationId()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("price=" + response.getPrice()); System.out.println("paidPrice=" + response.getPaidPrice()); System.out.println("installment=" + response.getInstallment()); System.out.println("basketId=" + response.getBasketId()); System.out.println("binNumber=" + response.getBinNumber()); System.out.println("cardAssociation=" + response.getCardAssociation()); System.out.println("cardFamily=" + response.getCardFamily()); System.out.println("cardType=" + response.getCardType()); System.out.println("cardToken=" + response.getCardToken()); System.out.println("cardUserKey=" + response.getCardUserKey()); System.out.println("fraudStatus=" + response.getFraudStatus()); System.out.println("iyziCommissionFee=" + response.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + response.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + response.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + response.getMerchantCommissionRateAmount()); List<EcomPaymentItemTransactionDto> itemTransactions = response.getItemTransactions(); if (itemTransactions != null && !itemTransactions.isEmpty()) { for (EcomPaymentItemTransactionDto itemTransaction : itemTransactions) { System.out.println("paymentTransactionId=" + itemTransaction.getPaymentTransactionId()); System.out.println("itemId=" + itemTransaction.getItemId()); System.out.println("paidPrice=" + itemTransaction.getPaidPrice()); System.out.println("price=" + itemTransaction.getPrice()); System.out.println("transactionStatus=" + itemTransaction.getTransactionStatus()); System.out.println("blockageRate=" + itemTransaction.getBlockageRate()); System.out.println("blockageRateAmountMerchant=" + itemTransaction.getBlockageRateAmountMerchant()); System.out.println("blockageRateAmountSubMerchant=" + itemTransaction.getBlockageRateAmountSubMerchant()); System.out.println("blockageResolvedDate=" + itemTransaction.getBlockageResolvedDate()); System.out.println("iyziCommissionFee=" + itemTransaction.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + itemTransaction.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com itemTransaction.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + itemTransaction.getMerchantCommissionRateAmount()); System.out.println("merchantPayoutAmount=" + itemTransaction.getMerchantPayoutAmount()); } } Örnek Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1444735597648 paymentId=667906 price=100 paidPrice=110 installment=3 basketId=B67832 binNumber=554960 cardAssociation=MASTER_CARD cardFamily=Bonus cardType=CREDIT_CARD cardToken=null cardUserKey=null fraudStatus=1 iyziCommissionFee=0.25000000 iyziCommissionRateAmount=4.51000000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=10 paymentTransactionId=506591 itemId=BI101 paidPrice=33.00000000 price=30 transactionStatus=2 blockageRate=10.00000000 blockageRateAmountMerchant=3.30000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐28 14:26:37 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com iyziCommissionFee=0.07500000 iyziCommissionRateAmount=1.35300000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=3.00000000 merchantPayoutAmount=28.27200000 paymentTransactionId=506596 itemId=BI102 paidPrice=55.00000000 price=50 transactionStatus=2 blockageRate=10.00000000 blockageRateAmountMerchant=5.50000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐28 14:26:37 iyziCommissionFee=0.12500000 iyziCommissionRateAmount=2.25500000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=5.00000000 merchantPayoutAmount=47.12000000 paymentTransactionId=506601 itemId=BI103 paidPrice=22.00000000 price=20 transactionStatus=2 blockageRate=10.00000000 blockageRateAmountMerchant=2.20000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐28 14:26:37 iyziCommissionFee=0.05000000 iyziCommissionRateAmount=0.90200000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=2.00000000 merchantPayoutAmount=18.84800000 Örnek Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "price" : 100, "paidPrice" : 110, . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "installment" : 3, "paymentChannel" : "WEB", "basketId" : "B67832", "paymentGroup" : "SUBSCRIPTION", "paymentCard" : { "cardHolderName" : "Sabri Onur Tüzün", "cardNumber" : "554960******7015", "expireYear" : "20**", "expireMonth" : "**", "cvc" : “***", "registerCard" : 0 }, "buyer" : { "id" : "BY789", "name" : "Sabri Onur", "surname" : "Tüzün", "identityNumber" : "74300864791", "email" : "[email protected]", "gsmNumber" : "+905350000000", "registrationDate" : "2013-­‐04-­‐21 15:12:09", "lastLoginDate" : "2015-­‐10-­‐05 12:43:35", "registrationAddress" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy", "city" : "İstanbul", "country" : "Türkiye", "zipCode" : "34732", "ip" : "85.34.78.112" }, "shippingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "billingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "basketItems" : [ { . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "id" : "BI101", "price" : 30, "name" : "Dükkan aboneliği ve katalog", "category1" : "Abonelik", "category2" : "Dükkan", "itemType" : "PHYSICAL" }, { "id" : "BI102", "price" : 50, "name" : "Listeleme aboneliği", "category1" : "Abonelik", "category2" : "Listeleme", "itemType" : "VIRTUAL" }, { "id" : "BI103", "price" : 20, "name" : "Servis aboneliği", "category1" : "Abonelik", "category2" : "Servis", "itemType" : "VIRTUAL" } ] } Örnek Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1444735597648, "conversationId" : "123456789", "price" : 100, "paidPrice" : 110, "installment" : 3, "paymentId" : "667906", "fraudStatus" : 1, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 10, "iyziCommissionRateAmount" : 4.51000000, "iyziCommissionFee" : 0.25000000, "cardType" : "CREDIT_CARD", "cardAssociation" : "MASTER_CARD", "cardFamily" : "Bonus", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "binNumber" : "554960", "basketId" : "B67832", "itemTransactions" : [ { "itemId" : "BI101", "paymentTransactionId" : "506591", "transactionStatus" : 2, "price" : 30, "paidPrice" : 33.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 3.00000000, "iyziCommissionRateAmount" : 1.35300000, "iyziCommissionFee" : 0.07500000, "blockageRate" : 10.00000000, "blockageRateAmountMerchant" : 3.30000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐28 14:26:37", "subMerchantPrice" : 0, "subMerchantPayoutRate" : 0E-­‐8, "subMerchantPayoutAmount" : 0, "merchantPayoutAmount" : 28.27200000 }, { "itemId" : "BI102", "paymentTransactionId" : "506596", "transactionStatus" : 2, "price" : 50, "paidPrice" : 55.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 5.00000000, "iyziCommissionRateAmount" : 2.25500000, "iyziCommissionFee" : 0.12500000, "blockageRate" : 10.00000000, "blockageRateAmountMerchant" : 5.50000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐28 14:26:37", "subMerchantPrice" : 0, "subMerchantPayoutRate" : 0E-­‐8, "subMerchantPayoutAmount" : 0, "merchantPayoutAmount" : 47.12000000 }, { "itemId" : "BI103", "paymentTransactionId" : "506601", "transactionStatus" : 2, "price" : 20, . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "paidPrice" : 22.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 2.00000000, "iyziCommissionRateAmount" : 0.90200000, "iyziCommissionFee" : 0.05000000, "blockageRate" : 10.00000000, "blockageRateAmountMerchant" : 2.20000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐28 14:26:37", "subMerchantPrice" : 0, "subMerchantPayoutRate" : 0E-­‐8, "subMerchantPayoutAmount" : 0, "merchantPayoutAmount" : 18.84800000 } ] } 3.3.1.3.3 Pazaryeri/Marketplaces İş Modelinde OlMAyan Üye İşyerleri İçin Ürün Ödemesi; Pazaryeri iş modelinde olmayan, standart e-­‐ticaret iş modelindeki üye işyerlerinin ürün ödemesi neredeyse bir üstte yer alan listeleme/abonelik ödemesiyle aynıdır. Tek fark, • Sepette yer alan ürünlerin tipi (BasketItemType) fiziksel ürün (PHYSICAL) olarak işaretlenmelidir, bu nedenle de teslimat adresi (ShippingAddress) gönderilmelidir. • Sepette yer alan ürünler için subMerchantKey ve subMerchantPrice gönderilMEmelidir • Ödeme grubu ürün gönderilmelidir: request.setPaymentGroup(PaymentGroupRequestType.PRODUCT.name()); 3.3.1.4 3D Secure Ödeme Üye işyeri; çeşitli durumlarda (risk faktörünün yüksek oluşu, alıcının 3D Secure seçimi, banka kartı ile ödeme yapılması, vb) ödemeyi 3D Secure olarak almayı tercih edebilir. 3D Secure ödeme temelde 3 aşamadan oluşur: 1. 3D Secure’u Başlatma (initialize3DS) : 3DS ödeme alınabilmesi için iyzico’ya ödeme parametreleriyle birlikte bir geri dönüş (callback) URL’i POST edilir. Dönülen sonuç başarılı . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com ise (status=success), dönüş içinde yer alan HTML içerik (threeDSHtmlContent), tarayıcının responseBody’sine basılır, böylece kullanıcı otomatik olarak, bankanın 3DS ödeme sayfasına (SMS şifresini gireceği banka sayfası) yönlenir. Not: iyzico’dan dönen HTML içerik Base64 encoded olarak iletilir ancak iyzico istemcilerinde sizin adınıza otomatik olarak Base64 decoding işlemi yapılır, dolayısıyla siz kulanıcı dostu HTML içeriği görebilirsiniz. 2. Üye İşyerine Dönüş (callback) : Kullanıcı bankanın 3DS ödeme sayfasında şifresini girdikten sonra, sonuç iyzico’ya gelir. İyzico kendi kontrollerini yaptıktan sonra, üye işyeri tarafında gerekli kontrollerin (ürün hala satışta mı, ürün hala stokta mı, oturum hala açık mı, vb) yapılması için üye işyerinin callback URL’ine HTML post eder. Bu adım, üye işyeri iyzico ve banka üçlüsü arasında el sıkışma (handshake) için gereklidir. Bu aşamda henüz para çekilmemiştir. 3D Secure modellerinde 3D modeli tam doğrulama (Full 3DS) ile kullanılmaktadır. 3. 3D Secure ile Ödemeyi Tamamlama (auth3DS) : Eğer, üye işyerinin callback URL’ine dönülen HTML sonuç içinde işlem durumu başarılı (status=success) ise, üye işyeri kendi gerekli kontrollerini yaptıktan sonra, ödeme alınması = para çekilmesi için iyzico’ya istekte (auth3DS) bulunur ve işlem sonucunu kendi kullanıcısına gösterir. Callback URL’ine dönülen HTML sonuç içinde işlem durumu başarısız ise auth3DS isteğinde bulunulMAmalıdır. 3.3.1.4.1 Pazaryeri/Marketplaces İş Modelinde Olan Üye İşyerleri İçin Ürün Ödemesi (3D Secure); Aşağıdaki örnekte, 3 üründen oluşan 100 TL tutarında bir sepet 3 taksitli, 110 TL olarak 3D Secure yöntemiyle ödeniyor. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün olduğu için teslimat adresi bilgisi gönderiliyor. Sepette yer alan her bir ürün farklı alt üye işyerine ait ve sırasıyla 30 TL’lik ürün onaylandığında 27 TL’si (üye işyeri satış komisyonu bu ürün için %10), 50 TL’lik ürün onaylandığında 42 TL’si (üye işyeri satış komisyonu bu ürün için %16) ve 20 TL’lik ürün onaylandığında 18 TL’si (üye işyeri satış komisyonu bu ürün için %10) alt üye işyerine gönderilecektir. 3D Secure’u Başlatma (initialize3DS) Ürün Ödemesi: • API Servis (Endpoint) İsmi: /payment/iyzipos/initialize3ds/ecom . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com • Method: HTTP POST Örnek initialize3DS Java İstek Çıktısı: EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); EcomPaymentThreeDSInitializeRequest request = new EcomPaymentThreeDSInitializeRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setCallbackUrl("https://www.merchant.com/callbackUrl"); request.setPrice(new BigDecimal("100")); request.setPaidPrice(new BigDecimal("110")); request.setInstallment(3); request.setBasketId("B67832"); request.setPaymentChannel(PaymentChannelRequestType.WEB.name()); request.setPaymentGroup(PaymentGroupRequestType.PRODUCT.name()); EcomPaymentCardDto paymentCard = new EcomPaymentCardDto(); paymentCard.setCardHolderName("Sabri Onur Tüzün"); paymentCard.setCardNumber("554960******7015"); paymentCard.setExpireMonth("**"); paymentCard.setExpireYear("20**"); paymentCard.setCvc("***"); paymentCard.setRegisterCard(0); request.setPaymentCard(paymentCard); EcomPaymentBuyerDto buyer = new EcomPaymentBuyerDto(); buyer.setId("BY789"); buyer.setName("Sabri Onur"); buyer.setSurname("Tüzün"); buyer.setGsmNumber("+905350000000"); buyer.setEmail("[email protected]"); buyer.setIdentityNumber("74300864791"); buyer.setLastLoginDate("2015-­‐10-­‐05 12:43:35"); buyer.setRegistrationDate("2013-­‐04-­‐21 15:12:09"); buyer.setRegistrationAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy"); buyer.setIp("85.34.78.112"); buyer.setCity("İstanbul"); buyer.setCountry("Türkiye"); buyer.setZipCode("34732"); request.setBuyer(buyer); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com EcomPaymentShippingAddressDto shippingAddress = new EcomPaymentShippingAddressDto(); shippingAddress.setContactName("Hakan Erdoğan"); shippingAddress.setCity("İstanbul"); shippingAddress.setCountry("Türkiye"); shippingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); shippingAddress.setZipCode("34742"); request.setShippingAddress(shippingAddress); EcomPaymentBillingAddressDto billingAddress = new EcomPaymentBillingAddressDto(); billingAddress.setContactName("Hakan Erdoğan"); billingAddress.setCity("İstanbul"); billingAddress.setCountry("Türkiye"); billingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); billingAddress.setZipCode("34742"); request.setBillingAddress(billingAddress); List<EcomPaymentBasketItemDto> basketItems = new ArrayList<EcomPaymentBasketItemDto>(); EcomPaymentBasketItemDto basketItem1 = new EcomPaymentBasketItemDto(); basketItem1.setId("BI101"); basketItem1.setName("ABC Marka Kolye"); basketItem1.setCategory1("Giyim"); basketItem1.setCategory2("Aksesuar"); basketItem1.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem1.setPrice(new BigDecimal("30")); basketItem1.setSubMerchantKey("ha3us4v5mk2652kkjk5728cc4407an"); basketItem1.setSubMerchantPrice(new BigDecimal("27")); basketItems.add(basketItem1); EcomPaymentBasketItemDto basketItem2 = new EcomPaymentBasketItemDto(); basketItem2.setId("BI102"); basketItem2.setName("XYZ Oyun Kodu"); basketItem2.setCategory1("Oyun"); basketItem2.setCategory2("Online Oyun Kodları"); basketItem2.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem2.setPrice(new BigDecimal("50")); basketItem2.setSubMerchantKey("ha3us4v5mk2652kkjk5728cc4407an"); basketItem2.setSubMerchantPrice(new BigDecimal("42")); basketItems.add(basketItem2); EcomPaymentBasketItemDto basketItem3 = new EcomPaymentBasketItemDto(); basketItem3.setId("BI103"); basketItem3.setName("EDC Marka Usb"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com basketItem3.setCategory1("Elektronik"); basketItem3.setCategory2("Usb / Cable"); basketItem3.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem3.setPrice(new BigDecimal("20")); basketItem3.setSubMerchantKey("ha3us4v5mk2652kkjk5728cc4407an"); basketItem3.setSubMerchantPrice(new BigDecimal("18")); basketItems.add(basketItem3); request.setBasketItems(basketItems); EcomPaymentThreeDSInitializeResponse response = client.initializeThreeDS(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("threeDSHtmlContent=" + response.getThreeDSHtmlContent()); Örnek initialize3DS Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1444739797682 threeDSHtmlContent=<!DOCTYPE HTML PUBLIC "-­‐//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>MDpay default response template for web</title> </head> <body bgcolor="#02014E" OnLoad="OnLoadEvent();" > <form name="downloadForm" action="https://3dsecure.garanti.com.tr/acs/0036537396382857515710002306/merchant/contro
l/master" method="POST"> <input type="hidden" . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com name="PaReq" value="eJxVUdtuwjAM/ZWKD2iSlvSCTCQuD0MaE4Jp0vZWUg860RTSdIV9/ZKWy/YUn2PHxz6G17
1GnG9QNhoFLLGusx16RT4e8GESM87ZQMBqssaTgG/UdVEpwXzqB0Bu0P7Scp8pIyCTp+niRfCARjwEco
VQol7MRcSjiCYRS4H0BKisRFFcfgpZAekAyKpRRl9EnFqFG4BGH8TemOOIkLZt/f6LL6sSiEsBeYywalxU21b
nIhdbs522qkZy+pzVanZ+xo/lG8OvzWE3BuIqIM8MioAyzigLPRaMhnQUWvGOh6x0M4jX9bvHGPUptVv
1FByd0qQHNudSfymwlmpU8iLSoV35jgDPx0qhrbAi9xhyrKXwrKx7gTzWmD05X6WxhlEaWl/jMI3CJEh4z
BmPnXAQ0si53RW5/oU1jSWMdQIOAHFtyPWQ5HpnG/27/y9Ltqri"> <input type="hidden" name="TermUrl" value="https://spos.isbank.com.tr/fim/est3Dgate?msgid=54871551"> <input type="hidden" name="MD" value="554960:49B5838C731576E72B2BB10319D348D301545852C82BB0A45A0E9B11ECB86CE7
:3668:##700656608619"> <!-­‐-­‐ To support javascript unaware/disabled browsers -­‐-­‐> <noscript> <center>Please click the submit button below.<br> <input type="submit" name="submit" value="Submit"></center> </noscript> </form> <SCRIPT LANGUAGE="Javascript" > <!-­‐-­‐ about:blank -­‐-­‐> <!-­‐-­‐ function OnLoadEvent() { document.downloadForm.submit(); } //-­‐-­‐> </SCRIPT> </body> </html> Örnek initialize3DS Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "price" : 100, "paidPrice" : 110, "installment" : 3, "paymentChannel" : "WEB", "basketId" : "B67832", "paymentGroup" : "PRODUCT", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "paymentCard" : { "cardHolderName" : "Sabri Onur Tüzün", "cardNumber" : "554960******7015", "expireYear" : "20**", "expireMonth" : "**", "cvc" : "***", "registerCard" : 0 }, "buyer" : { "id" : "BY789", "name" : "Sabri Onur", "surname" : "Tüzün", "identityNumber" : "74300864791", "email" : "[email protected]", "gsmNumber" : "+905350000000", "registrationDate" : "2013-­‐04-­‐21 15:12:09", "lastLoginDate" : "2015-­‐10-­‐05 12:43:35", "registrationAddress" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy", "city" : "İstanbul", "country" : "Türkiye", "zipCode" : "34732", "ip" : "85.34.78.112" }, "shippingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "billingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "basketItems" : [ { "id" : "BI101", "price" : 30, "name" : "ABC Marka Kolye", "category1" : "Giyim", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "category2" : "Aksesuar", "itemType" : "PHYSICAL", "subMerchantKey" : "ha3us4v5mk2652kkjk5728cc4407an", "subMerchantPrice" : 27 }, { "id" : "BI102", "price" : 50, "name" : "XYZ Oyun Kodu", "category1" : "Oyun", "category2" : "Online Oyun Kodları", "itemType" : "VIRTUAL", "subMerchantKey" : "ha3us4v5mk2652kkjk5728cc4407an", "subMerchantPrice" : 42 }, { "id" : "BI103", "price" : 20, "name" : "EDC Marka Usb", "category1" : "Elektronik", "category2" : "Usb / Cable", "itemType" : "PHYSICAL", "subMerchantKey" : "ha3us4v5mk2652kkjk5728cc4407an", "subMerchantPrice" : 18 } ], "callbackUrl" : "https://www.merchant.com/callbackUrl" } Örnek initialize3DS Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1444740039787, "conversationId" : "123456789", "threeDSHtmlContent" : "<!DOCTYPE HTML PUBLIC \"-­‐//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n\n<html>\n<head>\n <title>MDpay default response template for web</title>\n</head>\n<body bgcolor=\"#02014E\" OnLoad=\"OnLoadEvent();\" >\n<form name=\"downloadForm\"\n action=\"https://3dsecure.garanti.com.tr/acs/0036537398804063853
260059907/merchant/control/master\"\n method=\"POST\">\n <input type=\"hidden\"\n name=\"PaReq\"\n value=\"eJxVUdtuwjAM/ZWKD2iStukFGUsMmECCCW
19YI9Vao1qawtpu8K+fgnlsj3F59jxsY8h3Wui+RupThPChpom+yCnyCcjGcSRJ4UcIWynr3RE+CbdFHWFw
. iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com uWuB+wGzS+t9lnVImTq+LR6QenxUPrArhBK0qs5hjIMeRyKBNhAQJWVhMX5p1A1sAsAVXdVq88YJUbh
BqDTX7hv28OYsb7v3eGLq+oSmE0Be4yw7WzUmFanIseMynT9uTs2i3TXr5+XvVgFCzFT6UZNgNkKyLO
W0ONCCi58R3jjIBj7AbALD1lpZ8D09d0Rgrucm60GCg5WaToAk7OpvxQYSzVV6oxJYFa+I6DToa7IVJgN7z
Hk1Ch0jKx9gT3WmC2tr6o1hnHuG18jP4ljHvDQj6XvhZzLJOGRdftSZPsXxjQRC3ERsACYbcOuh2TXO5vo3
/1/AU1fqgg=\">\n <input type=\"hidden\"\n name=\"TermUrl\" value=\"https://spos.isbank.com.tr/fim/est3Dgate?msgid=54872515\">\n <input type=\"hidden\"\n name=\"MD\"\n value=\"554960:4C296BFD8B09CB33B583B7401731DE2
B57E8A0753CE88B889A628E6772B1325B:3867:##700656608619\">\n <!-­‐-­‐ To support javascript unaware/disabled browsers -­‐-­‐>\n <noscript>\n <center>Please click the submit button below.<br>\n <input type=\"submit\" name=\"submit\" value=\"Submit\"></center>\n </noscript>\n</form>\n\n<SCRIPT LANGUAGE=\"Javascript\" >\n <!-­‐-­‐ about:blank -­‐-­‐>\n <!-­‐-­‐\n function OnLoadEvent() {\n document.downloadForm.submit();\n }\n //-­‐-­‐
>\n</SCRIPT>\n</body>\n</html>\u0000" } Üye İşyerine Dönüş (callback) : Kullanıcı bankanın 3D Secure ödeme sayfasında SMS şifresini girdikten sonra sonuç iyzico’ya iletilir. İyzico da gerekli kontrollerini yaptıktan sonra kullanıcıyı, tarayıcı seviyesinde, üye işyeri dönüş (callback) URL’ine aşağıdaki şekilde POST eder ve yönlendirir. Callback URL’ine (https://www.merchant.com/callbackUrl) dönen 3 temel parametre bulunur. • Bunlardan ilki işlemin sonucunu gösteren status alanı (success veya failure), • diğeri para çekimi yapılacak ödemenin id’si paymentId, • son olarak da iletişimde kullanılan veri conversationData. Eğer status=success ise paymentId ve conversationData iletilerek 3D Secure ödeme tamamlama (auth3DS) yapılır. status=failure ise paymentId ve conversationData boş gelecektir, bu durumda auth3DS isteği yapılmamalıdır. Örnek Üye İşyeri Dönüş HTML İçeriği: <!doctype html> <html lang="en"> <head> <title>Merchant 3ds Callback Form</title> </head> <body onload="submitIyzicoThreeDSCallbackForm();"> <form id="iyzico-­‐3ds-­‐callback-­‐form" name="iyzico-­‐3ds-­‐callback-­‐form" action="https://www.merchant.com/callbackUrl" method="post"> <input type="hidden" name="status" value="success"> . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com <input type="hidden" name="paymentId" value="457932"> <input type="hidden" name="conversationData" value="KPeA/vSq2nspTXa3mIHveg=="> </form> <script language="Javascript"> <!-­‐-­‐ function submitIyzicoThreeDSCallbackForm() { document.getElementById("iyzico-­‐3ds-­‐callback-­‐form").submit(); } //-­‐-­‐> </script> </body> </html> 3D Secure ile Ödemeyi Tamamlama (auth3DS) : iyzico, üye işyerinin callback URL’ine başarılı sonuç POST ettikten sonra, üye işyeri kendi tarafında gerekli kontrolleri (ürün hala satışta mı, ürün hala stokta mı, oturum hala açık mı, vb) yapar ve ödemeyi almaya karar verirse auth3DS isteğinde bulunur. • API Servis (Endpoint) İsmi: /payment/iyzipos/auth3ds/ecom • Method: HTTP POST Örnek auth3DS Java İstek Çıktısı: EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); EcomPaymentThreeDSRequest request = new EcomPaymentThreeDSRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentId("457932"); request.setConversationData("KPeA/vSq2nspTXa3mIHveg=="); EcomPaymentThreeDSResponse response = client.threeDSAuth(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("price=" + response.getPrice()); System.out.println("paidPrice=" + response.getPaidPrice()); System.out.println("installment=" + response.getInstallment()); System.out.println("basketId=" + response.getBasketId()); System.out.println("binNumber=" + response.getBinNumber()); System.out.println("cardAssociation=" + response.getCardAssociation()); System.out.println("cardFamily=" + response.getCardFamily()); System.out.println("cardType=" + response.getCardType()); System.out.println("cardToken=" + response.getCardToken()); System.out.println("cardUserKey=" + response.getCardUserKey()); System.out.println("fraudStatus=" + response.getFraudStatus()); System.out.println("iyziCommissionFee=" + response.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + response.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + response.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + response.getMerchantCommissionRateAmount()); List<EcomPaymentItemTransactionDto> itemTransactions = response.getItemTransactions(); if (itemTransactions != null && !itemTransactions.isEmpty()) { for (EcomPaymentItemTransactionDto itemTransaction : itemTransactions) { System.out.println("paymentTransactionId=" + itemTransaction.getPaymentTransactionId()); System.out.println("itemId=" + itemTransaction.getItemId()); System.out.println("paidPrice=" + itemTransaction.getPaidPrice()); System.out.println("price=" + itemTransaction.getPrice()); System.out.println("transactionStatus=" + itemTransaction.getTransactionStatus()); System.out.println("blockageRate=" + itemTransaction.getBlockageRate()); System.out.println("blockageRateAmountMerchant=" + itemTransaction.getBlockageRateAmountMerchant()); System.out.println("blockageRateAmountSubMerchant=" + itemTransaction.getBlockageRateAmountSubMerchant()); System.out.println("blockageResolvedDate=" + itemTransaction.getBlockageResolvedDate()); System.out.println("iyziCommissionFee=" + itemTransaction.getIyziCommissionFee()); System.out.println("iyziCommissionRateAmount=" + itemTransaction.getIyziCommissionRateAmount()); System.out.println("merchantCommissionRate=" + itemTransaction.getMerchantCommissionRate()); System.out.println("merchantCommissionRateAmount=" + itemTransaction.getMerchantCommissionRateAmount()); System.out.println("merchantPayoutAmount=" + itemTransaction.getMerchantPayoutAmount()); System.out.println("subMerchantKey=" + itemTransaction.getSubMerchantKey()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com System.out.println("subMerchantPayoutAmount=" + itemTransaction.getSubMerchantPayoutAmount()); System.out.println("subMerchantPayoutRate=" + itemTransaction.getSubMerchantPayoutRate()); System.out.println("subMerchantPrice=" + itemTransaction.getSubMerchantPrice()); } } Örnek auth3DS Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1444142311338 paymentId=457932 price=100 paidPrice=110 installment=3 basketId=B67832 binNumber=554960 cardAssociation=MASTER_CARD cardFamily=Bonus cardType=CREDIT_CARD cardToken=null cardUserKey=null fraudStatus=1 iyziCommissionFee=0.25000000 iyziCommissionRateAmount=4.51000000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=10 paymentTransactionId=1307 itemId=BI101 paidPrice=33.00000000 price=30 transactionStatus=1 blockageRate=7.00000000 blockageRateAmountMerchant=2.31000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐16 17:38:31 iyziCommissionFee=0.07500000 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com iyziCommissionRateAmount=1.35300000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=3.00000000 merchantPayoutAmount=2.26200000 subMerchantKey=l4FCFycIof0paTP6687dOoch9Po= subMerchantPayoutAmount=27 subMerchantPayoutRate=90.00000000 subMerchantPrice=27 paymentTransactionId=1308 itemId=BI102 paidPrice=55.00000000 price=50 transactionStatus=1 blockageRate=7.00000000 blockageRateAmountMerchant=3.85000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐16 17:38:31 iyziCommissionFee=0.12500000 iyziCommissionRateAmount=2.25500000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=5.00000000 merchantPayoutAmount=6.77000000 subMerchantKey=lcB6bA9DWEF5e8yGJI0uIEcW1kw= subMerchantPayoutAmount=42 subMerchantPayoutRate=84.00000000 subMerchantPrice=42 paymentTransactionId=1309 itemId=BI103 paidPrice=22.00000000 price=20 transactionStatus=1 blockageRate=7.00000000 blockageRateAmountMerchant=1.54000000 blockageRateAmountSubMerchant=0 blockageResolvedDate=2015-­‐10-­‐16 17:38:31 iyziCommissionFee=0.05000000 iyziCommissionRateAmount=0.90200000 merchantCommissionRate=10.00000000 merchantCommissionRateAmount=2.00000000 merchantPayoutAmount=1.50800000 subMerchantKey=D9V/MqIRitUzA4dutL+nCBvnWfs= subMerchantPayoutAmount=18 subMerchantPayoutRate=90.00000000 . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com subMerchantPrice=18 Örnek auth3DS Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "paymentId" : "457932", "conversationData" : "KPeA/vSq2nspTXa3mIHveg==" } Örnek auth3DS Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", "systemTime" : 1444142311338, "conversationId" : "123456789", "price" : 100, "paidPrice" : 110, "installment" : 3, "paymentId" : "457932", "fraudStatus" : 1, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 10, "iyziCommissionRateAmount" : 4.51000000, "iyziCommissionFee" : 0.25000000, "cardType" : "CREDIT_CARD", "cardAssociation" : "MASTER_CARD", "cardFamily" : "Bonus", "binNumber" : "554960", "basketId" : "B67832", "itemTransactions" : [ { "itemId" : "BI101", "paymentTransactionId" : "1307", "transactionStatus" : 1, "price" : 30, "paidPrice" : 33.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 3.00000000, "iyziCommissionRateAmount" : 1.35300000, . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "iyziCommissionFee" : 0.07500000, "blockageRate" : 7.00000000, "blockageRateAmountMerchant" : 2.31000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐16 17:38:31", "subMerchantKey" : "l4FCFycIof0paTP6687dOoch9Po=", "subMerchantPrice" : 27, "subMerchantPayoutRate" : 90.00000000, "subMerchantPayoutAmount" : 27, "merchantPayoutAmount" : 2.26200000 }, { "itemId" : "BI102", "paymentTransactionId" : "1308", "transactionStatus" : 1, "price" : 50, "paidPrice" : 55.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 5.00000000, "iyziCommissionRateAmount" : 2.25500000, "iyziCommissionFee" : 0.12500000, "blockageRate" : 7.00000000, "blockageRateAmountMerchant" : 3.85000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐16 17:38:31", "subMerchantKey" : "lcB6bA9DWEF5e8yGJI0uIEcW1kw=", "subMerchantPrice" : 42, "subMerchantPayoutRate" : 84.00000000, "subMerchantPayoutAmount" : 42, "merchantPayoutAmount" : 6.77000000 }, { "itemId" : "BI103", "paymentTransactionId" : "1309", "transactionStatus" : 1, "price" : 20, "paidPrice" : 22.00000000, "merchantCommissionRate" : 10.00000000, "merchantCommissionRateAmount" : 2.00000000, "iyziCommissionRateAmount" : 0.90200000, "iyziCommissionFee" : 0.05000000, "blockageRate" : 7.00000000, "blockageRateAmountMerchant" : 1.54000000, "blockageRateAmountSubMerchant" : 0, "blockageResolvedDate" : "2015-­‐10-­‐16 17:38:31", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "subMerchantKey" : "D9V/MqIRitUzA4dutL+nCBvnWfs=", "subMerchantPrice" : 18, "subMerchantPayoutRate" : 90.00000000, "subMerchantPayoutAmount" : 18, "merchantPayoutAmount" : 1.50800000 } ] } 3.3.1.4.2 Listeleme veya Abonelik Ödemesi (Pazaryeri/Marketplaces ve Pazaryeri Olmayan İş Modelindeki Üye İşyerleri İçin Aynı) (3D Secure); Üye işyeri; Listeleme veya Abonelik ödemelerini 3D Secure ile yapmak isterse, aşağıdaki örnekte yer aldığı gibi parametreleri göndermesi yeterlidir. initialize3DS dışındaki, callback ve auth3DS akışları ve parametreleri "4.3.1.4.1 Pazaryeri/Marketplaces İş Modelinde Olan Üye İşyerleri İçin Ürün Ödemesi (3D Secure)" maddesindekilerle birebir aynı olduğu için bu örneklere tekrar yapılmamıştır. 3D Secure’u Başlatma (initialize3DS) -­‐ Listeleme veya Abonelik Ödemesi: • API Servis (Endpoint) İsmi: /payment/iyzipos/initialize3ds/ecom • Method: HTTP POST Örnek initialize3DS Java İstek Çıktısı: EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); EcomPaymentThreeDSInitializeRequest request = new EcomPaymentThreeDSInitializeRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setCallbackUrl("https://www.merchant.com/callback"); request.setPrice(new BigDecimal("100")); request.setPaidPrice(new BigDecimal("100")); request.setInstallment(1); request.setBasketId("B67832"); request.setPaymentChannel(PaymentChannelRequestType.WEB.name()); request.setPaymentGroup(PaymentGroupRequestType.LISTING.name()); EcomPaymentCardDto paymentCard = new EcomPaymentCardDto(); paymentCard.setCardHolderName("Sabri Onur Tüzün"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com paymentCard.setCardNumber("554960******7015"); paymentCard.setExpireMonth("**"); paymentCard.setExpireYear("20**"); paymentCard.setCvc("***"); paymentCard.setRegisterCard(0); request.setPaymentCard(paymentCard); EcomPaymentBuyerDto buyer = new EcomPaymentBuyerDto(); buyer.setId("BY789"); buyer.setName("Sabri Onur"); buyer.setSurname("Tüzün"); buyer.setGsmNumber("+905350000000"); buyer.setEmail("[email protected]"); buyer.setIdentityNumber("74300864791"); buyer.setLastLoginDate("2015-­‐10-­‐05 12:43:35"); buyer.setRegistrationDate("2013-­‐04-­‐21 15:12:09"); buyer.setRegistrationAddress("Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy"); buyer.setIp("85.34.78.112"); buyer.setCity("İstanbul"); buyer.setCountry("Türkiye"); buyer.setZipCode("34732"); request.setBuyer(buyer); EcomPaymentShippingAddressDto shippingAddress = new EcomPaymentShippingAddressDto(); shippingAddress.setContactName("Hakan Erdoğan"); shippingAddress.setCity("İstanbul"); shippingAddress.setCountry("Türkiye"); shippingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); shippingAddress.setZipCode("34742"); request.setShippingAddress(shippingAddress); EcomPaymentBillingAddressDto billingAddress = new EcomPaymentBillingAddressDto(); billingAddress.setContactName("Hakan Erdoğan"); billingAddress.setCity("İstanbul"); billingAddress.setCountry("Türkiye"); billingAddress.setAddress("19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı"); billingAddress.setZipCode("34742"); request.setBillingAddress(billingAddress); List<EcomPaymentBasketItemDto> basketItems = new ArrayList<EcomPaymentBasketItemDto>(); EcomPaymentBasketItemDto basketItem1 = new EcomPaymentBasketItemDto(); basketItem1.setId("BI101"); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com basketItem1.setName("Dükkan listelemesi ve katalog"); basketItem1.setCategory1("Listeleme"); basketItem1.setCategory2("Dükkan"); basketItem1.setItemType(BasketItemRequestType.PHYSICAL.name()); basketItem1.setPrice(new BigDecimal("30")); basketItems.add(basketItem1); EcomPaymentBasketItemDto basketItem2 = new EcomPaymentBasketItemDto(); basketItem2.setId("BI102"); basketItem2.setName("Listeleme hizmeti"); basketItem2.setCategory1("Listeleme"); basketItem2.setCategory2("Listeleme"); basketItem2.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem2.setPrice(new BigDecimal("50")); basketItems.add(basketItem2); EcomPaymentBasketItemDto basketItem3 = new EcomPaymentBasketItemDto(); basketItem3.setId("BI103"); basketItem3.setName("Servis hizmeti"); basketItem3.setCategory1("Listeleme"); basketItem3.setCategory2("Servis"); basketItem3.setItemType(BasketItemRequestType.VIRTUAL.name()); basketItem3.setPrice(new BigDecimal("20")); basketItems.add(basketItem3); request.setBasketItems(basketItems); EcomPaymentThreeDSInitializeResponse response = client.initializeThreeDS(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("threeDSHtmlContent=" + response.getThreeDSHtmlContent()); Örnek initialize3DS Java Sonuç Çıktısı: conversationId=123456789 locale=tr status=success . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com errorCode=null errorMessage=null errorGroup=null systemTime=1445238853435 threeDSHtmlContent=<!DOCTYPE HTML PUBLIC "-­‐//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>MDpay default response template for web</title> </head> <body bgcolor="#02014E" OnLoad="OnLoadEvent();" > <form name="downloadForm" action="https://3dsecure.garanti.com.tr/acs/0036542387077064147970095830/merchant/contro
l/master" method="POST"> <input type="hidden" name="PaReq" value="eJxVUdtugzAM/RXU10nEAUKgciO15WGdtKpqq017ZCFqkcalAUbZ1y8pvWxP8Tl2fHxs3B+1
UslOyU4rga+qadKDcvJsNmEsogEAnwjczLfqJPBb6SavSkFdcD0kN2h+aXlMy1ZgKk+L1VowD0LmI7lCLJReJ
SJkYQhRSGMkI4FlWiiRDz+5rJBcAMqqK1s9CB4bhRvATn+JY9vWU0L6vnfHL66sCiQ2heQxwqazUWNanf
NMvO2G3TZ536/jan1olk/J4ly/9PXn5qWaIbEVmKWtEh5QRoHGDvApjaYeRXLhMS3sDGK//XAogAtgXI0
U1lZpPgKTs6m/FJqValXKQcSBsXxHqM51VSpTYRzeY8xUI4VjZO2L5GFj+Wz3KluzMAA/ZIHnRxw4hzCgAY
85QMwi3841Ftn+uVkajSi9CFiAxLYh10OS651N9O/+v486qk0="> <input type="hidden" name="TermUrl" value="https://spos.isbank.com.tr/fim/est3Dgate?msgid=55814007"> <input type="hidden" name="MD" value="554960:FF5B0BEDB0E17AC8087EBAB69B4FB5EBE8CB4CA2601451549B96212890F104F4
:4434:##700656608619"> <!-­‐-­‐ To support javascript unaware/disabled browsers -­‐-­‐> <noscript> <center>Please click the submit button below.<br> <input type="submit" name="submit" value="Submit"></center> </noscript> </form> <SCRIPT LANGUAGE="Javascript" > <!-­‐-­‐ about:blank -­‐-­‐> <!-­‐-­‐ function OnLoadEvent() { document.downloadForm.submit(); } . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com //-­‐-­‐> </SCRIPT> </body> </html> Örnek initialize3DS Java İstek Koduna Ait JSON Çıktısı: { "locale" : "tr", "conversationId" : "123456789", "price" : 100, "paidPrice" : 100, "installment" : 1, "paymentChannel" : "WEB", "basketId" : "B67832", "paymentGroup" : "LISTING", "paymentCard" : { "cardHolderName" : "Sabri Onur Tüzün", "cardNumber" : “554960******7015", "expireYear" : “20**", "expireMonth" : “**", "cvc" : “***", "registerCard" : 0 }, "buyer" : { "id" : "BY789", "name" : "Sabri Onur", "surname" : "Tüzün", "identityNumber" : "74300864791", "email" : "[email protected]", "gsmNumber" : "+905350000000", "registrationDate" : "2013-­‐04-­‐21 15:12:09", "lastLoginDate" : "2015-­‐10-­‐05 12:43:35", "registrationAddress" : "Nidakule Göztepe İş Merkezi Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Göztepe Kadıköy", "city" : "İstanbul", "country" : "Türkiye", "zipCode" : "34732", "ip" : "85.34.78.112" }, "shippingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "billingAddress" : { "address" : "19 Mayıs Mah. İnönü Cad. No:45 Kozyatağı", "zipCode" : "34742", "contactName" : "Hakan Erdoğan", "city" : "İstanbul", "country" : "Türkiye" }, "basketItems" : [ { "id" : "BI101", "price" : 30, "name" : "Dükkan listelemesi ve katalog", "category1" : "Listeleme", "category2" : "Dükkan", "itemType" : "PHYSICAL" }, { "id" : "BI102", "price" : 50, "name" : "Listeleme hizmeti", "category1" : "Listeleme", "category2" : "Listeleme", "itemType" : "VIRTUAL" }, { "id" : "BI103", "price" : 20, "name" : "Servis hizmeti", "category1" : "Listeleme", "category2" : "Servis", "itemType" : "VIRTUAL" } ], "callbackUrl" : "https://www.merchant.com/callback" } Örnek initialize3DS Java Sonuç Koduna Ait JSON Çıktısı: { "status" : "success", "locale" : "tr", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "systemTime" : 1445238853435, "conversationId" : "123456789", "threeDSHtmlContent" : "<!DOCTYPE HTML PUBLIC \"-­‐//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n\n<html>\n<head>\n <title>MDpay default response template for web</title>\n</head>\n<body bgcolor=\"#02014E\" OnLoad=\"OnLoadEvent();\" >\n<form name=\"downloadForm\"\n action=\"https://3dsecure.garanti.com.tr/acs/0036542389782599331
550048898/merchant/control/master\"\n method=\"POST\">\n <input type=\"hidden\"\n name=\"PaReq\"\n value=\"eJxVUctugzAQ/BWUD8APMNjRxlLaHIqqIpTm
0B6RsRKk8oiBBvr1tQlJ2pN3Ztc7u7NwOBmtd+9aDUZLeNNdlx+1VxabFWOchGEsVhKy7V6fJXxr05VNLY
mPfQroBu0vo0553UvI1fkpSSWjOGIBoAVCpU2ykxGLIswjIgBdCajzSsty+ilVA2gGoJqh7s0kY2EVbgAG8yV
Pfd+uEbpcLv71i6+aCpBLAXqMkA0u6myrsSwkT9hIxyxvy/KjyNMkHdFrMGW7Y9psALkKKPJeS4oJI5gID8
drStcMA5p5yCs3gzzsPz2CsY9tYqGgdUrbK7A5l/pLgbXU6FpNUoR25TsCPbZNrW2F3fAeQ6E7JT0r615Ajz
WeX5yvqreGYRxELKQBFzGnTIggIIxhHHIuuHN7LnL9S2sa4YTMAg4Acm3Qcki03NlG/+7/C34mqkE=\">\n
<input type=\"hidden\"\n name=\"TermUrl\" value=\"https://spos.isbank.com.tr/fim/est3Dgate?msgid=55814479\">\n <input type=\"hidden\"\n name=\"MD\"\n value=\"554960:AB3CA68F65E473063C526C352BFAAB0
EBD46B96FADC3293D13E1493F1E9EC00C:3568:##700656608619\">\n <!-­‐-­‐ To support javascript unaware/disabled browsers -­‐-­‐>\n <noscript>\n <center>Please click the submit button below.<br>\n <input type=\"submit\" name=\"submit\" value=\"Submit\"></center>\n </noscript>\n</form>\n\n<SCRIPT LANGUAGE=\"Javascript\" >\n <!-­‐-­‐ about:blank -­‐-­‐>\n <!-­‐-­‐\n function OnLoadEvent() {\n document.downloadForm.submit();\n }\n //-­‐-­‐
>\n</SCRIPT>\n</body>\n</html>\u0000" } 3.3.1.4.3 Pazaryeri/Marketplaces İş Modelinde OlMAyan Üye İşyerleri İçin Ürün Ödemesi (3D Secure); Pazaryeri iş modelinde olmayan, standart e-­‐ticaret iş modelindeki üye işyerlerinin ürün ödemesi neredeyse bir üstte yer alan “4.3.1.4.2 maddesinde belirtilen 3D Secure listeleme/abonelik ödemesi” ile aynıdır. Tek fark, • Sepette yer alan ürünlerin tipi (BasketItemType) fiziksel ürün (PHYSICAL) olarak işaretlenmelidir, bu nedenle de teslimat adresi (ShippingAddress) gönderilmelidir. • Sepette yer alan ürünler için subMerchantKey ve subMerchantPrice gönderilMEmelidir • Ödeme grubu ürün gönderilmelidir: request.setPaymentGroup(PaymentGroupRequestType.PRODUCT.name()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 3.3.2 İptal İyzico üzerinden tahsil edilen bir ödeme, banka kuralları gereği aynı gün içinde (gün sonu yapılmadan) iptal (cancel) edilebilir. İptal işleminin iadeden farkı, ödeme ile aynı gün yapılabilmesi ve kart ekstresinde girdi/çıktı yaratmamasıdır. İptal yapılabilmesi için ödemeye ait id (paymentId) gönderilmesi gerekir, iptal işlemi başarılıysa iptal edilen tutar (price) servisten döner. İptal işlemi tepeden çalışır, yani ödemenin tamamını iptal eder. • API Servis (Endpoint) İsmi: /payment/iyzipos/cancel • Method: HTTP POST Örnek Java İstek Çıktısı EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); PaymentCancelRequest request = new PaymentCancelRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentId("3031"); request.setIp("85.34.78.112"); PaymentCancelResponse response = client.cancel(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("price=" + response.getPrice()); Örnek Java Sonuç Çıktısı conversationId=123456789 locale=tr status=success . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com errorCode=null errorMessage=null errorGroup=null systemTime=1445239960166 paymentId=3031 price=1.10000000 Örnek Java İstek Koduna Ait JSON Çıktısı { "locale" : "tr", "conversationId" : "123456789", "paymentId" : "3031", "ip" : "85.34.78.112" } Örnek Java Sonuç Koduna Ait JSON Çıktısı { "status" : "success", "locale" : "tr", "systemTime" : 1445239960166, "conversationId" : "123456789", "paymentId" : "3031", "price" : 1.10000000 } 3.3.3 İade İyzico üzerinden tahsil edilen bir ödeme, 365 gün 7/24 iade (refund) edilebilir. İade işlemi mutlaka ekstreye yansır ve iade edilen ödeme taksitli bir işlemse, iadenin karta yansıması bankadan bankaya değişmekle beraber bir kaç günü bulabilir. İade işlemi kırılımdan çalışır, yani ödemenin bir kırlımının tamamını veya bir kısmını iade eder. 3.3.3.1 Standart İade İade yapılabilmesi için ödeme kırılımına ait id (paymentTransactionId) ve iade edilecek tutar (price) gönderilmesi gerekir, iade işlemi başarılıysa iade edilen tutar (price) servisten döner. İade . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com edilecek tutar (price), iade edilecek ödemenin kırılımının tutarından (itemTransaction à paidPrice) ve iade edilebilir kalan tutardan küçük veya eşit olmalıdır. Bu kural sağlandığı sürece ardarda defalarca iade yapılabilir. • API Servis (Endpoint) İsmi: /payment/iyzipos/refund • Method: HTTP POST Örnek Java İstek Çıktısı EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); PaymentRefundRequest request = new PaymentRefundRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentTransactionId("1543"); request.setPrice(new BigDecimal("3.3")); request.setIp("85.34.78.112"); PaymentRefundResponse response = client.refund(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentId=" + response.getPaymentId()); System.out.println("paymentTransactionId=" + response.getPaymentTransactionId()); System.out.println("price=" + response.getPrice()); Örnek Java Sonuç Çıktısı conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com systemTime=1445240504793 paymentId=3032 paymentTransactionId=1543 price=3.3 Örnek Java İstek Koduna Ait JSON Çıktısı { "locale" : "tr", "conversationId" : "123456789", "paymentTransactionId" : "1543", "price" : 3.3, "ip" : "85.34.78.112" } Örnek Java Sonuç Koduna Ait JSON Çıktısı { "status" : "success", "locale" : "tr", "systemTime" : 1445240504793, "conversationId" : "123456789", "paymentId" : "3032", "paymentTransactionId" : "1543", "price" : 3.3 } 3.3.3.2 Para Transferi Sonrası İade Eğer iade edilecek kırılıma ait para transferi; üye işyerine ve/veya alt üye işyerine yapılmışsa, bu durumda iadenin yapılabilmesi için daha önceden dağıtılan paranın toplanması gerekir. Örneğin; pazaryeri iş modelinde 100 TL’lik bir ödemenin • 90 TL’si alt üye işyerine, • 8 TL’si üye işyerine, • 2 TL’si de iyzico’ya gönderilmiş olsun. Bu işleme ait 50 TL’lik bir kısmi iade talebi gelirse, bu durumda • alt üye işyerinden 45 TL, • üye işyerinden 4 TL, • iyzico’dan da 1 TL geri almak gerekir. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com İyzico, paranın geri toplama işini, o üye işyerine ve/veya alt üye işyerine gönderilecek bir sonraki para transferinden düşerek (mahsuplaşarak) otomatik bir şekilde el değmeden yapar. Bu noktada • alt üye işyerine ait sistemde parası henüz gönderilmemiş, onay bekleyen, veya onaylanan ama henüz para transferi yapılmamış ödemeler, yani bakiye varsa, • üye işyerine ait sistemde parası henüz gönderilmemiş, onay bekleyen, veya onaylanan ama henüz para transferi yapılmamış ödemeler, yani bakiye varsa iade kabul edilir ve ilgili bakiyeler ilgili üye işyeri ve alt üye işyerine eksi olarak yazılır, bir sonraki para transferinden düşülür. Eğer alt üye işyerinin bakiyesinde yeterli para yoksa bu iade işlemi reddedilir ve üye işyerine “5116” hata kodu dönülür. Üye işyeri bu bakiyeyi de kendisi üstlenmek isterse aşağıdaki servisi çağırarak iadenin yapılmasını sağlar. Eğer üye işyerinin bakiyesinde yeterli para yoksa bu iade işlemi reddedilir ve üye işyerine “5117” hata kodu dönülür. Bu durumda iade işlemi kabul edilmez. İade parametreleri ve dönüş değerleri standart iade ile aynıdır. • API Servis (Endpoint) İsmi: /payment/iyzipos/refund/merchant/charge • Method: HTTP POST 3.4 Para Transferi İçin Ürüne Onay Verme Pazaryeri çözümünde, ödeme iyzico’dan geçtikten sonra, üye işyeri ödeme içinde yer alan kırılıma / ürüne onay verene dek para korumalı havuz hesapta bekletilir. Üye işyeri bu sürede ödemeyi iptal edebilir, ödemenin kırılımını iade edebilir, ürün alıcıya ulaştı ve işlem sorunsuz tamamlandıysa para transferi için ürüne onay verebilir, veya verdiği ürün onayını geri çekebilir. 3.4.1 Ürüne Onay Verme Ürüne onay vermek için ödeme kırılımına ait id (paymentTransactionId) iletilmesi gerekmektedir. Onay verilen ödeme kırılımı id’si (paymentTransactionId) servisten döner. . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com • API Servis (Endpoint) İsmi: /payment/iyzipos/item/approve • Method: HTTP POST Örnek Java İstek Çıktısı EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); ApprovalRequest request = new ApprovalRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentTransactionId("1546"); ApprovalResponse response = client.approve(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentTransactionId=" + response.getPaymentTransactionId()); Örnek Java Sonuç Çıktısı conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1445240902151 paymentTransactionId=1546 Örnek Java İstek Koduna Ait JSON Çıktısı { "locale" : "tr", . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com "conversationId" : "123456789", "paymentTransactionId" : "1546" } Örnek Java Sonuç Koduna Ait JSON Çıktısı { "status" : "success", "locale" : "tr", "systemTime" : 1445240902151, "conversationId" : "123456789", "paymentTransactionId" : "1546" } 3.4.2 Verilen Onayı Geri Çekme Ürüne verilen onayı geri çekmek için ödeme kırılımına ait id (paymentTransactionId) iletilmesi gerekmektedir. Onayı geri çekilen ödeme kırılımı id’si (paymentTransactionId) servisten döner. • API Servis (Endpoint) İsmi: /payment/iyzipos/item/disapprove • Method: HTTP POST Örnek Java İstek Çıktısı EcomPaymentServiceClient client = new EcomPaymentServiceClientImpl(configuration); ApprovalRequest request = new ApprovalRequest(); request.setLocale(RequestLocaleType.TR.getValue()); request.setConversationId("123456789"); request.setPaymentTransactionId("1546"); ApprovalResponse response = client.disapprove(request); System.out.println("conversationId=" + response.getConversationId()); System.out.println("locale=" + response.getLocale()); System.out.println("status=" + response.getStatus()); System.out.println("errorCode=" + response.getErrorCode()); . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com System.out.println("errorMessage=" + response.getErrorMessage()); System.out.println("errorGroup=" + response.getErrorGroup()); System.out.println("systemTime=" + response.getSystemTime()); System.out.println("paymentTransactionId=" + response.getPaymentTransactionId()); Örnek Java Sonuç Çıktısı conversationId=123456789 locale=tr status=success errorCode=null errorMessage=null errorGroup=null systemTime=1445241016138 paymentTransactionId=1546 Örnek Java İstek Koduna Ait JSON Çıktısı { "locale" : "tr", "conversationId" : "123456789", "paymentTransactionId" : "1546" } Örnek Java Sonuç Koduna Ait JSON Çıktısı { "status" : "success", "locale" : "tr", "systemTime" : 1445241016138, "conversationId" : "123456789", "paymentTransactionId" : "1546" } . iyzico Ödeme Hizmetleri A.Ş Nidakule Göztepe İş Merkezi Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1 Kat:19 Bağımsız 70/73 Kadıköy 34732 Telefon:+90 216 599 01 00 E-­mail: [email protected] Web: www.iyzico.com 

Benzer belgeler

iyzico Checkout Form ve Ortak Ödeme Sayfası ve Iframe Dokümanı

iyzico Checkout Form ve Ortak Ödeme Sayfası ve Iframe Dokümanı iyzico  Checkout  Form  ve  Ortak  Ödeme  Sayfası  ve  Iframe  Dokümanı  .................................................................  1   1   Başlarken  .............

Detaylı

iyzico`ya PayPal`dan İki Önemli Transfer

iyzico`ya PayPal`dan İki Önemli Transfer Avrupa’da  e-­‐ticaret  ve  ödeme  sistemleri  alanlarında  Firstdata,  ClickandBuy,  Klarna  gibi  saygın  şirketlerde  önemli   kariyerlere  sahip  olan  Barbaros ...

Detaylı