Ödeme İptali
- Endpoint:
/pws/payment/cancel - HTTP Method:
POST - Request Content-Type:
application/json - Response Content-Type:
application/json - Yetkilendirme: Geçerli AccessToken zorunludur.
(Bkz: 2. Kimlik Doğrulama – AccessToken Alınması)
Açıklama
Bu servis, Netahsilat portalı üzerinde daha önce yapılmış bir ödemenin iptal edilmesini sağlar.
İptal işlemi yalnızca tamamlanmış işlemler için yapılabilir.
İptal talebi, referenceCode alanı üzerinden yapılır.
Bankadan gelen provizyon yanıtına göre iptal işlemi başarılı veya başarısız sonuç döner.
Header Bilgileri
| Header Adı | Zorunlu | Açıklama |
|---|---|---|
| Authorization | Evet | Bearer {AccessToken} formatında geçerli token. |
| Content-Type | Hayır | application/json |
Request Body
| Alan Adı | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| referenceCode | string | Evet | İptali istenen işlemin referans kodu (ör.: NTH2P00000002250) |
| reason | string | Hayır | İptal gerekçesi (ör. “Kullanıcı isteği”, “Tekrarlı işlem”) |
- Örnek Request
- Başarılı Response
{
"referenceCode": "NTH2P00000002250",
"reason": "test cancel"
}
{
"message": "",
"statusCode": 200,
"exceptions": null,
"data": {
"lastAmount": 0.0,
"transactionStatusId": 1,
"errorCode": null,
"isSuccess": true,
"errorMessage": null
},
"oldData": null,
"errors": null
}
Alanlar (data)
-
lastAmount: İptal sonrası tutar (başarılı iptalde genelde0.0). -
transactionStatusId: İşlem durum kodu (ör.1 = Başarılı/Onaylışeklinde sistem genel durum setiyle uyumlu). -
isSuccess: İptal işlemi sonucu (true/false). -
errorCode/errorMessage: Hata oluşursa detay.
Örnek cURL
curl --location 'https://pgw.netahsilatdemo.com/pws/payment/cancel' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzY29wZSI6WyJwd3N2MS5hcGkiLCJlcnB2MS5hcGkiLCJjYXR2MS5hcGkiLCJ2ZW5kb3J2MS5hcGkiXSwiYWN0b3J0Ijoic2VydmljZSIsInJvbGUiOiJzZXJ2aWNlIiwiVW5pcXVlIjoiOGE2NjQxZGYtMGU4Ny00OWVkLWEyOTgtNjNjN2M3Y2JjNTk1IiwiVGVuYW50SWQiOiI2NzA2ODNjMS0yZmUwLTQ4NDYtODdiMi02Y2JhOWI3OTNhYjIiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL2V4cGlyYXRpb24iOiI2Mzg5NzA3MjQxNDMzMzI2OTUiLCJuYmYiOjE3NjEzMDI4MTQsImV4cCI6MTc2MTQ3NTYxNCwiaWF0IjoxNzYxMzAyODE0LCJpc3MiOiJzc28uYXBpIiwiYXVkIjoiZWNvenVtLnNzbyJ9.IbmVm9oVxUvDXhzYnCncNMYPBFqqJTXFQLkFYfhSbUA' \
--data '{
"referenceCode": "NTH2P00000002250",
"reason": "test cancel"
}'
### Notlar & En İyi Uygulamalar {#notes-and-best-practices}
-
İptal işlemi yalnızca referenceCode üzerinden yapılabilir.
-
İşlem, sadece tamamlanmış ödemelerde uygulanabilir.
-
Banka provizyon kurallarına bağlı olarak, bazı işlemler için iptal mümkün olmayabilir.
-
Aynı
referenceCodedeğeriyle tekrar iptal çağrısı yapılırsa sistem idempotent çalışabilir; ikinci çağrı “zaten iptal edildi” yanıtı verebilir. -
reasonalanının gönderilmesi, işlem kayıtlarında raporlama kolaylığı sağlar. -
Başarılı iptal sonrasında ilgili işlem tutarı sistemde 0.00 olarak güncellenir.
-
AccessToken, işlemi yapan kullanıcıya veya yetkili bayiye ait olmalıdır.