İade ve İptal
Başarılı bir ödemeden para iki uçla geri verilir. İkisi de yalnızca ödemenin transaction.token değerini ister.
cancel-payment | refund-payment | |
|---|---|---|
| Tutar | Her zaman ödemenin tamamı; tutar gönderilmez. | amount ile kısmi ya da gönderilmezse kalanın tamamı. |
| Birden fazla kez | Hayır. | Evet; toplam, ödeme tutarını aşamaz. |
| Önceden iade yapılmışsa | Reddedilir. | Kalan tutar iade edilebilir. |
| Sağlayıcı desteği | Hesabın sağlayıcısı iptali desteklemelidir. | Hesabın sağlayıcısı iadeyi desteklemelidir. |
refund.type | cancel | refund |
Kurallar
Aşağıdaki kurallar gateway tarafında, sağlayıcıya istek gönderilmeden denetlenir. Kural sağlanmazsa istek 422 ile transaction.token alanında reddedilir.
- Yalnızca başarıyla tamamlanmış bir ödeme geri verilebilir.
- İptal edilmiş bir ödemeden iade yapılamaz.
- Kısmen iade edilmiş bir ödeme iptal edilemez.
- İade edilebilir tutarı kalmamış bir ödemeden geri ödeme yapılamaz.
- Ödemenin hesabının sağlayıcısı ilgili işlemi desteklemelidir.
Kurallar sağlandığında istek sağlayıcıya gönderilir. Sağlayıcı reddederse yanıt 200 ve result.successful: false döner; para geri verilmemiştir.
Kur çevirisiyle alınmış ödemeler
Kur çevirisiyle çekilmiş bir ödemede refund-payment amount değeri, karttan çekilen para birimindedir (ödeme yanıtındaki conversion.currency).
Örnek
- PHP
- Node.js
- Python
- Java
use Gurmehub\Odemehub\Request\{CancelPayment, RefundPayment};
$client->cancelPayment(new CancelPayment(transactionToken: $transactionToken));
$client->refundPayment(new RefundPayment(transactionToken: $transactionToken, amount: '100.00'));
$client->refundPayment(new RefundPayment(transactionToken: $transactionToken)); // kalanın tamamı
await client.cancelPayment({ transactionToken });
await client.refundPayment({ transactionToken, amount: '100.00' });
await client.refundPayment({ transactionToken }); // kalanın tamamı
from odemehub.request import CancelPayment, RefundPayment
client.cancel_payment(CancelPayment(transaction_token=transaction_token))
client.refund_payment(RefundPayment(transaction_token=transaction_token, amount="100.00"))
client.refund_payment(RefundPayment(transaction_token=transaction_token)) # kalanın tamamı
import com.odemehub.request.CancelPayment;
import com.odemehub.request.RefundPayment;
client.cancelPayment(new CancelPayment(transactionToken));
client.refundPayment(new RefundPayment(transactionToken, "100.00"));
client.refundPayment(new RefundPayment(transactionToken)); // kalanın tamamı
Her iki yanıtta result.successful geri ödemenin sonucunu, refund.amount geri verilen tutarı gösterir.
retrieve-payment bir ödemenin iade ya da iptal edilip edilmediğini döndürmez; geri ödemelerin sonucunu bu uçların yanıtlarından saklayın.