Korumalı Havale/EFT Sorgulama

Havale/EFT sürecini tamamlayan müşteriler "Alışverişi Tamamla" tuşuna bastığında; Havale/EFT başlatırken belirlediğiniz callbackUrl adresine yönlendirir ve bu adrese bir token değeri post edilir. Bu token değeri ile ikinci bir sorgu yapılabilir. Dönen cevapta paymentStatus değeri kontrol edilmelidir. Ödeme durumunu sistematik olarak kontrol etmek isterseniz, bu isteği belirli aralıklarla tekrarlayabilirsiniz. Bu istek sonucunda işlem sonucuna dair ayrıntılar alınmaktadır. Bu sorguda kullanacağınız token değerini havale/EFT formunu oluşturduğunuz anda ya da callbackUrl adresinize iyzico tarafından post edildiğinde alabilirsiniz. Ödeme eşleşmesi gerçekleştiğinde ayrıca callBackUrl adresine bir notification gönderilecektir.

Müşteriye ürün/hizmet sunumu sadece paymentStatus: SUCCESS durumunda yapılmalıdır. Diğer ödeme durumlarında ödeme başarılı değildir.

Ödeme eşleşmesi yapıldığında callBackUrl'e gönderilen ödeme durumu post isteği

{
  "iyziEventTime": "1569325868970",
  "iyziEventType": "BANK_TRANSFER_AUTH",
  "iyziReferenceCode": "028246012345",
  "status": "SUCCESS",
  "token": "04de1234-32b9-6907-bf06-0987ae260e35"
}


Servise gönderilmesi gereken parametreler şu şekildedir:

Parametre ismi Tip Zorunluluk Açıklama
locale string Hayır iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
conversationId string Hayır İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
token string Evet Havale/EFT form için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Ödemenin sonucunu öğrenmek için zorunlu bir alandır.

Servisten dönen parametreler şu şekildedir:

Parametre İsmi Veri Tipi Açıklama
status String Yapılan isteğin sonucunu bildirir. Başarılı ise success, hatalı ise failure döner.
paymentStatus String Ödeme durumunu gösterir. Success ise havale başarılı şekilde alınmıştır. INIT_BANK_TRANSFER değeri havale/eft'nin henüz yapılmadığını gösterir. SUCCESS, FAILURE, INIT_BANK_TRANSFER
errorCode String İşlem hatalıysa, bu hataya dair belirtilen koddur.
errorMessage String İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar.
errorGroup String İşlem hatalıysa, bu hataya dair belirtilen gruptur.
locale String İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
systemTime Long Dönen sonucun o anki unix timestamp değeridir.
conversationId String İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.
paymentId String Ödemeye ait id, üye işyeri tarafından mutlaka saklanmalıdır. Ödemenin iptali ve iyzico ile iletişimde kullanılır.
price Decimal Ödeme sepet tutarı. Kırılım tutarlar toplamı sepet tutarına eşit olmalı.
paidPrice Decimal İndirim vade farkı vs. hesaplanmış POS’tan geçen, tahsil edilen, nihai tutar.
currency String Ödemenin alındığı para birimi.
installment Integer Ödemenin taksit bilgisi, tek çekim için 1 döner. Geçerli değerler: 1, 2, 3, 6, 9, 12
basketId String Üye işyeri tarafından gönderilen sepet id’si.
binNumber String Bu bilgi boş gelmektedir
lastFourDigits String Bu bilgi boş gelmektedir
cardAssociation String Bu bilgi boş gelmektedir
cardFamily String Bu bilgi boş gelmektedir
cardType String Bu bilgi boş gelmektedir
fraudStatus Integer Varsayılan olarak 1 gelmektedir
iyziCommissionFee Decimal Ödemeye ait iyzico işlem ücreti
iyziCommissionRateAmount Decimal Ödemeye ait iyzico işlem komisyon tutarı.
merchantCommissionRate Decimal Ü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.
merchantCommissionRateAmount Decimal Ü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.
paymentTransactionId (ItemTransactions) String Ö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.
itemId (ItemTransactions) String Üye işyeri tarafından iletilen, sepetteki ürüne ait id.
price (ItemTransactions) Decimal Üye işyeri tarafındaki sepetteki ürüne ait tutar.
paidPrice (ItemTransactions) Decimal Tahsilat tutarının kırılım bazındaki dağılımı. Üye işyeri tarafından mutlaka saklanmalıdır.
transactionStatus (ItemTransactions) Integer Ö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.
blockageRate (ItemTransactions) Decimal 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ında üye işyerine gönderilir.
blockageRateAmountMerchant (ItemTransactions) Decimal 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.
blockageResolvedDate (ItemTransactions) String İşlem bazında blokaj çözülme tarihi. yyyy-MM-dd HH:mm:ss formatındadır, örneğin 2015-10-19 14:36:52.
iyziCommissionFee (ItemTransactions) Decimal iyzico işlem ücretinin kırılım bazında dağılmış tutarı.
iyziCommissionRateAmount (ItemTransactions) Decimal iyzico işlem komisyon tutarının kırılım bazında dağılmış tutarı.
merchantCommissionRate (ItemTransactions) Decimal Üye işyerinin uyguladığı vade/komisyon oranının kırılım bazında dağılmış oranı.
merchantCommissionRateAmount (ItemTransactions) Decimal Üye işyerinin uyguladığı vade/komisyon tutarıın, kırılım bazında dağılmış tutarı.
merchantPayoutAmount (ItemTransactions) Decimal 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.
paidPrice(ItemTransactions) (convertedPayout) Decimal Tahsilat tutarının kırılım bazındaki dağılımı. Üye işyeri tarafından mutlaka saklanmalıdır.
iyziCommissionFee (ItemTransactions) (convertedPayout) Decimal iyzico işlem ücretinin kırılım bazında dağılmış tutarı.
iyziCommissionRateAmount (ItemTransactions) (convertedPayout) Decimal iyzico işlem komisyon tutarının kırılım bazında dağılmış tutarı.
blockageRateAmountMerchant (ItemTransactions) (convertedPayout) Decimal 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.
merchantPayoutAmount (ItemTransactions) (convertedPayout) Decimal 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.
iyziConversationRate (ItemTransactions) (convertedPayout) Decimal 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.
iyziConversationRateAmount (ItemTransactions) (convertedPayout) Decimal 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.
currency (ItemTransactions) (convertedPayout) String Ödemenin alındığı para birimi.

