İşlem İadesi

POST/partner/1.0/pos/transaction/refund
Gerekli scope: payment:refund

Bir ödeme tahsilatını tam veya kısmi olarak iade eder. partialAmount verilirse kısmi iade yapılır; verilmezse tam iade uygulanır.

Tahsilat linki veya karekod ile alınan ödemelerde de çalışır; o akışlarda ters kayıt doğrudan ödeme motorundan geçer.

Örnek

curl -X POST https://<host>/partner/1.0/pos/transaction/refund \
  -H "X-Api-Key: ..." \
  -H "X-Timestamp: ..." \
  -H "X-Signature: ..." \
  -H "Content-Type: application/json" \
  -d '{
  "transactionRef": "eb334ec5-9f7a-4c21-9b3e-77a01c4f2d18",
  "reason": "Kısmi iade",
  "partialAmount": 25
}'

İstek Body

AlanTipAçıklama
transactionRefzorunlustringÖdeme yanıtındaki işlem referansı.
reasonstringOpsiyonel iade gerekçesi; işlem kaydına yazılır.
partialAmountdecimalKısmi iade tutarı. Verilirse kısmi iade yapılır; verilmezse (null) tam iade uygulanır.

Yanıt

AlanAnlamı
transactionRefİşlem referansı. Sorgu, iptal ve iade hep bu değeri konuşur.
orderNumberÖdemede gönderdiğiniz kendi sipariş numaranız.
statusİşlem durumu (COMPLETED, PRE_AUTHORIZED, FAILED, PENDING_SETTLEMENT, SETTLED …).
phase / operation / channelİşlemin defterdeki aşaması, tipi ve geldiği kanal.
amountSipariş tutarı (komisyon hariç).
chargedAmountMüşteriden tahsil edilen nihai tutar — komisyon müşteriye yansıyorsa amounttan farklıdır.
netAmountİşletmenizin eline geçen net tutar.
commissionAmountHesaplanan komisyon tutarı.
refundedAmountBugüne kadar iade edilen toplam.
currency / installmentPara birimi ve taksit sayısı.
threeDsİşlem 3D Secure'lü mü.
refundable / voidableİşlem şu an iadeye / iptale açık mı.
cardMasked / cardHolderName / cardBankNameMaskeli kart numarası ve kart sahibi bilgileri. Tam PAN hiçbir uçtan dönmez.
descriptionİşlem açıklaması.
providerReference / providerAuthCodeMutabakat için banka referans numarası (RRN/host-ref) ve banka onay kodu. Ham sağlayıcı gövdesi dışarı çıkmaz.
createdDate / valorDateOluşturma ve valör tarihi.

Kısmi İade

partialAmount verildiğinde tahsilatın yalnız o kısmı iade edilir; kalan tutar işletmede kalır. Aynı işleme birden fazla kısmi iade yapılabilir.

  • İade tavanı tahsil edilen toplamdır (komisyon dahil tutar). Yapılan iadelerin toplamı bu tavanı aşamaz.
  • Toplam iade tavana ulaştığında işlem tam iade edilmiş sayılır ve yeni iade kabul edilmez.
  • Her kısmi iade ana işleme bağlı ayrı bir kayıt üretir; işlem detayında iade edilen toplam görünür.
  • İade tutar bazlıdır: sepet kalemi göndermiş olsanız bile "şu kalemi iade et" diyemezsiniz.
100 TL tahsilat
  ├─ partialAmount: 30  →  kalan iade edilebilir: 70
  ├─ partialAmount: 20  →  kalan iade edilebilir: 50
  └─ partialAmount: 60  →  RET (tavanı aşıyor, kalan 50)
İptal mi iade mi

Tahsilat kesinleşmemişse (provizyon ya da gün sonu öncesi) İptal kullanın — daha ucuzdur ve karta anında yansır. İade, kesinleşmiş tahsilat içindir.

Hatalar

Mesaj anahtarıHTTPNeden
transaction.not.refundable406İşlem iadeye kapalı işaretli.
pos.transaction.status.must.success406İşlem başarılı durumda değil.
checkout.not.captured406Tahsil edilmemiş işlem iade edilemez; iptal kullanın.
pos.reversal.rejected.by.provider406Sağlayıcı iadeyi reddetti; ret gerekçesi mesajda yer alır.
paymenttransaction.not.found404İşlem bulunamadı ya da işletmenize ait değil.

İsteği Dene

İsteği Dene
Önizleme modu — değerler kod örneklerini günceller, gerçek istek atılmaz.
Mock