İade

iyzico üzerinden tahsil edilen bir ödeme, 365 gün 7/24 iade (refund) edilebilir. İade işlemi mutlaka ekstreye yansır ve iade edilen ödeme taksitli bir işlemse, iadenin karta yansıması bankadan bankaya değişmekle beraber birkaç günü bulabilir. İade işlemi kırılımdan çalışır, yani ödemenin bir kırılımının tamamını veya bir kısmını iade eder.

İade yapılabilmesi için ödeme kırılımına ait id(paymentTransactionId) ve iade edilecek tutar(price) gönderilmesi gerekir. İade işlemi başarılıysa, iade edilen tutar(price) servisten döner. İade edilecek tutar(price), iade edilecek ödemenin kırılımının tutarından(itemTransaction -> paidPrice) ve iade edilebilir kalan tutardan küçük veya eşit olmalıdır. Bu kural sağlandığı sürece ardarda defalarca iade yapılabilir.

Servise gönderilmesi gereken parametreler şu şekildedir:

Parametre ismi Tip Zorunluluk Açıklama
ip string evet İşlemin gönderildiği ip adresi.
price string evet İade edilmek istenen tutar.
paymentTransactionId string evet iyzico tarafından işleme verilen benzersiz ödeme kırılım numarası.
locale string hayır iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
conversationId string hayır İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.

Servisten dönen parametreler şu şekildedir:

Parametre ismi Tip Açıklama
price string İade edilen tutar.
currency string İptali yapılan ödeme para birimi.
paymentid integer iyzico tarafından işleme verilen benzersiz ödeme numarası.
paymentTransactionId string iyzico tarafından işleme verilen benzersiz ödeme kırılım numarası.
status string Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
errorCode string İşlem hatalıysa, bu hataya dair belirtilen koddur.
errorMessage string İşlem hatalıysa, bu hataya dair belirtilen mesajdır. Locale parametresine göre dil desteği sunar.
errorGroup string İşlem hatalıysa, bu hataya dair belirtilen gruptur.
locale string İstekte belirtilen locale değeri geri dönülür, varsayılan değeri tr’dir.
systemTime integer Dönen sonucun o anki unix timestamp değeridir.
conversationId string İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.

$request = new \Iyzipay\Request\CreateRefundRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPaymentTransactionId("1");
$request->setPrice("0.5");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$request->setIp("85.34.78.112");

$refund = \Iyzipay\Model\Refund::create($request, Config::options());
CreateRefundRequest request = new CreateRefundRequest();
request.ConversationId = "123456789";
request.Locale = Locale.TR.ToString();
request.PaymentTransactionId = "1";
request.Price = "0.5";
request.Ip = "85.34.78.112";
request.Currency = Currency.TRY.ToString();

Refund refund = Refund.Create(request, options);
CreateRefundRequest request = new CreateRefundRequest();
request.setLocale(Locale.TR.getValue());
request.setConversationId("123456789");
request.setPaymentTransactionId("1");
request.setPrice(new BigDecimal("0.5"));
request.setCurrency(Currency.TRY.name());
request.setIp("85.34.78.112");

Refund refund = Refund.create(request, options);
iyzipay.refund.create({
    locale: Iyzipay.LOCALE.TR,
    conversationId: '123456789',
    paymentTransactionId: '1',
    price: '0.5',
    currency: Iyzipay.CURRENCY.TRY,
    ip: '85.34.78.112'
}, function (err, result) {
    console.log(err, result);
    done();
});
request = {
    locale: 'tr',
    conversationId: '123456789',
    paymentTransactionId: '702',
    price: '0.1',
    ip: '85.34.78.112',
    currency: Iyzipay::Model::Currency::TRY
}
refund = Iyzipay::Model::Refund.new.create(request, @options)
request = dict([('locale', 'tr')])
request['conversationId'] = '123456789'
request['paymentTransactionId'] = '1'
request['price'] = '0.1'
request['ip'] = '85.34.78.112'
request['currency'] = 'TRY'

refund = iyzipay.Refund()
refund_response = refund.create(request, options)
//Request
{
    "locale": "tr",
    "conversationId": "123456789",
    "paymentTransactionId": "36532",
    "price": "50.0",
    "ip": "85.34.78.112",
    "currency": "TRY"
}

//Response
{
    "status": "success",
    "locale": "tr",
    "systemTime": 1470730913791,
    "conversationId": "123456789",
    "paymentId": "25132",
    "paymentTransactionId": "36532",
    "price": 50,
    "currency": "TRY"
}

Örnek Kodlar