$request = new \Iyzipay\Request\RetrieveCheckoutFormRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setToken("token");

$checkoutForm = \Iyzipay\Model\CheckoutForm::retrieve($request, Config::options());
RetrieveCheckoutFormRequest request = new RetrieveCheckoutFormRequest();
request.ConversationId = "123456789";
request.Token = "token";

CheckoutForm checkoutForm = CheckoutForm.Retrieve(request, options);
RetrieveCheckoutFormRequest request = new RetrieveCheckoutFormRequest();
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456789");
request.setToken("token");

CheckoutForm checkoutForm = CheckoutForm.retrieve(request, options);
iyzipay.checkoutForm.retrieve({
    locale: Iyzipay.LOCALE.TR,
    conversationId: '123456789',
    token: 'token'
}, function (err, result) {
    console.log(err, result);
    done();
});
request = {
    locale: 'tr',
    conversationId: '123456789',
    token: 'b4d8088e-ce35-452d-94c9-d5bd9f385557'
}
checkout_form_payment = Iyzipay::Model::CheckoutForm.new.retrieve(request, @options)
request = dict([('locale', 'tr')])
request['conversationId'] = '123456789'
request['token'] = 'token'

checkout_form_auth = iyzipay.CheckoutFormAuth()
checkout_form_auth_response = checkout_form_auth.retrieve(request, options)
//Request
{
    "locale": "tr",
    "conversationId": "123456789",
    "token": "d9a1d90e-7cfb-4ead-a6ec-34237bac04f0"
}

