NAV Navbar
PHP Python 3 Node JS C Sharp
  • Başlamadan Önce
  • ALU v3(API) Entegrasyonu
  • LU(Ortak Ödeme Sayfası) Entegrasyonu
  • PayU Checkout Entegrasyonu
  • Kart Saklama
  • IPN Servisi(Asenkron Bildirim Servisi)
  • IOS Servisi(İşlem Sorgu Servisi)
  • IRN Servisi(İptal/İade Servisi)
  • BIN Servisi
  • Puan Sorgu Servisi ve Puan Kullanımı
  • IDN Servisi(Konfirmasyon Servisi)
  • Rapor Servisi
  • Test Bilgileri
  • İşlem Mesajları
  • Başlamadan Önce

    1. Entegrasyonunu yaptığınız ödeme yöntemleri (BKM, UPT, COMPAY, WIRE vb.), bazı iş modelleri (TEK TIKLA ÖDEME, PAZARYERİ vb.), döviz tipleri, opsiyonel 3D özelliği gibi işyerine özel durumlar için PayU tarafından hesabınıza tanımlamalar yapılması gerekmektedir. Bu tanımlar ile ilgili satış temsilcinizle ya da help@payu.com.tr adresimizden bizimle iletişime geçebilirsiniz.
    2. Üye İşyeri Kontrol Paneli’ne giriş için https://secure.payu.com.tr/cpanel/ linkini takip edebilirsiniz.
    3. Test ortam bilgileri ve test kartları, entegrasyon dokümanının son bölümünde yer almaktadır.
    4. Çalışma şeklinin 3D olmaması durumunda da bazı işlemler (ör: debit kartlar, 3D zorunlu ülkelerin kartları vb.) 3D’ye yönlendirileceğinden 3D entegrasyonunun da dokümanda tarif edildiği şekilde yapılması gerekmektedir.
    5. API entegrasyonunda hata bilgisi konsolide şekilde dönebildiği gibi, PayU tarafından aktifleştirilmesi durumunda banka cevabı doğrudan PROCRETURNCODE ve ERRORMESSAGE içerisinde belirtilmektedir.
    6. ORDER_DATE parametresi ile İşlem / sipariş saati UTC/GMT formatında gönderilmelidir. Sipariş saati (ORDER_DATE) kaynaklı saat (REQUEST_EXPIRED) hatasının önüne geçebilmek için; saat fonksiyonu UTC/GMT formatı ile ayarlanmalı ve Türkiye saatine göre 3 saat geri olacak şekilde gönderilmelidir.
    7. Türk lirasını koruma kanunu gereği, Türk bankalarına ait kartlar ile Türk bankalarının sanal poslarında dövizli işlem yapılamamaktadır. Türk bankalarının sanal posları üzerinden sadece yabancı kartlar dövizli işlem yapabilmektedir.

    ALU v3(API) Entegrasyonu

    İstek Parametreleri

    İşlem İsteği Göndermek için:

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

    
                ApiPaymentRequest apiPaymentRequest = new ApiPaymentRequest();
    
                apiPaymentRequest.Config = new ApiPaymentRequest.PayUConfig();
                apiPaymentRequest.Config.MERCHANT = "OPU_TEST";
                apiPaymentRequest.Config.LANGUAGE = "TR";
                apiPaymentRequest.Config.PAY_METHOD = "CCVISAMC";
                apiPaymentRequest.Config.BACK_REF = "";
                apiPaymentRequest.Config.PRICES_CURRENCY = "TRY";
                apiPaymentRequest.Order = new ApiPaymentRequest.PayUOrder();
                apiPaymentRequest.Order.ORDER_REF = Guid.NewGuid().ToString();
                apiPaymentRequest.Order.ORDER_SHIPPING = "5";
                apiPaymentRequest.Order.ORDER_DATE = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
    
                ApiPaymentRequest.PayUOrder.PayUOrderItem orderItem = new ApiPaymentRequest.PayUOrder.PayUOrderItem();
                orderItem.ORDER_PRICE = "5";
                orderItem.ORDER_PINFO = "Test Açıklaması";
                orderItem.ORDER_QTY = "1";
                orderItem.ORDER_PCODE = "Test Kodu";
                orderItem.ORDER_PNAME = "Test Ürünü";
                orderItem.ORDER_VAT = "18";
                orderItem.ORDER_PRICE_TYPE = "NET";
    
                apiPaymentRequest.Order.OrderItems.Add(orderItem);
    
                apiPaymentRequest.CreditCard = new ApiPaymentRequest.PayUCreditCard();
                apiPaymentRequest.CreditCard.CC_NUMBER = cardNumber;
                apiPaymentRequest.CreditCard.EXP_MONTH = month;
                apiPaymentRequest.CreditCard.EXP_YEAR = year;
                apiPaymentRequest.CreditCard.CC_CVV = cvc;
                apiPaymentRequest.CreditCard.CC_OWNER = nameSurname;
                apiPaymentRequest.CreditCard.SELECTED_INSTALLMENTS_NUMBER = installment;
    
                apiPaymentRequest.Customer = new ApiPaymentRequest.PayUCustomer();
                apiPaymentRequest.Customer.BILL_FNAME = "Ad";
                apiPaymentRequest.Customer.BILL_LNAME = "Soyad";
                apiPaymentRequest.Customer.BILL_EMAIL = "mail@mail.com";
                apiPaymentRequest.Customer.BILL_PHONE = "02129003711";
                apiPaymentRequest.Customer.BILL_FAX = "02129003711";
                apiPaymentRequest.Customer.BILL_ADDRESS = "Birinci Adres satırı";
                apiPaymentRequest.Customer.BILL_ADDRESS2 = "İkinci Adres satırı";
                apiPaymentRequest.Customer.BILL_ZIPCODE = "34000";
                apiPaymentRequest.Customer.BILL_CITY = "ISTANBUL";
                apiPaymentRequest.Customer.BILL_COUNTRYCODE = "TR";
                apiPaymentRequest.Customer.BILL_STATE = "Ayazağa";
                apiPaymentRequest.Customer.CLIENT_IP = Request.UserHostAddress;
    
    
                apiPaymentRequest.Delivery = new ApiPaymentRequest.PayUDelivery();
                apiPaymentRequest.Delivery.DELIVERY_FNAME = "Ad";
                apiPaymentRequest.Delivery.DELIVERY_LNAME = "Soyad";
                apiPaymentRequest.Delivery.DELIVERY_EMAIL = "mail@mail.com";
                apiPaymentRequest.Delivery.DELIVERY_PHONE = "02129003711";
                apiPaymentRequest.Delivery.DELIVERY_COMPANY = "PayU Ödeme Kuruluşu A.Ş.";
                apiPaymentRequest.Delivery.DELIVERY_ADDRESS = "Birinci Adres satIRI";
                apiPaymentRequest.Delivery.DELIVERY_ADDRESS2 = "İkinci Adres satırı";
                apiPaymentRequest.Delivery.DELIVERY_ZIPCODE = "34000";
                apiPaymentRequest.Delivery.DELIVERY_CITY = "ISTANBUL";
                apiPaymentRequest.Delivery.DELIVERY_STATE = "TR";
                apiPaymentRequest.Delivery.DELIVERY_COUNTRYCODE = "Ayazağa";
    
                var options = new Options();
                options.Url = "https://secure.payu.com.tr/order/alu/v3";
                options.SecretKey = "SECRET_KEY";
                var response = ApiPaymentRequest.Non3DExecute(apiPaymentRequest, options);
    
    
    
    var EndPointUrl = 'https://secure.payu.com.tr/order/alu/v3';
    
    SecretKey = 'SECRET_KEY';
    
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    ORDER_REF = Math.floor(Math.random() * Math.floor(1000));
    
    
    var array = {
        'MERCHANT': "OPU_TEST",
        'LANGUAGE': "TR",
        'ORDER_DATE': date,
        'PAY_METHOD': "CCVISAMC",
        'BACK_REF': "http://www.backref.com.tr",
        'PRICES_CURRENCY': "TRY",
        'SELECTED_INSTALLMENTS_NUMBER': "1",
        'ORDER_SHIPPING': "5",
        'CLIENT_IP': "127.0.0.1",
        'ORDER_REF': "Test"+ORDER_REF,
    
        'ORDER_PNAME[0]':'Test Ürünü',
        'ORDER_PCODE[0]':'Test Kodu',
        'ORDER_PINFO[0]':'Test Açıklaması',
        'ORDER_PRICE[0]':'5',
        'ORDER_VAT[0]':'18',
        'ORDER_PRICE_TYPE[0]':'NET',
        'ORDER_QTY[0]':'1',
    
        'ORDER_PNAME[1]':'Test Ürünü-2',
        'ORDER_PCODE[1]':'Test Kodu-2',
        'ORDER_PINFO[1]':'Test Açıklaması-2',
        'ORDER_PRICE[1]':'15',
        'ORDER_VAT[1]':'24',
        'ORDER_PRICE_TYPE[1]':'GROSS',
        'ORDER_QTY[1]':'3',
    
        'CC_NUMBER':'4355084355084358',
        'EXP_MONTH':'12',
        'EXP_YEAR':'2018',
        'CC_CVV':'000',
        'CC_OWNER':'000',
    
        'BILL_FNAME':'Ad',
        'BILL_LNAME':'Soyad',
        'BILL_EMAIL':'mail@mail.com',
        'BILL_PHONE':'02129003711',
        'BILL_FAX':'02129003711',
        'BILL_ADDRESS':'Birinci Adres satırı',
        'BILL_ADDRESS2':'İkinci Adres satırı',
        'BILL_ZIPCODE':'34000',
        'BILL_CITY':'ISTANBUL',
        'BILL_COUNTRYCODE':'TR',
        'BILL_STATE':'Ayazağa',
    
        'DELIVERY_FNAME':'Ad',
        'DELIVERY_LNAME':'Soyad',
        'DELIVERY_EMAIL':'mail@mail.com',
        'DELIVERY_PHONE':'02129003711',
        'DELIVERY_COMPANY':'PayU Ödeme Kuruluşu A.Ş.',
        'DELIVERY_ADDRESS':'Birinci Adres satırı',
        'DELIVERY_ADDRESS2':'İkinci Adres satırı',
        'DELIVERY_ZIPCODE':'34000',
        'DELIVERY_CITY':'ISTANBUL',
        'DELIVERY_STATE':'TR',
        'DELIVERY_COUNTRYCODE':'Ayazağa',
    
    }
    
    hashstring = '';
    var sortKeys = require('sort-keys');
    sorted = sortKeys(array)
    for (var k in sorted) {
        hashstring += array[k].length + array[k] ;
    }
    
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['ORDER_HASH'] = signature
    
    var request = require("request");
    request.post(EndPointUrl, {form:array}, function(error, response, body) {
        console.log(error);
        console.log(body);
    
    });
    
    
    
    
    from datetime import datetime
    import random
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    
    # Endpoint
    url = "https://secure.payu.com.tr/order/alu/v3"
    
    # PayU Merchant's Secret Key
    secret = 'SECRET_KEY'
    
    # Request @params Begin
    array = {
        # PayU Merchant's Merchant ID
        'MERCHANT': "OPU_TEST",
        'LANGUAGE': "TR",
        'ORDER_DATE': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
        'PAY_METHOD': "CCVISAMC",
        'BACK_REF': "http://www.backref.com.tr",
        'PRICES_CURRENCY': "TRY",
        'SELECTED_INSTALLMENTS_NUMBER': "1",
        'ORDER_SHIPPING': "5",
        'CLIENT_IP': "127.0.0.1",
    
        'ORDER_PNAME[0]':'Test Ürünü',
        'ORDER_PCODE[0]':'Test Kodu',
        'ORDER_PINFO[0]':'Test Açıklaması',
        'ORDER_PRICE[0]':'5',
        'ORDER_VAT[0]':'18',
        'ORDER_PRICE_TYPE[0]':'NET',
        'ORDER_QTY[0]':'1',
    
        'ORDER_PNAME[1]':'Test Ürünü-2',
        'ORDER_PCODE[1]':'Test Kodu-2',
        'ORDER_PINFO[1]':'Test Açıklaması-2',
        'ORDER_PRICE[1]':'15',
        'ORDER_VAT[1]':'24',
        'ORDER_PRICE_TYPE[1]':'GROSS',
        'ORDER_QTY[1]':'3',
    
        'CC_NUMBER':'4355084355084358',
        'EXP_MONTH':'12',
        'EXP_YEAR':'2018',
        'CC_CVV':'000',
        'CC_OWNER':'000',
    
        'BILL_FNAME':'Ad',
        'BILL_LNAME':'Soyad',
        'BILL_EMAIL':'mail@mail.com',
        'BILL_PHONE':'02129003711',
        'BILL_FAX':'02129003711',
        'BILL_ADDRESS':'Birinci Adres satırı',
        'BILL_ADDRESS2':'İkinci Adres satırı',
        'BILL_ZIPCODE':'34000',
        'BILL_CITY':'ISTANBUL',
        'BILL_COUNTRYCODE':'TR',
        'BILL_STATE':'Ayazağa',
    
        'DELIVERY_FNAME':'Ad',
        'DELIVERY_LNAME':'Soyad',
        'DELIVERY_EMAIL':'mail@mail.com',
        'DELIVERY_PHONE':'02129003711',
        'DELIVERY_COMPANY':'PayU Ödeme Kuruluşu A.Ş.',
        'DELIVERY_ADDRESS':'Birinci Adres satırı',
        'DELIVERY_ADDRESS2':'İkinci Adres satırı',
        'DELIVERY_ZIPCODE':'34000',
        'DELIVERY_CITY':'ISTANBUL',
        'DELIVERY_STATE':'TR',
        'DELIVERY_COUNTRYCODE':'Ayazağa',
    
    }
    # Random number generation function for ORDER_REF @param
    refno = str(random.randint(1, 100000))
    
    # Adding ORDER_REF @param to request array
    array['ORDER_REF'] = refno
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in sorted(array.items()):
    
    # Adding the length of each field value at the beginning of field value
        hashstring += str(len(v)) + str(v)
    print(hashstring)
    
    # Calculating ORDER_HASH
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding ORDER_HASH @param to request array
    array['ORDER_HASH'] = signature
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    
    <?php
    $url = "https://secure.payu.com.tr/order/alu/v3";
    date_default_timezone_set('UTC');
    
    $secretKey = 'SECRET_KEY';
    
    $arParams = array(
    
       "MERCHANT" => "OPU_TEST",
       "LANGUAGE" => "TR",
       "ORDER_REF" =>  rand(1, 10000),
       "ORDER_DATE" => date('Y-m-d H:i:s'),
       "PAY_METHOD" => "CCVISAMC",
       "BACK_REF" => "http://www.backref.com.tr",
       "PRICES_CURRENCY" => "TRY",
       "SELECTED_INSTALLMENTS_NUMBER" => "1",
       "ORDER_SHIPPING"=>"5",
       "CLIENT_IP" => $_SERVER["REMOTE_ADDR"],
    
    
       "ORDER_PNAME[0]" => "Test Ürünü",
       "ORDER_PCODE[0]" => "Test Kodu",
       "ORDER_PINFO[0]" => "Test Açıklaması",
       "ORDER_PRICE[0]" => "5",
       "ORDER_VAT[0]"=>"18",
       "ORDER_PRICE_TYPE[0]"=>"NET",
       "ORDER_QTY[0]" => "1",
    
       "ORDER_PNAME[1]" => "Test Ürünü-2",
       "ORDER_PCODE[1]" => "Test Kodu-2",
       "ORDER_PINFO[1]" => "Test Açıklaması-2",
       "ORDER_PRICE[1]" => "15",
       "ORDER_VAT[1]"=>"24",
       "ORDER_PRICE_TYPE[1]"=>"GROSS",
       "ORDER_QTY[1]" => "3",
    
       "CC_NUMBER" => "4355084355084358",
       "EXP_MONTH" => "12",
       "EXP_YEAR" => "2018",
       "CC_CVV" => "000",
       "CC_OWNER" => "000",
    
       "BILL_FNAME" => "Ad",
       "BILL_LNAME" => "Soyad",
       "BILL_EMAIL" => "mail@mail.com",
       "BILL_PHONE" => "02129003711",
       "BILL_FAX" => "02129003711",
       "BILL_ADDRESS" => "Birinci Adres satırı",
       "BILL_ADDRESS2" => "İkinci Adres satırı",
       "BILL_ZIPCODE" => "34000",
       "BILL_CITY" => "ISTANBUL",
       "BILL_COUNTRYCODE" => "TR",
       "BILL_STATE" => "Ayazağa",
    
       "DELIVERY_FNAME" => "Ad",
       "DELIVERY_LNAME" => "Soyad",
       "DELIVERY_EMAIL" => "mail@mail.com",
       "DELIVERY_PHONE" => "02129003711",
       "DELIVERY_COMPANY" => "PayU Ödeme Kuruluşu A.Ş.",
       "DELIVERY_ADDRESS" => "Birinci Adres satırı",
       "DELIVERY_ADDRESS2" => "İkinci Adres satırı",
       "DELIVERY_ZIPCODE" => "34000",
       "DELIVERY_CITY" => "ISTANBUL",
       "DELIVERY_STATE" => "TR",
       "DELIVERY_COUNTRYCODE" => "Ayazağa",
    );
    
    ksort($arParams);
    $hashString = "";
    foreach ($arParams as $key => $val) {
        $hashString .= strlen($val) . $val;
    }
    $arParams["ORDER_HASH"] = hash_hmac("md5", $hashString, $secretKey);
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arParams));
    $response = curl_exec($ch);
    
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
    
    if (empty($curlerr) && empty($curlerrcode)) {
        $parsedXML = @simplexml_load_string($response);
        if ($parsedXML !== FALSE) {
            echo "<pre>";
            print_r($response);
            echo "</pre>";
    
            $payuTranReference = $parsedXML->REFNO;
    
            if ($parsedXML->STATUS == "SUCCESS") {
    
    
                if (($parsedXML->RETURN_CODE == "3DS_ENROLLED") && (!empty($parsedXML->URL_3DS))) {
                    header("Location:" . $parsedXML->URL_3DS);
                }
    
                echo "<pre>";
                echo "SUCCES [PayU reference number: " . $payuTranReference . "]";
                echo "</pre>";
    
            } else {
                echo "Error: " . $parsedXML->RETURN_MESSAGE . " [" . $parsedXML->RETURN_CODE . "]";
                echo "<br>";
                echo "Error Details: " . $parsedXML->ERRORMESSAGE . "<br> Error Code: [" . $parsedXML->PROCRETURNCODE . "]";
                if (!empty($payuTranReference)) {
                    //the transaction was register to PayU system, but some error occured during the bank authorization.
                    //See $parsedXML->RETURN_MESSAGE and $parsedXML->RETURN_CODE for details
                    echo "<pre>";
                    echo " [PayU reference number: " . $payuTranReference . "]";
                    echo "</pre>";
    
                }
            }
        }
    } else {
        echo "cURL error: " . $curlerr;
    
    }
    
    

    Endpoint: https://secure.payu.com.tr/order/alu/v3

    İşlem Parametereleri

    Parametre Değer Açıklama Zorunlu
    MERCHANT string İşyerini ID bilgisidir. Üye İşyeri Kontrol Paneli’nde, hesap ayarları sayfasında bulunmaktadır. Evet
    LANGUAGE string İşlemin gerçekleştiği dilin kısa kodu değeri (TR/EN) Evet
    ORDER_REF string/int İşyerinin kendi belirlediği sipariş/işlem numarasıdır. Her başarılı / başarısız işlemde benzersiz bir değer atanmalıdır. Evet
    ORDER_DATE string İşlem/sipariş saati
    PAY_METHOD string Ödeme yöntemini belirtir. Alabileceği değerler; 1.“CCVISAMC” (Kartlı işlemler) 2.“BKM” (BKM Express işlemleri) 3.“UPT” (Ucuz Para Transferi işlemleri) 4.“COMPAY” (Online Havale işlemleri) 5.“WIRE” (Havale/EFT işlemleri) Evet
    ORDER_HASH string Sipariş içeriğindeki tüm parametre değerlerinin key'e göre sıralanıp, üye işyeri kodlama anahtarı kullanılarak HMAC MD5 algoritması ile hashlenerek elde edilen değerdir. Hash hesaplaması için Bknz: Hash Hesaplama Evet
    BACK_REF string Ödeme işlemi tamamlandıktan sonra kullanıcının yönlendirileceği URL’dir. 3D işlemlerde işleme ait parametreler de BACK_REF URL’e post edilir. Hayır
    PRICES_CURRENCY string İşlemin gerçekleşeceği para birimini belirleyen parametredir (TRY, EUR, USD, GBP). Türk kartlar için dövizli işlem gönderilmemelidir. Hayır
    SELECTED_INSTALLMENTS_NUMBER int Taksit yapılacaksa taksit bilgisinin belirtildiği parametredir.Vade farkı/komisyon bilgileri Üye işyeri kontrol panelinde “Hesap Yönetimi” > “Finansal Yönetim” adımı altında sunulmaktadır. Bu sayfa aracılığı ile komisyonlar kart hamiline ya da işyerine yansıtılabilmektedir. Hayır
    ORDER_SHIPPING int Teslimat/Kargo ücretinin belirtildiği parametredir. Kullanılan para birimi ürün bilgisindeki PRICES_CURRENCY[]’den alınmaktadır. Hayır
    CLIENT_IP string Kullanıcı IP’sinin belirtildiği parametredir. Hayır
    DISCOUNT int Sepet tutarında genel indirim yapılabilmesini sağlayan parametredir . Hayır
    ORDER_TIMEOUT int Belirli bir süre cevap alınamadığı durumlarda işlemin sonlandırılması için saniye belirtebileceğiniz parametre. Hayır

    Ürün Parametereleri

    Parametre Değer Açıklama Zorunlu Karakter Sınırı
    ORDER_PNAME[] varchar Minimum 2, maksimum 155 karakterden oluşan ürün isminin gönderildiği parametredir. Evet 400
    ORDER_PCODE[] varchar Maksimum 50 karakterden oluşan ürün kodunun gönderildiği parametredir. Evet 50
    ORDER_PINFO[] varchar Ürün bilgisinin belirtildiği parametredir. Hayır 1000
    ORDER_VER[] varchar Ürün versiyonunun belirtildiği parametredir. Hayır
    ORDER_PRICE[] double Ürün fiyatının gönderildiği parametredir. Ondalık simgesi olarak "."(nokta) kullanılmalıdır. ","(virgül) kullanımında hata alınacaktır. Evet
    ORDER_VAT[] double Üründe uygulanan verginin belirlendiği parametredir 1, 8 veya 18 olarak belirlenmelidir. Evet
    ORDER_PRICE_TYPE[] string KDV tipinin belirlendiği parametredir. "GROSS" değeri ile gönderilmesi durumunda ürün fiyatına KDV dahil kabul edilecektir. "NET" gönderilmesi durumunda KDV, PayU tarafından ürünün tutarına eklenecektir. Evet
    ORDER_QTY[] int Ürün adedinin belirlendiği parametredir. Evet 3

    Kart Bilgileri

    Parametre Değer Açıklama Zorunlu
    CC_NUMBER string Kart numarasının belirtildiği parametredir. Evet
    EXP_MONTH string Kartın son kullanım tarihi ay bilgisinin belirtildiği parametredir. Evet
    EXP_YEAR string Kartın son kullanım tarihi yıl bilgisinin belirtildiği parametredir. Dört haneli olarak belirlenmelidir. Evet
    CC_CVV string Kartın güvenlik kodunu belirtildiği parametredir. Evet
    CC_OWNER string Kart hamilinin isim-soyisim bilgisinin belirtildiği parametredir. Hayır

    Fatura Parametereleri

    Parametre Değer Açıklama Zorunlu Karakter Sınırı
    BILL_FNAME varchar Fatura düzenlenecek kişinin adı. Evet 40
    BILL_LNAME varchar Fatura düzenlenecek kişinin soyadı. Evet 40
    BILL_EMAIL varchar Fatura düzenlenecek kişinin email adresi. Evet 120
    BILL_PHONE varchar Fatura düzenlenecek kişinin telefon numarası. Evet 40
    BILL_FAX varchar Fatura düzenlenecek kişinin faks numarasının belirtildiği parametredir. Hayır 40
    BILL_ADDRESS varchar Fatura düzenlenecek kişinin adresinin belirtildiği parametredir. Hayır 100
    BILL_ADDRESS2 varchar Fatura düzenlenecek kişinin adresinin belirtildiği parametredir. (ikinci satır için) Hayır 100
    BILL_ZIPCODE varchar Fatura düzenlenecek kişinin posta kodunun belirtildiği parametredir. Hayır 15
    BILL_CITY varchar Fatura düzenlenecek kişinin şehir bilgisinin belirtildiği parametredir. Hayır 40
    BILL_COUNTRYCODE varchar Fatura düzenlenecek kişinin iki karakterli ülke kodu. (ISO Alpha-2 formatında) Evet 3
    BILL_STATE varchar Fatura düzenlenecek kişinin semt/ilçe bilgisinin belirtildiği parametredir. Hayır 30

    Teslimat Parametereleri

    Parametre Değer Açıklama Zorunlu Karakter Sınırı
    DELIVERY_FNAME varchar Teslim edilecek kişinin adı. Hayır 40
    DELIVERY_LNAME varchar Teslim edilecek kişinin soyadı. Hayır 40
    DELIVERY_EMAIL varchar Teslim edilecek kişinin email adresi. Hayır 80
    DELIVERY_PHONE varchar Teslim edilecek kişinin telefon numarası. Hayır 40
    DELIVERY_COMPANY varchar Teslim edilecek kişinin şirket bilgisi. Hayır 50
    DELIVERY_ADDRESS varchar Teslim edilecek kişinin adresi. Hayır 100
    DELIVERY_ADDRESS2 varchar Teslim edilecek kişinin adresi. (ikinci satır için) Hayır 100
    DELIVERY_ZIPCODE varchar Teslim edilecek kişinin posta kodu. Hayır 20
    DELIVERY_CITY varchar Teslim edilecek kişinin şehir bilgisi. Hayır 30
    DELIVERY_STATE varchar Teslim edilecek kişinin semt/ilçe bilgisi. Hayır 30
    DELIVERY_COUNTRYCODE varchar Teslim edilecek kişinin iki karakterli ülke kodu. (ISO Alpha-2 formatında). Hayır 3

    Fraud için Ekstra Parametreler

    Parametre Değer Açıklama Zorunlu
    CC_NUMBER_TIME string Kullanıcının kart numarasını giriş hızının belirtildiği parametredir. Hayır
    CC_OWNER_TIME string Kullanıcının kart üzerindeki ismi giriş hızının belirtildiği parametredir. Hayır
    CLIENT_TIME string Kullanıcının tarayıcısından YYYY-MM-DD hh:mm;ss formatında alınan zaman bilgisinin belirtildiği parametredir. Hayır

    Yanıt Parametreleri

    PayU sistemi, yapılan isteğe XML formatında bir yanıt dönmektedir. Bu yanıt;

    Başarılı İşlem Cevap Örneği

    <EPAYMENT>
      <REFNO>41652325</REFNO>
      <ALIAS>3a9d9b9663a50a9ed0f545152320c9fb</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-04 16:38:11</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>84525</ORDER_REF>
      <AUTH_CODE>342871</AUTH_CODE>
      <RRN>727716199932</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727716199932</HOSTREFNUM>
      <OID>41652325</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17277QmKG10275</TRANSID>
      <HASH>f1c2e330b1ecad927969b679097d647c</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41652325</REFNO>
      <ALIAS>3a9d9b9663a50a9ed0f545152320c9fb</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-04 16:38:11</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>84525</ORDER_REF>
      <AUTH_CODE>342871</AUTH_CODE>
      <RRN>727716199932</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727716199932</HOSTREFNUM>
      <OID>41652325</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17277QmKG10275</TRANSID>
      <HASH>f1c2e330b1ecad927969b679097d647c</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41652325</REFNO>
      <ALIAS>3a9d9b9663a50a9ed0f545152320c9fb</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-04 16:38:11</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>84525</ORDER_REF>
      <AUTH_CODE>342871</AUTH_CODE>
      <RRN>727716199932</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727716199932</HOSTREFNUM>
      <OID>41652325</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17277QmKG10275</TRANSID>
      <HASH>f1c2e330b1ecad927969b679097d647c</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41652325</REFNO>
      <ALIAS>3a9d9b9663a50a9ed0f545152320c9fb</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-04 16:38:11</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>84525</ORDER_REF>
      <AUTH_CODE>342871</AUTH_CODE>
      <RRN>727716199932</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727716199932</HOSTREFNUM>
      <OID>41652325</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17277QmKG10275</TRANSID>
      <HASH>f1c2e330b1ecad927969b679097d647c</HASH>
    </EPAYMENT>
    

    STATUS Parametresinin alabileceği değerler

    SUCCESS – Başarılı otorizasyon işlem sonucu

    <STATUS>SUCCESS</STATUS>
    
    <STATUS>SUCCESS</STATUS>
    
    <STATUS>SUCCESS</STATUS>
    
    <STATUS>SUCCESS</STATUS>
    

    FAILED – Otorizasyonun başarı ile yapılamadığı durumlarda dönen değerdir.(Yetersiz bakiye,fraud vb.)

    <STATUS>FAILED</STATUS>
    
    <STATUS>FAILED</STATUS>
    
    <STATUS>FAILED</STATUS>
    
    <STATUS>FAILED</STATUS>
    

    INPUT_ERROR – Request gönderilirken zorunlu parametrelerin eksik veya hatalı gönderilmesinden kaynaklanan bir hatadır.

    <STATUS>INPUT_ERROR</STATUS>
    
    <STATUS>INPUT_ERROR</STATUS>
    
    <STATUS>INPUT_ERROR</STATUS>
    
    <STATUS>INPUT_ERROR</STATUS>
    

    RETURN_CODE Parametresinin alabileceği değerler

    AUTHORIZED – Otorizasyonun başarı ile tamamlandığını belirtilen işlem sonucu**

    <EPAYMENT>
        <REFNO>41464560</REFNO>
        <ALIAS>9592b7736c9e277fea8cc79c2e5b5a23</ALIAS>
        <STATUS>SUCCESS</STATUS>
        <RETURN_CODE>AUTHORIZED</RETURN_CODE>
        <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
        <DATE>2017-10-04 15:20:21</DATE>
        <ORDER_REF>7305</ORDER_REF>
        <AUTH_CODE>13157TUlA15117</AUTH_CODE>
        <HASH>b560a38e2b3e7bcbac328bbd6218bc60</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
        <REFNO>41464560</REFNO>
        <ALIAS>9592b7736c9e277fea8cc79c2e5b5a23</ALIAS>
        <STATUS>SUCCESS</STATUS>
        <RETURN_CODE>AUTHORIZED</RETURN_CODE>
        <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
        <DATE>2017-10-04 15:20:21</DATE>
        <ORDER_REF>7305</ORDER_REF>
        <AUTH_CODE>13157TUlA15117</AUTH_CODE>
        <HASH>b560a38e2b3e7bcbac328bbd6218bc60</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
        <REFNO>41464560</REFNO>
        <ALIAS>9592b7736c9e277fea8cc79c2e5b5a23</ALIAS>
        <STATUS>SUCCESS</STATUS>
        <RETURN_CODE>AUTHORIZED</RETURN_CODE>
        <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
        <DATE>2017-10-04 15:20:21</DATE>
        <ORDER_REF>7305</ORDER_REF>
        <AUTH_CODE>13157TUlA15117</AUTH_CODE>
        <HASH>b560a38e2b3e7bcbac328bbd6218bc60</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
        <REFNO>41464560</REFNO>
        <ALIAS>9592b7736c9e277fea8cc79c2e5b5a23</ALIAS>
        <STATUS>SUCCESS</STATUS>
        <RETURN_CODE>AUTHORIZED</RETURN_CODE>
        <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
        <DATE>2017-10-04 15:20:21</DATE>
        <ORDER_REF>7305</ORDER_REF>
        <AUTH_CODE>13157TUlA15117</AUTH_CODE>
        <HASH>b560a38e2b3e7bcbac328bbd6218bc60</HASH>
    </EPAYMENT>
    

    3DS_ENROLLED – Otorizasyonun tamamlanablilmesi için işlemi 3D Secure sayfasına yönlendirecek olan parametresini dönen fonksiyonun değeridir.

    <EPAYMENT>
      <REFNO>41464560</REFNO>
      <ALIAS>848a62efa487d6b75a0eca5654cc4099</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>3DS_ENROLLED</RETURN_CODE>
      <RETURN_MESSAGE>3DS Enrolled Card.</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <URL_3DS>https://secure.payu.com.tr/order/3ds/begin/refno/41464560/sign/b2968234be8cd88a63b0f5999b07d783/</URL_3DS>
      <HASH>46b1dcfcda8166ea33582fa2d3da6abb</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41464560</REFNO>
      <ALIAS>848a62efa487d6b75a0eca5654cc4099</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>3DS_ENROLLED</RETURN_CODE>
      <RETURN_MESSAGE>3DS Enrolled Card.</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <URL_3DS>https://secure.payu.com.tr/order/3ds/begin/refno/41464560/sign/b2968234be8cd88a63b0f5999b07d783/</URL_3DS>
      <HASH>46b1dcfcda8166ea33582fa2d3da6abb</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41464560</REFNO>
      <ALIAS>848a62efa487d6b75a0eca5654cc4099</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>3DS_ENROLLED</RETURN_CODE>
      <RETURN_MESSAGE>3DS Enrolled Card.</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <URL_3DS>https://secure.payu.com.tr/order/3ds/begin/refno/41464560/sign/b2968234be8cd88a63b0f5999b07d783/</URL_3DS>
      <HASH>46b1dcfcda8166ea33582fa2d3da6abb</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41464560</REFNO>
      <ALIAS>848a62efa487d6b75a0eca5654cc4099</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>3DS_ENROLLED</RETURN_CODE>
      <RETURN_MESSAGE>3DS Enrolled Card.</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <URL_3DS>https://secure.payu.com.tr/order/3ds/begin/refno/41464560/sign/b2968234be8cd88a63b0f5999b07d783/</URL_3DS>
      <HASH>46b1dcfcda8166ea33582fa2d3da6abb</HASH>
    </EPAYMENT>
    

    INVALID_ACCOUNT – Üye işyeri isminin (Merchant ID) hatalı ya da eksik gönderilmesi durumunda dönen değerdir.

    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_ACCOUNT</RETURN_CODE>
      <RETURN_MESSAGE>Invalid account: 3DTRTEST</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_ACCOUNT</RETURN_CODE>
      <RETURN_MESSAGE>Invalid account: 3DTRTEST</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_ACCOUNT</RETURN_CODE>
      <RETURN_MESSAGE>Invalid account: 3DTRTEST</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_ACCOUNT</RETURN_CODE>
      <RETURN_MESSAGE>Invalid account: 3DTRTEST</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <HASH></HASH>
    </EPAYMENT>
    

    HASH_MISMATCH – Üye işyeri tarafında yanlış hash hesaplama sonucu PayU tarafındaki hash ile eşleşmemesi sonucunda alınan hatadır.

    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>HASH_MISMATCH</RETURN_CODE>
      <RETURN_MESSAGE>Hash mismatch</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>HASH_MISMATCH</RETURN_CODE>
      <RETURN_MESSAGE>Hash mismatch</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>HASH_MISMATCH</RETURN_CODE>
      <RETURN_MESSAGE>Hash mismatch</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>HASH_MISMATCH</RETURN_CODE>
      <RETURN_MESSAGE>Hash mismatch</RETURN_MESSAGE>
      <DATE>2017-10-04 15:20:21</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    

    ORDER_TOO_OLD – Daha önce başarılı / başarısız işlem yapılmış bir ORDER_REF parametresi ile işlem denenmesi durumunda meydana gelmektedir.

    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>ORDER_TOO_OLD</RETURN_CODE>
      <RETURN_MESSAGE>Order is older than a week (2015-06-18 13:24:08)!</RETURN_MESSAGE>
      <DATE>2017-10-04 15:21:50</DATE>
      <ORDER_REF>123</ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>ORDER_TOO_OLD</RETURN_CODE>
      <RETURN_MESSAGE>Order is older than a week (2015-06-18 13:24:08)!</RETURN_MESSAGE>
      <DATE>2017-10-04 15:21:50</DATE>
      <ORDER_REF>123</ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>ORDER_TOO_OLD</RETURN_CODE>
      <RETURN_MESSAGE>Order is older than a week (2015-06-18 13:24:08)!</RETURN_MESSAGE>
      <DATE>2017-10-04 15:21:50</DATE>
      <ORDER_REF>123</ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>ORDER_TOO_OLD</RETURN_CODE>
      <RETURN_MESSAGE>Order is older than a week (2015-06-18 13:24:08)!</RETURN_MESSAGE>
      <DATE>2017-10-04 15:21:50</DATE>
      <ORDER_REF>123</ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    

    INVALID_CC_TOKEN – Geçersiz Token kullanımı durumunda alınan hatadır.

    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_CC_TOKEN</RETURN_CODE>
      <RETURN_MESSAGE>Invalid Token: Invalid token hash "xake1kp153123o1235l2x3"</RETURN_MESSAGE>
      <DATE>2017-10-04 16:24:41</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_CC_TOKEN</RETURN_CODE>
      <RETURN_MESSAGE>Invalid Token: Invalid token hash "xake1kp153123o1235l2x3"</RETURN_MESSAGE>
      <DATE>2017-10-04 16:24:41</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_CC_TOKEN</RETURN_CODE>
      <RETURN_MESSAGE>Invalid Token: Invalid token hash "xake1kp153123o1235l2x3"</RETURN_MESSAGE>
      <DATE>2017-10-04 16:24:41</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>INVALID_CC_TOKEN</RETURN_CODE>
      <RETURN_MESSAGE>Invalid Token: Invalid token hash "xake1kp153123o1235l2x3"</RETURN_MESSAGE>
      <DATE>2017-10-04 16:24:41</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    

    WRONG_VERSION – Desteklenmeyen ALU versiyonu kullanımı durumunda alınan hatadır.

    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>WRONG_VERSION</RETURN_CODE>
      <RETURN_MESSAGE>Wrong version</RETURN_MESSAGE>
      <DATE>2017-10-04 16:23:47</DATE>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>WRONG_VERSION</RETURN_CODE>
      <RETURN_MESSAGE>Wrong version</RETURN_MESSAGE>
      <DATE>2017-10-04 16:23:47</DATE>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>WRONG_VERSION</RETURN_CODE>
      <RETURN_MESSAGE>Wrong version</RETURN_MESSAGE>
      <DATE>2017-10-04 16:23:47</DATE>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>WRONG_VERSION</RETURN_CODE>
      <RETURN_MESSAGE>Wrong version</RETURN_MESSAGE>
      <DATE>2017-10-04 16:23:47</DATE>
      <HASH></HASH>
    </EPAYMENT>
    

    REQUEST_EXPIRED a) ORDER_DATE parametresinde belirtilen zaman ile ödeme zamanı arasında 10 dakika ve ya daha fazla zaman geçmesi durumunda alınan hatadır. b) ORDER_DATE parametresinin yanlış kullanımı durumunda alınan hatadır. ORDER_DATE parametresi UTC/GMT formatı ile Türkiye saatine göre 3 saati geri olacak şekilde gönderilmelidir.

    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>REQUEST_EXPIRED</RETURN_CODE>
      <RETURN_MESSAGE>Your request date is in the future (2017-10-04 15:23:21)!</RETURN_MESSAGE>
      <DATE>2017-10-04 16:21:36</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>REQUEST_EXPIRED</RETURN_CODE>
      <RETURN_MESSAGE>Your request date is in the future (2017-10-04 15:23:21)!</RETURN_MESSAGE>
      <DATE>2017-10-04 16:21:36</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>REQUEST_EXPIRED</RETURN_CODE>
      <RETURN_MESSAGE>Your request date is in the future (2017-10-04 15:23:21)!</RETURN_MESSAGE>
      <DATE>2017-10-04 16:21:36</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO></REFNO>
      <ALIAS></ALIAS>
      <STATUS>INPUT_ERROR</STATUS>
      <RETURN_CODE>REQUEST_EXPIRED</RETURN_CODE>
      <RETURN_MESSAGE>Your request date is in the future (2017-10-04 15:23:21)!</RETURN_MESSAGE>
      <DATE>2017-10-04 16:21:36</DATE>
      <ORDER_REF></ORDER_REF>
      <AUTH_CODE></AUTH_CODE>
      <RRN></RRN>
      <PROCRETURNCODE></PROCRETURNCODE>
      <ERRORMESSAGE></ERRORMESSAGE>
      <BANK_MERCHANT_ID></BANK_MERCHANT_ID>
      <PAN></PAN>
      <EXPYEAR></EXPYEAR>
      <EXPMONTH></EXPMONTH>
      <CLIENTID></CLIENTID>
      <HOSTREFNUM></HOSTREFNUM>
      <OID></OID>
      <RESPONSE></RESPONSE>
      <TERMINAL_BANK></TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID></TRANSID>
      <HASH></HASH>
    </EPAYMENT>
    

    INVALID_CUSTOMER_INFO Zorunlu Parametrelerden bir veya bir kaçının hatalı veya eksik gönderilmesi durumunda alınan hatadır.

       <EPAYMENT>
         <REFNO></REFNO>
         <ALIAS></ALIAS>
         <STATUS>INPUT_ERROR</STATUS>
         <RETURN_CODE>INVALID_CUSTOMER_INFO</RETURN_CODE>
         <RETURN_MESSAGE>Invalid field BILL_EMAIL</RETURN_MESSAGE>
         <DATE>2017-10-04 16:22:25</DATE>
         <HASH></HASH>
       </EPAYMENT>
    
        <EPAYMENT>
          <REFNO></REFNO>
          <ALIAS></ALIAS>
          <STATUS>INPUT_ERROR</STATUS>
          <RETURN_CODE>INVALID_CUSTOMER_INFO</RETURN_CODE>
          <RETURN_MESSAGE>Invalid field BILL_EMAIL</RETURN_MESSAGE>
          <DATE>2017-10-04 16:22:25</DATE>
          <HASH></HASH>
        </EPAYMENT>
    
        <EPAYMENT>
          <REFNO></REFNO>
          <ALIAS></ALIAS>
          <STATUS>INPUT_ERROR</STATUS>
          <RETURN_CODE>INVALID_CUSTOMER_INFO</RETURN_CODE>
          <RETURN_MESSAGE>Invalid field BILL_EMAIL</RETURN_MESSAGE>
          <DATE>2017-10-04 16:22:25</DATE>
          <HASH></HASH>
        </EPAYMENT>
    
        <EPAYMENT>
          <REFNO></REFNO>
          <ALIAS></ALIAS>
          <STATUS>INPUT_ERROR</STATUS>
          <RETURN_CODE>INVALID_CUSTOMER_INFO</RETURN_CODE>
          <RETURN_MESSAGE>Invalid field BILL_EMAIL</RETURN_MESSAGE>
          <DATE>2017-10-04 16:22:25</DATE>
          <HASH></HASH>
        </EPAYMENT>
    
    Parametre Açıklama Ekstra Parametre
    REFNO İşleme ait PayU referans numarasının bildirildiği parametredir. Hayır
    ALIAS Üye işyerinin kendi tarafında kullanabileceği benzersiz işlem dizesidir. Hayır
    STATUS Alabileceği Değerler: SUCCESS FAILED INPUT_ERROR Hayır
    RETURN_CODE Alabileceği Değerler: AUTHORIZED 3DS_ENROLLED ALREADY_AUTHORIZED AUTHORIZATION_FAILED INVALID_CUSTOMER_INFO INVALID_PAYMENT_INFO INVALID_ACCOUNT INVALID_PAYMENT_METHOD_CODE INVALID_CURRENCY REQUEST_EXPIRED HASH_MISMATCH WRONG_VERSION INVALID_CC_TOKEN Hayır
    RETURN_MESSAGE RETURN_CODE parametreleri ile dönen değerlerin daha detaylı açıklamasını içeren parametredir. Hayır
    DATE UTC formatında response zaman değerini belirten parametredir. Hayır
    URL_3DS 3DS_ENROLLED fonksiyonunun içerisinde işlemi 3D olarak tamamlatabilmek için 3D Secure sayfasına yönlendirmeniz gereken URL'yi dönen parametredir. Hayır
    AMOUNT Toplam işlem tutarını belirten parametredir. Mutlaka sıfırdan büyük olmalıdır. Hayır
    CURRENCY İşlemde kullanılan para birimini belirten parametredir. Hayır
    INSTALLMENTS_NO İşlemde seçilen taksit sayısını belirten parametredir. Hayır
    CARD_PROGRAM_NAME İşlemde kullanılan kartın, program ismini belirten parametredir (Axess,Bonus vb.). Hayır
    ORDER_REF Üye işyeri tarafından request sırasında belirlenen sipariş referans numarasıdır. Hayır
    AUTH_CODE Bankanın otorizasyon işlem numarasıdır. Hayır
    RRN Bankaların iade işlemi için kullandığı işlem numarasıdır. Hayır
    HASH Response sırasında gelen tüm parametreler geldiği sıra ile uzunluğu alınıp, dizine çevirilip aynı algoritma ile hash hesaplaması sonucu elde edilen değerdir. URL_3DS, hash hesaplamasına dahil değildir. Hayır
    PROCRETURNCODE Yanıt içerisinde bankaların hata açıklama kodunun iletildiği parametredir. Evet
    ERRORMESSAGE Yanıt içerisinde bankaların hata açıklama mesajının iletildiği parametredir. Evet
    BANK_MERCHANT_ID Yanıt içerisinde işlemin gerçekleştiği Sanal POS’un bankadaki üye işyeri numarasının iletildiği parametredir. Evet
    PAN Yanıt içerisinde işlemin gerçekleştiği kartın numarasının maskeli biçimde iletildiği parametredir. Evet
    EXPYEAR Yanıt içerisinde işlemin gerçekleştiği kartın son kullanma yılının iletildiği parametredir. Evet
    EXPMONTH Yanıt içerisinde işlemin gerçekleştiği kartın son kullanma ayının iletildiği parametredir. Evet
    OID Yanıt içerisinde üye işyerlerinin kendi belirledikleri sipariş numarasının iletildiği parametredir. Evet
    TERMINAL_BANK Yanıt içerisinde işlemin gerçekleştiği Sanal POS bankasının iletildiği parametredir. Evet
    MDSTATUS, MDERRORMSG, TXSTATUS, XID, ECI, CAVV Yanıt içerisinde 3DS işlem parametrelerinin iletildiği parametrelerdir. Evet
    TRANSID Yanıt içerisinde banka işlem numarasının iletildiği parametredir. Evet
    CLIENTID Yanıt içerisinde işlemin gerçekleştiği Sanal POS’un bankadaki müşteri numarasının iletildiği parametredir. Evet
    MDSTATUS, MDERRORMSG, TXSTATUS, XID, ECI, CAVV Yanıt içerisinde 3DS işlem parametrelerinin iletildiği parametrelerdir. Evet

    Hash Hesaplama

    İstek yapılmadan önce, istekte bulunacak parametrelerin başına uzunlukları (UTF-8 bayt olarak) eklenerek bir dizi oluşturulur. Ardından dizi, PayU üye işyeri hesabınızın, Hesap Yönetimi/Hesap Ayarları bölümünde yer alan kodlama anahtarı bilgisi kullanılarak HMAC_MD5 algoritması ile hashlenir.

    Oluşan hash ORDER_HASH parametresine atanmalıdır.

    1.Adım İşlem isteği gönderilmeden önce dizi içerisindeki tüm parametreler KEY'e göre sıralanmalıdır.

    BACK_REF : http://www.backref.com.tr
    BILL_ADDRESS : Birinci Adres satır
    BILL_ADDRESS2 : İkinci Adres satırı
    BILL_CITY : ISTANBUL
    BILL_COUNTRYCODE : TR
    BILL_EMAIL : mail@mail.com
    BILL_FAX : 02129003711
    BILL_FNAME : Ad
    BILL_LNAME : Soyad
    BILL_PHONE : 02129003711
    BILL_STATE : Ayazağa
    BILL_ZIPCODE : 34000
    CC_CVV : 000
    CC_NUMBER : 4355084355084358
    CC_OWNER : Ad Soyad
    CLIENT_IP : 127.0.0.1
    DELIVERY_ADDRESS : Birinci Adres satırı
    DELIVERY_ADDRESS2 : İkinci Adres satırı
    DELIVERY_CITY : ISTANBUL
    DELIVERY_COMPANY : PayU Ödeme Kuruluşu A.Ş.
    DELIVERY_COUNTRYCODE : Ayazağa
    DELIVERY_EMAIL : mail@mail.com
    DELIVERY_FNAME : Ad
    DELIVERY_LNAME : Soyad
    DELIVERY_PHONE : 02129003711
    DELIVERY_STATE : TR
    DELIVERY_ZIPCODE : 34000
    EXP_MONTH : 12
    EXP_YEAR : 2018
    LANGUAGE : TR
    MERCHANT : OPU_TEST
    ORDER_DATE : 2017-10-04 11:10:23
    ORDER_PCODE0 : Test Kodu
    ORDER_PCODE1 : Test Kodu-2
    ORDER_PINFO0 : Test Açıklaması
    ORDER_PINFO1 : Test Açıklaması-2
    ORDER_PNAME0 : Test Ürünü
    ORDER_PNAME1 : Test Ürünü-2
    ORDER_PRICE0 : 5
    ORDER_PRICE1 : 15
    ORDER_PRICE_TYPE0 : NET
    ORDER_PRICE_TYPE1 : GROSS
    ORDER_QTY0 : 1
    ORDER_QTY1 : 3
    ORDER_REF : 3245
    ORDER_SHIPPING : 5
    ORDER_VAT0 : 18
    ORDER_VAT1 : 24
    PAY_METHOD : CCVISAMC
    PRICES_CURRENCY : TRY

    2.Adım Keye göre sıralanan parametrelerin değerlerinin başına uzunlukları eklenerek HASH string oluşturulmalı (UTF-8 Bayt olarak).

    25http://www.backref.com.tr22Birinci Adres satırı22İkinci Adres satırı8ISTANBUL2TR13mail@mail.com11021290037112Ad5Soyad11021290037118Ayazağa53400030001643550843550843588Ad Soyad9127.0.0.122Birinci Adres satırı22İkinci Adres satırı8ISTANBUL27PayU Ödeme Kuruluşu A.Ş.8Ayazağa13mail@mail.com2Ad5Soyad11021290037112TR534000212420182TR8OPU_TEST192017-10-04 11:10:239Test Kodu11Test Kodu-218Test Açıklaması20Test Açıklaması-213Test Ürünü15Test Ürünü-2152153NET5GROSS111343245152182248CCVISAMC3TRY11

    3.Adım Oluşturulan dizi PayU üye işyeri hesabınızın Hesap Yönetimi / Hesap Ayarları bölümünde yer alan kodlama anahtarı bilgisi kullanılarak HMAC_MD5 algoritması ile hashlenmeli ve elde edilen değer ORDER_HASH parametresine atayarak işlem isteği endpointe gönderilmelidir.

    Örnekte kullanılan kodlama anahtarı değeri: SECRET_KEY

    ORDER_HASH 271748a93c3781774104216d979c7d94

    3D Entegrasyonu

    3D entegrasyonu için; işlemin başlatıldığı sırada ilk alınan yanıtta elde edilen parametresi ile gelen URL'i dinlemeli ve URL'e yönlendirme yapılması beklenmektedir.

    Yapılması gereken düzenleme aşağıda ki gibidir:

    Non-3D olarak gerçekleşen işlemlerde sistem aşağıdaki gibi bir yanıt dönmektedir.

    <EPAYMENT>
    <REFNO>41652325</REFNO>
    <ALIAS>3a9d9b9663a50a9ed0f545152320c9fb</ALIAS>
    <STATUS>SUCCESS</STATUS>
    <RETURN_CODE>AUTHORIZED</RETURN_CODE>
    <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
    <DATE>2017-10-04 16:38:11</DATE>
    <AMOUNT>10.9</AMOUNT>
    <CURRENCY>TRY</CURRENCY>
    <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
    <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
    <ORDER_REF>84525</ORDER_REF>
    <AUTH_CODE>342871</AUTH_CODE>
    <HASH>f1c2e330b1ecad927969b679097d647c</HASH>
    </EPAYMENT>

    3D işlemlerde dönen yanıt ise aşağıdaki gibidir.

    <EPAYMENT>
    <REFNO>41464560</REFNO>
    <ALIAS>848a62efa487d6b75a0eca5654cc4099</ALIAS>
    <STATUS>SUCCESS</STATUS>
    <RETURN_CODE>3DS_ENROLLED</RETURN_CODE>
    <RETURN_MESSAGE>3DS Enrolled Card.</RETURN_MESSAGE>
    <DATE>2017-10-04 15:20:21</DATE>
    <URL_3DS>https://secure.payu.com.tr/order/3ds/begin/refno/41464560/sign/b2968234be8cd88a63b0f5999b07d783/</URL_3DS>
    <HASH>46b1dcfcda8166ea33582fa2d3da6abb</HASH>
    </EPAYMENT>

    Burada 3D yanıtını incelendiğinde <RETURN_CODE>3DS_ENROLLED</RETURN_CODE> ve <URL_3DS>https://secure.payu.com.tr/order/alu_return_3ds.php?request_id=2Xrl85eakbSBr3WtcbixYQ%3D%3D</URL_3DS> şeklinde olduğunu görüntülenmekte.

    Yapılması gereken <RETURN_CODE>3DS_ENROLLED</RETURN_CODE> yanıtını alındığında <URL_3DS></URL_3DS> içinde yer alan URL'e yönlendirme yapmaktır. Bu yönlendirmeyi sağladığında müşteri banka ekranına yönlendirilir ve şifre doğrulamasını yapması beklenir.

    İşlem tamamlandığında ise işlem isteği gönderdiğiniz sırada tanımlamış olduğunuz BACK_REF URL'e işlem sonucunu post edilir. Yukarıdaki geliştirme ile yönlendirme sağlandığında, 3D işlem gerçekleştirilebilir.

    MD Status Kodları ve Açıklamaları'nı inceleyerek 3D durumlarını yorumlayabilir ve ilerleyen aksiyonları bu kodlara göre alabilirsiniz.

    API ile BKM Express Entegrasyonu

    BKM Express Entegrasyonunda işlem isteğinden aşağıda listelenen kart parametrelerini API ile ödeme isteğinden çıkartıp PAY_METHOD parametresini BKM olarak değiştirmesi yeterlidir.

    Çıkartılacak parametreler:
    - CC_OWNER
    - CC_NUMBER
    - CC_CVV
    - EXP_MONTH
    - EXP_YEAR

    Kart parametreleri çıkartılıp, PAY_METHOD parametresi "BKM" olarak ayarlanarak işlem isteği gönderildiğinde elde edilecek response aşağıdaki gibidir. <EPAYMENT>
    <REFNO>55685381</REFNO>
    <ALIAS>b5db3513028556bc1be23505049fb5ca</ALIAS>
    <STATUS>SUCCESS</STATUS>
    <RETURN_CODE>PENDING_AUTHORIZATION</RETURN_CODE>
    <RETURN_MESSAGE>Order saved and pending authorization.</RETURN_MESSAGE>
    <DATE>2018-03-26 11:04:24</DATE>
    <ORDER_REF>Test303</ORDER_REF>
    <URL_REDIRECT>https://secure.payu.com.tr/order/pbl/redirect.php?hash=385af76c05ba92ff1ce38276e4be2c02</URL_REDIRECT>
    <HASH>079330a56b5ca62a4112553506df1b08</HASH>
    </EPAYMENT>

    Bu responseda iletilen URL_REDIRECT parametresindeki URL'e yönlendirme yapılması durumunda BKM Ödeme sayfası açılacaktır ve işlem sonucunda BACK_REF adresinize geri dönüş sağlanacaktır.

    API ile Compay Entegrasyonu

    Compay Entegrasyonunda işlem isteğinden aşağıda listelenen kart parametrelerini API ile ödeme isteğinden çıkartıp PAY_METHOD parametresini COMPAY olarak değiştirmesi yeterlidir.

    Çıkartılacak parametreler:
    - CC_OWNER
    - CC_NUMBER
    - CC_CVV
    - EXP_MONTH
    - EXP_YEAR

    Kart parametreleri çıkartılıp, PAY_METHOD parametresi "COMPAY" olarak ayarlanarak işlem isteği gönderildiğinde elde edilecek response aşağıdaki gibidir. <EPAYMENT>
    <REFNO>55685381</REFNO>
    <ALIAS>b5db3513028556bc1be23505049fb5ca</ALIAS>
    <STATUS>SUCCESS</STATUS>
    <RETURN_CODE>PENDING_AUTHORIZATION</RETURN_CODE>
    <RETURN_MESSAGE>Order saved and pending authorization.</RETURN_MESSAGE>
    <DATE>2018-03-26 11:04:24</DATE>
    <ORDER_REF>Test303</ORDER_REF>
    <URL_REDIRECT>https://secure.payu.com.tr/order/pbl/redirect.php?hash=385af76c05ba92ff1ce38276e4be2c02</URL_REDIRECT>
    <HASH>079330a56b5ca62a4112553506df1b08</HASH>
    </EPAYMENT>

    Bu responseda iletilen URL_REDIRECT parametresindeki URL'e yönlendirme yapılması durumunda Compay Ödeme sayfası açılacaktır ve işlem sonucunda BACK_REF adresinize geri dönüş sağlanacaktır.

    LU(Ortak Ödeme Sayfası) Entegrasyonu

    Ortak ödeme sayfası üzerinden işlem gerçekleştirmek için; HTTPS POST iletişim protokolü kullanılarak https://secure.payu.com.tr/order/lu.php adresine istek yapılması gerekmektedir. Bu isteğin içeriği aşağıdaki zorunlu parametrelerden oluşmalıdır.

    İstek Parametreleri

    Parametre Açıklama
    MERCHANT İşyerini ID bilgisidir. Üye İşyeri Kontrol Paneli’nde, hesap ayarları sayfasında bulunmaktadır.
    ORDER_REF İşyerinin kendi belirlediği sipariş/işlem numarasıdır.
    ORDER_DATE İşlem/sipariş saati
    ORDER_HASH Sipariş içeriğindeki tüm parametrelere HMAC_MD5 algoritması uygulanmalıdır. Dokümanın 2. bölümünde hash hesaplaması anlatılmaktadır.
    BACK_REF Ödeme işlemi tamamlandıktan sonra kullanıcının yönlendirileceği URL’dir. 3D işlemlerde işleme ait parametreler de BACK_REF URL’e post edilir.
    PRICES_CURRENCY[] İşlemin gerçekleşeceği para birimini belirleyen parametredir (TRY, EUR, USD, GBP). Türk kartlar için dövizli işlem gönderilmemelidir.
    INSTALLMENT_OPTIONS Ortak ödeme sayfasında gösterilecek taksit sayısını belirtebileceginiz parametredir.
    ORDER_SHIPPING Teslimat/Kargo ücretinin belirtildiği parametredir. Kullanılan para birimi ürün bilgisindeki PRICES_CURRENCY[]’den alınmaktadır.

    Ürün Parametreleri

    Parametre Açıklama
    ORDER_PNAME[] Minimum 2, maksimum 155 karakterden oluşan ürün isminin gönderildiği parametredir.
    ORDER_PCODE[] Maksimum 50 karakterden oluşan ürün kodunun gönderildiği parametredir.
    ORDER_PRICE[] Ürün fiyatının gönderildiği parametredir. Ondalık simgesi olarak "."(nokta) kullanılmalıdır. ","(virgül) kullanımında hata alınacaktır.
    ORDER_VAT[] Üründe uygulanan verginin belirlendiği parametredir 1, 8 veya 18 olarak belirlenmelidir.
    ORDER_PRICE_TYPE[] KDV tipinin belirlendiği parametredir. "GROSS" değeri ile gönderilmesi durumunda ürün fiyatına KDV dahil kabul edilecektir. "NET" gönderilmesi durumunda KDV, PayU tarafından ürünün tutarına eklenecektir.
    ORDER_QTY[] Ürün adedinin belirlendiği parametredir.
    ORDER_PINFO[] Ürün bilgisinin belirtildiği parametredir.
    ORDER_VER[] Ürün versiyonunun belirtildiği parametredir.

    Fatura Parametreleri

    Parametre Açıklama
    BILL_LNAME Fatura düzenlenecek kişinin soyadı.
    BILL_FNAME Fatura düzenlenecek kişinin adı.
    BILL_EMAIL Fatura düzenlenecek kişinin email adresi.
    BILL_PHONE Fatura düzenlenecek kişinin telefon numarası.
    BILL_COUNTRYCODE Fatura düzenlenecek kişinin iki karakterli ülke kodu. (ISO Alpha-2 formatında)

    Fatura Parametreleri

    Parametre Açıklama
    BILL_FAX Fatura düzenlenecek kişinin faks numarasının belirtildiği parametredir.
    BILL_ADDRESS Fatura düzenlenecek kişinin adresinin belirtildiği parametredir.
    BILL_ADDRESS2 Fatura düzenlenecek kişinin adresinin belirtildiği parametredir. (ikinci satır için)
    BILL_ZIPCODE Fatura düzenlenecek kişinin posta kodunun belirtildiği parametredir.
    BILL_CITY Fatura düzenlenecek kişinin şehir bilgisinin belirtildiği parametredir.
    BILL_STATE Fatura düzenlenecek kişinin semt/ilçe bilgisinin belirtildiği parametredir.

    Teslimat Parametreleri

    Parametre Açıklama
    DELIVERY_LNAME Teslim edilecek kişinin soyadı. (!)
    DELIVERY_FNAME Teslim edilecek kişinin adı. (!)
    DELIVERY_EMAIL Teslim edilecek kişinin email adresi. (!)
    DELIVERY_PHONE Teslim edilecek kişinin telefon numarası. (!)
    DELIVERY_COMPANY Teslim edilecek kişinin şirket bilgisi.
    DELIVERY_ADDRESS Teslim edilecek kişinin adresi. (!)
    DELIVERY_ADDRESS2 Teslim edilecek kişinin adresi. (ikinci satır için)
    DELIVERY_ZIPCODE Teslim edilecek kişinin posta kodu.
    DELIVERY_CITY Teslim edilecek kişinin şehir bilgisi. (!)
    DELIVERY_STATE Teslim edilecek kişinin semt/ilçe bilgisi. (!)
    DELIVERY_COUNTRYCODE Teslim edilecek kişinin iki karakterli ülke kodu. (ISO Alpha-2 formatında). (!)

    Hash Hesaplama

    İstek yapılmadan önce, istekte bulunacak parametrelerin başına uzunlukları (UTF-8 bayt olarak) eklenerek bir dizi oluşturulur. Ardından dizi, PayU üye işyeri hesabınızın, Hesap Yönetimi/Hesap Ayarları bölümünde yer alan kodlama anahtarı bilgisi kullanılarak HMAC_MD5 algoritması ile hashlenir.

    Oluşan hash ORDER_HASH parametresine atanmalıdır.

    Hash hesaplama adımları aşağıdaki gibi olmalıdır:

    1. Adım: PayU'ya işlem isteği gönderilmeden önce sadece aşağıdaki parametreler hash hesaplamasına dahil edileceğinden; sadece aşağıdaki parametreler örnekteki gibi sıralanmalıdır.

    'MERCHANT': 'OPU_TEST',
    'ORDER_REF': "21831832",
    'ORDER_DATE': 2018-03-28,
    'ORDER_PNAME[0]': 'Test Urun',
    'ORDER_PNAME[1]': 'Test Urun-2',
    'ORDER_PCODE[0]':'Test Urun Kodu-2',
    'ORDER_PCODE[1]':'Test Urun Kodu',
    'ORDER_PINFO[0]':'Test urun Aciklamasi-2',
    'ORDER_PINFO[1]':'Test urun Aciklamasi',
    'ORDER_PRICE[0]':'10',
    'ORDER_PRICE[1]':'20',
    'ORDER_QTY[0]':'1',
    'ORDER_QTY[1]':'2',
    'ORDER_VAT[0]':'18',
    'ORDER_VAT[1]':'18',
    'ORDER_SHIPPING':'5',
    'PRICES_CURRENCY': 'TRY',
    'PAY_METHOD': 'CCVISAMC',
    'ORDER_PRICE_TYPE[0]':'GROSS',
    'ORDER_PRICE_TYPE[1]':'NET',
    'SELECTED_INSTALLMENTS_NO': '1,2,3,4,5,6,7,8,9,10,11,12'

    2. Adım: Sıralanan parametrelerin değerlerinin başına uzunlukları eklenerek HASH string oluşturulmalıdır (UTF-8 Bayt olarak).

    8OPU_TEST821831832102018-03-289Test Urun11Test Urun-216Test Urun Kodu-214Test Urun Kodu22Test urun Aciklamasi-220Test urun Aciklamasi2102201112218218153TRY8CCVISAMC5GROSS3NET261,2,3,4,5,6,7,8,9,10,11,12

    3. Adım: Oluşturulan dizi PayU üye işyeri hesabınızın Hesap Yönetimi / Hesap Ayarları bölümünde yer alan kodlama anahtarı bilgisi kullanılarak HMAC_MD5 algoritması ile hashlenmeli ve ORDER_HASH parametresine eklenerek post işlemi gerçekleştirilmelidir.

    Örnekte kullanılan kodlama anahtarı değer: SECRET_KEY

    46021bad8f3e5998f60a6daa7d679f43

    Ödeme Sonrası Geri Dönüş

    Ödeme aşamasından sonra eğer işlem başarılı olursa belirtmiş olduğunuz BACK_REF parametresine bir kontrol değişkeni ile dönülüyor olacaktır. Eğer ödeme başarısız olursa kart sahibi ortak ödeme sayfasına kalacak ve tekrar denemesi için işlem başa alınacaktır.

    CTRL Değişkeninin Hesaplaması

    1. Adım: BACK_REF parametresine atadığımız URL'imizin karakter uzunluğunu almalı ve başına eklenmeli.
    Bu örnekte https://www.backrefurl.com/return.php URL'i BACK_REF olarak kullanılmıştır.

    36https://www.backrefurl.com/return.php

    2. Adım: Karakter uzunluğu alınıp başına eklenen BACK_REF parametresi, üye iş yeri hesabınıza tanımlı olan kodlama anahtarı ile HMAC MD5 algoritması ile hashlenmeli. Bu örnekte Kodlama anahtarı SECRET_KEY kullanılmıştır.

    Bu örnekte Kodlama anahtarı SECRET_KEY kullanılmıştır.

    3dce9ddf2f4a2ee4af647d9dfb62f0f3

    3. Adım: Ardından oluşan bu hash ile BACK_REF'i beklenmesi gerekmektedir.

    https://www.backrefurl.com/return.php&ctrl=3dce9ddf2f4a2ee4af647d9dfb62f0f3

    PayU Checkout Entegrasyonu

    PayU Checkout, müşterilerinize ürün detay sayfasından ödeme sayfasına yönlendirme olmaksızın pop-up (açılır pencere)de ödeme alma imkanı sunar.

    PayU Checkout Frontend Entegrasyonu

    Entegrasyon HTML içerisinde ürün ile ilgili bilgilerin olduğu ve ödemeyi başlatmak için tıklanabilir buton barındıran FORM içermelidir. Ödeme tamamlandığında form içerisinde otomatik olarak adı token olan gizli bir INPUT alanı eklenecektir.

    Parametreler

    PayU Checkout Örneği için tıklayınız

    <form method="GET" action="https://secure.payu.com.tr/docs/modal-checkout/merchant/ru-example-integration-return.php">
        <input type="hidden" name="MerchantOrderRefNo" value="123213123124312">
        <script id="payu-modal-checkout" type="text/javascript" src="/pay/modal-checkout/integration/payu-modal-checkout.js" data-merchant-code="OPU_TEST" data-merchant-logo="https://secure.payu.com.tr/docs/modal-checkout/merchant/dummy-logo.png" data-client-firstname="Average" data-client-lastname="Joes" data-client-email="average.joes@payu.ro" data-client-phone="+40729.12.34.56" data-order-amount="799.99" data-order-currency="TRY" data-language="tr" data-button="payButton"></script>
        <input type="button" value="Pay" id="payButton">
    </form>
    
    <form method="GET" action="https://secure.payu.com.tr/docs/modal-checkout/merchant/ru-example-integration-return.php">
        <input type="hidden" name="MerchantOrderRefNo" value="123213123124312">
        <script id="payu-modal-checkout" type="text/javascript" src="/pay/modal-checkout/integration/payu-modal-checkout.js" data-merchant-code="OPU_TEST" data-merchant-logo="https://secure.payu.com.tr/docs/modal-checkout/merchant/dummy-logo.png" data-client-firstname="Average" data-client-lastname="Joes" data-client-email="average.joes@payu.ro" data-client-phone="+40729.12.34.56" data-order-amount="799.99" data-order-currency="TRY" data-language="tr" data-button="payButton"></script>
        <input type="button" value="Pay" id="payButton">
    </form>
    
    <form method="GET" action="https://secure.payu.com.tr/docs/modal-checkout/merchant/ru-example-integration-return.php">
        <input type="hidden" name="MerchantOrderRefNo" value="123213123124312">
        <script id="payu-modal-checkout" type="text/javascript" src="/pay/modal-checkout/integration/payu-modal-checkout.js" data-merchant-code="OPU_TEST" data-merchant-logo="https://secure.payu.com.tr/docs/modal-checkout/merchant/dummy-logo.png" data-client-firstname="Average" data-client-lastname="Joes" data-client-email="average.joes@payu.ro" data-client-phone="+40729.12.34.56" data-order-amount="799.99" data-order-currency="EUR" data-language="tr" data-button="payButton"></script>
        <input type="button" value="Pay" id="payButton">
    </form>
    

    Javascript URL: https://secure.payu.com.tr/pay/modal-checkout/integration/payu-modal-checkout.js

    PayU Checkout Örneği için tıklayınız

    Parametre Açıklama
    data-merchant-code Merchant ID'niz API'ya gönderilen bu parametre ile aynı değere sahip olmalıdır.
    data-merchant-logo Logonuzun bulunduğu URL adresi (string)
    data-order-amount Sipariş Miktarı (int
    data-order-currency Para birimi (string) ALU'ya gönderilen PRICES_CURRENCY parametresiyle aynı değere sahip olmalıdır..
    data-client-email Müşteri email adresi (string) ALU'ya gönderilen BILL_EMAIL parametresiyle aynı değere sahip olmalıdır..
    data-client-firstname Müşteri Adı (string)
    data-client-lastname Müşteri Soyadı (string)
    data-client-phone Müşteri Telefonu(string)
    data-language Arayüz dili (string) İzin verilen değerler: en, ro, ru, ua, hu, de, es, fr
    data-button Ödeme butonunun HTML ID'si (string)

    PayU Checkout Backend Entegrasyonu

    Frontend ile üretilen Token değeri ile birlikte ALU(API ile Ödeme) kullanılarak işlemler doğrudan PayU’ya gönderilmelidir. Detaylı bilgiye ALU v3(API) Entegrasyonu dokümanından ulaşabilirsiniz.

    Örnek istek aşağıdaki gibi olmalıdır.

    "MERCHANT" => "OPU_TEST",
    "LANGUAGE" => "TR",
    "ORDER_REF" => 235125,
    "ORDER_DATE" => "2017-10-06 21:24:21",
    "PAY_METHOD" => "CCVISAMC",
    "BACK_REF" => "http://www.backref.com.tr",
    "PRICES_CURRENCY" => "TRY",
    "SELECTED_INSTALLMENTS_NUMBER" => "1",
    "ORDER_SHIPPING"=>"5",
    "CLIENT_IP" => "127.0.0.1",

    "ORDER_PNAME[0]" => "Test Ürünü",
    "ORDER_PCODE[0]" => "Test Kodu",
    "ORDER_PINFO[0]" => "Test Açıklaması",
    "ORDER_PRICE[0]" => "5",
    "ORDER_VAT[0]"=>"18",
    "ORDER_PRICE_TYPE[0]"=>"NET",
    "ORDER_QTY[0]" => "1",

    "CC_TOKEN" => "ZweUQS5LCyl5VdtlgZelHjSC3p7q3rdOvZIcjTstK6fy6lyFEe/UKJNKpikuAo+BvLQTe6Dg3C8iS2qtczP7+IU3Ui04EdIonG0C1nbJd6o=",
    "CC_NUMBER" => "",
    "EXP_MONTH" => "",
    "EXP_YEAR" => "",
    "CC_CVV" => "",
    "CC_OWNER" => "Ad Soyad",

    "BILL_FNAME" => "Ad",
    "BILL_LNAME" => "Soyad",
    "BILL_EMAIL" => "mail@mail.com",
    "BILL_PHONE" => "02129003711",
    "BILL_FAX" => "02129003711",
    "BILL_ADDRESS" => "Birinci Adres satırı",
    "BILL_ADDRESS2" => "İkinci Adres satırı",
    "BILL_ZIPCODE" => "34000",
    "BILL_CITY" => "ISTANBUL",
    "BILL_COUNTRYCODE" => "TR",
    "BILL_STATE" => "Ayazağa",

    "DELIVERY_FNAME" => "Ad",
    "DELIVERY_LNAME" => "Soyad",
    "DELIVERY_EMAIL" => "mail@mail.com",
    "DELIVERY_PHONE" => "02129003711",
    "DELIVERY_COMPANY" => "PayU Ödeme Kuruluşu A.Ş.",
    "DELIVERY_ADDRESS" => "Birinci Adres satırı",
    "DELIVERY_ADDRESS2" => "İkinci Adres satırı",
    "DELIVERY_ZIPCODE" => "34000",
    "DELIVERY_CITY" => "ISTANBUL",
    "DELIVERY_STATE" => "TR",
    "DELIVERY_COUNTRYCODE" => "Ayazağa",

    Javascript Hata Mesajları

    Hata Mesajı Açıklama
    Invalid browser Tarayıcı, uygulama tarafından desteklenmiyor (Bk.: Desteklenen tarayıcılar)
    Invalid parameter: Belirtilen parametre geçersiz (eksik veya bozuk biçim)
    Pay button not specified data-button parametresi belirtilmemiş
    Specified Pay button not found HTML içerisinde data-button parametresi ile belirtilen buton bulunamadı
    Script must be inserted directly inside a form Script doğrudan form içerisine eklenmelidir.

    Browser Uyumluluğu

    İşletim Sistemi Tarayıcı Destekliyor
    Windows XP IE 6 Hayır
    Windows XP IE 7 Hayır
    Windows XP Firefox 10 ve < Evet
    Windows XP Chrome 24 ve < Evet
    Windows XP Opera 12.15 ve < Evet
    Windows 7 IE 8 Hayır
    Windows 7 IE 9 ve < Evet
    Windows 7 Firefox 10 ve < Evet
    Windows 7 Chrome 24 ve < Evet
    Windows 7 Opera 12.15 ve < Evet
    Windows 8 IE 10 Evet
    Windows 8 Firefox 16 ve < Evet
    Windows 8 Chrome 24 ve < Evet
    Windows 8.1 IE 11 Evet
    Windows 8.1 Firefox 16 ve < Evet
    Windows 8.1 Chrome 24 ve < Evet
    Windows 10 IE 11 Evet
    Windows 10 Edge 13 Evet
    Windows 10 Edge 14 Evet
    Windows 10 Firefox 35 ve < Evet
    Windows 10 Chrome 37 ve < Evet
    OS X Safari 5.1 Evet
    OS X Safari 6 Evet
    OS X Safari 6.2 Evet
    OS X Safari 7 Evet
    OS X Safari 8 Evet
    OS X Safari 9.1 Evet
    Mobil İşletim Sistemi Tarayıcı Destekliyor
    Android Android 4 ve < Evet
    iOS 5.1 ve < Evet
    Windows 8.1 ve 10 Varsayılan tarayıcı Evet

    PayU Checkout Önemli Bilgiler

    PayU Checkout Tokenı'ın alabileceği karakter değerleri
    A-Z a-z 0-9 / + =

    Token Örneği
    ZweUQS5LCyl5VdtlgZelHjSC3p7q3rdOvZIcjTstK6fy6lyFEe/UKJNKpikuAo+BvLQTe6Dg3C8iS2qtczP7+IU3Ui04EdIonG0C1nbJd6o=

    Token Kısıtlamaları
    - Token, işlem başarısız olsa dahi yalnızca bir kez kullanılır,
    - Token’ın kullanım süresi, token oluşturulduktan sonra 30 dakika dır,
    - Token değeri hiçbir koşulda saklanmamalıdır.

    Kart Saklama

    Kart Saklama İstek Örneği

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                ApiPaymentRequest apiPaymentRequest = new ApiPaymentRequest();
    
                apiPaymentRequest.Config = new ApiPaymentRequest.PayUConfig();
                apiPaymentRequest.Config.MERCHANT = "OPU_TEST";
                apiPaymentRequest.Config.LANGUAGE = "TR";
                apiPaymentRequest.Config.PAY_METHOD = "CCVISAMC";
                apiPaymentRequest.Config.BACK_REF = "";
                apiPaymentRequest.Config.PRICES_CURRENCY = "TRY";
                apiPaymentRequest.Config.LU_ENABLE_TOKEN = "true";
                apiPaymentRequest.Order = new ApiPaymentRequest.PayUOrder();
                apiPaymentRequest.Order.ORDER_REF = Guid.NewGuid().ToString();
                apiPaymentRequest.Order.ORDER_SHIPPING = "5";
                apiPaymentRequest.Order.ORDER_DATE = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
    
                ApiPaymentRequest.PayUOrder.PayUOrderItem orderItem = new ApiPaymentRequest.PayUOrder.PayUOrderItem();
                orderItem.ORDER_PRICE = "5";
                orderItem.ORDER_PINFO = "Test Açıklaması";
                orderItem.ORDER_QTY = "1";
                orderItem.ORDER_PCODE = "Test Kodu";
                orderItem.ORDER_PNAME = "Test Ürünü";
                orderItem.ORDER_VAT = "18";
                orderItem.ORDER_PRICE_TYPE = "NET";
    
                apiPaymentRequest.Order.OrderItems.Add(orderItem);
    
                apiPaymentRequest.CreditCard = new ApiPaymentRequest.PayUCreditCard();
                apiPaymentRequest.CreditCard.CC_NUMBER = cardNumber;
                apiPaymentRequest.CreditCard.EXP_MONTH = month;
                apiPaymentRequest.CreditCard.EXP_YEAR = year;
                apiPaymentRequest.CreditCard.CC_CVV = cvc;
                apiPaymentRequest.CreditCard.CC_OWNER = nameSurname;
                apiPaymentRequest.CreditCard.SELECTED_INSTALLMENTS_NUMBER = installment;
    
                apiPaymentRequest.Customer = new ApiPaymentRequest.PayUCustomer();
                apiPaymentRequest.Customer.BILL_FNAME = "Ad";
                apiPaymentRequest.Customer.BILL_LNAME = "Soyad";
                apiPaymentRequest.Customer.BILL_EMAIL = "mail@mail.com";
                apiPaymentRequest.Customer.BILL_PHONE = "02129003711";
                apiPaymentRequest.Customer.BILL_FAX = "02129003711";
                apiPaymentRequest.Customer.BILL_ADDRESS = "Birinci Adres satırı";
                apiPaymentRequest.Customer.BILL_ADDRESS2 = "İkinci Adres satırı";
                apiPaymentRequest.Customer.BILL_ZIPCODE = "34000";
                apiPaymentRequest.Customer.BILL_CITY = "ISTANBUL";
                apiPaymentRequest.Customer.BILL_COUNTRYCODE = "TR";
                apiPaymentRequest.Customer.BILL_STATE = "Ayazağa";
                apiPaymentRequest.Customer.CLIENT_IP = Request.UserHostAddress;
    
    
                apiPaymentRequest.Delivery = new ApiPaymentRequest.PayUDelivery();
                apiPaymentRequest.Delivery.DELIVERY_FNAME = "Ad";
                apiPaymentRequest.Delivery.DELIVERY_LNAME = "Soyad";
                apiPaymentRequest.Delivery.DELIVERY_EMAIL = "mail@mail.com";
                apiPaymentRequest.Delivery.DELIVERY_PHONE = "02129003711";
                apiPaymentRequest.Delivery.DELIVERY_COMPANY = "PayU Ödeme Kuruluşu A.Ş.";
                apiPaymentRequest.Delivery.DELIVERY_ADDRESS = "Birinci Adres satIRI";
                apiPaymentRequest.Delivery.DELIVERY_ADDRESS2 = "İkinci Adres satırı";
                apiPaymentRequest.Delivery.DELIVERY_ZIPCODE = "34000";
                apiPaymentRequest.Delivery.DELIVERY_CITY = "ISTANBUL";
                apiPaymentRequest.Delivery.DELIVERY_STATE = "TR";
                apiPaymentRequest.Delivery.DELIVERY_COUNTRYCODE = "Ayazağa";
    
                var options = new Options();
                options.Url = "https://secure.payu.com.tr/order/alu/v3";
                options.SecretKey = "SECRET_KEY";
                var response = ApiPaymentRequest.Non3DExecute(apiPaymentRequest, options);
    
    
    
    var EndPointUrl = 'https://secure.payu.com.tr/order/alu/v3';
    
    SecretKey = 'SECRET_KEY';
    
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    ORDER_REF = Math.floor(Math.random() * Math.floor(1000));
    
    
    var array = {
        'MERCHANT': "OPU_TEST",
        'LANGUAGE': "TR",
        'ORDER_DATE': date,
        'PAY_METHOD': "CCVISAMC",
        'BACK_REF': "http://www.backref.com.tr",
        'PRICES_CURRENCY': "TRY",
        'SELECTED_INSTALLMENTS_NUMBER': "1",
        'ORDER_SHIPPING': "5",
        'CLIENT_IP': "127.0.0.1",
        'ORDER_REF': "Test"+ORDER_REF,
    
        'ORDER_PNAME[0]':'Test Ürünü',
        'ORDER_PCODE[0]':'Test Kodu',
        'ORDER_PINFO[0]':'Test Açıklaması',
        'ORDER_PRICE[0]':'5',
        'ORDER_VAT[0]':'18',
        'ORDER_PRICE_TYPE[0]':'NET',
        'ORDER_QTY[0]':'1',
    
        'ORDER_PNAME[1]':'Test Ürünü-2',
        'ORDER_PCODE[1]':'Test Kodu-2',
        'ORDER_PINFO[1]':'Test Açıklaması-2',
        'ORDER_PRICE[1]':'15',
        'ORDER_VAT[1]':'24',
        'ORDER_PRICE_TYPE[1]':'GROSS',
        'ORDER_QTY[1]':'3',
    
        'CC_NUMBER':'4355084355084358',
        'EXP_MONTH':'12',
        'EXP_YEAR':'2018',
        'CC_CVV':'000',
        'CC_OWNER':'000',
    
        'BILL_FNAME':'Ad',
        'BILL_LNAME':'Soyad',
        'BILL_EMAIL':'mail@mail.com',
        'BILL_PHONE':'02129003711',
        'BILL_FAX':'02129003711',
        'BILL_ADDRESS':'Birinci Adres satırı',
        'BILL_ADDRESS2':'İkinci Adres satırı',
        'BILL_ZIPCODE':'34000',
        'BILL_CITY':'ISTANBUL',
        'BILL_COUNTRYCODE':'TR',
        'BILL_STATE':'Ayazağa',
    
        'DELIVERY_FNAME':'Ad',
        'DELIVERY_LNAME':'Soyad',
        'DELIVERY_EMAIL':'mail@mail.com',
        'DELIVERY_PHONE':'02129003711',
        'DELIVERY_COMPANY':'PayU Ödeme Kuruluşu A.Ş.',
        'DELIVERY_ADDRESS':'Birinci Adres satırı',
        'DELIVERY_ADDRESS2':'İkinci Adres satırı',
        'DELIVERY_ZIPCODE':'34000',
        'DELIVERY_CITY':'ISTANBUL',
        'DELIVERY_STATE':'TR',
        'DELIVERY_COUNTRYCODE':'Ayazağa',
        'LU_ENABLE_TOKEN': '1',
    
    }
    
    hashstring = '';
    var sortKeys = require('sort-keys');
    sorted = sortKeys(array)
    for (var k in sorted) {
        hashstring += array[k].length + array[k] ;
    }
    
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['ORDER_HASH'] = signature
    
    var request = require("request");
    request.post(EndPointUrl, {form:array}, function(error, response, body) {
        console.log(error);
        console.log(body);
    
    });
    
    
    
    <?php
    $url = "https://secure.payu.com.tr/order/alu/v3";
    date_default_timezone_set('UTC');
    
    $secretKey = 'SECRET_KEY';
    
    $arParams = array(
    
       "MERCHANT" => "OPU_TEST",
       "LANGUAGE" => "TR",
       "ORDER_REF" =>  rand(1, 10000),
       "ORDER_DATE" => date('Y-m-d H:i:s'),
       "PAY_METHOD" => "CCVISAMC",
       "BACK_REF" => "http://www.backref.com.tr",
       "PRICES_CURRENCY" => "TRY",
       "SELECTED_INSTALLMENTS_NUMBER" => "1",
       "ORDER_SHIPPING"=>"5",
       "CLIENT_IP" => "127.0.0.1",
    
    
       "ORDER_PNAME[0]" => "Test Ürünü",
       "ORDER_PCODE[0]" => "Test Kodu",
       "ORDER_PINFO[0]" => "Test Açıklaması",
       "ORDER_PRICE[0]" => "5",
       "ORDER_VAT[0]"=>"18",
       "ORDER_PRICE_TYPE[0]"=>"NET",
       "ORDER_QTY[0]" => "1",
    
       "LU_ENABLE_TOKEN" => 1,
       "CC_NUMBER" => "4355084355084358",
       "EXP_MONTH" => "12",
       "EXP_YEAR" => "2018",
       "CC_CVV" => "000",
       "CC_OWNER" => "Ad Soyad",
    
       "BILL_FNAME" => "Ad",
       "BILL_LNAME" => "Soyad",
       "BILL_EMAIL" => "mail@mail.com",
       "BILL_PHONE" => "02129003711",
       "BILL_FAX" => "02129003711",
       "BILL_ADDRESS" => "Birinci Adres satırı",
       "BILL_ADDRESS2" => "İkinci Adres satırı",
       "BILL_ZIPCODE" => "34000",
       "BILL_CITY" => "ISTANBUL",
       "BILL_COUNTRYCODE" => "TR",
       "BILL_STATE" => "Ayazağa",
    
       "DELIVERY_FNAME" => "Ad",
       "DELIVERY_LNAME" => "Soyad",
       "DELIVERY_EMAIL" => "mail@mail.com",
       "DELIVERY_PHONE" => "02129003711",
       "DELIVERY_COMPANY" => "PayU Ödeme Kuruluşu A.Ş.",
       "DELIVERY_ADDRESS" => "Birinci Adres satırı",
       "DELIVERY_ADDRESS2" => "İkinci Adres satırı",
       "DELIVERY_ZIPCODE" => "34000",
       "DELIVERY_CITY" => "ISTANBUL",
       "DELIVERY_STATE" => "TR",
       "DELIVERY_COUNTRYCODE" => "Ayazağa",
    );
    
    ksort($arParams);
    $hashString = "";
    foreach ($arParams as $key => $val) {
        $hashString .= strlen($val) . $val;
    }
    print_r($arParams);
    echo "<pre>";
    print_r($hashString);
    echo "<pre>";
    
    $arParams["ORDER_HASH"] = hash_hmac("md5", $hashString, $secretKey);
    $ch = curl_init();
    print_r($arParams);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arParams));
    $response = curl_exec($ch);
    
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
    
    if (empty($curlerr) && empty($curlerrcode)) {
        $parsedXML = @simplexml_load_string($response);
        if ($parsedXML !== FALSE) {
            echo "<pre>";
            print_r($response);
            echo "</pre>";
    
            $payuTranReference = $parsedXML->REFNO;
    
            if ($parsedXML->STATUS == "SUCCESS") {
    
    
                if (($parsedXML->RETURN_CODE == "3DS_ENROLLED") && (!empty($parsedXML->URL_3DS))) {
                    header("Location:" . $parsedXML->URL_3DS);
                }
    
                echo "<pre>";
                echo "SUCCES [PayU reference number: " . $payuTranReference . "]";
                echo "</pre>";
    
            } else {
                echo "Error: " . $parsedXML->RETURN_MESSAGE . " [" . $parsedXML->RETURN_CODE . "]";
                echo "<br>";
                echo "Error Details: " . $parsedXML->ERRORMESSAGE . "<br> Error Code: [" . $parsedXML->PROCRETURNCODE . "]";
                if (!empty($payuTranReference)) {
                    //the transaction was register to PayU system, but some error occured during the bank authorization.
                    //See $parsedXML->RETURN_MESSAGE and $parsedXML->RETURN_CODE for details
                    echo "<pre>";
                    echo " [PayU reference number: " . $payuTranReference . "]";
                    echo "</pre>";
    
                }
            }
        }
    } else {
        echo "cURL error: " . $curlerr;
    
    }
    
    
    # Importing required libraries.
    from datetime import datetime
    import random
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    
    # Endpoint
    url = "https://secure.payu.com.tr/order/alu/v3"
    
    # PayU Merchant's Secret Key
    secret = 'SECRET_KEY'
    
    # Request @params Begin
    array = {
        # PayU Merchant's Merchant ID
        'MERCHANT': "OPU_TEST",
        'LANGUAGE': "TR",
        'ORDER_DATE': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
        'PAY_METHOD': "CCVISAMC",
        'BACK_REF': "http://www.backref.com.tr",
        'PRICES_CURRENCY': "TRY",
        'SELECTED_INSTALLMENTS_NUMBER': "1",
        'ORDER_SHIPPING': "5",
        'CLIENT_IP': "127.0.0.1",
        'ORDER_PNAME[0]': "Test Ürünü",
        'ORDER_PCODE[0]': "Test Kodu",
        'ORDER_PINFO[0]': "Test Açıklaması",
        'ORDER_PRICE[0]': "5",
        'ORDER_VAT[0]': "18",
        'ORDER_PRICE_TYPE[0]': "NET",
        'ORDER_QTY[0]': "1",
        'CC_NUMBER': "4355084355084358",
        'EXP_MONTH': "12",
        'EXP_YEAR': "2018",
        'CC_CVV': "000",
        'CC_OWNER': "Ad Soyad",
        'BILL_FNAME': "Ad",
        'BILL_LNAME': "Soyad",
        'BILL_EMAIL': "mail@mail.com",
        'BILL_PHONE': "02129003711",
        'BILL_FAX': "02129003711",
        'BILL_ADDRESS': "Birinci Adres satırı",
        'BILL_ADDRESS2': "İkinci Adres satırı",
        'BILL_ZIPCODE': "34000",
        'BILL_CITY': "ISTANBUL",
        'BILL_COUNTRYCODE': "TR",
        'BILL_STATE': "Ayazağa",
        'DELIVERY_FNAME': "Ad",
        'DELIVERY_LNAME': "Soyad",
        'DELIVERY_EMAIL': "mail@mail.com",
        'DELIVERY_PHONE': "02129003711",
        'DELIVERY_COMPANY': "PayU Ödeme Kuruluşu A.Ş.",
        'DELIVERY_ADDRESS': "Birinci Adres satırı",
        'DELIVERY_ADDRESS2': "İkinci Adres satırı",
        'DELIVERY_ZIPCODE': "34000",
        'DELIVERY_CITY': "ISTANBUL",
        'DELIVERY_STATE': "TR",
        'DELIVERY_COUNTRYCODE': "Ayazağa",
        'LU_ENABLE_TOKEN': 1,
    }
    # Random number generation function for ORDER_REF @param
    refno = str(random.randint(1, 100000))
    
    # Adding ORDER_REF @param to request array
    array['ORDER_REF'] = refno
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in sorted(array.items()):
    # Adding the length of each field value at the beginning of field value
        hashstring += str(len(v)) + str(v)
    print(hashstring)
    
    # Calculating ORDER_HASH
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding ORDER_HASH @param to request array
    array['ORDER_HASH'] = signature
    
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    

    API ile ödeme alırken tek bir parametre eklenmesi ile kart saklanabilir(token oluşturulabilir), saklanan kart ile "Tek Tıkla Ödeme" veya "Tekrarlayan Ödeme" modelinde ödeme alabilirsiniz.

    İşlem Sırasında Kart Saklama(Token Oluşturma)

    Başarılı Kart Saklama Örneği

    <EPAYMENT>
      <REFNO>41536398</REFNO>
      <ALIAS>8f886d873acec2724c6cdddaf09c5861</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:24:21</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>78244</ORDER_REF>
      <AUTH_CODE>026497</AUTH_CODE>
      <RRN>727921202667</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202667</HOSTREFNUM>
      <OID>41536398</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VYUG14215</TRANSID>
      <TOKEN_HASH>1b88351b26f83e61361c333bec9428e8</TOKEN_HASH>
      <HASH>f56580e0932184a289934c34690a434a</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41536398</REFNO>
      <ALIAS>8f886d873acec2724c6cdddaf09c5861</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:24:21</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>78244</ORDER_REF>
      <AUTH_CODE>026497</AUTH_CODE>
      <RRN>727921202667</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202667</HOSTREFNUM>
      <OID>41536398</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VYUG14215</TRANSID>
      <TOKEN_HASH>1b88351b26f83e61361c333bec9428e8</TOKEN_HASH>
      <HASH>f56580e0932184a289934c34690a434a</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41536398</REFNO>
      <ALIAS>8f886d873acec2724c6cdddaf09c5861</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:24:21</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>78244</ORDER_REF>
      <AUTH_CODE>026497</AUTH_CODE>
      <RRN>727921202667</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202667</HOSTREFNUM>
      <OID>41536398</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VYUG14215</TRANSID>
      <TOKEN_HASH>1b88351b26f83e61361c333bec9428e8</TOKEN_HASH>
      <HASH>f56580e0932184a289934c34690a434a</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41536398</REFNO>
      <ALIAS>8f886d873acec2724c6cdddaf09c5861</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:24:21</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>78244</ORDER_REF>
      <AUTH_CODE>026497</AUTH_CODE>
      <RRN>727921202667</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202667</HOSTREFNUM>
      <OID>41536398</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VYUG14215</TRANSID>
      <TOKEN_HASH>1b88351b26f83e61361c333bec9428e8</TOKEN_HASH>
      <HASH>f56580e0932184a289934c34690a434a</HASH>
    </EPAYMENT>
    

    API ile ödeme isteği oluşturulduğu sırada "LU_ENABLE_TOKEN" parametresini "1" veya "true" değeri ile gönderildiğinde işlem yanıtında ve IPN bildiriminde "TOKEN_HASH"" parametresi içerisinde saklanmış kart token değeri yanıt olarak dönmektedir. Bu değeri kendi tarafınızda saklamalısınız.

    PayU Referans Numarası ile Kart Saklama

    Saklanmış Kart ile Ödeme Alma(Token ile Ödeme Alma)

    Saklanmış Kart ile Ödeme Alma

    
                ApiPaymentRequest apiPaymentRequest = new ApiPaymentRequest();
    
                apiPaymentRequest.Config = new ApiPaymentRequest.PayUConfig();
                apiPaymentRequest.Config.MERCHANT = "OPU_TEST";
                apiPaymentRequest.Config.LANGUAGE = "TR";
                apiPaymentRequest.Config.PAY_METHOD = "CCVISAMC";
                apiPaymentRequest.Config.BACK_REF = "";
                apiPaymentRequest.Config.PRICES_CURRENCY = "TRY";
                apiPaymentRequest.Config.LU_ENABLE_TOKEN = "true";
                apiPaymentRequest.Order = new ApiPaymentRequest.PayUOrder();
                apiPaymentRequest.Order.ORDER_REF = Guid.NewGuid().ToString();
                apiPaymentRequest.Order.ORDER_SHIPPING = "5";
                apiPaymentRequest.Order.ORDER_DATE = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
    
                ApiPaymentRequest.PayUOrder.PayUOrderItem orderItem = new ApiPaymentRequest.PayUOrder.PayUOrderItem();
                orderItem.ORDER_PRICE = "5";
                orderItem.ORDER_PINFO = "Test Açıklaması";
                orderItem.ORDER_QTY = "1";
                orderItem.ORDER_PCODE = "Test Kodu";
                orderItem.ORDER_PNAME = "Test Ürünü";
                orderItem.ORDER_VAT = "18";
                orderItem.ORDER_PRICE_TYPE = "NET";
    
                apiPaymentRequest.Order.OrderItems.Add(orderItem);
    
                apiPaymentRequest.CreditCard = new ApiPaymentRequest.PayUCreditCard();
                apiPaymentRequest.CreditCard.CC_TOKEN = "";
                apiPaymentRequest.CreditCard.CC_NUMBER = "";
                apiPaymentRequest.CreditCard.EXP_MONTH = "";
                apiPaymentRequest.CreditCard.EXP_YEAR = "";
                apiPaymentRequest.CreditCard.CC_CVV = "";
                apiPaymentRequest.CreditCard.CC_OWNER = nameSurname;
                apiPaymentRequest.CreditCard.SELECTED_INSTALLMENTS_NUMBER = installment;
    
                apiPaymentRequest.Customer = new ApiPaymentRequest.PayUCustomer();
                apiPaymentRequest.Customer.BILL_FNAME = "Ad";
                apiPaymentRequest.Customer.BILL_LNAME = "Soyad";
                apiPaymentRequest.Customer.BILL_EMAIL = "mail@mail.com";
                apiPaymentRequest.Customer.BILL_PHONE = "02129003711";
                apiPaymentRequest.Customer.BILL_FAX = "02129003711";
                apiPaymentRequest.Customer.BILL_ADDRESS = "Birinci Adres satırı";
                apiPaymentRequest.Customer.BILL_ADDRESS2 = "İkinci Adres satırı";
                apiPaymentRequest.Customer.BILL_ZIPCODE = "34000";
                apiPaymentRequest.Customer.BILL_CITY = "ISTANBUL";
                apiPaymentRequest.Customer.BILL_COUNTRYCODE = "TR";
                apiPaymentRequest.Customer.BILL_STATE = "Ayazağa";
                apiPaymentRequest.Customer.CLIENT_IP = Request.UserHostAddress;
    
    
                apiPaymentRequest.Delivery = new ApiPaymentRequest.PayUDelivery();
                apiPaymentRequest.Delivery.DELIVERY_FNAME = "Ad";
                apiPaymentRequest.Delivery.DELIVERY_LNAME = "Soyad";
                apiPaymentRequest.Delivery.DELIVERY_EMAIL = "mail@mail.com";
                apiPaymentRequest.Delivery.DELIVERY_PHONE = "02129003711";
                apiPaymentRequest.Delivery.DELIVERY_COMPANY = "PayU Ödeme Kuruluşu A.Ş.";
                apiPaymentRequest.Delivery.DELIVERY_ADDRESS = "Birinci Adres satIRI";
                apiPaymentRequest.Delivery.DELIVERY_ADDRESS2 = "İkinci Adres satırı";
                apiPaymentRequest.Delivery.DELIVERY_ZIPCODE = "34000";
                apiPaymentRequest.Delivery.DELIVERY_CITY = "ISTANBUL";
                apiPaymentRequest.Delivery.DELIVERY_STATE = "TR";
                apiPaymentRequest.Delivery.DELIVERY_COUNTRYCODE = "Ayazağa";
    
                var options = new Options();
                options.Url = "https://secure.payu.com.tr/order/alu/v3";
                options.SecretKey = "SECRET_KEY";
                var response = ApiPaymentRequest.Non3DExecute(apiPaymentRequest, options);
    
    
    var EndPointUrl = 'https://secure.payu.com.tr/order/alu/v3';
    
    SecretKey = 'SECRET_KEY';
    
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    ORDER_REF = Math.floor(Math.random() * Math.floor(1000));
    
    
    var array = {
        'MERCHANT': "OPU_TEST",
        'LANGUAGE': "TR",
        'ORDER_DATE': date,
        'PAY_METHOD': "CCVISAMC",
        'BACK_REF': "http://www.backref.com.tr",
        'PRICES_CURRENCY': "TRY",
        'SELECTED_INSTALLMENTS_NUMBER': "1",
        'ORDER_SHIPPING': "5",
        'CLIENT_IP': "127.0.0.1",
        'ORDER_REF': "Test"+ORDER_REF,
    
        'ORDER_PNAME[0]':'Test Ürünü',
        'ORDER_PCODE[0]':'Test Kodu',
        'ORDER_PINFO[0]':'Test Açıklaması',
        'ORDER_PRICE[0]':'5',
        'ORDER_VAT[0]':'18',
        'ORDER_PRICE_TYPE[0]':'NET',
        'ORDER_QTY[0]':'1',
    
        'ORDER_PNAME[1]':'Test Ürünü-2',
        'ORDER_PCODE[1]':'Test Kodu-2',
        'ORDER_PINFO[1]':'Test Açıklaması-2',
        'ORDER_PRICE[1]':'15',
        'ORDER_VAT[1]':'24',
        'ORDER_PRICE_TYPE[1]':'GROSS',
        'ORDER_QTY[1]':'3',
    
        'CC_TOKEN': '1b88351b26f83e61361c333bec9428e8',
        'CC_NUMBER':'',
        'EXP_MONTH':'',
        'EXP_YEAR':'',
        'CC_CVV':'',
        'CC_OWNER':'',
    
        'BILL_FNAME':'Ad',
        'BILL_LNAME':'Soyad',
        'BILL_EMAIL':'mail@mail.com',
        'BILL_PHONE':'02129003711',
        'BILL_FAX':'02129003711',
        'BILL_ADDRESS':'Birinci Adres satırı',
        'BILL_ADDRESS2':'İkinci Adres satırı',
        'BILL_ZIPCODE':'34000',
        'BILL_CITY':'ISTANBUL',
        'BILL_COUNTRYCODE':'TR',
        'BILL_STATE':'Ayazağa',
    
        'DELIVERY_FNAME':'Ad',
        'DELIVERY_LNAME':'Soyad',
        'DELIVERY_EMAIL':'mail@mail.com',
        'DELIVERY_PHONE':'02129003711',
        'DELIVERY_COMPANY':'PayU Ödeme Kuruluşu A.Ş.',
        'DELIVERY_ADDRESS':'Birinci Adres satırı',
        'DELIVERY_ADDRESS2':'İkinci Adres satırı',
        'DELIVERY_ZIPCODE':'34000',
        'DELIVERY_CITY':'ISTANBUL',
        'DELIVERY_STATE':'TR',
        'DELIVERY_COUNTRYCODE':'Ayazağa',
    
    }
    
    hashstring = '';
    var sortKeys = require('sort-keys');
    sorted = sortKeys(array)
    for (var k in sorted) {
        hashstring += array[k].length + array[k] ;
    }
    
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['ORDER_HASH'] = signature
    
    var request = require("request");
    request.post(EndPointUrl, {form:array}, function(error, response, body) {
        console.log(error);
        console.log(body);
    
    });
    
    
    # Importing required libraries.
    from datetime import datetime
    import random
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    
    # Endpoint
    url = "https://secure.payu.com.tr/order/alu/v3"
    
    # PayU Merchant's Secret Key
    secret = 'SECRET_KEY'
    
    # Request @params Begin
    array = {
        # PayU Merchant's Merchant ID
        'MERCHANT': "OPU_TEST",
        'LANGUAGE': "TR",
        'ORDER_DATE': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
        'PAY_METHOD': "CCVISAMC",
        'BACK_REF': "http://www.backref.com.tr",
        'PRICES_CURRENCY': "TRY",
        'SELECTED_INSTALLMENTS_NUMBER': "1",
        'ORDER_SHIPPING': "5",
        'CLIENT_IP': "127.0.0.1",
        'ORDER_PNAME[0]': "Test Ürünü",
        'ORDER_PCODE[0]': "Test Kodu",
        'ORDER_PINFO[0]': "Test Açıklaması",
        'ORDER_PRICE[0]': "5",
        'ORDER_VAT[0]': "18",
        'ORDER_PRICE_TYPE[0]': "NET",
        'ORDER_QTY[0]': "1",
    
        'CC_TOKEN': "1b88351b26f83e61361c333bec9428e8",
        'CC_NUMBER': "",
        'EXP_MONTH': "",
        'EXP_YEAR': "",
        'CC_CVV': "",
        'CC_OWNER': "",
    
        'BILL_FNAME': "Ad",
        'BILL_LNAME': "Soyad",
        'BILL_EMAIL': "mail@mail.com",
        'BILL_PHONE': "02129003711",
        'BILL_FAX': "02129003711",
        'BILL_ADDRESS': "Birinci Adres satırı",
        'BILL_ADDRESS2': "İkinci Adres satırı",
        'BILL_ZIPCODE': "34000",
        'BILL_CITY': "ISTANBUL",
        'BILL_COUNTRYCODE': "TR",
        'BILL_STATE': "Ayazağa",
        'DELIVERY_FNAME': "Ad",
        'DELIVERY_LNAME': "Soyad",
        'DELIVERY_EMAIL': "mail@mail.com",
        'DELIVERY_PHONE': "02129003711",
        'DELIVERY_COMPANY': "PayU Ödeme Kuruluşu A.Ş.",
        'DELIVERY_ADDRESS': "Birinci Adres satırı",
        'DELIVERY_ADDRESS2': "İkinci Adres satırı",
        'DELIVERY_ZIPCODE': "34000",
        'DELIVERY_CITY': "ISTANBUL",
        'DELIVERY_STATE': "TR",
        'DELIVERY_COUNTRYCODE': "Ayazağa",
    
    }
    # Random number generation function for ORDER_REF @param
    refno = str(random.randint(1, 100000))
    
    # Adding ORDER_REF @param to request array
    array['ORDER_REF'] = refno
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in sorted(array.items()):
    # Adding the length of each field value at the beginning of field value
        hashstring += str(len(v)) + str(v)
    print(hashstring)
    
    # Calculating ORDER_HASH
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding ORDER_HASH @param to request array
    array['ORDER_HASH'] = signature
    
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    <?php
    $url = "https://secure.payu.com.tr/order/alu/v3";
    date_default_timezone_set('UTC');
    
    $secretKey = 'SECRET_KEY';
    
    $arParams = array(
    
       "MERCHANT" => "OPU_TEST",
       "LANGUAGE" => "TR",
       "ORDER_REF" =>  rand(1, 10000),
       "ORDER_DATE" => date('Y-m-d H:i:s'),
       "PAY_METHOD" => "CCVISAMC",
       "BACK_REF" => "http://www.backref.com.tr",
       "PRICES_CURRENCY" => "TRY",
       "SELECTED_INSTALLMENTS_NUMBER" => "1",
       "ORDER_SHIPPING"=>"5",
       "CLIENT_IP" => "127.0.0.1",
    
    
       "ORDER_PNAME[0]" => "Test Ürünü",
       "ORDER_PCODE[0]" => "Test Kodu",
       "ORDER_PINFO[0]" => "Test Açıklaması",
       "ORDER_PRICE[0]" => "5",
       "ORDER_VAT[0]"=>"18",
       "ORDER_PRICE_TYPE[0]"=>"NET",
       "ORDER_QTY[0]" => "1",
    
       "CC_TOKEN" => "1b88351b26f83e61361c333bec9428e8",
       "CC_NUMBER" => "",
       "EXP_MONTH" => "",
       "EXP_YEAR" => "",
       "CC_CVV" => "",
       "CC_OWNER" => "",
    
       "BILL_FNAME" => "Ad",
       "BILL_LNAME" => "Soyad",
       "BILL_EMAIL" => "mail@mail.com",
       "BILL_PHONE" => "02129003711",
       "BILL_FAX" => "02129003711",
       "BILL_ADDRESS" => "Birinci Adres satırı",
       "BILL_ADDRESS2" => "İkinci Adres satırı",
       "BILL_ZIPCODE" => "34000",
       "BILL_CITY" => "ISTANBUL",
       "BILL_COUNTRYCODE" => "TR",
       "BILL_STATE" => "Ayazağa",
    
       "DELIVERY_FNAME" => "Ad",
       "DELIVERY_LNAME" => "Soyad",
       "DELIVERY_EMAIL" => "mail@mail.com",
       "DELIVERY_PHONE" => "02129003711",
       "DELIVERY_COMPANY" => "PayU Ödeme Kuruluşu A.Ş.",
       "DELIVERY_ADDRESS" => "Birinci Adres satırı",
       "DELIVERY_ADDRESS2" => "İkinci Adres satırı",
       "DELIVERY_ZIPCODE" => "34000",
       "DELIVERY_CITY" => "ISTANBUL",
       "DELIVERY_STATE" => "TR",
       "DELIVERY_COUNTRYCODE" => "Ayazağa",
    );
    
    ksort($arParams);
    $hashString = "";
    foreach ($arParams as $key => $val) {
        $hashString .= strlen($val) . $val;
    }
    print_r($arParams);
    echo "<pre>";
    print_r($hashString);
    echo "<pre>";
    
    $arParams["ORDER_HASH"] = hash_hmac("md5", $hashString, $secretKey);
    $ch = curl_init();
    print_r($arParams);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arParams));
    $response = curl_exec($ch);
    
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
    
    if (empty($curlerr) && empty($curlerrcode)) {
        $parsedXML = @simplexml_load_string($response);
        if ($parsedXML !== FALSE) {
            echo "<pre>";
            print_r($response);
            echo "</pre>";
    
            $payuTranReference = $parsedXML->REFNO;
    
            if ($parsedXML->STATUS == "SUCCESS") {
    
    
                if (($parsedXML->RETURN_CODE == "3DS_ENROLLED") && (!empty($parsedXML->URL_3DS))) {
                    header("Location:" . $parsedXML->URL_3DS);
                }
    
                echo "<pre>";
                echo "SUCCES [PayU reference number: " . $payuTranReference . "]";
                echo "</pre>";
    
            } else {
                echo "Error: " . $parsedXML->RETURN_MESSAGE . " [" . $parsedXML->RETURN_CODE . "]";
                echo "<br>";
                echo "Error Details: " . $parsedXML->ERRORMESSAGE . "<br> Error Code: [" . $parsedXML->PROCRETURNCODE . "]";
                if (!empty($payuTranReference)) {
                    //the transaction was register to PayU system, but some error occured during the bank authorization.
                    //See $parsedXML->RETURN_MESSAGE and $parsedXML->RETURN_CODE for details
                    echo "<pre>";
                    echo " [PayU reference number: " . $payuTranReference . "]";
                    echo "</pre>";
    
                }
            }
        }
    } else {
        echo "cURL error: " . $curlerr;
    
    }
    

    Saklanmış Kart ile ödeme yanıt örneği

    <EPAYMENT>
      <REFNO>41615020</REFNO>
      <ALIAS>d6bf5f305d8c2bfa983ef97a52ea9406</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:26:31</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>91968</ORDER_REF>
      <AUTH_CODE>258228</AUTH_CODE>
      <RRN>727921202668</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202668</HOSTREFNUM>
      <OID>41615020</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VaaF14297</TRANSID>
      <HASH>bff08ad4736b4f1e57400fb860f5c422</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41615020</REFNO>
      <ALIAS>d6bf5f305d8c2bfa983ef97a52ea9406</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:26:31</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>91968</ORDER_REF>
      <AUTH_CODE>258228</AUTH_CODE>
      <RRN>727921202668</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202668</HOSTREFNUM>
      <OID>41615020</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VaaF14297</TRANSID>
      <HASH>bff08ad4736b4f1e57400fb860f5c422</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41615020</REFNO>
      <ALIAS>d6bf5f305d8c2bfa983ef97a52ea9406</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:26:31</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>91968</ORDER_REF>
      <AUTH_CODE>258228</AUTH_CODE>
      <RRN>727921202668</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202668</HOSTREFNUM>
      <OID>41615020</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VaaF14297</TRANSID>
      <HASH>bff08ad4736b4f1e57400fb860f5c422</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <REFNO>41615020</REFNO>
      <ALIAS>d6bf5f305d8c2bfa983ef97a52ea9406</ALIAS>
      <STATUS>SUCCESS</STATUS>
      <RETURN_CODE>AUTHORIZED</RETURN_CODE>
      <RETURN_MESSAGE>Authorized.</RETURN_MESSAGE>
      <DATE>2017-10-06 21:26:31</DATE>
      <AMOUNT>10.9</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <INSTALLMENTS_NO>1</INSTALLMENTS_NO>
      <CARD_PROGRAM_NAME>AXESS</CARD_PROGRAM_NAME>
      <ORDER_REF>91968</ORDER_REF>
      <AUTH_CODE>258228</AUTH_CODE>
      <RRN>727921202668</RRN>
      <ERRORMESSAGE>Approved.</ERRORMESSAGE>
      <PROCRETURNCODE>00</PROCRETURNCODE>
      <BANK_MERCHANT_ID>100100000</BANK_MERCHANT_ID>
      <PAN>4355-xxxx-xxxx-4358</PAN>
      <EXPYEAR>18</EXPYEAR>
      <EXPMONTH>12</EXPMONTH>
      <CLIENTID>100100000</CLIENTID>
      <HOSTREFNUM>727921202668</HOSTREFNUM>
      <OID>41615020</OID>
      <RESPONSE>Approved</RESPONSE>
      <TERMINAL_BANK>AKBA</TERMINAL_BANK>
      <MDSTATUS></MDSTATUS>
      <MDERRORMSG></MDERRORMSG>
      <TXSTATUS></TXSTATUS>
      <XID></XID>
      <ECI></ECI>
      <CAVV></CAVV>
      <TRANSID>17279VaaF14297</TRANSID>
      <HASH>bff08ad4736b4f1e57400fb860f5c422</HASH>
    </EPAYMENT>
    

    API ile ödeme isteği gönderildiği sırada kart parametreleri CC_NUMBER,CC_CVV,CC_OWNER,EXP_MONTH,EXP_YEAR aşağıda gösterildiği gibi boş gönderilmeli ve saklanmış kart değeri CC_TOKEN parametresine atanarak işlem isteği gönderilmelidir.

    CC_TOKEN => "4446c19bbed0abd515a509a3bdf959b5",
    CC_NUMBER => "",
    EXP_MONTH => "",
    EXP_YEAR => "",
    CC_CVV => "",
    CC_OWNER => "",

    Token Bilgisi Alma

    Token İşlem Geçmişi

    Token İptali

    IPN Servisi(Asenkron Bildirim Servisi)

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                AsyncNotificationServiceHashRequest request = new AsyncNotificationServiceHashRequest();
                request.IPN_PID = Request.Form["IPN_PID[]"];
                request.IPN_PNAME = Request.Form["IPN_PNAME[]"];
                request.IPN_DATE = Request.Form["IPN_DATE[]"];
                request.DATE = DateTime.UtcNow.ToString("yyyyMMddHHmmss");
                var hash = AsyncNotificationServiceHashRequest.CalculateHash(request, "SECRET_KEY");
                model.Response = string.Format("<EPAYMENT>{0}|{1}</EPAYMENT>", request.DATE, hash);
    
    var express = require('express'),
        app = express(),
        port = 8995;
    var bodyParser = require("body-parser");
    app.use(bodyParser.urlencoded({ type: 'application/x-www-form-urlencoded', extended: false }));
    app.use(bodyParser.json());
    
    var moment = require('moment');
    date = moment.utc().format('YYYYMMDDHHmmss').toString();
    SecretKey = "SECRET_KEY";
    hashstring = '';
    app.post('/ipn', function (req, res) {
        var ipnparams = req.body;
        var array = { };
        array['IPN_PID'] = ipnparams["IPN_PID[]"][0];
        array['IPN_PNAME'] = ipnparams["IPN_PNAME[]"][0];
        array['IPN_DATE'] = ipnparams['IPN_DATE'];
        array['DATE'] = date;
        console.log(array);
        for (var k in array) {
            hashstring += array[k].length + array[k] ;
        }
        console.log(array);
        console.log(hashstring);
        var hash = require('crypto')
            , data = hashstring
            , secretkey = SecretKey;
    
        signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
        res.end("<EPAYMENT>"+date+"|"+signature+"</EPAYMENT>")
    
    });
    
    var server = app.listen(port, function () {
    
        var host = server.address().address
        var port = server.address().port
    
    });
    
    <?php
    $postValues = null;
    foreach($_REQUEST as $key => $value){
        $postValues .= $key.' = '. $value. "\r\n";
    
    }
    
    
    ini_set("mbstring.func_overload", 0);
    if(ini_get("mbstring.func_overload") > 2)
    {   /* check if mbstring.func_overload is still set to overload strings(2)*/
        echo "WARNING: mbstring.func_overload is set to overload strings and might cause problems\n";
    }
    
    /* Internet Payment Notification */
    
    $pass       = "TEST_KEY";   /* pass to compute HASH */
    $result     = "";               /* string for compute HASH for received data */
    $return     = "";               /* string to compute HASH for return result */
    $signature  = $_POST["HASH"];   /* HASH received */
    $body       = "";
    
    /* read info received */
    ob_start();
    while(list($key, $val) = each($_POST)){
        $$key=$val;
    
        /* get values */
        if($key != "HASH"){
    
            if(is_array($val)) $result .= ArrayExpand($val);
            else{
                $size       = strlen(StripSlashes($val));
                $result .= $size.StripSlashes($val);
            }
    
        }
    
    }
    $body = ob_get_contents();
    ob_end_flush();
    
    $date_return = date("YmdGis");
    
    $return = strlen($_POST["IPN_PID"][0]).$_POST["IPN_PID"][0].strlen($_POST["IPN_PNAME"][0]).$_POST["IPN_PNAME"][0];
    $return .= strlen($_POST["IPN_DATE"]).$_POST["IPN_DATE"].strlen($date_return).$date_return;
    
    function ArrayExpand($array){
        $retval = "";
        for($i = 0; $i < sizeof($array); $i++){
            $size       = strlen(StripSlashes($array[$i]));
            $retval .= $size.StripSlashes($array[$i]);
        }
    
        return $retval;
    }
    
    function hmac ($key, $data){
        $b = 64; // byte length for md5
        if (strlen($key) > $b) {
            $key = pack("H*",md5($key));
        }
        $key  = str_pad($key, $b, chr(0x00));
        $ipad = str_pad('', $b, chr(0x36));
        $opad = str_pad('', $b, chr(0x5c));
        $k_ipad = $key ^ $ipad ;
        $k_opad = $key ^ $opad;
        return md5($k_opad  . pack("H*",md5($k_ipad . $data)));
    }
    
    $hash =  hmac($pass, $result); /* HASH for data received */
    
    $body .= $result."\r\n\r\nHash: ".$hash."\r\n\r\nSignature: ".$signature."\r\n\r\nReturnSTR: ".$return;
    
    if($hash == $signature){
        echo "Verified OK!";
    
        /* ePayment response */
        $result_hash =  hmac($pass, $return);
        echo "<EPAYMENT>".$date_return."|".$result_hash."</EPAYMENT>";
    
        /* Begin automated procedures (START YOUR CODE)*/
    
    
    }
    
    ?>
    
    # Importing required libraries
    
    import collections
    import flask
    from datetime import datetime
    import hmac
    import hashlib
    
    ipn = flask.Flask(__name__)
    date = datetime.utcnow().strftime('%Y%m%d%H%M%S')
    # Your Merchant's Secret key
    secretkey = "SECRET_KEY"
    
    
    # You can change IPN URL with editing "/ipn"
    @ipn.route("/ipn", methods=("POST", "GET"))
    def webhook_post_handler():
        # You can reach IPN requets's all @params with ipnparams
        ipnparams = flask.request.values
        print(ipnparams)
    
        # Creating array for hash calculation
        array = collections.OrderedDict()
        array['IPN_PID'] = ipnparams["IPN_PID[]"]
        array['IPN_PNAME'] = ipnparams["IPN_PNAME[]"]
        array['IPN_DATE'] = ipnparams["IPN_DATE"]
        array['DATE'] = date
    
        # Initializing the hashstring @param
        hashstring = ''
    
        for k, v in array.items():
            # Adding the UTF-8 byte length of each field value at the beginning of field value
            hashstring += str(len(v.encode("utf8"))) + str(v)
            print(hashstring)
    
        # Signature Calculation
        signature = hmac.new(secretkey.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
        print(signature)
    
        # Printing response
        return flask.Response("<EPAYMENT>{0}|{1}</EPAYMENT>".format(date, signature))
    
    
    if __name__ == '__main__':
        # You can edit or delete port and debug mode.
        ipn.run(port=8080, debug=True)
    
    

    Örnek IPN Bildirimi

        [SALEDATE] => 2017-10-04 22:40:12
        [PAYMENTDATE] => 2017-10-04 22:40:20
        [REFNO] => 41666419
        [REFNOEXT] => 4159
        [ORDERNO] => 461
        [ORDERSTATUS] => PAYMENT_AUTHORIZED
        [PAYMETHOD] => CreditCard
        [PAYMETHOD_CODE] => CCVISAMC
        [FIRSTNAME] => Ad
        [LASTNAME] => Soyad
        [IDENTITY_NO] => -
        [IDENTITY_ISSUER] => 
        [CARD_TYPE] => Visa
        [IDENTITY_CNP] => 
        [COMPANY] => 
        [REGISTRATIONNUMBER] => 
        [FISCALCODE] => 
        [CBANKNAME] => 
        [CBANKACCOUNT] => 
        [ADDRESS1] => Birinci Adres satırı
        [ADDRESS2] => İkinci Adres satırı
        [CITY] => ISTANBUL
        [STATE] => Ayazağa
        [ZIPCODE] => 34000
        [COUNTRY] => Turkey
        [COUNTRY_CODE] => tr
        [PHONE] => 02129003711
        [FAX] => 02129003711
        [CUSTOMEREMAIL] => mail@mail.com
        [FIRSTNAME_D] => Ad
        [LASTNAME_D] => Soyad
        [COMPANY_D] => PayU Ödeme Kuruluşu A.Ş.
        [ADDRESS1_D] => Birinci Adres satırı
        [ADDRESS2_D] => İkinci Adres satırı
        [CITY_D] => ISTANBUL
        [STATE_D] => TR
        [ZIPCODE_D] => 34000
        [COUNTRY_D] => 
        [COUNTRY_D_CODE] => 
        [PHONE_D] => 02129003711
        [EMAIL_D] => mail@mail.com
        [IPADDRESS] => 127.0.0.1
        [IPCOUNTRY] => 
        [COMPLETE_DATE] => 0000-00-00 00:00:00
        [CURRENCY] => TRY
        [LANGUAGE] => tr
        [IPN_PID[]] => Array
            (
                [0] => 52580647
            )
    
        [IPN_PNAME[]] => Array
            (
                [0] => Test Ürünü
            )
    
        [IPN_PCODE[]] => Array
            (
                [0] => Test Kodu
            )
    
        [IPN_INFO[]] => Array
            (
                [0] => Test Açıklaması
            )
    
        [IPN_QTY[]] => Array
            (
                [0] => 1
            )
    
        [IPN_PRICE[]] => Array
            (
                [0] => 5.00
            )
    
        [IPN_VAT[]] => Array
            (
                [0] => 0.90
            )
    
        [IPN_VER[]] => Array
            (
                [0] => 
            )
    
        [IPN_DISCOUNT[]] => Array
            (
                [0] => 0.00
            )
    
        [IPN_PROMONAME[]] => Array
            (
                [0] => 
            )
    
        [IPN_PROMOCODE[]] => Array
            (
                [0] => 
            )
    
        [IPN_ORDER_COSTS[]] => Array
            (
                [0] => 0
            )
    
        [IPN_DELIVEREDCODES[]] => Array
            (
                [52580647] => 
            )
    
        [IPN_DOWNLOAD_LINK] => 
        [IPN_TOTAL[]] => Array
            (
                [0] => 5.90
            )
    
        [IPN_TOTALGENERAL] => 10.90
        [IPN_SHIPPING] => 5.00
        [IPN_COMMISSION] => 0.26
        [IPN_DATE] => 20171004224020
        [IPN_PAID_AMOUNT] => 10.90
        [IPN_INSTALLMENTS_PROGRAM] => Axess
        [IPN_INSTALLMENTS_NUMBER] => One time payment
        [IPN_INSTALLMENTS_PROFIT] => 0.00
        [AUTH_CODE] => 380978
        [BANK_MERCHANT_ID] => 100100000
        [BANK_RRN] => 727722200216
        [CARD_BIN] => 435508
        [CARD_HOLDER_NAME] => Ad Soyad
        [CARD_MASK] => 4355-xxxx-xxxx-4358
        [ISSUING_BANK] => AKBA
        [NUMBER_OF_INSTALLMENTS] => 0
        [TERMINAL_BANK] => AKBA
        [HASH] => d7e0e21f9a890a5bfcaa2cda50ece7bf
    
        [SALEDATE] => 2017-10-04 22:40:12
        [PAYMENTDATE] => 2017-10-04 22:40:20
        [REFNO] => 41666419
        [REFNOEXT] => 4159
        [ORDERNO] => 461
        [ORDERSTATUS] => PAYMENT_AUTHORIZED
        [PAYMETHOD] => CreditCard
        [PAYMETHOD_CODE] => CCVISAMC
        [FIRSTNAME] => Ad
        [LASTNAME] => Soyad
        [IDENTITY_NO] => -
        [IDENTITY_ISSUER] => 
        [CARD_TYPE] => Visa
        [IDENTITY_CNP] => 
        [COMPANY] => 
        [REGISTRATIONNUMBER] => 
        [FISCALCODE] => 
        [CBANKNAME] => 
        [CBANKACCOUNT] => 
        [ADDRESS1] => Birinci Adres satırı
        [ADDRESS2] => İkinci Adres satırı
        [CITY] => ISTANBUL
        [STATE] => Ayazağa
        [ZIPCODE] => 34000
        [COUNTRY] => Turkey
        [COUNTRY_CODE] => tr
        [PHONE] => 02129003711
        [FAX] => 02129003711
        [CUSTOMEREMAIL] => mail@mail.com
        [FIRSTNAME_D] => Ad
        [LASTNAME_D] => Soyad
        [COMPANY_D] => PayU Ödeme Kuruluşu A.Ş.
        [ADDRESS1_D] => Birinci Adres satırı
        [ADDRESS2_D] => İkinci Adres satırı
        [CITY_D] => ISTANBUL
        [STATE_D] => TR
        [ZIPCODE_D] => 34000
        [COUNTRY_D] => 
        [COUNTRY_D_CODE] => 
        [PHONE_D] => 02129003711
        [EMAIL_D] => mail@mail.com
        [IPADDRESS] => 127.0.0.1
        [IPCOUNTRY] => 
        [COMPLETE_DATE] => 0000-00-00 00:00:00
        [CURRENCY] => TRY
        [LANGUAGE] => tr
        [IPN_PID[]] => Array
            (
                [0] => 52580647
            )
    
        [IPN_PNAME[]] => Array
            (
                [0] => Test Ürünü
            )
    
        [IPN_PCODE[]] => Array
            (
                [0] => Test Kodu
            )
    
        [IPN_INFO[]] => Array
            (
                [0] => Test Açıklaması
            )
    
        [IPN_QTY[]] => Array
            (
                [0] => 1
            )
    
        [IPN_PRICE[]] => Array
            (
                [0] => 5.00
            )
    
        [IPN_VAT[]] => Array
            (
                [0] => 0.90
            )
    
        [IPN_VER[]] => Array
            (
                [0] => 
            )
    
        [IPN_DISCOUNT[]] => Array
            (
                [0] => 0.00
            )
    
        [IPN_PROMONAME[]] => Array
            (
                [0] => 
            )
    
        [IPN_PROMOCODE[]] => Array
            (
                [0] => 
            )
    
        [IPN_ORDER_COSTS[]] => Array
            (
                [0] => 0
            )
    
        [IPN_DELIVEREDCODES[]] => Array
            (
                [52580647] => 
            )
    
        [IPN_DOWNLOAD_LINK] => 
        [IPN_TOTAL[]] => Array
            (
                [0] => 5.90
            )
    
        [IPN_TOTALGENERAL] => 10.90
        [IPN_SHIPPING] => 5.00
        [IPN_COMMISSION] => 0.26
        [IPN_DATE] => 20171004224020
        [IPN_PAID_AMOUNT] => 10.90
        [IPN_INSTALLMENTS_PROGRAM] => Axess
        [IPN_INSTALLMENTS_NUMBER] => One time payment
        [IPN_INSTALLMENTS_PROFIT] => 0.00
        [AUTH_CODE] => 380978
        [BANK_MERCHANT_ID] => 100100000
        [BANK_RRN] => 727722200216
        [CARD_BIN] => 435508
        [CARD_HOLDER_NAME] => Ad Soyad
        [CARD_MASK] => 4355-xxxx-xxxx-4358
        [ISSUING_BANK] => AKBA
        [NUMBER_OF_INSTALLMENTS] => 0
        [TERMINAL_BANK] => AKBA
        [HASH] => d7e0e21f9a890a5bfcaa2cda50ece7bf
    
        [SALEDATE] => 2017-10-04 22:40:12
        [PAYMENTDATE] => 2017-10-04 22:40:20
        [REFNO] => 41666419
        [REFNOEXT] => 4159
        [ORDERNO] => 461
        [ORDERSTATUS] => PAYMENT_AUTHORIZED
        [PAYMETHOD] => CreditCard
        [PAYMETHOD_CODE] => CCVISAMC
        [FIRSTNAME] => Ad
        [LASTNAME] => Soyad
        [IDENTITY_NO] => -
        [IDENTITY_ISSUER] => 
        [CARD_TYPE] => Visa
        [IDENTITY_CNP] => 
        [COMPANY] => 
        [REGISTRATIONNUMBER] => 
        [FISCALCODE] => 
        [CBANKNAME] => 
        [CBANKACCOUNT] => 
        [ADDRESS1] => Birinci Adres satırı
        [ADDRESS2] => İkinci Adres satırı
        [CITY] => ISTANBUL
        [STATE] => Ayazağa
        [ZIPCODE] => 34000
        [COUNTRY] => Turkey
        [COUNTRY_CODE] => tr
        [PHONE] => 02129003711
        [FAX] => 02129003711
        [CUSTOMEREMAIL] => mail@mail.com
        [FIRSTNAME_D] => Ad
        [LASTNAME_D] => Soyad
        [COMPANY_D] => PayU Ödeme Kuruluşu A.Ş.
        [ADDRESS1_D] => Birinci Adres satırı
        [ADDRESS2_D] => İkinci Adres satırı
        [CITY_D] => ISTANBUL
        [STATE_D] => TR
        [ZIPCODE_D] => 34000
        [COUNTRY_D] => 
        [COUNTRY_D_CODE] => 
        [PHONE_D] => 02129003711
        [EMAIL_D] => mail@mail.com
        [IPADDRESS] => 127.0.0.1
        [IPCOUNTRY] => 
        [COMPLETE_DATE] => 0000-00-00 00:00:00
        [CURRENCY] => TRY
        [LANGUAGE] => tr
        [IPN_PID[]] => Array
            (
                [0] => 52580647
            )
    
        [IPN_PNAME[]] => Array
            (
                [0] => Test Ürünü
            )
    
        [IPN_PCODE[]] => Array
            (
                [0] => Test Kodu
            )
    
        [IPN_INFO[]] => Array
            (
                [0] => Test Açıklaması
            )
    
        [IPN_QTY[]] => Array
            (
                [0] => 1
            )
    
        [IPN_PRICE[]] => Array
            (
                [0] => 5.00
            )
    
        [IPN_VAT[]] => Array
            (
                [0] => 0.90
            )
    
        [IPN_VER[]] => Array
            (
                [0] => 
            )
    
        [IPN_DISCOUNT[]] => Array
            (
                [0] => 0.00
            )
    
        [IPN_PROMONAME[]] => Array
            (
                [0] => 
            )
    
        [IPN_PROMOCODE[]] => Array
            (
                [0] => 
            )
    
        [IPN_ORDER_COSTS[]] => Array
            (
                [0] => 0
            )
    
        [IPN_DELIVEREDCODES[]] => Array
            (
                [52580647] => 
            )
    
        [IPN_DOWNLOAD_LINK] => 
        [IPN_TOTAL[]] => Array
            (
                [0] => 5.90
            )
    
        [IPN_TOTALGENERAL] => 10.90
        [IPN_SHIPPING] => 5.00
        [IPN_COMMISSION] => 0.26
        [IPN_DATE] => 20171004224020
        [IPN_PAID_AMOUNT] => 10.90
        [IPN_INSTALLMENTS_PROGRAM] => Axess
        [IPN_INSTALLMENTS_NUMBER] => One time payment
        [IPN_INSTALLMENTS_PROFIT] => 0.00
        [AUTH_CODE] => 380978
        [BANK_MERCHANT_ID] => 100100000
        [BANK_RRN] => 727722200216
        [CARD_BIN] => 435508
        [CARD_HOLDER_NAME] => Ad Soyad
        [CARD_MASK] => 4355-xxxx-xxxx-4358
        [ISSUING_BANK] => AKBA
        [NUMBER_OF_INSTALLMENTS] => 0
        [TERMINAL_BANK] => AKBA
        [HASH] => d7e0e21f9a890a5bfcaa2cda50ece7bf
    

    PayU sisteminden herhangi bir başarılı sipariş gerçekleştiğinde, eğer IPN servisi kurulumu yapılmış ise, sistem sizin tarafınızdan belirlenen URL’ye siparişe ait detayları içeren bir bildirim gönderecektir. Bu bildirim HTTP POST metodu ile gönderilir

    Parametre Açıklama
    SALEDATE Satış işleminin başlangıçının iletildiği parametredir
    PAYMENTDATE Satış zamanının iletildiği parametredir
    REFNO PayU referans numarasının iletildiği parametredir.
    REFNOEXT Üye iş yeri sipariş numarasının iletildiği parametredir.
    ORDERNO PayU tarafındaki sipariş sıra numarasının iletildiği parametredir.
    ORDERSTATUS Sipariş durumunun iletildiği parametredir. PAYMENT_AUTHORIZED – Otorizasyon alındığını ileten durum mesajıdır. PAYMENT_RECEIVED – Wire ödeme alındığını ileten durum mesajıdır. COMPLETE – Tamamlanmış işlemlerde iletilen durum mesajıdır.
    PAYMETHOD Maksimum 40 karakter ile ödeme yönteminin iletildiği parametredir.
    PAYMETHOD_CODE Ödeme yöntemi kodunun iletildiği parametredir.
    FIRSTNAME Fatura Ad bilgisinin iletildiği parametredir (Maksimum 40 Karakter)
    LASTNAME Fatura Soyad bilgisinin iletildiği parametredir (Maksimum 40 Karakter)
    IDENTITY_NO Vatandaşlık / Vergi bilgisinin iletildiği parametredir.
    IDENTITY_ISSUER Vatandaşlık/Vergi belge sağlayıcısının tipinin iletildiği parametredir.
    CARD_TYPE Kart Tipinin iletildiği parametredir.
    IDENTITY_CNP Vatandaşlık/Vergi belgesinin tipinin iletildiği parametredir.
    COMPANY Fatura Firma bilgisinin iletildiği parametredir.
    REGISTRATIONNUMBER Vergi numarasının iletildiği parametredir.
    FISCALCODE Mali Kodun iletildiği parametredir
    CBANKNAME Banka isminin iletildiği parametredir.
    CBANKACCOUNT Banka hesap bilgisinin iletildiği parametredir.
    ADDRESS1 Fatura Adres Bilgisinin iletildiği parametredir.
    ADDRESS2 Adres Bilgisinin ikinci satırnının iletildiği parametredir.
    CITY İl bilgisinin iletildiği parametredir.
    STATE İlçe/Semt bilgisinin iletildiği parametredir.
    ZIPCODE Posta kodunun iletildiği parametredir.
    COUNTRY Ülke bilgisinin iletildiği parametredir.
    COUNTRY_CODE Ülke kodunun iletildiği parametredir.
    PHONE Telefon numarasının iletildiği parametredir.
    FAX Fax numarasının iletildiği parametredir.
    CUSTOMEREMAIL Mail bilgisinin iletildiği parametredir.
    FIRSTNAME_D Teslimat Ad bilgisinin iletildiği parametredir.
    LASTNAME_D Teslimat Soyad bilgisinin iletildiği parametredir.
    COMPANY_D Teslimat Firma bilgisinin iletildiği parametredir.
    ADDRESS1_D Teslimat Adres bilgisinin iletildiği parametredir.
    ADDRESS2_D Teslimat Adres bilgisinin ikinci satırının iletildiği parametredir.
    CITY_D Teslimat Şehir bilgisinin iletildiği parametredir.
    STATE_D Teslimat İlçe/Semt bilgisinin iletildiği parametredir.
    ZIPCODE_D Teslimat Posta kodu bilgisinin iletildiği parametredir.
    COUNTRY_D Teslimat Ülke bilgisinin iletildiği parametredir.
    COUNTRY_D_CODE Teslimat Ülke kodunun iletildiği parametredir.
    PHONE_D Teslimat Telefon numara bilgisinin iletildiği parametredir.
    EMAIL_D Teslimat Mail bilgisinin iletildiği parametredir.
    IPADDRESS Kullanıcı IP adresinin iletildiği parametredir.
    IPCOUNTRY Kullanıcı IP adresinin ülke bilgisinin iletildiği parametredir.
    COMPLETE_DATE Sipariş tamamlanma zamanının bilgisinin iletildiği parametredir.
    CURRENCY Para birimin iletildiği parametredir.
    LANGUAGE İşlem dilinin iletildiği parametredir.
    IPN_PID Ürün ID'sinin iletildiği parametredir.
    IPN_PNAME Ürün isminin iletildiği parametredir.
    IPN_PCODE Ürün kodunun iletildiği parametredir.
    IPN_INFO Ürün açıklamasının iletildiği parametredir.
    IPN_QTY Ürün adedinin iletildiği parametredir.
    IPN_PRICE Ürün adet fiyatının iletildiği parametredir.
    IPN_VAT Ürün vergi fiyatının iletildiği parametredir.
    IPN_VER Ürün versiyon bilgisinin iletildiği parametredir.
    IPN_DISCOUNT Toplam indirim tutarının iletildiği parametredir.
    IPN_PROMONAME Promosyon isminin iletildiği parametredir.
    IPN_PROMOCODE Promosyon kodunun iletildiği parametredir.
    IPN_ORDER_COSTS Sipariş masraflarının iletildiği parametredir.
    IPN_DELIVEREDCODES Teslimat kodlarının iletildiği parametredir.
    IPN_DOWNLOAD_LINK Sanal ürün indirme linkinin iletildiği parametredir.
    IPN_TOTAL Ara toplam ücretinin iletildiği parametredir.
    IPN_TOTALGENERAL Toplam ücretin iletildiği parametredir.
    IPN_SHIPPING Kargo ücretinin iletildiği parametredir.
    IPN_COMMISSION Komisyon ücretinin iletildiği parametredir.
    IPN_DATE IPN teslimat zaman bilgisinin iletildiği parametredir.
    IPN_PAID_AMOUNT Ödenmiş tutar bilgisinin iletildiği parametredir.
    IPN_INSTALLMENTS_PROGRAM Kart program bilgisinin iletildiği parametredir.
    IPN_INSTALLMENTS_NUMBER Taksit bilgisinin iletildiği parametredir.
    IPN_INSTALLMENTS_PROFIT Taksit komisyon ücret bilgisinin iletildiği parametredir.
    AUTH_CODE Otorizasyon kodunun iletildiği parametredir.
    BANK_MERCHANT_ID İşlemin gerçekleştiği sanal pos ID'sinin iletildiği parametredir.
    BANK_RRN İade işlem numarasının iletildiği parametredir.
    CARD_BIN İşlemde kullanılan kart BIN bilgisinin iletildiği parametredir.
    CARD_HOLDER_NAME Kart sahibinin Ad Soyad bilgisinin iletildiği parametredir.
    CARD_MASK Kartın maskeli halinin iletildiği parametredir.
    ISSUING_BANK Kart bankasının iletildiği parametredir.
    NUMBER_OF_INSTALLMENTS Taksit bilgisinin iletildiği parametredir.
    TERMINAL_BANK İşlemin gerçekleştiği banka posunun iletildiği parametredir.
    HASH PayU tarafından gönderilen salt IPN bildirimi için hesaplanan Hash bilgisidir.

    IPN Hash Hesaplama

    <EPAYMENT>DATE|HASH</EPAYMENT>

    Parametre Açıklama
    IPN_PID[0] IPN bildirimindeki ilk ürünün PID değeri.
    IPN_PNAME[0] IPN bildirimindeki ilk ürününün ismi.
    DATE Bu parametre kullanılarak bildirim zamanını (YmdGis) (Y-year-4 digits, m-month-2 digits, d-day-2 digits, G-hour-2 digits, i-minutes-2 digits, s-seconds-2 digits) formatında iletilmeli.
    HASH Bu parametre bildirim sırasında alınan IPN_PID[], IPN_PNAME[], IPN_DATE,DATE parametreleri ile dizi oluşturulup, başlarına UTF-8 Bayt olarak uzunluğu eklendikten sonra üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile elde edilen Hash değeridir.

    Örnek IPN bildirimindeki HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.
    IPN_PID[0] = 52580647
    IPN_PNAME[0] = Test Ürünü
    IPN_DATE = 20171004224020
    DATE= 20171004224020

    Bu değerlerin uzunluğu alınarak yukarıda gösterildiği sıra ile sıralanmalıdır.
    (len)IPN_PID(len)IPN_PNAME(len)IPN_DATE(len)DATE
    85258064713Test Ürünü14201710042240201420171004224017

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile haslenmelidir.

    Elde edilen değer: 79db0725ecdc57decf9982b3917b3ff4

    Bildirime Yanıt Verme

    Elde edilen değer ve DATE değeri EPAYMENT Taglerinin arasına <EPAYMENT>DATE|HASH</EPAYMENT> formatına eklenerek HTTP POST alındığı sırada yanıt dönülmelidir.
    <EPAYMENT>20171004224017|79db0725ecdc57decf9982b3917b3ff4</EPAYMENT>

    IOS Servisi(İşlem Sorgu Servisi)

    IOS Sorgusu İstek Parametreleri

    IOS Sorgu Örneği

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                IOSRequest request = new IOSRequest();
                request.MERCHANT = "OPU_TEST";
                request.REFNOEXT = refnoExt;
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/order/ios.php";
                options.SecretKey = "SECRET_KEY";
                var response = IOSRequest.Execute(request, options);
    
    var EndPointURL = 'https://secure.payu.com.tr/order/ios.php';
    SecretKey = 'SECRET_KEY';
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    
    var array = {
        'MERCHANT' : "OPU_TEST",
        'REFNOEXT' : "f2056638-0470-4158-af5d-9ec9c0c7ee67",
    };
    
    hashstring = '';
    
    for (var k in array) {
        hashstring += array[k].length + array[k] ;
    }
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['HASH'] = signature;
    
    var request = require("request");
    request.post(EndPointURL, {form:array}, function(error, response, body) {
        console.log(body);
    
    });
    
    <?php 
    function hmac ($key, $data){
       $b = 64; // byte length for md5
       if (strlen($key) > $b) {
           $key = pack("H*",md5($key));
       }
       $key  = str_pad($key, $b, chr(0x00));
       $ipad = str_pad('', $b, chr(0x36));
       $opad = str_pad('', $b, chr(0x5c));
       $k_ipad = $key ^ $ipad ;
       $k_opad = $key ^ $opad;
       return md5($k_opad  . pack("H*",md5($k_ipad . $data)));
    }
        $url="https://secure.payu.com.tr/order/ios.php";
        $merchant="OPU_TEST";
        $secret="SECRET_KEY";
        $refno="7304";
    
    
         $hash_string = strlen("$merchant").$merchant;
         $hash_string.= strlen("$refno").$refno;
    
    
      $hash=hmac($secret,$hash_string);
    
    
        $request_string  = "MERCHANT=$merchant&";
        $request_string .= "SECRET_KEY=$secret&"; 
        $request_string .= "REFNOEXT=$refno&";  
        $request_string .= "HASH=$hash"; 
    
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $request_string);
        $response = curl_exec($ch);
    
        echo "<f color=red>RESULT:".$response."</f>";
    
    
    ?>
    
    # Importing required libraries.
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    
    #Endpoint
    url = 'https://secure.payu.com.tr/order/ios.php'
    
    #Secret Key
    secret = 'SECRET_KEY'
    
    array = {
    'MERCHANT': 'OPU_TEST',
    'REFNOEXT': '7304',
    }
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in sorted(array.items()):
    
    # Adding the length of each field value at the beginning of field value
        hashstring += str(len(v)) + str(v)
    print(hashstring)
    
    # Calculating ORDER_HASH
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding ORDER_HASH @param to request array
    array['HASH'] = signature
    
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    

    IOS servisi ile, siparişlerin PayU tarafında ki durumlarını API aracılığı ile anlık olarak sorgulayabilirsiniz.

    Parametre Açıklama
    MERCHANT Üye işyeri entegrasyon ismi bilgisidir.
    REFNOEXT Satış sırasında ORDER_REF olarak belirtilen üye işyerine ait sipariş numarasının değeridir.
    HASH Sorgu sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.

    Örnek IOS Sorgu Cevabı

    <Order>
      <ORDER_DATE>2017-03-08 18:33:47</ORDER_DATE>
      <REFNO>28179507</REFNO>
      <REFNOEXT>7304</REFNOEXT>
      <ORDER_STATUS>COMPLETE</ORDER_STATUS>
      <PAYMETHOD>CreditCard</PAYMETHOD>
      <HASH>30670ee9e64a8b6658fd2c752f79be37</HASH>
    </Order>
    
    <Order>
      <ORDER_DATE>2017-03-08 18:33:47</ORDER_DATE>
      <REFNO>28179507</REFNO>
      <REFNOEXT>7304</REFNOEXT>
      <ORDER_STATUS>COMPLETE</ORDER_STATUS>
      <PAYMETHOD>CreditCard</PAYMETHOD>
      <HASH>30670ee9e64a8b6658fd2c752f79be37</HASH>
    </Order>
    
    <Order>
        <ORDER_DATE>2017-03-08 18:33:47</ORDER_DATE>
        <REFNO>28179507</REFNO>
        <REFNOEXT>7304</REFNOEXT>
        <ORDER_STATUS>COMPLETE</ORDER_STATUS>
        <PAYMETHOD>CreditCard</PAYMETHOD>
        <HASH>30670ee9e64a8b6658fd2c752f79be37</HASH>
    </Order>
    
    <Order>
        <ORDER_DATE>2017-03-08 18:33:47</ORDER_DATE>
        <REFNO>28179507</REFNO>
        <REFNOEXT>7304</REFNOEXT>
        <ORDER_STATUS>COMPLETE</ORDER_STATUS>
        <PAYMETHOD>CreditCard</PAYMETHOD>
        <HASH>30670ee9e64a8b6658fd2c752f79be37</HASH>
    </Order>
    

    IOS Sorgusu Yanıt Parametreleri

    PayU sistemi, yapılan isteğe XML formatında bir yanıt dönmektedir. İşyeri XML formatındaki bu datayı ayrıştırıp kendi sisteminde işlemelidir.

    Parametre Açıklama
    ORDER_DATE İşlem yapılan zaman bilgisinin iletildiği parametredir.
    REFNO İşlemin PayU referans numarasının iletildiği parametredir.
    REFNOEXT İşyerinin kendi belirlediği sipariş/işlem numarasınnın iletildiği parametredir.
    PAYMETHOD İşleminde kullanılan ödeme yönteminin iletildiği parametredir.
    ORDER_STATUS Siparişin anlık durumunun iletildiği parametredir. Dönen değerler dokümanın aşağısında detaylı olarak iletilmiştir.
    ORDER_HASH Sorgu sırasında elde edilen HASH değerinin iletildiği parametredir.

    Sorgu Sonuç Mesajları

    Mesaj Açıklama
    NOT_FOUND Sorgulanan Değerler ile işlem bulunamadığında karşılaşılan durum mesajıdır.
    CARD_NOTAUTHORIZED Kullanılan kart ile otorizasyon alınamadığında karşılaşılan durum mesajıdır.
    IN_PROGRESS İşlem incele aşamasında olduğunda karşılaşılan durum mesajıdır
    PAYMENT_AUTHORIZED İşlemin otorizasyonunun başarı ile yapıldığında karşılaşılan durum mesajıdır.
    COMPLETE İşlem başarı ile tamamlandığında karşılaşılan durum mesajıdır.
    FRAUD İşlem fraud olarak değerlendirildiğinde karşılaşılan durum mesajıdır.
    INVALID Müşteri tarafından geçersiz bilgi girildiği için onaylanmayan siparişlerde karşılaşılan durum mesajıdır.
    REVERSED İşlem iptal edildiğinde karşılaşılan durum mesajıdır.
    REFUND İşlem iade edildiğinde karşılaşılan durum mesajıdır.

    İşlem Sorgu Servisi Hash Hesaplama

    Örnek IOS bildirimindeki HASH hesaplama için kullanılacak değerler aşağıdaki gibidir. MERCHANT = OPU_TEST REFNOEXT = 7305

    Bu değerlerin uzunluğu alınarak yukarıdaki sıraya göre sıralanmalıdır. 8OPU_TEST47305

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile haslenmelidir.

    Elde edilen değer: 24d86799c6ba0083ceba1f40053cd499

    IRN Servisi(İptal/İade Servisi)

    Örnek IRN İsteği

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                IRNRequest request = new IRNRequest();
                request.MERCHANT = "OPU_TEST";
                request.ORDER_REF = orderRef;
                request.ORDER_AMOUNT = orderAmount;
                request.ORDER_CURRENCY = "TRY";
                request.IRN_DATE = DateTime.Now.ToString("yyyy-MM-d HH:mm:ss");
                request.AMOUNT = amount;
                var options = new Options();
                options.Url = "https://secure.payu.com.tr/order/irn.php";
                options.SecretKey = "SECRET_KEY";
                var response = IRNRequest.Execute(request, options);
    
    var EndPointURL = 'https://secure.payu.com.tr/order/irn.php';
    SecretKey = 'SECRET_KEY';
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    
    var array = {
        'MERCHANT' : "OPU_TEST",
        'ORDER_REF' : "41838239",
        'ORDER_AMOUNT' : "10.90",
        'ORDER_CURRENCY' : 'TRY',
        'IRN_DATE' : date,
        'AMOUNT': "10.90"
    
    };
    
    hashstring = '';
    
    for (var k in array) {
        hashstring += array[k].length + array[k] ;
    }
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['ORDER_HASH'] = signature;
    
    var request = require("request");
    request.post(EndPointURL, {form:array}, function(error, response, body) {
        console.log(body);
    
    });
    
    <?php
    $url = "https://secure.payu.com.tr/order/irn.php";
    $secretKey = "SECRET_KEY";
    
    $irn = array(
    'MERCHANT' => "OPU_TEST",
    'ORDER_REF' => "39537992",
    'ORDER_AMOUNT' => "129.33",
    'ORDER_CURRENCY' => 'TRY',
    'IRN_DATE' => date('Y-m-d H:i:s', time()),
    'AMOUNT' => "10",
    
    );
    
    $hashString = "";
    foreach ($irn as $key => $value) {
    $hashString .= strlen($value) . $value;
    }
    $hash = hash_hmac('md5', $hashString, $secretKey);
    $irn['ORDER_HASH'] = $hash;
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($irn));
    $response = curl_exec($ch);
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
    
    var_dump($response);
    ?>
    
    # Importing required libraries.
    from datetime import datetime
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    import collections
    #Endpoint
    url = 'https://secure.payu.com.tr/order/irn.php'
    
    #Secret Key
    secret = 'SECRET_KEY'
    
    array = collections.OrderedDict()
    array['MERCHANT'] = 'OPU_TEST'
    array['ORDER_REF'] = '41854324'
    array['ORDER_AMOUNT'] = '10.9'
    array['ORDER_CURRENCY'] = 'TRY'
    array['IRN_DATE'] = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    array['AMOUNT'] = '10'
    
    # Initializing the hashstring @param
    hashstring = ''
    #Order Directory
    # Getting Array @params
    for k, v in array.items():
    # Adding the UTF-8 byte length of each field value at the beginning of field value
        hashstring += str(len(v)) + str(v)
    print(hashstring)
    
    # Calculating signature
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding signature @param to request array
    array['ORDER_HASH'] = signature
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    
    

    Örnek Başarılı IRN Cevabı

    <EPAYMENT>41854324|1|OK|2017-10-05 14:12:35|e90c62397d26c6921c0cb6729d563ff4</EPAYMENT>
    

    IRN servisi, sipariş iade ve iptal işlemlerinizi, API aracılığı ile kendi sistem arayüzünüzden gerçekleştirmenizi mümkün kılar.

    İptal/İade Servisi İstek Parametreleri

    HTTP Post ile işlem istekleri https://secure.payu.com.tr/order/irn.php adresine gönderilmelidir.

    Parametre Açıklama
    MERCHANT İşyerini ID bilgisidir. Üye İşyeri Kontrol Paneli’nde, hesap ayarları sayfasında bulunmaktadır.
    ORDER_REF İptal / İade işlemi yapılacak siparişin PayU referans numarasının gönderildiği parametredir.
    ORDER_AMOUNT İşlemin toplam tutarının gönderildiği parametredir.
    ORDER_CURRENCY İşlemin gerçekleştiği para biriminin gönderildiği parametredir.
    IRN_DATE İade/İptal isteğinin gönderildiği zamanın gönderildiği parametredir. (Y-m-d H:i:s (Örn: 2017-01-26 14:30:56)
    ORDER_HASH İstek sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.
    AMOUNT İade yapılacak tutarın belirtildiği parametredir.

    İptal/İade Servisi Yanıt Parametreleri

    Parametre Açıklama
    ORDER_REF İptal / İade işlemi yapılacak siparişin PayU referans numarasıdır.
    RESPONSE_CODE İstek yanıtının döndüğü kod değeridir.
    RESPONSE_MSG İstek yanıt mesajıdır.
    IRN_DATE İptal/İade işlem isteğinin gönderildiği zamana ait bilgiyi ileten parametredir.
    ORDER_HASH İstek sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir. Yanıtta bulunan değer PayU tarafından hesaplanmaktadır.

    İptal/İade Servisi Hash Hesaplama

    Örnek IRN Servisinde HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.

    MERCHANT = OPU_TEST
    ORDER_REF = 39537992
    ORDER_AMOUNT = 129.33
    ORDER_CURRENCY = TRY
    IRN_DATE = 2017-10-05 10:55:26
    AMOUNT = 10

    Bu değerlerin uzunluğu alınarak, değerin başına eklendikten sonra yukarıdaki sıra ile sıralanmalıdır. 8OPU_TEST8395379926129.333TRY192017-10-05 10:55:26210

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile haslenmelidir.

    Elde edilen değer: 4c977d3b3f1e50ba14f1ac60e62e03f2

    İptal/İade Servisi Sonuç Mesajları

    Mesaj Açıklama
    OK İade/İptal Başarılı olarak yapıldığında karşılaşılan durum mesajıdır.
    ORDER_REF missing or format incorrect İşlemin referans numarası eksik,yanlış veya geçersiz bir biçimde gönderildiğinde karşılaşılan durum mesajıdır.
    ORDER_AMOUNT missing or format incorrect Toplam sipariş tutarı eksik,yanlış veya geçersiz bir biçimde gönderildiğinde karşılaşılan durum mesajıdır.
    ORDER_CURRENCY is missing or format incorrect Siparişte kullanılan para birimi eksik,yanlış veya geçersiz bir biçimde gönderildiğinde karşılaşılan durum mesajıdır.
    IRN_DATE is not in the correct format IRN_DATE parametresinde ki saat formatı hatalı kullanıldığında karşılaşılan durum mesajıdır.
    Error cancelling order Sipariş iptal edilirken hata ile karşılaşıldığında meydana gelen durum mesajıdır.
    Order already cancelled Sipariş daha önceden iptal edildiğide karşılaşılan durum mesajıdır.
    Unknown error Bilinmeyen bir hata oluştuğunda meydana gelen hata mesajıdır.
    Invalid ORDER_REF İade/İptal işlemi sırasında geçersiz referans numarası kullanılması durumunda karşılaşılan bir hatadır.
    Invalid ORDER_AMOUNT İade/İptal işlemi sırasında toplam sipariş tutarının yanlış kullanılması durumunda karşılaşılan durum mesajıdır.
    Invalid ORDER_CURRENCY İade/İptal işleminde para biriminin yanlış kullanılması durumunda karşılaşılan durum mesajıdır.
    AMOUNT missing or format incorrect İptal/İade işlemi sırasında iade edilecek tutarın belirtilmediği veya yanlış formatta belirtildiğinde karşılaşılan durum mesajıdır.
    Invalid AMOUNT İptal/İade işlemi sırasında iade edilecek tutarın geçersiz bir tutar belirlenmesi durumunda karşılaşılan durum mesajıdır.
    Amount mismatch İptal/İade işlemi sırasında iade edilecek tutarın işlem tutarından fazla olması durumunda karşılaşılan durum mesajıdır.

    BIN Servisi

    BIN Servisi ile Bank Identification Number (BIN) sorgulaması yaparak kartın aşağıda listelenen bilgilerine ulaşılmasını sağlayan servisimizdir.

    BIN Servisi v1

    Örnek BIN API v1 İsteği

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                BinV1Request request = new BinV1Request();
                request.BIN = binNumber;
                request.MERCHANT = "OPU_TEST";
                request.TIMESTAMP = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/api/card-info/v1/";
                options.SecretKey = "SECRET_KEY";
                model.Response= BinV1Request.Execute(request, options); 
    
    Merchant =  "OPU_TEST";
    SecretKey = "SECRET_KEY";
    Bin = "557829";
    
    var TimeStamp = Math.floor(Date.now() / 1000);
    
    HashString = Merchant + TimeStamp;
    var crypto = require('crypto')
        , data = HashString
        , secretkey = SecretKey
    
        crypto.createHmac('sha256', secretkey).update(data).digest('hex')
    
    
    EndPointURL = 'https://secure.payu.com.tr/api/card-info/v1/'+Bin+"?merchant="+Merchant+"&timestamp="+TimeStamp+"&signature="+signature
    
    var request = require('request');
    var headers = {
        'Content-Type':     'application/x-www-form-urlencoded'
    }
    
    var options = {
        url: EndPointURL,
        method: 'GET',
        headers: headers,
    }
    
    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            // Print out the response body
            var json_body = JSON.parse(body);
            console.log(json_body)
        }
    })
    
     <?php
     $URL ="https://secure.payu.com.tr/api/card-info/v1/";
     $MERCHANT =  "OPU_TEST";
     $SECRET = "SECRET_KEY";
     $TIMESTAMP = time();
     $BIN = "557829";
     $sig = hash_hmac('sha256', $MERCHANT.$TIMESTAMP,$SECRET);
     $urlReqest  = $URL.$BIN."?merchant=".$MERCHANT."&timestamp=".$TIMESTAMP."&signature=".$sig;
     echo "<a href='".$urlReqest."' target='_blank'>".$urlReqest."</a>";
     $xml = file_get_contents($urlReqest);
     var_dump(json_decode($xml,1));
     ?>
    
    
    # Importing required libraries.
    import hmac
    import hashlib
    from urllib.request import Request, urlopen
    import collections
    import time
    import csv
    
    #Secret Key
    secret = 'SECRET_KEY'
    binno = "557829"
    array = collections.OrderedDict()
    array['merchant'] = 'OPU_TEST'
    array['timestamp'] = str(time.time()).split('.')[0]
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in array.items():
        print(v)
    
    # Adding the UTF-8 byte length of each field value at the beginning of field value
        hashstring += str(v)
    print(hashstring)
    
    # Calculating signature
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.sha256).hexdigest()
    print(signature)
    
    # Adding Signature @param to dict
    array['signature'] = signature
    
    # Endpoint
    url = 'https://secure.payu.com.tr/api/card-info/v1/{0}?merchant={merchant}&timestamp={timestamp}&signature={signature}'.format(binno, **array)
    print(url)
    
    # Sending Request to Endpoint
    request = Request(url)
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    
    

    Birinci versiyonda karta ait aşağıdaki bilgiler elde edilebilir.

    İstek Parametreleri

    İşlem isteği https://secure.payu.com.tr/api/card-info/v1/ URL'ine "Merchant","Timestamp", "BIN" ve hesaplanan signature değeri URL POST metodu ile gönderilmelidir.

    Parametre Açıklama
    MERCHANT Üye iş yeri entegrasyon ismi.
    TIMESTAMP Milisaniye cinsinden UTC(TR saatine göre 3 saat geri.) zaman damgası.
    SIG İstek sırasında gönderilen değerlerin HMAC_SHA256 algoritması ile hash oluşturulan değerdir.
    BIN Kredi kartının ilk 6 hanesi.

    Yanıt Parametreleri

    Örnek Başarılı BIN Servisi v1 Yanıtı

    {"meta":{"status":{"code":0,"message":"success"},"response":{"httpCode":200,"httpMessage":"200 OK"}},"cardBinInfo":{"binType":"MASTERCARD","binIssuer":"AKBANK","cardType":"CREDIT","country":"Turkey","program":"Axess","installments":[1,"2","3","4","5","6","7","8","9","10","11","12"],"paymentMethod":"CCVISAMC"}}
    
    {"meta":{"status":{"code":0,"message":"success"},"response":{"httpCode":200,"httpMessage":"200 OK"}},"cardBinInfo":{"binType":"MASTERCARD","binIssuer":"AKBANK","cardType":"CREDIT","country":"Turkey","program":"Axess","installments":[1,"2","3","4","5","6","7","8","9","10","11","12"],"paymentMethod":"CCVISAMC"}}
    
    {"meta":{"status":{"code":0,"message":"success"},"response":{"httpCode":200,"httpMessage":"200 OK"}},"cardBinInfo":{"binType":"MASTERCARD","binIssuer":"AKBANK","cardType":"CREDIT","country":"Turkey","program":"Axess","installments":[1,"2","3","4","5","6","7","8","9","10","11","12"],"paymentMethod":"CCVISAMC"}}
    
    {"meta":{"status":{"code":0,"message":"success"},"response":{"httpCode":200,"httpMessage":"200 OK"}},"cardBinInfo":{"binType":"MASTERCARD","binIssuer":"AKBANK","cardType":"CREDIT","country":"Turkey","program":"Axess","installments":[1,"2","3","4","5","6","7","8","9","10","11","12"],"paymentMethod":"CCVISAMC"}}
    
    Parametre Açıklama
    binType Sorgulunan kartın Bin Tipinin iletildiği parametredir.(Mastercard,Visa,Troy v.b.)
    binIssuer Sorgulunan kartın Banka bilgisin iletildiği bankadır. (Akbank, ING Bank v.b.)
    cardType Sorgulanan kartın tipinin iletildiği parametredir.( Kredi kartı, Debit card )
    country Sorgulanan kartın ülkesinin iletildiği parametredir.
    program Sorgulanan kartın bağlılık programı bilgisinin iletildiği paramtredir.( Axes,Bonus v.b.)
    installments Sorgulanan karta üye işyeri tarafından uygulanabilecek taksit değerlerinin iletildiği parametredir.

    BIN Servisi v1 Hash Hesaplama

    Örnek BIN Servisinde HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.

    merchant = OPU_TEST
    timestamp = 1507270831

    Aşağıdaki örnek gibi sıralanmalıdır. OPU_TEST1507270831

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_SHA256 algoritması ile haslenmelidir.

    Elde edilen değer: 9e4754deb7d62ab8b29abc18aca2829dab076e85da8e5968a022b8525bbbd829

    BIN Servisi v2(BIN ve Puan Sorgusu)

    Örnek BIN API v2 İsteği

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                BinV2Request request = new BinV2Request();
                request.MERCHANT = "OPU_TEST";
                request.DATETIME = DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ss+00:00");
                request.EXTRAINFO = "true";
                request.CC_CVV = cvc;
                request.CC_OWNER = nameSurname;
                request.EXP_YEAR =year;
                request.EXP_MONTH = month;
                request.CC_NUMBER = cardNumber;
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/api/card-info/v2/";
                options.SecretKey = "SECRET_KEY";
                model.Response =BinV2Request.Execute(request, options);
    
    var EndPointUrl = 'https://secure.payu.com.tr/api/card-info/v2/';
    Merchant = 'OPU_TEST';
    SecretKey = 'SECRET_KEY';
    LoyaltyPoints = 'true';
    cardCVV = '000';
    cardHolder = 'Dummy Dummy';
    ExpYear = '2018';
    ExpMonth = '12';
    CardNumber = '4355084355084358';
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DDTHH:mm:ss+00:00').toString();
    
    var array =  {
        'merchant': Merchant,
        'extraInfo': LoyaltyPoints,
        'dateTime': date,
        'cc_cvv': cardCVV,
        'cc_owner': cardHolder,
        'exp_year': ExpYear,
        'exp_month': ExpMonth,
        'cc_number': CardNumber
    };
    
    hashstring = '';
    var sortKeys = require('sort-keys');
    sorted = sortKeys(array)
    for (var k in sorted) {
        hashstring += array[k].length + array[k] ;
    }
    
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('sha256', secretkey).update(data).digest('hex');
    array['signature'] = signature
    
    var request = require("request");
    request.post(EndPointUrl, {form:array}, function(error, response, body) {
        console.log(error);
        //console.log(response);
        console.log(body);
    
    });
    
    from datetime import datetime
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    
    # Endpoint
    url = 'https://secure.payu.com.tr/api/card-info/v2/'
    
    # PayU Merchant's Secret Key
    secret = 'SECRET_KEY'
    
    # Request @params Begin
    array = {
        # PayU Merchant's Merchant ID
        'merchant': 'OPU_TEST',
        'extraInfo': 'true',
        'dateTime': datetime.utcnow().strftime('%Y-%m-%dT%X+00:00'),
        'cc_cvv': '000',
        'cc_owner': 'Ad Soyad',
        'exp_year': '2018',
        'exp_month': '12',
        'cc_number': '4355084355084358',
    }
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in sorted(array.items()):
    
    # Adding the UTF-8 byte length of each field value at the beginning of field value
        hashstring += str(len(v.encode('UTF-8'))) + str(v)
    print(hashstring)
    
    # Calculating signature
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.sha256).hexdigest()
    
    # Adding signature @param to request array
    array['signature'] = signature
    
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    <?php
    
    $url= "https://secure.payu.com.tr/api/card-info/v2/";
    $secret="SECRET_KEY";
    $arParams = array(
        "extraInfo"        => "true",
        "dateTime"     => gmdate("c", time()),
        "merchant"      => 'OPU_TEST',
        "cc_cvv"        => "000",
        "cc_owner" => "Göktürk Enez",
        "exp_year" => "2020",
        "exp_month" => "12",
        "cc_number" => "4355084355084358",
    );
    ksort($arParams);
    $hashString = "";
    
    foreach ($arParams as $v) {
        $hashString .= strlen($v) . $v;
    }
    var_dump($arParams);
    echo $hashString;
    $arParams["signature"] = hash_hmac("SHA256", $hashString, $secret);
    echo "<pre>";
    echo $arParams["signature"];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arParams));
    $response = curl_exec($ch);
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
    if (empty($curlerr) && empty($curlerrcode)) {
        $parsedXML = @simplexml_load_string($response);
        echo "<pre>";
        print($response);
        echo "</pre>";
        if ($parsedXML !== FALSE) {
            echo "XML parsing is failed";
        }
    }
    else {
        echo "cURL error: " . $curlerr;
    }
    ?>
    

    Kart bilgilerinin tümü kullanılarak:

    İstek Parametreleri

    HTTP Post ile işlem istekleri https://secure.payu.com.tr/api/card-info/v2/ adresine gönderilmelidir.

    Parametre Açıklama
    merchant Üye iş yeri entegrasyon ismi.
    extraInfo true değer ile gönderilmesi durumunda puan sorgusu yapılmasını sağlayan parametredir.
    dateTime ISO_8601 formatında istek aman değeri (Örn: 2017-10-06T06:52:14+00:00 )
    cc_cvv Sorgusu yapılacak kartın güvenlik kodu
    cc_owner Sorgusu yapılacak kart sahibinin Ad Soyad bilgisi
    exp_year Sorgusu yapılacak kartın son kullanma yılı
    exp_month Sorgusu yapılacak kartın son kullanma ayı
    cc_number Sorgusu yapılacak kartın kart numarası
    signature İstek sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_SHA256 algoritması ile hash oluşturulan değerdir.

    Yanıt Parametreleri

    Örnek Başarılı BIN API v2 Yanıtı

    {"meta":{"code":200,"message":"success"},"cardInfo":{"cardMask":"4355084355084358","binNumber":"435508","cardBrand":"VISA","issuerBank":"AKBANK","issuerCountry":"Turkey","cardType":"CREDIT","cardProgram":"Axess","installmentOptions":[{"installmentNumber":1,"installmentAditionalCostPercent":0},{"installmentNumber":"2","installmentAditionalCostPercent":"0.00"},{"installmentNumber":"3","installmentAditionalCostPercent":"6.16"},{"installmentNumber":"4","installmentAditionalCostPercent":"7.07"},{"installmentNumber":"5","installmentAditionalCostPercent":"7.53"},{"installmentNumber":"6","installmentAditionalCostPercent":"8.24"},{"installmentNumber":"7","installmentAditionalCostPercent":"8.98"},{"installmentNumber":"8","installmentAditionalCostPercent":"9.25"},{"installmentNumber":"9","installmentAditionalCostPercent":"10.25"},{"installmentNumber":"10","installmentAditionalCostPercent":"13.64"},{"installmentNumber":"11","installmentAditionalCostPercent":"14.94"},{"installmentNumber":"12","installmentAditionalCostPercent":"16.28"}],"loyaltyPoints":[{"type":"","number":87945,"moneyValue":{"amount":879.45,"currency":"TRY"}}]}}
    
    
    {"meta":{"code":200,"message":"success"},"cardInfo":{"cardMask":"4355084355084358","binNumber":"435508","cardBrand":"VISA","issuerBank":"AKBANK","issuerCountry":"Turkey","cardType":"CREDIT","cardProgram":"Axess","installmentOptions":[{"installmentNumber":1,"installmentAditionalCostPercent":0},{"installmentNumber":"2","installmentAditionalCostPercent":"0.00"},{"installmentNumber":"3","installmentAditionalCostPercent":"6.16"},{"installmentNumber":"4","installmentAditionalCostPercent":"7.07"},{"installmentNumber":"5","installmentAditionalCostPercent":"7.53"},{"installmentNumber":"6","installmentAditionalCostPercent":"8.24"},{"installmentNumber":"7","installmentAditionalCostPercent":"8.98"},{"installmentNumber":"8","installmentAditionalCostPercent":"9.25"},{"installmentNumber":"9","installmentAditionalCostPercent":"10.25"},{"installmentNumber":"10","installmentAditionalCostPercent":"13.64"},{"installmentNumber":"11","installmentAditionalCostPercent":"14.94"},{"installmentNumber":"12","installmentAditionalCostPercent":"16.28"}],"loyaltyPoints":[{"type":"","number":87945,"moneyValue":{"amount":879.45,"currency":"TRY"}}]}}
    
    
    {"meta":{"code":200,"message":"success"},"cardInfo":{"cardMask":"4355084355084358","binNumber":"435508","cardBrand":"VISA","issuerBank":"AKBANK","issuerCountry":"Turkey","cardType":"CREDIT","cardProgram":"Axess","installmentOptions":[{"installmentNumber":1,"installmentAditionalCostPercent":0},{"installmentNumber":"2","installmentAditionalCostPercent":"0.00"},{"installmentNumber":"3","installmentAditionalCostPercent":"6.16"},{"installmentNumber":"4","installmentAditionalCostPercent":"7.07"},{"installmentNumber":"5","installmentAditionalCostPercent":"7.53"},{"installmentNumber":"6","installmentAditionalCostPercent":"8.24"},{"installmentNumber":"7","installmentAditionalCostPercent":"8.98"},{"installmentNumber":"8","installmentAditionalCostPercent":"9.25"},{"installmentNumber":"9","installmentAditionalCostPercent":"10.25"},{"installmentNumber":"10","installmentAditionalCostPercent":"13.64"},{"installmentNumber":"11","installmentAditionalCostPercent":"14.94"},{"installmentNumber":"12","installmentAditionalCostPercent":"16.28"}],"loyaltyPoints":[{"type":"","number":87945,"moneyValue":{"amount":879.45,"currency":"TRY"}}]}}
    
    
    Parametre Açıklama
    cardMask Sorgulunan kart numarası.
    binNumber Sorgulunan kartın BIN numarası.
    cardBrand Sorgulunan kartın Bin Tipinin iletildiği parametredir.(Mastercard,Visa,Troy v.b.)
    issuerBank Sorgulunan kartın Banka bilgisin iletildiği bankadır. (Akbank, ING Bank v.b.)
    cardType Sorgulanan kartın tipinin iletildiği parametredir.( Kredi kartı, Debit card )
    issuerCountry Sorgulanan kartın ülkesinin iletildiği parametredir.
    cardProgram Sorgulanan kartın bağlılık programı bilgisinin iletildiği paramtredir.( Axes,Bonus v.b.)
    installmentOptions Sorgulanan karta üye işyeri tarafından uygulanabilecek taksit değerlerinin iletildiği parametredir.
    installmentNumber Sorgulanan karta üye işyeri tarafından uygulanabilecek taksit sayısının iletildiği parametredir.
    installmentAditionalCostPercent Sorgulanan karta üye işyeri tarafından uygulanabilecek taksit sayısının komisyon bilgisinin iletildiği parametredir.
    loyaltyPoints Sorgulanan kartın puan değerinin iletildiği parametredir.
    type Kullanılabilir puan tipi
    number Kullanılabilir puan adedi
    moneyValue Kullanılabilir puanın para birimi cinsinden değeri
    amount Kullanılabilir puanın para birimi cinsinden tutarı
    currency Kullanılabilir puanın para birimi

    BIN Servisi v2 Hash Hesaplama

    Örnek BIN Servisi v2 HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.

    merchant = OPU_TEST
    extraInfo = true
    dateTime = 2017-10-06T07:09:38+00:00
    cc_cvv = 000
    cc_owner = Ad Soyad
    exp_month = 12
    exp_year = 2018
    cc_number = 4355 0843 5508 4358

    Parametreler Key'e göre sıralanıp ardından uzunluğu alınarak, değerin başına eklenmeli. 30001643550843550843588Ad Soyad252017-10-06T07:09:38+00:00212420184true8OPU_TEST

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_SHA256 algoritması ile haslenmelidir.

    Elde edilen değer: 33aa1398ab81a62af53de5481f2958316b051621230d548aad1600f0f0709d6e

    Örnek Puan Sorgusu

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

    
                PointCheckRequest request = new PointCheckRequest();
                request.MERCHANT = "OPU_TEST";
                request.CC_OWNER = owner;
                request.CC_NUMBER = cardNumber;
                request.EXP_MONTH = month;
                request.EXP_YEAR = year;
                request.CC_CVV = cvv;
                request.CURRENCY = "TRY";
                request.DATE = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/api/loyalty-points/check";
                options.SecretKey = "SECRET_KEY";
                var response = PointCheckRequest.Execute(request, options); 
    
    
    var EndPointUrl = 'https://secure.payu.com.tr/api/loyalty-points/check';
    
    SecretKey = 'SECRET_KEY';
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    ORDER_REF = Math.floor(Math.random() * Math.floor(1000));
    
    
    var array = {
        'MERCHANT': 'OPU_TEST',
        'CC_OWNER': 'John Doe',
        'CC_NUMBER': '4355084355084358',
        'EXP_MONTH': '12',
        'EXP_YEAR': '2018',
        'CC_CVV': '000',
        'CURRENCY':'TRY',
        'DATE': date
    
    };
    
    hashstring = '';
    var sortKeys = require('sort-keys');
    sorted = sortKeys(array);
    for (var k in sorted) {
        hashstring += array[k].length + array[k] ;
    }
    
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['HASH'] = signature;
    
    var request = require("request");
    var parseString = require('xml2js').parseString;
    request.post(EndPointUrl, {form:array}, function(error, response, body) {
        parseString(body, function (err, result) {
            var parsedXML = result['EPAYMENT'];
            if (parsedXML["STATUS"] == "SUCCESS" && parsedXML["RETURN_CODE"] == "3DS_ENROLLED") {
                console.log("You should make rediretction to",parsedXML["URL_3DS"],"for completing transaction")
                console.log(body)
            }
            else {
                console.log(body);
    
            }
        });
    
    
    });
    
    <?php
    
        $apiEndPoint = 'https://secure.payu.com.tr/api/loyalty-points/check';
    
     $data = array(
                    'CC_OWNER' => 'Ad Soyad',
                    'MERCHANT' => 'OPU_TEST',
                    'CC_NUMBER' => '4355084355084358',
                    'CC_OWNER' => 'John Doe',
                    'EXP_MONTH' => '12',
                    'EXP_YEAR' => '2018',
                    'CC_CVV' => '000',
                    'CURRENCY' => 'TRY',
                    'DATE' => gmdate('Y-m-d H:i:s'),
                );
    
    
        ksort($data);
    
        $hashString = '';
    
        foreach ($data as $currentData) {
                $hashString .= strlen(stripslashes($currentData));
                $hashString .= stripslashes($currentData);
        }
    print $hashString;
    $data['HASH'] = hash_hmac('MD5',$hashString,'SECRET_KEY');
    echo "<pre>";
    print_r($data);
    
    $handler = curl_init();
        curl_setopt($handler, CURLOPT_CONNECTTIMEOUT, 120);
        curl_setopt($handler, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($handler, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($handler, CURLOPT_URL, $apiEndPoint);
        curl_setopt($handler, CURLOPT_POST, true);
        curl_setopt($handler, CURLOPT_POSTFIELDS, $data);
        $result = curl_exec($handler);
        $resultInfo = curl_getinfo($handler);
        $error = curl_error($handler);
        curl_close($handler);
    
        if (200 == $resultInfo['http_code']) {
             $resultXML = (array)simplexml_load_string($result);
    
            if (isset($resultXML['STATUS']) && 'SUCCESS' == $resultXML['STATUS']) {
                echo 'Api call succeeded. There are ' . $resultXML['POINTS'] . ' points available worthing ' . $resultXML['AMOUNT'] . ' ' . $resultXML['CURRENCY'];
                var_dump($resultXML);
    
            } else {
                echo "<pre>";
                echo 'Api call failed. <br>Result: ';
                echo '<pre>' . htmlentities($result) . '</pre>';
                echo($data);
            }
        } else {
            echo 'Api call failed. <br>Error: ';
            echo '<pre>';
            print_r($error);
            echo '</pre>';
        }
    
    ?>
    
    
    # Importing required libraries.
    from datetime import datetime
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    
    # Endpoint
    url = "https://secure.payu.com.tr/api/loyalty-points/check"
    
    # PayU Merchant's Secret Key
    secret = 'SECRET_KEY'
    
    # Request @params Begin
    array = {
        # PayU Merchant's Merchant ID
        'MERCHANT': 'OPU_TEST',
        'CC_OWNER': 'John Doe',
        'CC_NUMBER': '4355084355084358',
        'EXP_MONTH': '12',
        'EXP_YEAR': '2018',
        'CC_CVV': '000',
        'CURRENCY':'TRY',
        'DATE': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    
    }
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in sorted(array.items()):
    
    # Adding the length of each field value at the beginning of field value
        hashstring += str(len(v)) + str(v)
    print(hashstring)
    
    # Calculating ORDER_HASH
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding ORDER_HASH @param to request array
    array['HASH'] = signature
    
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    

    Puan Sorgu Servisi ve Puan Kullanımı

    BIN API v2 ile puan sorgusu yapılabileceği gibi, işlem sırasında kullanılan kartın puan bilgisinin alınabileceği ek bir servis bulunmaktadır.

    Puan Sorgusu

    Puan sorgu servisinde https://secure.payu.com.tr/api/loyalty-points/check adresine gönderilmesi gereken parametreler aşağıdaki gibidir.

    Kart Bilgileri ile Sorgulama

    Parametre Açıklama
    MERCHANT Üye iş yeri entegrasyon ismi.
    CURRENCY Para birimi
    DATE UTC/GMT formatı ile ayarlanmalı ve Türkiye saatine göre 3 saat geri olacak şekilde gönderilmelidir. YYYY-MM-DD HH:MM:SS
    CC_CVV Sorgusu yapılacak kartın güvenlik kodu
    CC_OWNER Sorgusu yapılacak kart sahibinin Ad Soyad bilgisi
    EXP_YEAR Sorgusu yapılacak kartın son kullanma yılı
    EXP_MONTH Sorgusu yapılacak kartın son kullanma ayı
    CC_NUMBER Sorgusu yapılacak kartın kart numarası
    HASH İstek sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.

    Saklanmış Kart (Token) ile Sorgulama

    Parametre Açıklama
    MERCHANT Üye iş yeri entegrasyon ismi.
    CURRENCY Para birimi
    DATE Sorgunun siteme gönderildiği tarih bilgisi YYYY-MM-DD HH:MM:SS
    TOKEN Sorgusu yapılacak kartın token değeri
    HASH İstek sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_SHA256 algoritması ile hash oluşturulan değerdir.

    Puan Sorgusu Hash Hesaplama

    Örnek Puan Sorgusu servisinde HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.

    MERCHANT = OPU_TEST
    DATE = 2017-10-07 11:58:03
    CC_CVV = 000
    CC_NUMBER = 4355084355084358
    CC_OWNER = Ad Soyad
    CURRENCY = TRY
    EXP_MONTH = 12
    EXP_YEAR = 2018

    Key'e göre sıralayıp başlarına UTF-8 Bayt uzunlukları eklenmeli. 30001643550843550843588Ad Soyad3TRY192017-10-07 12:00:42212420188OPU_TEST

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile haslenmelidir.

    Elde edilen değer: d76b740e36ddc1948b256a40c8e656f7

    Puan Kullanım Sorgusu Yanıtı

    Başarılı Puan Sorgusu Yanıtı

    <EPAYMENT>
      <STATUS>SUCCESS</STATUS>
      <MESSAGE>SUCCESS</MESSAGE>
      <POINTS>75273</POINTS>
      <AMOUNT>752.73</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <BANK>AKBANK</BANK>
      <CARD_PROGRAM_NAME>Axess</CARD_PROGRAM_NAME>
      <DATE>2017-10-07 12:10:27</DATE>
      <HASH>ac3e9fc10649dbf04afc739bbc39c3bb</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <STATUS>SUCCESS</STATUS>
      <MESSAGE>SUCCESS</MESSAGE>
      <POINTS>75273</POINTS>
      <AMOUNT>752.73</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <BANK>AKBANK</BANK>
      <CARD_PROGRAM_NAME>Axess</CARD_PROGRAM_NAME>
      <DATE>2017-10-07 12:10:27</DATE>
      <HASH>ac3e9fc10649dbf04afc739bbc39c3bb</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <STATUS>SUCCESS</STATUS>
      <MESSAGE>SUCCESS</MESSAGE>
      <POINTS>75273</POINTS>
      <AMOUNT>752.73</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <BANK>AKBANK</BANK>
      <CARD_PROGRAM_NAME>Axess</CARD_PROGRAM_NAME>
      <DATE>2017-10-07 12:10:27</DATE>
      <HASH>ac3e9fc10649dbf04afc739bbc39c3bb</HASH>
    </EPAYMENT>
    
    <EPAYMENT>
      <STATUS>SUCCESS</STATUS>
      <MESSAGE>SUCCESS</MESSAGE>
      <POINTS>75273</POINTS>
      <AMOUNT>752.73</AMOUNT>
      <CURRENCY>TRY</CURRENCY>
      <BANK>AKBANK</BANK>
      <CARD_PROGRAM_NAME>Axess</CARD_PROGRAM_NAME>
      <DATE>2017-10-07 12:10:27</DATE>
      <HASH>ac3e9fc10649dbf04afc739bbc39c3bb</HASH>
    </EPAYMENT>
    
    Parametre Açıklama
    STATUS Sorgu sonuç statüsü.
    MESSAGE Sorgu sonuç statü mesajı.
    POINTS Kullanılabilir puan bilgisi.
    AMOUNT Kullanılabilir puanın para cinsinden değeri.
    CURRENCY Kullanılabilir puanın para birimi.
    BANK Kart banka bilgisi.
    CARD_PROGRAM_NAME Kartın bağlılık program bilgisi.
    DATE Sorgu yanıt tarih bilgisi.
    HASH Sorgu yanıtlarının hash değeri.

    Puan Kullanımı

    HTTP POST metodu ile gönderilen ALU requesti içerisine, USE_LOYALTY_POINTS =’YES’, parametresi ile ödemede puan kullanılacağı, LOYALTY_POINTS_AMOUNT parametresinin değeri ile de kullanılacak olan puan miktarını belirtilmesi yeterli olacaktır.

    Aşağıdaki taboda parçalı puan kullanımını destekleyen bankaların listesi paylaşılmıştır.

    Banka Tamamı Puanla Ödeme Parçalı Puanlı Ödeme 3D / Non-3D
    TEB Destekliyor Desteklemiyor 3D / Non-3D
    Akbank Destekliyor Destekliyor 3D / Non-3D
    Finansbank Destekliyor Desteklemiyor 3D / Non-3D
    İşbank Destekliyor Destekliyor 3D / Non-3D
    Halkbank Destekliyor Desteklemiyor 3D / Non-3D
    HSBC Destekliyor Desteklemiyor Non-3D
    YKB Destekliyor Destekliyor 3D
    Garanti Destekliyor Destekliyor 3D / Non-3D

    IDN Servisi(Konfirmasyon Servisi)

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                ConfirmationRequest request = new ConfirmationRequest();
                request.MERCHANT = "OPU_TEST";
                request.ORDER_REF = orderRef;
                request.ORDER_AMOUNT = orderAmount;
                request.ORDER_CURRENCY = "TRY";
                request.IDN_DATE = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");
                request.CHARGE_AMOUNT = chargeAmount;
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/order/idn.php";
                options.SecretKey = "SECRET_KEY";
                var response = ConfirmationRequest.Execute(request, options);
    
    var EndPointURL = 'https://secure.payu.com.tr/order/idn.php';
    SecretKey = 'SECRET_KEY';
    
    var moment = require('moment');
    date = moment.utc().format('YYYY-MM-DD HH:mm:ss').toString();
    
    var array = {
        'MERCHANT' : "OPU_TEST",
        'ORDER_REF' : "41838239",
        'ORDER_AMOUNT' : "10.90",
        'ORDER_CURRENCY' : 'TRY',
        'IDN_DATE' : date,
        'CHARGE_AMOUNT': "10.90"
    
    };
    
    hashstring = '';
    
    for (var k in array) {
        hashstring += array[k].length + array[k] ;
    }
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['ORDER_HASH'] = signature;
    
    var request = require("request");
    request.post(EndPointURL, {form:array}, function(error, response, body) {
        console.log(body);
    
    });
    
    # Importing required libraries.
    from datetime import datetime
    import hmac
    import hashlib
    from urllib.parse import urlencode
    from urllib.request import Request, urlopen
    import collections
    
    #Endpoint
    url = 'https://secure.payu.com.tr/order/idn.php'
    
    #Secret Key
    secret = 'SECRET_KEY'
    
    array = collections.OrderedDict()
    array['MERCHANT'] = 'OPU_TEST'
    array['ORDER_REF'] = '40865275'
    array['ORDER_AMOUNT'] = '118.00'
    array['ORDER_CURRENCY'] = 'TRY'
    array['IDN_DATE'] = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S')
    array['CHARGE_AMOUNT'] = '118.00'
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in array.items():
    
    # Adding the UTF-8 byte length of each field value at the beginning of field value
        hashstring += str(len(v.encode('UTF-8'))) + str(v)
    print(hashstring)
    
    # Calculating signature
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    
    # Adding signature @param to request array
    array['ORDER_HASH'] = signature
    print(signature)
    
    # Sending Request to Endpoint
    request = Request(url, urlencode(array).encode())
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    <?php
    $url = "https://secure.payu.com.tr/order/idn.php";
    $secretKey = "SECRET_KEY";
    $idn = array(
        'MERCHANT' => "OPU_TEST",
        'ORDER_REF' => "41838239",
        'ORDER_AMOUNT' => "10.90",
        'ORDER_CURRENCY' => 'TRY',
        'IDN_DATE' => date('Y-m-d H:i:s'),
        'CHARGE_AMOUNT' => "10.90",
    );
    $hashString = "";
    foreach ($idn as $key => $value) {
        $hashString .= strlen($value) . $value;
    }
    $hash = hash_hmac('md5', $hashString, $secretKey);
    $idn['ORDER_HASH'] = $hash;
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($idn));
    $response = curl_exec($ch);
    $curlerrcode = curl_errno($ch);
    $curlerr = curl_error($ch);
    
    var_dump($response);
    ?>
    

    Konfirmasyon servisi önotorizasyon modeli ile çalışan üye işyerlerinin, işlemlerini satışa çevirip, finansallaştırma yapmasını sağlamaktadır.

    İstek Parametreleri

    İstekler https://secure.payu.com.tr/order/idn.php adresine HTTP POST protokolü ile gönderilmelidir.

    Parametre Açıklama
    MERCHANT Üye işyeri ID bilgisi.
    ORDER_REF Satışa çevirilecek işlemin PayU referans numarası.
    ORDER_AMOUNT Satışa çevirilecek işlemin toplam tutarı.
    ORDER_CURRENCY Satışa çevirilecek işlemin para birimi.
    CHARGE_AMOUNT Satışa çevirilecek tutar.(Zorunlu değildir, gönderilmez ise toplam tutar satışa çevirilir.)
    IDN_DATE UTC/GMT formatı ile ayarlanmalı ve Türkiye saatine göre 3 saat geri olacak şekilde gönderilmelidir. YYYY-MM-DD HH:MM:SS"
    ORDER_HASH İstek sırasında gönderilen değerlerin Key'e göre sıralanıp, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.
    REF_URL İstek yanıtı belirtilen URL'e GET metodu ile dönmektedir.(Zorunlu değildir, gönderilmez ise anında response'u post sonrası anlık alabilirsiniz.)

    Yanıt Parametreleri

    Başarılı Konfirmasyon Servis Yanıt Örneği

    <EPAYMENT>41838239|1|Confirmed|2017-10-07 16:25:07|ddbbb3f3ef5f1cb56f9ee629dc42dfe0</EPAYMENT>
    
    <EPAYMENT>41838239|1|Confirmed|2017-10-07 16:25:07|ddbbb3f3ef5f1cb56f9ee629dc42dfe0</EPAYMENT>
    
    <EPAYMENT>41838239|1|Confirmed|2017-10-07 16:25:07|ddbbb3f3ef5f1cb56f9ee629dc42dfe0</EPAYMENT>
    
    <EPAYMENT>41838239|1|Confirmed|2017-10-07 16:25:07|ddbbb3f3ef5f1cb56f9ee629dc42dfe0</EPAYMENT>
    
    Parametre Açıklama
    ORDER_REF İstek gönderilen işlemin PayU referans numarası.
    RESPONSE_CODE İstek Sonuç Kodu.
    RESPONSE_MSG İstek Sonuç Mesajı.
    IDN_DATE Y-m-d H:i:s formatında yanıt zaman değeri.
    ORDER_HASH İstek sonucu yanıt değerlerinin hash bilgisi.

    Konfirmasyon Servisi Hash Hesaplama

    Örnek Konfirmasyon servisinde HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.

    MERCHANT = OPU_TEST
    ORDER_REF = 41838239
    ORDER_AMOUNT = 10.90
    ORDER_CURRENCY = TRY
    IDN_DATE = 2017-10-07 13:25:45
    CHARGE_AMOUNT = 10.90

    Bu değerlerin uzunluğu alınarak, değerin başına eklendikten sonra yukarıdaki sıra ile sıralanmalıdır. 8OPU_TEST841838239510.903TRY192017-10-07 13:25:45510.90

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile haslenmelidir.

    Elde edilen değer: 2129be1a8aa74c32e03d6bce4db685fa

    Yanıt Mesajları

    RESPONSE_CODE RESPONSE_MSG Açıklama
    1 Confirmed Başarılı istek sonucu.
    2 ORDER_REF missing or incorrect Hatalı veya eksik ORDER_REF gönderimi.
    3 ORDER_AMOUNT missing or incorrect Hatalı veya eksik ORDER_AMOUNT gönderimi.
    4 ORDER_CURRENCY is missing or incorrect Hatalı veya eksik ORDER_CURRENCY gönderimi.
    5 IDN_DATE is not in the correct format Hatalı veya eksik IDN_DATE gönderimi.
    6 Error confirming order İstek işlenirken bir hata oluştu, PayU destek ekibi ile iletişime geçiniz.
    7 Order already confirmed İşlem daha önce konfirme edilmiş.
    8 Unknown error İstek işlenirken bir hata oluştu, PayU destek ekibi ile iletişime geçiniz.
    9 Invalid ORDER_REF Hatalı veya eksik ORDER_REF gönderimi.
    10 Invalid ORDER_AMOUNT Hatalı veya eksik ORDER_AMOUNT gönderimi.
    11 Invalid ORDER_CURRENCY Hatalı veya eksik ORDER_CURRENCY gönderimi.
    12 Invalid CHARGE_AMOUNT Hatalı veya eksik CHARGE_AMOUNT gönderimi.
    13 Invalid signature ORDER_HASH hatalı hesaplanmış.

    Rapor Servisi

    Sipariş veya ürün bazlı 1 aylık rapor üreten servistir. Bu serviste istekler HTTP GET protokolü ile gönderilmekte ve yanıt JSON formatında dönmektedir.

    Sipariş Raporu Oluşturma

    İstek Parametreleri

    Örnek Sipariş Raporu İsteği
    Oluşan URL: https://secure.payu.com.tr/order/products?merchant=OPU_TEST&startDate=2017-09-20&endDate=2017-09-21&timeStamp=1507388342&signature=f00761bec025175d80294ad35eca1e46

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                ReportRequest request = new ReportRequest();
                request.merchant = "OPU_TEST";
                request.startDate = startDate;
                request.endDate = endDate;
                request.timeStamp = unixTimestamp.ToString();
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/reports/orders";
                options.SecretKey = "SECRET_KEY";
                model.Response = ReportRequest.Execute(request, options);
    
    SecretKey = 'SECRET_KEY';
    
    var moment = require('moment');
    date = moment.utc().format('X').toString();
    
    var array = {
        'merchant': "OPU_TEST",
        'startDate': "2017-09-20",
        'endDate': "2017-09-21",
        'timeStamp': date
    
    };
    
    hashstring = '';
    
    for (var k in array) {
        hashstring += array[k].length + array[k] ;
    }
    console.log(hashstring)
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['signature'] = signature;
    
    var EndPointURL = 'https://secure.payu.com.tr/reports/orders'+"?merchant="+array['merchant']+"&startDate="+array['startDate']+"&endDate="+array['endDate']+"&timeStamp="+array['timeStamp']+"&signature="+signature
    console.log(EndPointURL)
    
    var request = require("request");
    request.post(EndPointURL, {form:array}, function(error, response, body) {
        console.log(body);
    
    });
    
    # Importing required libraries.
    import hmac
    import hashlib
    from urllib.request import Request, urlopen
    import collections
    import time
    import csv
    
    #Secret Key
    secret = 'SECRET_KEY'
    
    array = collections.OrderedDict()
    array['merchant'] = 'OPU_TEST'
    array['startDate'] = '2017-08-17'
    array['endDate'] = '2017-09-15'
    array['timestamp'] = str(time.time()).split('.')[0]
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in array.items():
    print(v)
    
    # Adding the UTF-8 byte length of each field value at the beginning of field value
    hashstring += str(len(v.encode('UTF-8'))) + str(v)
    print(hashstring)
    
    # Calculating signature
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    print(signature)
    
    # Adding Signature @param to dict
    array['signature'] = signature
    
    # Endpoint
    url = 'https://secure.payu.com.tr/reports/orders?merchant={merchant}&startDate={startDate}&endDate={endDate}&timeStamp={timestamp}&signature={signature}'.format(**array)
    print(url)
    
    # Sending Request to Endpoint
    request = Request(url)
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    
    
    <?php
    $url ="https://secure.payu.com.tr/reports/orders";
    $secretKey = "SECRET_KEY";
    $array = array(
        'merchant' => "OPU_TEST",
        'startdate' => "2017-09-20",
        'enddate' => '2017-09-21',
        'timeStamp' => time(),
    );
    $hashString = "";
    foreach ($array as $key => $value) {
        $hashString .= strlen($value) . $value;
    }
    $hash = hash_hmac('md5', $hashString, $secretKey);
    $urlReqest  = $url."?merchant=".$array[merchant]."&startDate=".$array[startdate]."&endDate=".$array[enddate]."&timeStamp=".$array[timeStamp]."&signature=".$hash;
    echo "<a href='".$urlReqest."' target='_blank'>".$urlReqest."</a>";
    $xml = file_get_contents($urlReqest);
    var_dump(json_decode($xml,1));
    ?>
    

    İstekler https://secure.payu.com.tr/reports/orders adresine gönderilmelidir.

    Parametre Açıklama
    merchant Üye iş yeri entegrasyon ismi.
    startDate Rapor başlangıç tarihi.
    endDate Rapor bitiş tarihi.
    timeStamp Unix timestamp (UTC/GMT 0).
    signature İstek sırasında gönderilen değerlerin belirtildiği sırada, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.

    Eğer spesifik bir işlem için sipariş raporu elde etmek istiyorsanız istek parametreleriniz aşağıdaki gibi olmalıdır.

    Parametre Açıklama
    merchant Üye iş yeri entegrasyon ismi.
    externalRefNo Siparişin sizin tarafından belirlenmiş sipariş numarası.
    timeStamp Unix timestamp (UTC/GMT 0).
    signature İstek sırasında gönderilen değerlerin belirtildiği sırada, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.

    Yanıt Parametreleri

    Parametre Açıklama
    statusCode Rapor yanıt statü kodu
    statusDescription Rapor yanıt mesajı
    data Siparişin tüm detayları

    Örnek Başarılı Sipariş Raporu Yanıtı
    https://secure.payu.com.tr/reports/orders?merchant=OPU_TEST&startDate=2017-09-20&endDate=2017-09-21&timeStamp=1507388342&signature=f00761bec025175d80294ad35eca1e46

    {"statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Net Profit' =>  '9.7449' 
    'Delivered codes' =>  '' 
    'Number of installments' =>  '0' 
    'Token' =>  '' 
    'RRN' =>  '728017203119' 
    'Merchant Code' =>  'OPU_TEST'
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT' 
    'Issuer Bank Country' =>  'Turkey' 
    'Issuer Bank' =>  'AKBANK' 
    'Customer IP' =>  '127.0.0.1' 
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358' 
    'Interchange Fee' =>  '' 
    }
    ]}
    
    {"statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Net Profit' =>  '9.7449' 
    'Delivered codes' =>  '' 
    'Number of installments' =>  '0' 
    'Token' =>  '' 
    'RRN' =>  '728017203119' 
    'Merchant Code' =>  'OPU_TEST'
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT' 
    'Issuer Bank Country' =>  'Turkey' 
    'Issuer Bank' =>  'AKBANK' 
    'Customer IP' =>  '127.0.0.1' 
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358' 
    'Interchange Fee' =>  '' 
    }
    ]}
    
    {"statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Net Profit' =>  '9.7449' 
    'Delivered codes' =>  '' 
    'Number of installments' =>  '0' 
    'Token' =>  '' 
    'RRN' =>  '728017203119' 
    'Merchant Code' =>  'OPU_TEST'
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT' 
    'Issuer Bank Country' =>  'Turkey' 
    'Issuer Bank' =>  'AKBANK' 
    'Customer IP' =>  '127.0.0.1' 
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358' 
    'Interchange Fee' =>  '' 
    }
    ]}
    

    Ürün Raporu Oluşturma

    Örnek Ürün Raporu İsteği
    Oluşan URL: https://secure.payu.com.tr/reports/products?merchant=OPU_TEST&startDate=2017-09-20&endDate=2017-09-21&timeStamp=1507388342&signature=f00761bec025175d80294ad35eca1e46

    C Sharp Örnek Proje ve Kodları buradan indirebilirsiniz.

                ReportRequest request = new ReportRequest();
                request.merchant = "OPU_TEST";
                request.startDate = startDate;
                request.endDate = endDate;
                request.timeStamp = unixTimestamp.ToString();
                Options options = new Options();
                options.Url = "https://secure.payu.com.tr/reports/products";
                options.SecretKey = "SECRET_KEY";
                model.Response = ReportRequest.Execute(request, options);
    
    SecretKey = 'SECRET_KEY';
    
    var moment = require('moment');
    date = moment.utc().format('X').toString();
    
    var array = {
        'merchant': "OPU_TEST",
        'startDate': "2017-09-20",
        'endDate': "2017-09-21",
        'timeStamp': date
    
    };
    
    hashstring = '';
    
    for (var k in array) {
        hashstring += array[k].length + array[k] ;
    }
    console.log(hashstring)
    var hash = require('crypto')
        , data = hashstring
        , secretkey = SecretKey;
    
    signature = hash.createHmac('md5', secretkey).update(data).digest('hex');
    array['signature'] = signature;
    
    var EndPointURL = 'https://secure.payu.com.tr/reports/products'+"?merchant="+array['merchant']+"&startDate="+array['startDate']+"&endDate="+array['endDate']+"&timeStamp="+array['timeStamp']+"&signature="+signature
    console.log(EndPointURL)
    
    var request = require("request");
    request.post(EndPointURL, {form:array}, function(error, response, body) {
        console.log(body);
    
    });
    
    <?php
    $url ="https://secure.payu.com.tr/reports/products";
    $secretKey = "SECRET_KEY";
    $array = array(
        'merchant' => "OPU_TEST",
        'startdate' => "2017-10-06",
        'enddate' => '2017-10-07',
        'timeStamp' => time(),
    );
    $hashString = "";
    foreach ($array as $key => $value) {
        $hashString .= strlen($value) . $value;
    }
    $hash = hash_hmac('md5', $hashString, $secretKey);
    $urlReqest  = $url."?merchant=".$array[merchant]."&startDate=".$array[startdate]."&endDate=".$array[enddate]."&timeStamp=".$array[timeStamp]."&signature=".$hash;
    echo "<a href='".$urlReqest."' target='_blank'>".$urlReqest."</a>";
    $xml = file_get_contents($urlReqest);
    var_dump(json_decode($xml,1));
    ?>
    
    
    
    
    # Importing required libraries.
    import hmac
    import hashlib
    from urllib.request import Request, urlopen
    import collections
    import time
    import csv
    
    #Secret Key
    secret = 'SECRET_KEY'
    
    array = collections.OrderedDict()
    array['merchant'] = 'OPU_TEST'
    array['startDate'] = '2017-09-20'
    array['endDate'] = '2017-09-21'
    array['timestamp'] = str(time.time()).split('.')[0]
    
    # Initializing the hashstring @param
    hashstring = ''
    
    # Sorting Array @params
    for k, v in array.items():
        print(v)
    
    # Adding the UTF-8 byte length of each field value at the beginning of field value
        hashstring += str(len(v.encode('UTF-8'))) + str(v)
    print(hashstring)
    
    # Calculating signature
    signature = hmac.new(secret.encode('utf-8'), hashstring.encode('utf-8'), hashlib.md5).hexdigest()
    print(signature)
    
    # Adding Signature @param to dict
    array['signature'] = signature
    
    # Endpoint
    url = 'https://secure.payu.com.tr/reports/products?merchant={merchant}&startDate={startDate}&endDate={endDate}&timeStamp={timestamp}&signature={signature}'.format(**array)
    print(url)
    
    # Sending Request to Endpoint
    request = Request(url)
    response = urlopen(request).read().decode()
    
    # Printing result/response
    print(response)
    Oluşan URL: https://secure.payu.com.tr/reports/products?merchant=OPU_TEST&startDate=2017-09-20&endDate=2017-09-21&timeStamp=1507388342&signature=f00761bec025175d80294ad35eca1e46<br>
    

    İstekler https://secure.payu.com.tr/reports/products adresine gönderilmelidir.

    Parametre Açıklama
    merchant Üye iş yeri entegrasyon ismi.
    startDate Rapor başlangıç tarihi.
    endDate Rapor bitiş tarihi.
    timeStamp Unix timestamp (UTC/GMT 0).
    signature İstek sırasında gönderilen değerlerin belirtildiği sırada, başlarına uzunlukları eklendikten sonra HMAC_MD5 algoritması ile hash oluşturulan değerdir.

    Yanıt Parametreleri

    Parametre Açıklama
    statusCode Rapor yanıt statü kodu
    statusDescription Rapor yanıt mesajı
    data Siparişin tüm detayları

    Örnek Başarılı Ürün Raporu Yanıtı https://secure.payu.com.tr/reports/products?merchant=OPU_TEST&startDate=2017-09-20&endDate=2017-09-21&timeStamp=1507388342&signature=f00761bec025175d80294ad35eca1e46

    {
    "statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Product ID' =>  '52796907' 
    'Product Code' =>  'Test Kodu' 
    'Product' =>  'Test Ürünü' 
    'Extra info' =>  'Test Açıklaması' 
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'Card no' =>  '435508xx-xxxx-4358' 
    'Card type' =>  'Visa' 
    'Transfer date' =>  'Not Available' 
    'Initial amount ' =>  '10.9' 
    'Installment profit  ' =>  '0' 
    'Paid amount' =>  '10.9' 
    'Loyalty' =>  '' 
    'Total fee' =>  '0.2551' 
    'Service fee ' =>  '0' 
    'Loyalty fee ' =>  '0' 
    'Commission fee ' =>  '0.2551' 
    'Number of installments' =>  'one time payment' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Licence' => 
    'Net Profit' =>  '9.7449'
    'Payment Currency' => 
    'Exchange Rate' => 
    'Final Exchange Rate' => 
    'Delivered codes' =>  ''
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT'
    'Issuer Bank Country' =>  'Turkey'
    'Issuer Bank' =>  'AKBANK'
    'Customer IP' =>  '127.0.0.1'
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358'
    }
    ]}
    
    {"statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Product ID' =>  '52796907' 
    'Product Code' =>  'Test Kodu' 
    'Product' =>  'Test Ürünü' 
    'Extra info' =>  'Test Açıklaması' 
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'Card no' =>  '435508xx-xxxx-4358' 
    'Card type' =>  'Visa' 
    'Transfer date' =>  'Not Available' 
    'Initial amount ' =>  '10.9' 
    'Installment profit  ' =>  '0' 
    'Paid amount' =>  '10.9' 
    'Loyalty' =>  '' 
    'Total fee' =>  '0.2551' 
    'Service fee ' =>  '0' 
    'Loyalty fee ' =>  '0' 
    'Commission fee ' =>  '0.2551' 
    'Number of installments' =>  'one time payment' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Licence' => 
    'Net Profit' =>  '9.7449'
    'Payment Currency' => 
    'Exchange Rate' => 
    'Final Exchange Rate' => 
    'Delivered codes' =>  ''
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT'
    'Issuer Bank Country' =>  'Turkey'
    'Issuer Bank' =>  'AKBANK'
    'Customer IP' =>  '127.0.0.1'
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358'
    }
    ]}
    
    {"statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Product ID' =>  '52796907' 
    'Product Code' =>  'Test Kodu' 
    'Product' =>  'Test Ürünü' 
    'Extra info' =>  'Test Açıklaması' 
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'Card no' =>  '435508xx-xxxx-4358' 
    'Card type' =>  'Visa' 
    'Transfer date' =>  'Not Available' 
    'Initial amount ' =>  '10.9' 
    'Installment profit  ' =>  '0' 
    'Paid amount' =>  '10.9' 
    'Loyalty' =>  '' 
    'Total fee' =>  '0.2551' 
    'Service fee ' =>  '0' 
    'Loyalty fee ' =>  '0' 
    'Commission fee ' =>  '0.2551' 
    'Number of installments' =>  'one time payment' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Licence' => 
    'Net Profit' =>  '9.7449'
    'Payment Currency' => 
    'Exchange Rate' => 
    'Final Exchange Rate' => 
    'Delivered codes' =>  ''
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT'
    'Issuer Bank Country' =>  'Turkey'
    'Issuer Bank' =>  'AKBANK'
    'Customer IP' =>  '127.0.0.1'
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358'
    }
    ]}
    
    {"statusCode":"0",
    "statusDescription":"Success",
    "data":[{
    'Product ID' =>  '52796907' 
    'Product Code' =>  'Test Kodu' 
    'Product' =>  'Test Ürünü' 
    'Extra info' =>  'Test Açıklaması' 
    'Order No' =>  '462' 
    'Order status' =>  'AUTHRECEIVED' 
    'Reference No' =>  '41699900' 
    'External Reference No' =>  '229' 
    'Pay Method' =>  'CreditCard' 
    'Order Date' =>  '2017-10-07 17:41:05' 
    'Order Finish Date' =>  '2017-10-07 17:41:10' 
    'Currency' =>  'TRY' 
    'Quantity' =>  '1' 
    'Unit price (without VAT' =>  '5' 
    'Total Price' =>  '5.00' 
    'Total VAT' =>  '0.90' 
    'Unit Discount' =>  '0.00' 
    'Promotion' =>  '' 
    'Promotion Coupon Code' =>  '' 
    'General Discount' =>  '0' 
    'PAYU Discount' =>  '0' 
    'Shipping' =>  '5' 
    'Card no' =>  '435508xx-xxxx-4358' 
    'Card type' =>  'Visa' 
    'Transfer date' =>  'Not Available' 
    'Initial amount ' =>  '10.9' 
    'Installment profit  ' =>  '0' 
    'Paid amount' =>  '10.9' 
    'Loyalty' =>  '' 
    'Total fee' =>  '0.2551' 
    'Service fee ' =>  '0' 
    'Loyalty fee ' =>  '0' 
    'Commission fee ' =>  '0.2551' 
    'Number of installments' =>  'one time payment' 
    'General Total' =>  '10.9' 
    'Processing fee' =>  '0.2551' 
    'Company' =>  'PayU Ödeme Kuruluşu A.Ş.' 
    'Client' =>  'Ad Soyad' 
    'Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Phone' =>  '02129003711' 
    'Email' =>  'mail@mail.com' 
    'City' =>  'ISTANBUL' 
    'Zip Code' =>  '34000' 
    'Country' =>  'Turkey' 
    'State' =>  'Ayazağa' 
    'CNP' =>  '' 
    'Fiscal Code' =>  '' 
    'Registration Number' =>  '' 
    'Bank' =>  '' 
    'Bank Account' =>  '' 
    'Delivery Client' =>  'Ad Soyad' 
    'Delivery Address' =>  'Birinci Adres satırı İkinci Adres satırı' 
    'Delivery Phone' =>  '02129003711' 
    'Delivery Email' =>  'mail@mail.com' 
    'Delivery City' =>  'ISTANBUL' 
    'Delivery Zip Code' =>  '34000' 
    'Delivery Country' => 
    'Delivery state' =>  'TR' 
    'Authorization' =>  'Approved.' 
    'Approval status' =>  'In progress' 
    'Licence' => 
    'Net Profit' =>  '9.7449'
    'Payment Currency' => 
    'Exchange Rate' => 
    'Final Exchange Rate' => 
    'Delivered codes' =>  ''
    'Order Confirmation Date' => 
    'PosCode' =>  'DEFAULT'
    'Issuer Bank Country' =>  'Turkey'
    'Issuer Bank' =>  'AKBANK'
    'Customer IP' =>  '127.0.0.1'
    'Credit Card Masked Number' =>  '4355-xxxx-xxxx-4358'
    }
    ]}
    

    Rapor Servisi Hash Hesaplama

    Örnek Rapor Servisinde HASH hesaplama için kullanılacak değerler aşağıdaki gibidir.

    merchant = OPU_TEST
    startDate = 2017-09-20
    endDate = 2017-09-21
    timestamp = 1507388342

    Bu değerlerin uzunluğu alınarak, değerin başına eklendikten sonra yukarıdaki sıra ile sıralanmalıdır. 8OPU_TEST102017-09-20102017-09-21101507388342

    Değerler üye işyeri kodlama anahtarınız kullanılarak HMAC_MD5 algoritması ile haslenmelidir.

    Elde edilen değer: f00761bec025175d80294ad35eca1e46

    Test Bilgileri

    Üye İşyeri Kontrol Paneli Giriş Bilgileri

    Üye İşyeri Kontrol Paneli’ne girişlerde IP kısıtı uygulanmaktadır. Test hesabının üye işyeri paneline giriş yapabilmek için IP adreslerinizi help@payu.com.tr adresimizden bize iletmeniz gerekmektedir.

    API Kullanıcı Bilgileri

    3D olmayan işlemler için;

    3D işlemler için;

    Test Kartları

    Akbank Test Kredi Kartı

    Akbank Debit Kart

    Yabancı Test Kartı

    İşlem Mesajları

    Aşağıdaki listeden entegrasyon sırasında ve işlem sırasında alınma ihtimali olan tüm hata kodları ve açıklamalarına ulaşılabilir. Karşılaşılan hata kodunu bulamıyor ya da başka bir konuda destek ihtiyacınız varsa, bizlere help@payu.com.tr adresinden e-posta ile ulaşabilirsiniz.

    RETURN_CODE RETURN_MESSAGE Açıklama
    AUTHORIZED Authorized. Önotorizasyon başarılı.
    ALREADY_AUTHORIZED ALREADY_AUTHORIZED Bu işlemde otorizasyon yapılmış. Aynı ORDER_REF ve aynı Hash ile işlem gönderildi. Mükerrer işlem.
    HASH_MISTMATCH HASH_MISTMATCH Hash uyuşmazlığı. Bu hata entegrasyonla ilgili ciddi bir hatadır. Yazılımcınızla görüşmeniz gerekmektedir.
    INVALID SIGNATURE Invalid Signature Hatalı hash hesaplaması, işlem gönderdiğiniz yapının encoding ayarlarının UTF-8 without bom olarak ayarlı olduğundan ve hash değerlerini doğru hesapladığınızdan emin olunuz.
    INVALID_ACCOUNT INVALID_ACCOUNT Merchant ID (İşyeri entegrasyon ismi) hatalı ya da eksik gönderilmektedir. Kontol ediniz.
    INVALID_CC_TOKEN INVALID_CC_TOKEN Geçersiz token bilgisi. Token numarası doğru değil ya da bu token aktif değil.
    INVALID_CURRENCY INVALID_CURRENCY Geçersiz para birimi ya da işlem yapmak istediğiniz para birimi hesabınız için aktif edilmemiş.
    INVALID_CUSTOMER_INFO Invalid field [PARAMETRE İSMİ] RETURN_MESSAGE parametresi içerisinde detayı belirtilen zorunlu parametrenin hatalı gönderildiği veya gönderilmediği durumlarda alınmaktadır.
    INVALID_PAYMENT_INFO Invalid card number entered.([Yanlış değer]) Geçersiz kart bilgileri. Girmiş olduğunuz kart numarasını kontrol ediniz.
    INVALID_PAYMENT_INFO Invalid expiration date entered or the card has expired.([Yanlış değer]) Geçersiz son kullanma tarihi girilmiş. Girmiş olduğunuz kartın Son kullanma tarihi bilgilerini kontrol ediniz.
    INVALID_PAYMENT_INFO Invalid CVV2/CVC2 code.([Yanlış değer]) Geçersiz CVV girilmiş. Girilmiş olan kart CVV değerini kontrol ediniz.
    INVALID_PAYMENT_METHOD_CODE INVALID_PAYMENT_METHOD_CODE Geçersiz ödeme metodu. "PAYMETHOD" parametresini kontrol ediniz.
    ORDER_TIMEOUT ORDER_TIMEOUT Sipariş zaman aşımına uğradı. Tekrar deneyiniz.
    REQUEST_EXPIRED REQUEST_EXPIRED REQUEST_EXPIRED 1) ORDER_DATE parametresinde belirtilen zaman ile ödeme zamanı arasında 10 dakika ve ya daha fazla zaman geçmesi durumunda alınan hatadır. 2) ORDER_DATE parametresinin yanlış kullanımı durumunda alınan hatadır. ORDER_DATE parametresi UTC/GMT formatı ile Türkiye saatine göre 3 saati geri olacak şekilde gönderilmelidir.
    WRONG_VERSION WRONG_VERSION Geçersiz ALU versiyonuna işlem göndermektesiniz, işlem gönderdiğiniz Endpointini kontrol ediniz.
    AUTHORIZED Authorized. Önotorizasyon başarılı.
    -9999 Banned Operation Göndermiş olduğunuz alanlardan biri ya da birkaçı PayU sistemlerinde yasaklanmıştır. help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    INVALID_RESPONSE Invalid response from gateway Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    1 Call acquirer support call number Kart hamili işlem detayları ile birlikte bankasıyla iletişime geçerek hata açıklaması ve çözüm talep etmelidir.
    10101 NOT_CREDITCARD Kredi kartı olmayan bir kart ile taksitli ödeme alınmaya çalışıldığı sırada alınan hatadır.
    10102 UNSUPPORTED_LOYALTY_PROGRAM Desteklenmeyen bir kart programı ile taksitli ödeme alınmaya çalışıldığı sırada alınan hatadır.
    NEW_ERROR Message flow error Mesaj akış hatasını(message flow error) bir ödeme hatası değlidir, bu hata bankadan dönen hata kodu ile PayU sistemlerinde ki hata kodunun eşleşmemesi durumunda üretilen bir mesajdır. Örn: RED cevabı beklenirken REDD01 gibi bir cevap gelmesinden dolayı bu hata mesajıgetirmekte ve bu durumlarda işlemin aldığı asıl hata mesajı ve kodu ve parametrelerinde gönderilmektedir. Bu parametreler varsayılan olarak pasiftir, help@payu.com.tr üzerinden ekiplerimiz ile iletişime geçerek aktivasyonunu sağlayabilirsiniz.
    GW_ERROR_GENERIC No or Invalid response received Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    GW_ERROR_GENERIC_3D An error occurred during 3DS processing 3D doğrulaması yapılamadı, 3D şifresinin doğru girildiğinden, kartın 3D işlem yapma yetkisi olduğundan emin olunuz, kart hamili bankası ile iletişime geçerek detaylı bilgi alabilir ve çözüm sağlayabilir.
    GWERROR_-2 An error occurred during processing. Please retry the operation Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    GWERROR_-3 No or Invalid response received Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    GWERROR_05 Authorization declined Genel Red, kart hamili bankası ile iletişime geçerek red sebebini öğrenebilir ve çözüm sağlayabilir.
    GWERROR_-8 AInvalid card number Kart numarası hatalı girilmiş veya geçersiz kart.
    GWERROR_-9 Error in card expiration date field Kartın son kullanma tarihi hatalı girilmiş.
    GWERROR_13 Invalid amount Bankanın işlem yapma hacminden yüksek işlem gönderimi veya geçersiz taksit tutarı gönderimi.
    GWERROR_14 No such card İşleme kapalı veya geçersiz kart.
    GWERROR_15 No such card/issuer İşleme kapalı veya geçersiz kart.
    GWERROR_-18 Error in CVC2 or CVC2 Description fields Hatalı CVV.
    GWERROR_19 Re-enter transaction Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    GWERROR_34 Credit card number failed the fraud Fraud şüphesi , işlem kart bankası tarafından fraud olarak değerlendirilmiştir.Detaylı bilgi için kart hamili bankası ile iletişime geçmelidir.
    GWERROR_41 Lost card Kayıp kart, işlem kart bankası tarafından çalıntı olarak değerlendirilmiştir.Detaylı bilgi için kart hamili bankası ile iletişime geçmelidir.
    GWERROR_43 Stolen card, pick up Çalıntı kart, işlem kart bankası tarafından çalıntı olarak değerlendirilmiştir.Detaylı bilgi için kart hamili bankası ile iletişime geçmelidir.
    GWERROR_51 Insufficient funds Limit yetersiz.
    GWERROR_54 Expired card İşleme kapalı, geçersiz kart.
    GWERROR_57 Transaction not permitted on card Kart sahibine açık olmayan işlem, kart hamili bankası ile görüşerek kart yetkilerini kontrol ettirmelidir.
    GWERROR_58 Not permitted to merchant Üye işyerinin bu işlemi yapmaya yetkisi yok.
    GWERROR_61 Exceeds amount limit İşlem yapma limitini aşıyor.
    GWERROR_62 Restricted card Kart yetkileri bu işlemi yapmaya uygun değil, kart hamili bankası ile görüşerek kart yetkilerini kontrol ettirmelidir.
    GWERROR_65 Exceeds frequency limit Kartın günlük işlem limiti aşılmış.
    GWERROR_75 PIN tries exceeded Kartın günlük işlem limiti aşılmış veya kart bloke edilmiş.
    GWERROR_82 Time-out at issuer İşlem banka tarafında zaman aşımına uğramış, banka tarafında yoğunluk veya anlık teknik sorun yaşanıyor olabilir, bir süre sonra tekrar deneyiniz.
    GWERROR_84 Invalid cvv Hatalı CVV.
    GWERROR_91 A technical problem occurred. Issuer cannot process Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    GWERROR_93 Violation of Law BDDK veya banka tarafınca yasal olarak işlem yapma yetkisi olmayan kartlarda alınan hatadır.Kart hamilleri bankaları ile görüşerek hata çözümü sağlayabilir.
    GWERROR_96 System malfunction Banka tarafında yaşanılan anlık sorun veya anlık yoğunluktan dolayı işlem hata almıştır, bir süre sonra tekrar deneyiniz, help@payu.com.tr'den bizimle iletişime geçerek detaylı bilgi alabilirsiniz.
    GWERROR_101 Invalid installments number Sanal posun işlemde gönderilen taksit sayısını işlemek için yetkisi yok, pos bankanız ile iletişime geçerek taksit yetkilerinizi kontrol ediniz.
    GWERROR_105 3DS authentication error 3D doğrulaması yapılamadı, 3D şifresinin doğru girildiğinden, kartın 3D işlem yapma yetkisi olduğundan emin olunuz, kart hamili bankası ile iletişime geçerek detaylı bilgi alabilir ve çözüm sağlayabilir.
    GWERROR_0876 One of card no, expire date or CVC is wrong or credit card has exceeded daily limit of maximum e-commerce transactions. Kart bilgileri hatalı tuşlanmış veya böyle bir kart yok veya kartın günlük işlem limiti dolmuş.
    GWERROR_2204 No permission to process the card installment. Kartın veya üye işyerinin taksitli işlem yapma yetkisi yok.
    GWERROR_2304 There is an ongoing process your order. Aynı hash veya sipariş numarası ile devam eden işlem var, mükerrer işlem.

    MD Status Kodları ve Açıklamaları

    MDSTATUS Açıklama
    MDSTATUS = 0 3-D Secure imzası geçersiz, onaylanmamış.
    MDSTATUS = 1 3-D ile Onaylanmış.
    MDSTATUS = 2 Kart sahibi veya bankası sisteme kayıtlı değil.
    MDSTATUS = 3 Kartın bankası sisteme kayıtlı değil.
    MDSTATUS = 4 Doğrulama denemesi, kart sahibi sisteme daha sonra kayıt olmayı seçmiş.
    MDSTATUS = 5 Doğrulama yapılamıyor, sistem arızası.
    MDSTATUS = 6 3-D Secure hatası.
    MDSTATUS = 7 Sistem hatası.
    MDSTATUS = 8 Kart geçersiz, bilinmeyen kart.
    MDSTATUS = 9 Üye İşyeri/POS 3D-Secure sistemine kayıtlı değil