Skip to main content
Tüm Payven API’lerinde tutarlar kuruş cinsinden, 64-bit tam sayı (long) olarak iletilir. Ondalıklı (float, decimal) değer kabul edilmez. İstemci tarafında 32-bit int kullanmayın — yüksek tutarlı işlemlerde taşma riskine girersiniz. Tutar her zaman bir para birimiyle birlikte taşınır:
{ "amount": 15000, "currency": "TRY" }

Çevrim kuralı

tutar (kuruş) = tutar (₺) × 100
Görünen tutarAPI değeri
0,01 ₺1
1,00 ₺100
25,50 ₺2550
150,00 ₺15000
1.234,56 ₺123456
1.999.999,99 ₺199999999

Örnek dönüştürme fonksiyonları

public static long LiraToKurus(decimal lira) => (long)Math.Round(lira * 100m);
public static decimal KurusToLira(long kurus) => kurus / 100m;

// Görüntüleme
public static string FormatKurus(long kurus) =>
    (kurus / 100m).ToString("N2", new CultureInfo("tr-TR")) + " ₺";
Float kullanmayın. Ondalık aritmetiği yuvarlama hatalarına yol açar. Çevrimi mutlaka tamsayı (integer/long) ile yapın.

Para birimleri

KodPara birimiDoğrudan kabulDCC çıktısı
TRYTürk LirasıEvet
USDAmerikan DolarıEvet
EUREuroEvet
GBPİngiliz SterliniEvet
Request body’sinde currency alanına şu an yalnız "TRY" gönderilir. Yabancı kartlarda DCC (Dynamic Currency Conversion) akışı devreye girerse Payven, kart para birimindeki çevrilmiş tutarı response body’sinde döner — istemci USD/EUR/GBP değerini doğrudan göndermez. Detay: DCC Akışı.

Sınır değerler

KuralLimit
Minimum işlem tutarı100 kuruş (1,00 ₺)
Maksimum tek işlem tutarıPlan ve banka anlaşmanıza göre değişir
Kısmi iade tutarıOrijinal işlem tutarını aşamaz
İhlal durumunda invalid_amount veya refund_exceeds_original kodu ile 422 Unprocessable Entity döner. Tüm hata yanıtları RFC 9457 problem+json formatındadır — bkz. Hata Yönetimi.