//Response
{
    "status": "success",
    "locale": "tr",
    "systemTime": 1470731191116,
    "conversationId": "123456789",
    "price": 1,
    "paidPrice": 1.2,
    "installment": 1,
    "paymentId": "26143",
    "fraudStatus": 1,
    "merchantCommissionRate": 20,
    "merchantCommissionRateAmount": 0.2,
    "iyziCommissionRateAmount": 0.0354,
    "iyziCommissionFee": 0.25,
    "cardType": "CREDIT_CARD",
    "cardAssociation": "MASTER_CARD",
    "cardFamily": "Cardfinans",
    "cardToken": "mIbv1i4Tkjhmp/7BQQWa6zjeebQ=",
    "cardUserKey": "ycXvjM2Z/n94gk7MIc3JoamsDKk=",
    "binNumber": "531157",
    "basketId": "B67832",
    "currency": "TRY",
    "itemTransactions": [
        {
            "itemId": "BI101",
            "paymentTransactionId": "38226",
            "transactionStatus": 2,
            "price": 0.3,
            "paidPrice": 0.36,
            "merchantCommissionRate": 20,
            "merchantCommissionRateAmount": 0.06,
            "iyziCommissionRateAmount": 0.01062,
            "iyziCommissionFee": 0.075,
            "blockageRate": 10,
            "blockageRateAmountMerchant": 0.036,
            "blockageRateAmountSubMerchant": 0,
            "blockageResolvedDate": "2016-08-16 11:25:58",
            "subMerchantPrice": 0,
            "subMerchantPayoutRate": 0,
            "subMerchantPayoutAmount": 0,
            "merchantPayoutAmount": 0.23838,
            "convertedPayout": {
                "paidPrice": 0.36,
                "iyziCommissionRateAmount": 0.01062,
                "iyziCommissionFee": 0.075,
                "blockageRateAmountMerchant": 0.036,
                "blockageRateAmountSubMerchant": 0,
                "subMerchantPayoutAmount": 0,
                "merchantPayoutAmount": 0.23838,
                "iyziConversionRate": 0,
                "iyziConversionRateAmount": 0,
                "currency": "TRY"
            }
        },
        {
            "itemId": "BI102",
            "paymentTransactionId": "38227",
            "transactionStatus": 2,
            "price": 0.5,
            "paidPrice": 0.6,
            "merchantCommissionRate": 20,
            "merchantCommissionRateAmount": 0.1,
            "iyziCommissionRateAmount": 0.0177,
            "iyziCommissionFee": 0.125,
            "blockageRate": 10,
            "blockageRateAmountMerchant": 0.06,
            "blockageRateAmountSubMerchant": 0,
            "blockageResolvedDate": "2016-08-16 11:25:58",
            "subMerchantPrice": 0,
            "subMerchantPayoutRate": 0,
            "subMerchantPayoutAmount": 0,
            "merchantPayoutAmount": 0.3973,
            "convertedPayout": {
                "paidPrice": 0.6,
                "iyziCommissionRateAmount": 0.0177,
                "iyziCommissionFee": 0.125,
                "blockageRateAmountMerchant": 0.06,
                "blockageRateAmountSubMerchant": 0,
                "subMerchantPayoutAmount": 0,
                "merchantPayoutAmount": 0.3973,
                "iyziConversionRate": 0,
                "iyziConversionRateAmount": 0,
                "currency": "TRY"
            }
        },
        {
            "itemId": "BI103",
            "paymentTransactionId": "38228",
            "transactionStatus": 2,
            "price": 0.2,
            "paidPrice": 0.24,
            "merchantCommissionRate": 20,
            "merchantCommissionRateAmount": 0.04,
            "iyziCommissionRateAmount": 0.00708,
            "iyziCommissionFee": 0.05,
            "blockageRate": 10,
            "blockageRateAmountMerchant": 0.024,
            "blockageRateAmountSubMerchant": 0,
            "blockageResolvedDate": "2016-08-16 11:25:58",
            "subMerchantPrice": 0,
            "subMerchantPayoutRate": 0,
            "subMerchantPayoutAmount": 0,
            "merchantPayoutAmount": 0.15892,
            "convertedPayout": {
                "paidPrice": 0.24,
                "iyziCommissionRateAmount": 0.00708,
                "iyziCommissionFee": 0.05,
                "blockageRateAmountMerchant": 0.024,
                "blockageRateAmountSubMerchant": 0,
                "subMerchantPayoutAmount": 0,
                "merchantPayoutAmount": 0.15892,
                "iyziConversionRate": 0,
                "iyziConversionRateAmount": 0,
                "currency": "TRY"
            }
        }
    ],
    "token": "d9a1d90e-7cfb-4ead-a6ec-34237bac04f0",
    "callbackUrl": "https://www.merchant.com/callback",
    "paymentStatus": "SUCCESS"
}

Örnek Kodlar

var Iyzipay = require('iyzipay'); var iyzipay = new Iyzipay({ apiKey: "sandbox-afXhZPW0MQlE4dCUUlHcEopnMBgXnAZI", secretKey: "sandbox-wbwpzKIiplZxI3hh5ALI4FJyAcZKL6kq", uri: 'https://sandbox-api.iyzipay.com' }); iyzipay.checkoutForm.retrieve({ locale: Iyzipay.LOCALE.TR, conversationId: '123456789', token: 'token' }, function (err, result) { console.log(result); });